diff --git a/opt.cpp b/opt.cpp index 16401ba9..b4570235 100644 --- a/opt.cpp +++ b/opt.cpp @@ -2200,8 +2200,12 @@ lCheckMulForLinear(llvm::Value *op0, llvm::Value *op1, int vectorLength, llvm::ConstantVector *cv = llvm::dyn_cast(op0); if (cv == NULL) return false; - llvm::ConstantInt *splat = - llvm::dyn_cast(cv->getSplatValue()); + + llvm::Constant *csplat = cv->getSplatValue(); + if (csplat == NULL) + return false; + + llvm::ConstantInt *splat = llvm::dyn_cast(csplat); if (splat == NULL) return false;