Skip to content

Commit e5650fd

Browse files
committed
address comment
1 parent 89c59c9 commit e5650fd

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

llvm/lib/Target/AMDGPU/SIInstrInfo.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7239,15 +7239,16 @@ void SIInstrInfo::legalizeOperandsVALUt16(MachineInstr &MI,
72397239
unsigned OpIdx = Op.getOperandNo();
72407240
if (!OpIdx)
72417241
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()) {
72457243
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) {
72487250
Op.setSubReg(AMDGPU::lo16);
7249-
} else if (16 == RI.getRegSizeInBits(*RC) &&
7250-
32 == RI.getRegSizeInBits(*ExpectedRC)) {
7251+
} else if (expectedSize == 32 && currSize == 16) {
72517252
const DebugLoc &DL = MI.getDebugLoc();
72527253
Register NewDstReg =
72537254
MRI.createVirtualRegister(&AMDGPU::VGPR_32RegClass);

0 commit comments

Comments
 (0)