diff --git a/llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp b/llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp index 2403b9e1327a..0a6ea9dc3258 100644 --- a/llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp +++ b/llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp @@ -633,8 +633,9 @@ void IRPromoter::TruncateSinks(SmallPtrSetImpl &Sources, LLVM_DEBUG(dbgs() << "ARM CGP: Creating " << *TruncTy << " Trunc for " << *V << "\n"); Builder.SetInsertPoint(cast(V)); - auto *Trunc = cast(Builder.CreateTrunc(V, TruncTy)); - NewInsts.insert(Trunc); + auto *Trunc = dyn_cast(Builder.CreateTrunc(V, TruncTy)); + if (Trunc) + NewInsts.insert(Trunc); return Trunc; };