@@ -2226,7 +2226,7 @@ SDValue SITargetLowering::getPreloadedValue(
2226
2226
2227
2227
// It's undefined behavior if a function marked with the amdgpu-no-*
2228
2228
// attributes uses the corresponding intrinsic.
2229
- return DAG.getUNDEF (VT);
2229
+ return DAG.getPOISON (VT);
2230
2230
}
2231
2231
2232
2232
return loadInputValue(DAG, RC, VT, SDLoc(DAG.getEntryNode()), *Reg);
@@ -2962,7 +2962,7 @@ SDValue SITargetLowering::LowerFormalArguments(
2962
2962
for (unsigned i = 0, e = Ins.size(), ArgIdx = 0; i != e; ++i) {
2963
2963
const ISD::InputArg &Arg = Ins[i];
2964
2964
if ((Arg.isOrigArg() && Skipped[Arg.getOrigArgIndex()]) || IsError) {
2965
- InVals.push_back(DAG.getUNDEF (Arg.VT));
2965
+ InVals.push_back(DAG.getPOISON (Arg.VT));
2966
2966
continue;
2967
2967
}
2968
2968
@@ -3446,12 +3446,12 @@ void SITargetLowering::passSpecialInputs(
3446
3446
if (Id.has_value()) {
3447
3447
InputReg = DAG.getConstant(*Id, DL, ArgVT);
3448
3448
} else {
3449
- InputReg = DAG.getUNDEF (ArgVT);
3449
+ InputReg = DAG.getPOISON (ArgVT);
3450
3450
}
3451
3451
} else {
3452
3452
// We may have proven the input wasn't needed, although the ABI is
3453
3453
// requiring it. We just need to allocate the register appropriately.
3454
- InputReg = DAG.getUNDEF (ArgVT);
3454
+ InputReg = DAG.getPOISON (ArgVT);
3455
3455
}
3456
3456
3457
3457
if (OutgoingArg->isRegister()) {
@@ -3531,7 +3531,7 @@ void SITargetLowering::passSpecialInputs(
3531
3531
// ID, but the calling function does not have it (e.g a graphics function
3532
3532
// calling a C calling convention function). This is illegal, but we need
3533
3533
// to produce something.
3534
- InputReg = DAG.getUNDEF (MVT::i32);
3534
+ InputReg = DAG.getPOISON (MVT::i32);
3535
3535
} else {
3536
3536
// Workitem ids are already packed, any of present incoming arguments
3537
3537
// will carry all required fields.
@@ -3777,7 +3777,7 @@ SDValue SITargetLowering::LowerCall(CallLoweringInfo &CLI,
3777
3777
if (Callee.isUndef() || isNullConstant(Callee)) {
3778
3778
if (!CLI.IsTailCall) {
3779
3779
for (ISD::InputArg &Arg : CLI.Ins)
3780
- InVals.push_back(DAG.getUNDEF (Arg.VT));
3780
+ InVals.push_back(DAG.getPOISON (Arg.VT));
3781
3781
}
3782
3782
3783
3783
return Chain;
@@ -6139,7 +6139,7 @@ static SDValue adjustLoadValueTypeImpl(SDValue Result, EVT LoadVT,
6139
6139
6140
6140
// Pad illegal v1i16/v3fi6 to v4i16
6141
6141
if ((LoadVT.getVectorNumElements() % 2) == 1)
6142
- Elts.push_back(DAG.getUNDEF (MVT::i16));
6142
+ Elts.push_back(DAG.getPOISON (MVT::i16));
6143
6143
6144
6144
Result = DAG.getBuildVector(IntLoadVT, DL, Elts);
6145
6145
@@ -6231,7 +6231,7 @@ static SDValue lowerICMPIntrinsic(const SITargetLowering &TLI, SDNode *N,
6231
6231
EVT VT = N->getValueType(0);
6232
6232
unsigned CondCode = N->getConstantOperandVal(3);
6233
6233
if (!ICmpInst::isIntPredicate(static_cast<ICmpInst::Predicate>(CondCode)))
6234
- return DAG.getUNDEF (VT);
6234
+ return DAG.getPOISON (VT);
6235
6235
6236
6236
ICmpInst::Predicate IcInput = static_cast<ICmpInst::Predicate>(CondCode);
6237
6237
@@ -6266,7 +6266,7 @@ static SDValue lowerFCMPIntrinsic(const SITargetLowering &TLI, SDNode *N,
6266
6266
6267
6267
unsigned CondCode = N->getConstantOperandVal(3);
6268
6268
if (!FCmpInst::isFPPredicate(static_cast<FCmpInst::Predicate>(CondCode)))
6269
- return DAG.getUNDEF (VT);
6269
+ return DAG.getPOISON (VT);
6270
6270
6271
6271
SDValue Src0 = N->getOperand(1);
6272
6272
SDValue Src1 = N->getOperand(2);
@@ -7343,7 +7343,7 @@ SDValue SITargetLowering::getSegmentAperture(unsigned AS, const SDLoc &DL,
7343
7343
if (UserSGPR == AMDGPU::NoRegister) {
7344
7344
// We probably are in a function incorrectly marked with
7345
7345
// amdgpu-no-queue-ptr. This is undefined.
7346
- return DAG.getUNDEF (MVT::i32);
7346
+ return DAG.getPOISON (MVT::i32);
7347
7347
}
7348
7348
7349
7349
SDValue QueuePtr =
@@ -7465,8 +7465,7 @@ SDValue SITargetLowering::lowerADDRSPACECAST(SDValue Op,
7465
7465
// global <-> flat are no-ops and never emitted.
7466
7466
7467
7467
// Invalid casts are poison.
7468
- // TODO: Should return poison
7469
- return DAG.getUNDEF(Op->getValueType(0));
7468
+ return DAG.getPOISON(Op->getValueType(0));
7470
7469
}
7471
7470
7472
7471
// This lowers an INSERT_SUBVECTOR by extracting the individual elements from
@@ -7808,7 +7807,7 @@ SDValue SITargetLowering::lowerVECTOR_SHUFFLE(SDValue Op,
7808
7807
NewMaskIdx1 += NewSrcNumElts;
7809
7808
Result1 = SubVec1;
7810
7809
} else {
7811
- Result1 = DAG.getUNDEF (PackVT);
7810
+ Result1 = DAG.getPOISON (PackVT);
7812
7811
}
7813
7812
7814
7813
SDValue Shuf = DAG.getVectorShuffle(PackVT, SL, Result0, Result1,
@@ -7841,7 +7840,7 @@ SDValue SITargetLowering::lowerSCALAR_TO_VECTOR(SDValue Op,
7841
7840
SDValue SVal = Op.getOperand(0);
7842
7841
EVT ResultVT = Op.getValueType();
7843
7842
EVT SValVT = SVal.getValueType();
7844
- SDValue UndefVal = DAG.getUNDEF (SValVT);
7843
+ SDValue UndefVal = DAG.getPOISON (SValVT);
7845
7844
SDLoc SL(Op);
7846
7845
7847
7846
SmallVector<SDValue, 8> VElts;
@@ -8065,7 +8064,7 @@ static SDValue emitNonHSAIntrinsicError(SelectionDAG &DAG, const SDLoc &DL,
8065
8064
"non-hsa intrinsic with hsa target",
8066
8065
DL.getDebugLoc());
8067
8066
DAG.getContext()->diagnose(BadIntrin);
8068
- return DAG.getUNDEF (VT);
8067
+ return DAG.getPOISON (VT);
8069
8068
}
8070
8069
8071
8070
static SDValue emitRemovedIntrinsicError(SelectionDAG &DAG, const SDLoc &DL,
@@ -8074,7 +8073,7 @@ static SDValue emitRemovedIntrinsicError(SelectionDAG &DAG, const SDLoc &DL,
8074
8073
"intrinsic not supported on subtarget",
8075
8074
DL.getDebugLoc());
8076
8075
DAG.getContext()->diagnose(BadIntrin);
8077
- return DAG.getUNDEF (VT);
8076
+ return DAG.getPOISON (VT);
8078
8077
}
8079
8078
8080
8079
static SDValue getBuildDwordsVector(SelectionDAG &DAG, SDLoc DL,
@@ -8099,7 +8098,7 @@ static SDValue getBuildDwordsVector(SelectionDAG &DAG, SDLoc DL,
8099
8098
VecElts[i] = Elt;
8100
8099
}
8101
8100
for (unsigned i = Elts.size(); i < NumElts; ++i)
8102
- VecElts[i] = DAG.getUNDEF (MVT::f32);
8101
+ VecElts[i] = DAG.getPOISON (MVT::f32);
8103
8102
8104
8103
if (NumElts == 1)
8105
8104
return VecElts[0];
@@ -8117,7 +8116,7 @@ static SDValue padEltsToUndef(SelectionDAG &DAG, const SDLoc &DL, EVT CastVT,
8117
8116
else
8118
8117
Elts.push_back(Src);
8119
8118
8120
- SDValue Undef = DAG.getUNDEF (SrcVT.getScalarType());
8119
+ SDValue Undef = DAG.getPOISON (SrcVT.getScalarType());
8121
8120
while (ExtraElts--)
8122
8121
Elts.push_back(Undef);
8123
8122
@@ -8368,7 +8367,7 @@ SDValue SITargetLowering::lowerImage(SDValue Op,
8368
8367
// occupies full 32-bit.
8369
8368
SDValue Bias = DAG.getBuildVector(
8370
8369
MVT::v2f16, DL,
8371
- {Op.getOperand(ArgOffset + I), DAG.getUNDEF (MVT::f16)});
8370
+ {Op.getOperand(ArgOffset + I), DAG.getPOISON (MVT::f16)});
8372
8371
VAddrs.push_back(Bias);
8373
8372
} else {
8374
8373
assert((!IsA16 || Intr->NumBiasArgs == 0 || I != Intr->BiasIndex) &&
@@ -8498,7 +8497,7 @@ SDValue SITargetLowering::lowerImage(SDValue Op,
8498
8497
// type
8499
8498
if (DMaskLanes == 0 && !BaseOpcode->Store) {
8500
8499
// This is a no-op load. This can be eliminated
8501
- SDValue Undef = DAG.getUNDEF (Op.getValueType());
8500
+ SDValue Undef = DAG.getPOISON (Op.getValueType());
8502
8501
if (isa<MemSDNode>(Op))
8503
8502
return DAG.getMergeValues({Undef, Op.getOperand(0)}, DL);
8504
8503
return Undef;
@@ -8743,7 +8742,7 @@ SDValue SITargetLowering::lowerWorkitemID(SelectionDAG &DAG, SDValue Op,
8743
8742
// It's undefined behavior if a function marked with the amdgpu-no-*
8744
8743
// attributes uses the corresponding intrinsic.
8745
8744
if (!Arg)
8746
- return DAG.getUNDEF (Op->getValueType(0));
8745
+ return DAG.getPOISON (Op->getValueType(0));
8747
8746
8748
8747
SDValue Val = loadInputValue(DAG, &AMDGPU::VGPR_32RegClass, MVT::i32,
8749
8748
SDLoc(DAG.getEntryNode()), Arg);
@@ -8786,7 +8785,7 @@ SDValue SITargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op,
8786
8785
MF.getFunction(), "unsupported hsa intrinsic without hsa target",
8787
8786
DL.getDebugLoc());
8788
8787
DAG.getContext()->diagnose(BadIntrin);
8789
- return DAG.getUNDEF (VT);
8788
+ return DAG.getPOISON (VT);
8790
8789
}
8791
8790
8792
8791
auto RegID = IntrinsicID == Intrinsic::amdgcn_dispatch_ptr
@@ -9661,7 +9660,7 @@ SDValue SITargetLowering::LowerINTRINSIC_W_CHAIN(SDValue Op,
9661
9660
if (!UseNSA) {
9662
9661
// Build a single vector containing all the operands so far prepared.
9663
9662
if (NumVAddrDwords > 12) {
9664
- SDValue Undef = DAG.getUNDEF (MVT::i32);
9663
+ SDValue Undef = DAG.getPOISON (MVT::i32);
9665
9664
Ops.append(16 - Ops.size(), Undef);
9666
9665
}
9667
9666
assert(Ops.size() >= 8 && Ops.size() <= 12);
@@ -9847,13 +9846,13 @@ SDValue SITargetLowering::handleD16VData(SDValue VData, SelectionDAG &DAG,
9847
9846
// Handle v3i16
9848
9847
unsigned I = Elts.size() / 2;
9849
9848
SDValue Pair = DAG.getBuildVector(MVT::v2i16, DL,
9850
- {Elts[I * 2], DAG.getUNDEF (MVT::i16)});
9849
+ {Elts[I * 2], DAG.getPOISON (MVT::i16)});
9851
9850
SDValue IntPair = DAG.getNode(ISD::BITCAST, DL, MVT::i32, Pair);
9852
9851
PackedElts.push_back(IntPair);
9853
9852
}
9854
9853
9855
9854
// Pad using UNDEF
9856
- PackedElts.resize(Elts.size(), DAG.getUNDEF (MVT::i32));
9855
+ PackedElts.resize(Elts.size(), DAG.getPOISON (MVT::i32));
9857
9856
9858
9857
// Build final vector
9859
9858
EVT VecVT =
@@ -9900,7 +9899,7 @@ SDValue SITargetLowering::LowerINTRINSIC_VOID(SDValue Op,
9900
9899
return SDValue();
9901
9900
9902
9901
const ConstantSDNode *Done = cast<ConstantSDNode>(Op.getOperand(6));
9903
- SDValue Undef = DAG.getUNDEF (MVT::f32);
9902
+ SDValue Undef = DAG.getPOISON (MVT::f32);
9904
9903
const SDValue Ops[] = {
9905
9904
Op.getOperand(2), // tgt
9906
9905
DAG.getNode(ISD::BITCAST, DL, MVT::f32, Src0), // src0
0 commit comments