Skip to content

Commit 35f4592

Browse files
committed
[SLP][NFC]Add asserts for undef handling in PHIComparator, NFC.
1 parent 8de2300 commit 35f4592

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16069,19 +16069,29 @@ bool SLPVectorizerPass::vectorizeChainsInBlock(BasicBlock *BB, BoUpSLP &R) {
1606916069
if (isa<UndefValue>(Opcodes1[I]) || isa<UndefValue>(Opcodes2[I])) {
1607016070
if (isa<UndefValue>(Opcodes1[I]) && isa<UndefValue>(Opcodes2[I]))
1607116071
continue;
16072-
if (isa<Instruction>(Opcodes1[I]))
16072+
if (isa<Instruction>(Opcodes1[I])) {
16073+
assert(isa<UndefValue>(Opcodes2[I]) && "Expected 2nd undef value");
1607316074
return true;
16074-
if (isa<Instruction>(Opcodes2[I]))
16075+
}
16076+
if (isa<Instruction>(Opcodes2[I])) {
16077+
assert(isa<UndefValue>(Opcodes1[I]) && "Expected 1st undef value");
1607516078
return false;
16076-
if (isa<Constant>(Opcodes1[I]) && !isa<UndefValue>(Opcodes1[I]))
16079+
}
16080+
if (isa<Constant>(Opcodes1[I]) && !isa<UndefValue>(Opcodes1[I])) {
16081+
assert(isa<UndefValue>(Opcodes2[I]) && "Expected 2nd undef value");
1607716082
return true;
16078-
if (isa<Constant>(Opcodes2[I]) && !isa<UndefValue>(Opcodes2[I]))
16083+
}
16084+
if (isa<Constant>(Opcodes2[I]) && !isa<UndefValue>(Opcodes2[I])) {
16085+
assert(isa<UndefValue>(Opcodes1[I]) && "Expected 1st undef value");
1607916086
return false;
16080-
if (isa<UndefValue>(Opcodes1[I]) && !isa<UndefValue>(Opcodes2[I]))
16087+
}
16088+
if (!isa<UndefValue>(Opcodes2[I])) {
16089+
assert(isa<UndefValue>(Opcodes1[I]) && "Expected 1st undef value");
1608116090
return false;
16082-
if (!isa<UndefValue>(Opcodes1[I]) && isa<UndefValue>(Opcodes2[I]))
16083-
return true;
16084-
continue;
16091+
}
16092+
assert(!isa<UndefValue>(Opcodes1[I]) && isa<UndefValue>(Opcodes2[I]) &&
16093+
"Expected 1st non-undef and 2nd undef value");
16094+
return true;
1608516095
}
1608616096
if (auto *I1 = dyn_cast<Instruction>(Opcodes1[I]))
1608716097
if (auto *I2 = dyn_cast<Instruction>(Opcodes2[I])) {

0 commit comments

Comments
 (0)