@@ -5877,34 +5877,35 @@ SDValue SITargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op,
5877
5877
case Intrinsic::amdgcn_fdiv_fast:
5878
5878
return lowerFDIV_FAST(Op, DAG);
5879
5879
case Intrinsic::amdgcn_interp_mov: {
5880
- SDValue M0 = copyToM0 (DAG, DAG .getEntryNode (), DL, Op. getOperand ( 4 ));
5881
- SDValue Glue = M0. getValue ( 1 );
5880
+ SDValue ToM0 = DAG.getCopyToReg (DAG.getEntryNode(), DL, AMDGPU::M0,
5881
+ Op.getOperand(4), SDValue() );
5882
5882
return DAG.getNode(AMDGPUISD::INTERP_MOV, DL, MVT::f32, Op.getOperand(1),
5883
- Op.getOperand (2 ), Op.getOperand (3 ), Glue );
5883
+ Op.getOperand(2), Op.getOperand(3), ToM0.getValue(1) );
5884
5884
}
5885
5885
case Intrinsic::amdgcn_interp_p1: {
5886
- SDValue M0 = copyToM0 (DAG, DAG .getEntryNode (), DL, Op. getOperand ( 4 ));
5887
- SDValue Glue = M0. getValue ( 1 );
5886
+ SDValue ToM0 = DAG.getCopyToReg (DAG.getEntryNode(), DL, AMDGPU::M0,
5887
+ Op.getOperand(4), SDValue() );
5888
5888
return DAG.getNode(AMDGPUISD::INTERP_P1, DL, MVT::f32, Op.getOperand(1),
5889
- Op.getOperand (2 ), Op.getOperand (3 ), Glue );
5889
+ Op.getOperand(2), Op.getOperand(3), ToM0.getValue(1) );
5890
5890
}
5891
5891
case Intrinsic::amdgcn_interp_p2: {
5892
- SDValue M0 = copyToM0 (DAG, DAG .getEntryNode (), DL, Op. getOperand ( 5 ));
5893
- SDValue Glue = SDValue (M0. getNode ( ), 1 );
5892
+ SDValue ToM0 = DAG.getCopyToReg (DAG.getEntryNode(), DL, AMDGPU::M0,
5893
+ Op.getOperand(5 ), SDValue() );
5894
5894
return DAG.getNode(AMDGPUISD::INTERP_P2, DL, MVT::f32, Op.getOperand(1),
5895
5895
Op.getOperand(2), Op.getOperand(3), Op.getOperand(4),
5896
- Glue );
5896
+ ToM0.getValue(1) );
5897
5897
}
5898
5898
case Intrinsic::amdgcn_interp_p1_f16: {
5899
- SDValue M0 = copyToM0 (DAG, DAG.getEntryNode (), DL, Op.getOperand (5 ));
5900
- SDValue Glue = M0.getValue (1 );
5899
+ SDValue ToM0 = DAG.getCopyToReg(DAG.getEntryNode(), DL, AMDGPU::M0,
5900
+ Op.getOperand(5), SDValue());
5901
+
5901
5902
if (getSubtarget()->getLDSBankCount() == 16) {
5902
5903
// 16 bank LDS
5903
5904
SDValue S = DAG.getNode(AMDGPUISD::INTERP_MOV, DL, MVT::f32,
5904
5905
DAG.getConstant(2, DL, MVT::i32), // P0
5905
5906
Op.getOperand(2), // Attrchan
5906
5907
Op.getOperand(3), // Attr
5907
- Glue );
5908
+ ToM0.getValue(1) );
5908
5909
SDValue Ops[] = {
5909
5910
Op.getOperand(1), // Src0
5910
5911
Op.getOperand(2), // Attrchan
@@ -5927,14 +5928,14 @@ SDValue SITargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op,
5927
5928
Op.getOperand(4), // high
5928
5929
DAG.getTargetConstant(0, DL, MVT::i1), // $clamp
5929
5930
DAG.getTargetConstant(0, DL, MVT::i32), // $omod
5930
- Glue
5931
+ ToM0.getValue(1)
5931
5932
};
5932
5933
return DAG.getNode(AMDGPUISD::INTERP_P1LL_F16, DL, MVT::f32, Ops);
5933
5934
}
5934
5935
}
5935
5936
case Intrinsic::amdgcn_interp_p2_f16: {
5936
- SDValue M0 = copyToM0 (DAG, DAG .getEntryNode (), DL, Op. getOperand ( 6 ));
5937
- SDValue Glue = SDValue (M0. getNode ( ), 1 );
5937
+ SDValue ToM0 = DAG.getCopyToReg (DAG.getEntryNode(), DL, AMDGPU::M0,
5938
+ Op.getOperand(6 ), SDValue() );
5938
5939
SDValue Ops[] = {
5939
5940
Op.getOperand(2), // Src0
5940
5941
Op.getOperand(3), // Attrchan
@@ -5944,7 +5945,7 @@ SDValue SITargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op,
5944
5945
DAG.getTargetConstant(0, DL, MVT::i32), // $src2_modifiers
5945
5946
Op.getOperand(5), // high
5946
5947
DAG.getTargetConstant(0, DL, MVT::i1), // $clamp
5947
- Glue
5948
+ ToM0.getValue(1)
5948
5949
};
5949
5950
return DAG.getNode(AMDGPUISD::INTERP_P2_F16, DL, MVT::f16, Ops);
5950
5951
}
0 commit comments