Skip to content

Commit 1e55d5b

Browse files
ManuelJBritonunoplopes
authored andcommitted
Use poison instead of undef as placeholder for vector construction [NFC]
Differential Revision: https://reviews.llvm.org/D138450
1 parent 36ce0c3 commit 1e55d5b

File tree

9 files changed

+13
-13
lines changed

9 files changed

+13
-13
lines changed

llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2633,7 +2633,7 @@ Value *AArch64TTIImpl::getOrCreateResultFromMemIntrinsic(IntrinsicInst *Inst,
26332633
if (Inst->getArgOperand(i)->getType() != ST->getElementType(i))
26342634
return nullptr;
26352635
}
2636-
Value *Res = UndefValue::get(ExpectedType);
2636+
Value *Res = PoisonValue::get(ExpectedType);
26372637
IRBuilder<> Builder(Inst);
26382638
for (unsigned i = 0, e = NumElts; i != e; ++i) {
26392639
Value *L = Inst->getArgOperand(i);

llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ static Value *simplifyX86addcarry(const IntrinsicInst &II,
548548
Value *UAddResult = Builder.CreateExtractValue(UAdd, 0);
549549
Value *UAddOV = Builder.CreateZExt(Builder.CreateExtractValue(UAdd, 1),
550550
Builder.getInt8Ty());
551-
Value *Res = UndefValue::get(RetTy);
551+
Value *Res = PoisonValue::get(RetTy);
552552
Res = Builder.CreateInsertValue(Res, UAddOV, 0);
553553
return Builder.CreateInsertValue(Res, UAddResult, 1);
554554
}

llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2465,7 +2465,7 @@ void DFSanFunction::storePrimitiveShadowOrigin(Value *Addr, uint64_t Size,
24652465
if (LeftSize >= ShadowVecSize) {
24662466
auto *ShadowVecTy =
24672467
FixedVectorType::get(DFS.PrimitiveShadowTy, ShadowVecSize);
2468-
Value *ShadowVec = UndefValue::get(ShadowVecTy);
2468+
Value *ShadowVec = PoisonValue::get(ShadowVecTy);
24692469
for (unsigned I = 0; I != ShadowVecSize; ++I) {
24702470
ShadowVec = IRB.CreateInsertElement(
24712471
ShadowVec, PrimitiveShadow,

llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -656,7 +656,7 @@ static void scalarizeMaskedExpandLoad(const DataLayout &DL, CallInst *CI,
656656
// shuffle blend with the pass through value.
657657
if (isConstantIntVector(Mask)) {
658658
unsigned MemIndex = 0;
659-
VResult = UndefValue::get(VecType);
659+
VResult = PoisonValue::get(VecType);
660660
SmallVector<int, 16> ShuffleMask(VectorWidth, UndefMaskElem);
661661
for (unsigned Idx = 0; Idx < VectorWidth; ++Idx) {
662662
Value *InsertElt;

llvm/lib/Transforms/Scalar/Scalarizer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -848,7 +848,7 @@ bool ScalarizerVisitor::visitExtractElementInst(ExtractElementInst &EEI) {
848848
if (!ScalarizeVariableInsertExtract)
849849
return false;
850850

851-
Value *Res = UndefValue::get(VT->getElementType());
851+
Value *Res = PoisonValue::get(VT->getElementType());
852852
for (unsigned I = 0; I < NumSrcElems; ++I) {
853853
Value *ShouldExtract =
854854
Builder.CreateICmpEQ(ExtIdx, ConstantInt::get(ExtIdx->getType(), I),

llvm/test/Instrumentation/DataFlowSanitizer/array.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ define void @store_array17([17 x i1] %a, [17 x i1]* %p) {
257257
; FAST: %[[#R+31]] = or i[[#SBITS]] %[[#R+29]], %[[#R+30]]
258258
; FAST: %[[#R+32]] = extractvalue [17 x i[[#SBITS]]] %[[#R]], 16
259259
; FAST: %[[#R+33]] = or i[[#SBITS]] %[[#R+31]], %[[#R+32]]
260-
; FAST: %[[#VREG:]] = insertelement <8 x i[[#SBITS]]> undef, i[[#SBITS]] %[[#R+33]], i32 0
260+
; FAST: %[[#VREG:]] = insertelement <8 x i[[#SBITS]]> poison, i[[#SBITS]] %[[#R+33]], i32 0
261261
; FAST: %[[#VREG+1]] = insertelement <8 x i[[#SBITS]]> %[[#VREG]], i[[#SBITS]] %[[#R+33]], i32 1
262262
; FAST: %[[#VREG+2]] = insertelement <8 x i[[#SBITS]]> %[[#VREG+1]], i[[#SBITS]] %[[#R+33]], i32 2
263263
; FAST: %[[#VREG+3]] = insertelement <8 x i[[#SBITS]]> %[[#VREG+2]], i[[#SBITS]] %[[#R+33]], i32 3

llvm/test/Transforms/ScalarizeMaskedMemIntrin/X86/expand-masked-expandload.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ define <2 x i64> @scalarize_v2i64_ones_mask(i64* %p, <2 x i64> %passthru) {
3434
; CHECK-LABEL: @scalarize_v2i64_ones_mask(
3535
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i64, i64* [[P:%.*]], i32 0
3636
; CHECK-NEXT: [[LOAD0:%.*]] = load i64, i64* [[TMP1]], align 1
37-
; CHECK-NEXT: [[RES0:%.*]] = insertelement <2 x i64> undef, i64 [[LOAD0]], i64 0
37+
; CHECK-NEXT: [[RES0:%.*]] = insertelement <2 x i64> poison, i64 [[LOAD0]], i64 0
3838
; CHECK-NEXT: [[TMP2:%.*]] = getelementptr inbounds i64, i64* [[P]], i32 1
3939
; CHECK-NEXT: [[LOAD1:%.*]] = load i64, i64* [[TMP2]], align 1
4040
; CHECK-NEXT: [[RES1:%.*]] = insertelement <2 x i64> [[RES0]], i64 [[LOAD1]], i64 1
@@ -58,7 +58,7 @@ define <2 x i64> @scalarize_v2i64_const_mask(i64* %p, <2 x i64> %passthru) {
5858
; CHECK-LABEL: @scalarize_v2i64_const_mask(
5959
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i64, i64* [[P:%.*]], i32 0
6060
; CHECK-NEXT: [[LOAD1:%.*]] = load i64, i64* [[TMP1]], align 1
61-
; CHECK-NEXT: [[RES1:%.*]] = insertelement <2 x i64> undef, i64 [[LOAD1]], i64 1
61+
; CHECK-NEXT: [[RES1:%.*]] = insertelement <2 x i64> <i64 undef, i64 poison>, i64 [[LOAD1]], i64 1
6262
; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <2 x i64> [[RES1]], <2 x i64> [[PASSTHRU:%.*]], <2 x i32> <i32 2, i32 1>
6363
; CHECK-NEXT: ret <2 x i64> [[TMP2]]
6464
;

llvm/test/Transforms/Scalarizer/variable-extractelement.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ define i32 @f1(<4 x i32> %src, i32 %index) {
1010
; DEFAULT-LABEL: @f1(
1111
; DEFAULT-NEXT: [[INDEX_IS_0:%.*]] = icmp eq i32 [[INDEX:%.*]], 0
1212
; DEFAULT-NEXT: [[SRC_I0:%.*]] = extractelement <4 x i32> [[SRC:%.*]], i32 0
13-
; DEFAULT-NEXT: [[RES_UPTO0:%.*]] = select i1 [[INDEX_IS_0]], i32 [[SRC_I0]], i32 undef
13+
; DEFAULT-NEXT: [[RES_UPTO0:%.*]] = select i1 [[INDEX_IS_0]], i32 [[SRC_I0]], i32 poison
1414
; DEFAULT-NEXT: [[INDEX_IS_1:%.*]] = icmp eq i32 [[INDEX]], 1
1515
; DEFAULT-NEXT: [[SRC_I1:%.*]] = extractelement <4 x i32> [[SRC]], i32 1
1616
; DEFAULT-NEXT: [[RES_UPTO1:%.*]] = select i1 [[INDEX_IS_1]], i32 [[SRC_I1]], i32 [[RES_UPTO0]]
@@ -42,7 +42,7 @@ define i32 @f2(ptr %src, i32 %index) {
4242
; DEFAULT-NEXT: [[VAL0_I3:%.*]] = extractelement <4 x i32> [[VAL0]], i32 3
4343
; DEFAULT-NEXT: [[VAL1_I3:%.*]] = shl i32 4, [[VAL0_I3]]
4444
; DEFAULT-NEXT: [[INDEX_IS_0:%.*]] = icmp eq i32 [[INDEX:%.*]], 0
45-
; DEFAULT-NEXT: [[VAL2_UPTO0:%.*]] = select i1 [[INDEX_IS_0]], i32 [[VAL1_I0]], i32 undef
45+
; DEFAULT-NEXT: [[VAL2_UPTO0:%.*]] = select i1 [[INDEX_IS_0]], i32 [[VAL1_I0]], i32 poison
4646
; DEFAULT-NEXT: [[INDEX_IS_1:%.*]] = icmp eq i32 [[INDEX]], 1
4747
; DEFAULT-NEXT: [[VAL2_UPTO1:%.*]] = select i1 [[INDEX_IS_1]], i32 [[VAL1_I1]], i32 [[VAL2_UPTO0]]
4848
; DEFAULT-NEXT: [[INDEX_IS_2:%.*]] = icmp eq i32 [[INDEX]], 2

llvm/test/Transforms/Scalarizer/vector-of-pointer-to-vector.ll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ define <1 x i32> @f1(<1 x ptr> %src, i32 %index) {
66
; CHECK-LABEL: @f1(
77
; CHECK-NEXT: [[INDEX_IS_0:%.*]] = icmp eq i32 [[INDEX:%.*]], 0
88
; CHECK-NEXT: [[SRC_I0:%.*]] = extractelement <1 x ptr> [[SRC:%.*]], i32 0
9-
; CHECK-NEXT: [[DOTUPTO0:%.*]] = select i1 [[INDEX_IS_0]], ptr [[SRC_I0]], ptr undef
9+
; CHECK-NEXT: [[DOTUPTO0:%.*]] = select i1 [[INDEX_IS_0]], ptr [[SRC_I0]], ptr poison
1010
; CHECK-NEXT: [[DOTI0:%.*]] = load i32, ptr [[DOTUPTO0]], align 4
1111
; CHECK-NEXT: [[TMP1:%.*]] = insertelement <1 x i32> poison, i32 [[DOTI0]], i32 0
1212
; CHECK-NEXT: ret <1 x i32> [[TMP1]]
@@ -32,7 +32,7 @@ define <2 x i32> @f2(<1 x ptr> %src, i32 %index) {
3232
; CHECK-LABEL: @f2(
3333
; CHECK-NEXT: [[INDEX_IS_0:%.*]] = icmp eq i32 [[INDEX:%.*]], 0
3434
; CHECK-NEXT: [[SRC_I0:%.*]] = extractelement <1 x ptr> [[SRC:%.*]], i32 0
35-
; CHECK-NEXT: [[DOTUPTO0:%.*]] = select i1 [[INDEX_IS_0]], ptr [[SRC_I0]], ptr undef
35+
; CHECK-NEXT: [[DOTUPTO0:%.*]] = select i1 [[INDEX_IS_0]], ptr [[SRC_I0]], ptr poison
3636
; CHECK-NEXT: [[DOTUPTO0_I1:%.*]] = getelementptr i32, ptr [[DOTUPTO0]], i32 1
3737
; CHECK-NEXT: [[DOTI0:%.*]] = load i32, ptr [[DOTUPTO0]], align 4
3838
; CHECK-NEXT: [[DOTI1:%.*]] = load i32, ptr [[DOTUPTO0_I1]], align 4
@@ -66,7 +66,7 @@ define void @f3(<1 x ptr> %src, i32 %index, <2 x i32> %val) {
6666
; CHECK-NEXT: [[VAL_I1:%.*]] = extractelement <2 x i32> [[VAL]], i32 1
6767
; CHECK-NEXT: [[INDEX_IS_0:%.*]] = icmp eq i32 [[INDEX:%.*]], 0
6868
; CHECK-NEXT: [[SRC_I0:%.*]] = extractelement <1 x ptr> [[SRC:%.*]], i32 0
69-
; CHECK-NEXT: [[DOTUPTO0:%.*]] = select i1 [[INDEX_IS_0]], ptr [[SRC_I0]], ptr undef
69+
; CHECK-NEXT: [[DOTUPTO0:%.*]] = select i1 [[INDEX_IS_0]], ptr [[SRC_I0]], ptr poison
7070
; CHECK-NEXT: [[DOTUPTO0_I1:%.*]] = getelementptr i32, ptr [[DOTUPTO0]], i32 1
7171
; CHECK-NEXT: store i32 [[VAL_I0]], ptr [[DOTUPTO0]], align 4
7272
; CHECK-NEXT: store i32 [[VAL_I1]], ptr [[DOTUPTO0_I1]], align 4

0 commit comments

Comments
 (0)