[Matrix] Add assert to catch extracted vectors with poison elements
authorFrancis Visoiu Mistrih <francisvm@yahoo.com>
Wed, 20 Jul 2022 09:32:15 +0000 (11:32 +0200)
committerFrancis Visoiu Mistrih <francisvm@yahoo.com>
Tue, 26 Jul 2022 18:07:02 +0000 (11:07 -0700)
Assert when the extracted vector is wider than the row/column.

Differential Revision: https://reviews.llvm.org/D130173

llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp

index 73cd92d..f1e1359 100644 (file)
@@ -338,6 +338,9 @@ class LowerMatrixIntrinsics {
     Value *extractVector(unsigned I, unsigned J, unsigned NumElts,
                          IRBuilder<> &Builder) const {
       Value *Vec = isColumnMajor() ? getColumn(J) : getRow(I);
+      assert(cast<FixedVectorType>(Vec->getType())->getNumElements() >=
+                 NumElts &&
+             "Extracted vector will contain poison values");
       return Builder.CreateShuffleVector(
           Vec, createSequentialMask(isColumnMajor() ? I : J, NumElts, 0),
           "block");