diff --git a/llvm/lib/IR/AutoUpgrade.cpp b/llvm/lib/IR/AutoUpgrade.cpp --- a/llvm/lib/IR/AutoUpgrade.cpp +++ b/llvm/lib/IR/AutoUpgrade.cpp @@ -2417,7 +2417,7 @@ EltTy->getPointerTo()); Value *Load = Builder.CreateLoad(EltTy, Cast); Type *I32Ty = Type::getInt32Ty(C); - Rep = UndefValue::get(VecTy); + Rep = PoisonValue::get(VecTy); for (unsigned I = 0; I < EltNum; ++I) Rep = Builder.CreateInsertElement(Rep, Load, ConstantInt::get(I32Ty, I)); diff --git a/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp b/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp --- a/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp @@ -212,7 +212,7 @@ // If any of the elements has been modified, construct the equivalent // vector or aggregate value with a set instructions and the converted // elements. - Value *NewValue = UndefValue::get(C->getType()); + Value *NewValue = PoisonValue::get(C->getType()); if (isa(C)) { for (unsigned i = 0; i < NumOperands; ++i) { Value *Idx = ConstantInt::get(Type::getInt32Ty(M->getContext()), i); diff --git a/llvm/unittests/IR/IRBuilderTest.cpp b/llvm/unittests/IR/IRBuilderTest.cpp --- a/llvm/unittests/IR/IRBuilderTest.cpp +++ b/llvm/unittests/IR/IRBuilderTest.cpp @@ -878,7 +878,7 @@ auto VecTy = FixedVectorType::get(Builder.getInt64Ty(), 4); auto Elt1 = Builder.getInt64(-1); auto Elt2 = Builder.getInt64(-2); - Value *Vec = UndefValue::get(VecTy); + Value *Vec = PoisonValue::get(VecTy); Vec = Builder.CreateInsertElement(Vec, Elt1, Builder.getInt8(1)); Vec = Builder.CreateInsertElement(Vec, Elt2, 2); auto X1 = Builder.CreateExtractElement(Vec, 1); diff --git a/llvm/unittests/IR/PatternMatch.cpp b/llvm/unittests/IR/PatternMatch.cpp --- a/llvm/unittests/IR/PatternMatch.cpp +++ b/llvm/unittests/IR/PatternMatch.cpp @@ -940,8 +940,8 @@ VecElemIdxs.push_back(ConstantInt::get(i32, 2)); auto *IdxVec = ConstantVector::get(VecElemIdxs); - Value *UndefVec = UndefValue::get(VecTy); - Value *VI1 = IRB.CreateInsertElement(UndefVec, IRB.getInt8(1), (uint64_t)0); + Value *PoisonVec = PoisonValue::get(VecTy); + Value *VI1 = IRB.CreateInsertElement(PoisonVec, IRB.getInt8(1), (uint64_t)0); Value *VI2 = IRB.CreateInsertElement(VI1, Val2, Val); Value *VI3 = IRB.CreateInsertElement(VI1, Val2, (uint64_t)1); Value *VI4 = IRB.CreateInsertElement(VI1, IRB.getInt8(2), Val);