@@ -8117,21 +8117,14 @@ void SIInstrInfo::moveToVALUImpl(SIInstrWorklist &Worklist,
8117
8117
// hope for the best.
8118
8118
if (Inst.isCopy () && DstReg.isPhysical () &&
8119
8119
RI.isVGPR (MRI, Inst.getOperand (1 ).getReg ())) {
8120
- // TODO: Only works for 32 bit registers.
8121
- if (MRI.constrainRegClass (DstReg, &AMDGPU::SReg_32_XM0RegClass)) {
8122
- BuildMI (*Inst.getParent (), &Inst, Inst.getDebugLoc (),
8123
- get (AMDGPU::V_READFIRSTLANE_B32), DstReg)
8124
- .add (Inst.getOperand (1 ));
8125
- } else {
8126
- Register NewDst =
8127
- MRI.createVirtualRegister (&AMDGPU::SReg_32_XM0RegClass);
8128
- BuildMI (*Inst.getParent (), &Inst, Inst.getDebugLoc (),
8129
- get (AMDGPU::V_READFIRSTLANE_B32), NewDst)
8130
- .add (Inst.getOperand (1 ));
8131
- BuildMI (*Inst.getParent (), &Inst, Inst.getDebugLoc (), get (AMDGPU::COPY),
8132
- DstReg)
8133
- .addReg (NewDst);
8134
- }
8120
+ Register NewDst = MRI.createVirtualRegister (&AMDGPU::SReg_32_XM0RegClass);
8121
+ BuildMI (*Inst.getParent (), &Inst, Inst.getDebugLoc (),
8122
+ get (AMDGPU::V_READFIRSTLANE_B32), NewDst)
8123
+ .add (Inst.getOperand (1 ));
8124
+ BuildMI (*Inst.getParent (), &Inst, Inst.getDebugLoc (), get (AMDGPU::COPY),
8125
+ DstReg)
8126
+ .addReg (NewDst);
8127
+
8135
8128
Inst.eraseFromParent ();
8136
8129
return ;
8137
8130
}
0 commit comments