@@ -10180,17 +10180,13 @@ SDValue SITargetLowering::LowerINTRINSIC_VOID(SDValue Op,
1018010180 return SDValue(DAG.getMachineNode(AMDGPU::SI_END_CF, DL, MVT::Other,
1018110181 Op->getOperand(2), Chain),
1018210182 0);
10183- case Intrinsic::amdgcn_s_barrier_init:
1018410183 case Intrinsic::amdgcn_s_barrier_signal_var: {
1018510184 // these two intrinsics have two operands: barrier pointer and member count
1018610185 SDValue Chain = Op->getOperand(0);
1018710186 SmallVector<SDValue, 2> Ops;
1018810187 SDValue BarOp = Op->getOperand(2);
1018910188 SDValue CntOp = Op->getOperand(3);
1019010189 SDValue M0Val;
10191- unsigned Opc = IntrinsicID == Intrinsic::amdgcn_s_barrier_init
10192- ? AMDGPU::S_BARRIER_INIT_M0
10193- : AMDGPU::S_BARRIER_SIGNAL_M0;
1019410190 // extract the BarrierID from bits 4-9 of BarOp
1019510191 SDValue BarID;
1019610192 BarID = DAG.getNode(ISD::SRL, DL, MVT::i32, BarOp,
@@ -10214,40 +10210,8 @@ SDValue SITargetLowering::LowerINTRINSIC_VOID(SDValue Op,
1021410210
1021510211 Ops.push_back(copyToM0(DAG, Chain, DL, M0Val).getValue(0));
1021610212
10217- auto *NewMI = DAG.getMachineNode(Opc, DL, Op->getVTList(), Ops);
10218- return SDValue(NewMI, 0);
10219- }
10220- case Intrinsic::amdgcn_s_barrier_join: {
10221- // these three intrinsics have one operand: barrier pointer
10222- SDValue Chain = Op->getOperand(0);
10223- SmallVector<SDValue, 2> Ops;
10224- SDValue BarOp = Op->getOperand(2);
10225- unsigned Opc;
10226-
10227- if (isa<ConstantSDNode>(BarOp)) {
10228- uint64_t BarVal = cast<ConstantSDNode>(BarOp)->getZExtValue();
10229- Opc = AMDGPU::S_BARRIER_JOIN_IMM;
10230-
10231- // extract the BarrierID from bits 4-9 of the immediate
10232- unsigned BarID = (BarVal >> 4) & 0x3F;
10233- SDValue K = DAG.getTargetConstant(BarID, DL, MVT::i32);
10234- Ops.push_back(K);
10235- Ops.push_back(Chain);
10236- } else {
10237- Opc = AMDGPU::S_BARRIER_JOIN_M0;
10238-
10239- // extract the BarrierID from bits 4-9 of BarOp, copy to M0[5:0]
10240- SDValue M0Val;
10241- M0Val = DAG.getNode(ISD::SRL, DL, MVT::i32, BarOp,
10242- DAG.getShiftAmountConstant(4, MVT::i32, DL));
10243- M0Val =
10244- SDValue(DAG.getMachineNode(AMDGPU::S_AND_B32, DL, MVT::i32, M0Val,
10245- DAG.getTargetConstant(0x3F, DL, MVT::i32)),
10246- 0);
10247- Ops.push_back(copyToM0(DAG, Chain, DL, M0Val).getValue(0));
10248- }
10249-
10250- auto *NewMI = DAG.getMachineNode(Opc, DL, Op->getVTList(), Ops);
10213+ auto *NewMI = DAG.getMachineNode(AMDGPU::S_BARRIER_SIGNAL_M0, DL,
10214+ Op->getVTList(), Ops);
1025110215 return SDValue(NewMI, 0);
1025210216 }
1025310217 case Intrinsic::amdgcn_s_prefetch_data: {
0 commit comments