ConstantFold - ConstantFoldSelectInstruction - assume constant vector elements are...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 1 Oct 2019 10:22:01 +0000 (10:22 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 1 Oct 2019 10:22:01 +0000 (10:22 +0000)
Goes a bit further than rL372743 which added the early out - elements should be Constant so use cast<Constant> instead (and rely on the assert if anything fails).

llvm-svn: 373321

llvm/lib/IR/ConstantFold.cpp

index ee0ad32..54814bb 100644 (file)
@@ -746,8 +746,7 @@ Constant *llvm::ConstantFoldSelectInstruction(Constant *Cond,
                                                     ConstantInt::get(Ty, i));
       Constant *V2Element = ConstantExpr::getExtractElement(V2,
                                                     ConstantInt::get(Ty, i));
-      Constant *Cond = dyn_cast<Constant>(CondV->getOperand(i));
-      if (!Cond) break;
+      auto *Cond = cast<Constant>(CondV->getOperand(i));
       if (V1Element == V2Element) {
         V = V1Element;
       } else if (isa<UndefValue>(Cond)) {