@@ -2226,7 +2226,7 @@ SDValue SITargetLowering::getPreloadedValue(
22262226
22272227    // It's undefined behavior if a function marked with the amdgpu-no-*
22282228    // attributes uses the corresponding intrinsic.
2229-     return DAG.getUNDEF (VT);
2229+     return DAG.getPOISON (VT);
22302230  }
22312231
22322232  return loadInputValue(DAG, RC, VT, SDLoc(DAG.getEntryNode()), *Reg);
@@ -2962,7 +2962,7 @@ SDValue SITargetLowering::LowerFormalArguments(
29622962  for (unsigned i = 0, e = Ins.size(), ArgIdx = 0; i != e; ++i) {
29632963    const ISD::InputArg &Arg = Ins[i];
29642964    if ((Arg.isOrigArg() && Skipped[Arg.getOrigArgIndex()]) || IsError) {
2965-       InVals.push_back(DAG.getUNDEF (Arg.VT));
2965+       InVals.push_back(DAG.getPOISON (Arg.VT));
29662966      continue;
29672967    }
29682968
@@ -3446,12 +3446,12 @@ void SITargetLowering::passSpecialInputs(
34463446      if (Id.has_value()) {
34473447        InputReg = DAG.getConstant(*Id, DL, ArgVT);
34483448      } else {
3449-         InputReg = DAG.getUNDEF (ArgVT);
3449+         InputReg = DAG.getPOISON (ArgVT);
34503450      }
34513451    } else {
34523452      // We may have proven the input wasn't needed, although the ABI is
34533453      // requiring it. We just need to allocate the register appropriately.
3454-       InputReg = DAG.getUNDEF (ArgVT);
3454+       InputReg = DAG.getPOISON (ArgVT);
34553455    }
34563456
34573457    if (OutgoingArg->isRegister()) {
@@ -3531,7 +3531,7 @@ void SITargetLowering::passSpecialInputs(
35313531      // ID, but the calling function does not have it (e.g a graphics function
35323532      // calling a C calling convention function). This is illegal, but we need
35333533      // to produce something.
3534-       InputReg = DAG.getUNDEF (MVT::i32);
3534+       InputReg = DAG.getPOISON (MVT::i32);
35353535    } else {
35363536      // Workitem ids are already packed, any of present incoming arguments
35373537      // will carry all required fields.
@@ -3777,7 +3777,7 @@ SDValue SITargetLowering::LowerCall(CallLoweringInfo &CLI,
37773777  if (Callee.isUndef() || isNullConstant(Callee)) {
37783778    if (!CLI.IsTailCall) {
37793779      for (ISD::InputArg &Arg : CLI.Ins)
3780-         InVals.push_back(DAG.getUNDEF (Arg.VT));
3780+         InVals.push_back(DAG.getPOISON (Arg.VT));
37813781    }
37823782
37833783    return Chain;
@@ -6139,7 +6139,7 @@ static SDValue adjustLoadValueTypeImpl(SDValue Result, EVT LoadVT,
61396139
61406140    // Pad illegal v1i16/v3fi6 to v4i16
61416141    if ((LoadVT.getVectorNumElements() % 2) == 1)
6142-       Elts.push_back(DAG.getUNDEF (MVT::i16));
6142+       Elts.push_back(DAG.getPOISON (MVT::i16));
61436143
61446144    Result = DAG.getBuildVector(IntLoadVT, DL, Elts);
61456145
@@ -6231,7 +6231,7 @@ static SDValue lowerICMPIntrinsic(const SITargetLowering &TLI, SDNode *N,
62316231  EVT VT = N->getValueType(0);
62326232  unsigned CondCode = N->getConstantOperandVal(3);
62336233  if (!ICmpInst::isIntPredicate(static_cast<ICmpInst::Predicate>(CondCode)))
6234-     return DAG.getUNDEF (VT);
6234+     return DAG.getPOISON (VT);
62356235
62366236  ICmpInst::Predicate IcInput = static_cast<ICmpInst::Predicate>(CondCode);
62376237
@@ -6266,7 +6266,7 @@ static SDValue lowerFCMPIntrinsic(const SITargetLowering &TLI, SDNode *N,
62666266
62676267  unsigned CondCode = N->getConstantOperandVal(3);
62686268  if (!FCmpInst::isFPPredicate(static_cast<FCmpInst::Predicate>(CondCode)))
6269-     return DAG.getUNDEF (VT);
6269+     return DAG.getPOISON (VT);
62706270
62716271  SDValue Src0 = N->getOperand(1);
62726272  SDValue Src1 = N->getOperand(2);
@@ -7343,7 +7343,7 @@ SDValue SITargetLowering::getSegmentAperture(unsigned AS, const SDLoc &DL,
73437343  if (UserSGPR == AMDGPU::NoRegister) {
73447344    // We probably are in a function incorrectly marked with
73457345    // amdgpu-no-queue-ptr. This is undefined.
7346-     return DAG.getUNDEF (MVT::i32);
7346+     return DAG.getPOISON (MVT::i32);
73477347  }
73487348
73497349  SDValue QueuePtr =
@@ -7465,8 +7465,7 @@ SDValue SITargetLowering::lowerADDRSPACECAST(SDValue Op,
74657465  // global <-> flat are no-ops and never emitted.
74667466
74677467  // Invalid casts are poison.
7468-   // TODO: Should return poison
7469-   return DAG.getUNDEF(Op->getValueType(0));
7468+   return DAG.getPOISON(Op->getValueType(0));
74707469}
74717470
74727471// This lowers an INSERT_SUBVECTOR by extracting the individual elements from
@@ -7808,7 +7807,7 @@ SDValue SITargetLowering::lowerVECTOR_SHUFFLE(SDValue Op,
78087807        NewMaskIdx1 += NewSrcNumElts;
78097808        Result1 = SubVec1;
78107809      } else {
7811-         Result1 = DAG.getUNDEF (PackVT);
7810+         Result1 = DAG.getPOISON (PackVT);
78127811      }
78137812
78147813      SDValue Shuf = DAG.getVectorShuffle(PackVT, SL, Result0, Result1,
@@ -7841,7 +7840,7 @@ SDValue SITargetLowering::lowerSCALAR_TO_VECTOR(SDValue Op,
78417840  SDValue SVal = Op.getOperand(0);
78427841  EVT ResultVT = Op.getValueType();
78437842  EVT SValVT = SVal.getValueType();
7844-   SDValue UndefVal = DAG.getUNDEF (SValVT);
7843+   SDValue UndefVal = DAG.getPOISON (SValVT);
78457844  SDLoc SL(Op);
78467845
78477846  SmallVector<SDValue, 8> VElts;
@@ -8065,7 +8064,7 @@ static SDValue emitNonHSAIntrinsicError(SelectionDAG &DAG, const SDLoc &DL,
80658064                                      "non-hsa intrinsic with hsa target",
80668065                                      DL.getDebugLoc());
80678066  DAG.getContext()->diagnose(BadIntrin);
8068-   return DAG.getUNDEF (VT);
8067+   return DAG.getPOISON (VT);
80698068}
80708069
80718070static SDValue emitRemovedIntrinsicError(SelectionDAG &DAG, const SDLoc &DL,
@@ -8074,7 +8073,7 @@ static SDValue emitRemovedIntrinsicError(SelectionDAG &DAG, const SDLoc &DL,
80748073                                      "intrinsic not supported on subtarget",
80758074                                      DL.getDebugLoc());
80768075  DAG.getContext()->diagnose(BadIntrin);
8077-   return DAG.getUNDEF (VT);
8076+   return DAG.getPOISON (VT);
80788077}
80798078
80808079static SDValue getBuildDwordsVector(SelectionDAG &DAG, SDLoc DL,
@@ -8099,7 +8098,7 @@ static SDValue getBuildDwordsVector(SelectionDAG &DAG, SDLoc DL,
80998098    VecElts[i] = Elt;
81008099  }
81018100  for (unsigned i = Elts.size(); i < NumElts; ++i)
8102-     VecElts[i] = DAG.getUNDEF (MVT::f32);
8101+     VecElts[i] = DAG.getPOISON (MVT::f32);
81038102
81048103  if (NumElts == 1)
81058104    return VecElts[0];
@@ -8117,7 +8116,7 @@ static SDValue padEltsToUndef(SelectionDAG &DAG, const SDLoc &DL, EVT CastVT,
81178116  else
81188117    Elts.push_back(Src);
81198118
8120-   SDValue Undef = DAG.getUNDEF (SrcVT.getScalarType());
8119+   SDValue Undef = DAG.getPOISON (SrcVT.getScalarType());
81218120  while (ExtraElts--)
81228121    Elts.push_back(Undef);
81238122
@@ -8368,7 +8367,7 @@ SDValue SITargetLowering::lowerImage(SDValue Op,
83688367      // occupies full 32-bit.
83698368      SDValue Bias = DAG.getBuildVector(
83708369          MVT::v2f16, DL,
8371-           {Op.getOperand(ArgOffset + I), DAG.getUNDEF (MVT::f16)});
8370+           {Op.getOperand(ArgOffset + I), DAG.getPOISON (MVT::f16)});
83728371      VAddrs.push_back(Bias);
83738372    } else {
83748373      assert((!IsA16 || Intr->NumBiasArgs == 0 || I != Intr->BiasIndex) &&
@@ -8498,7 +8497,7 @@ SDValue SITargetLowering::lowerImage(SDValue Op,
84988497    // type
84998498    if (DMaskLanes == 0 && !BaseOpcode->Store) {
85008499      // This is a no-op load. This can be eliminated
8501-       SDValue Undef = DAG.getUNDEF (Op.getValueType());
8500+       SDValue Undef = DAG.getPOISON (Op.getValueType());
85028501      if (isa<MemSDNode>(Op))
85038502        return DAG.getMergeValues({Undef, Op.getOperand(0)}, DL);
85048503      return Undef;
@@ -8743,7 +8742,7 @@ SDValue SITargetLowering::lowerWorkitemID(SelectionDAG &DAG, SDValue Op,
87438742  // It's undefined behavior if a function marked with the amdgpu-no-*
87448743  // attributes uses the corresponding intrinsic.
87458744  if (!Arg)
8746-     return DAG.getUNDEF (Op->getValueType(0));
8745+     return DAG.getPOISON (Op->getValueType(0));
87478746
87488747  SDValue Val = loadInputValue(DAG, &AMDGPU::VGPR_32RegClass, MVT::i32,
87498748                               SDLoc(DAG.getEntryNode()), Arg);
@@ -8786,7 +8785,7 @@ SDValue SITargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op,
87868785          MF.getFunction(), "unsupported hsa intrinsic without hsa target",
87878786          DL.getDebugLoc());
87888787      DAG.getContext()->diagnose(BadIntrin);
8789-       return DAG.getUNDEF (VT);
8788+       return DAG.getPOISON (VT);
87908789    }
87918790
87928791    auto RegID = IntrinsicID == Intrinsic::amdgcn_dispatch_ptr
@@ -9661,7 +9660,7 @@ SDValue SITargetLowering::LowerINTRINSIC_W_CHAIN(SDValue Op,
96619660    if (!UseNSA) {
96629661      // Build a single vector containing all the operands so far prepared.
96639662      if (NumVAddrDwords > 12) {
9664-         SDValue Undef = DAG.getUNDEF (MVT::i32);
9663+         SDValue Undef = DAG.getPOISON (MVT::i32);
96659664        Ops.append(16 - Ops.size(), Undef);
96669665      }
96679666      assert(Ops.size() >= 8 && Ops.size() <= 12);
@@ -9847,13 +9846,13 @@ SDValue SITargetLowering::handleD16VData(SDValue VData, SelectionDAG &DAG,
98479846      // Handle v3i16
98489847      unsigned I = Elts.size() / 2;
98499848      SDValue Pair = DAG.getBuildVector(MVT::v2i16, DL,
9850-                                         {Elts[I * 2], DAG.getUNDEF (MVT::i16)});
9849+                                         {Elts[I * 2], DAG.getPOISON (MVT::i16)});
98519850      SDValue IntPair = DAG.getNode(ISD::BITCAST, DL, MVT::i32, Pair);
98529851      PackedElts.push_back(IntPair);
98539852    }
98549853
98559854    // Pad using UNDEF
9856-     PackedElts.resize(Elts.size(), DAG.getUNDEF (MVT::i32));
9855+     PackedElts.resize(Elts.size(), DAG.getPOISON (MVT::i32));
98579856
98589857    // Build final vector
98599858    EVT VecVT =
@@ -9900,7 +9899,7 @@ SDValue SITargetLowering::LowerINTRINSIC_VOID(SDValue Op,
99009899      return SDValue();
99019900
99029901    const ConstantSDNode *Done = cast<ConstantSDNode>(Op.getOperand(6));
9903-     SDValue Undef = DAG.getUNDEF (MVT::f32);
9902+     SDValue Undef = DAG.getPOISON (MVT::f32);
99049903    const SDValue Ops[] = {
99059904        Op.getOperand(2),                              // tgt
99069905        DAG.getNode(ISD::BITCAST, DL, MVT::f32, Src0), // src0
0 commit comments