File tree Expand file tree Collapse file tree 1 file changed +8
-7
lines changed Expand file tree Collapse file tree 1 file changed +8
-7
lines changed Original file line number Diff line number Diff line change @@ -7239,15 +7239,16 @@ void SIInstrInfo::legalizeOperandsVALUt16(MachineInstr &MI,
7239
7239
unsigned OpIdx = Op.getOperandNo ();
7240
7240
if (!OpIdx)
7241
7241
continue ;
7242
- if (Op.isReg () && Op.getReg ().isVirtual () && RI.isVGPR (MRI, Op.getReg ())) {
7243
- unsigned RCID = get (Opcode).operands ()[OpIdx].RegClass ;
7244
- const TargetRegisterClass *ExpectedRC = RI.getRegClass (RCID);
7242
+ if (Op.isReg () && Op.getReg ().isVirtual ()) {
7245
7243
const TargetRegisterClass *RC = MRI.getRegClass (Op.getReg ());
7246
- if (32 == RI.getRegSizeInBits (*RC) &&
7247
- 16 == RI.getRegSizeInBits (*ExpectedRC)) {
7244
+ if (!RI.isVGPRClass (RC))
7245
+ continue ;
7246
+ unsigned RCID = get (Opcode).operands ()[OpIdx].RegClass ;
7247
+ unsigned expectedSize = RI.getRegSizeInBits (*RI.getRegClass (RCID));
7248
+ unsigned currSize = RI.getRegSizeInBits (*RC);
7249
+ if (expectedSize == 16 && currSize == 32 ) {
7248
7250
Op.setSubReg (AMDGPU::lo16);
7249
- } else if (16 == RI.getRegSizeInBits (*RC) &&
7250
- 32 == RI.getRegSizeInBits (*ExpectedRC)) {
7251
+ } else if (expectedSize == 32 && currSize == 16 ) {
7251
7252
const DebugLoc &DL = MI.getDebugLoc ();
7252
7253
Register NewDstReg =
7253
7254
MRI.createVirtualRegister (&AMDGPU::VGPR_32RegClass);
You can’t perform that action at this time.
0 commit comments