Skip to content

Commit fc6ad72

Browse files
committed
address comment
1 parent a2cab89 commit fc6ad72

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

llvm/lib/Target/AMDGPU/SIInstrInfo.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7246,15 +7246,14 @@ void SIInstrInfo::legalizeOperandsVALUt16(MachineInstr &MI,
72467246
if (!OpIdx)
72477247
continue;
72487248
if (Op.isReg() && Op.getReg().isVirtual()) {
7249-
const TargetRegisterClass *RC = MRI.getRegClass(Op.getReg());
7250-
if (!RI.isVGPRClass(RC))
7249+
const TargetRegisterClass *DefRC = MRI.getRegClass(Op.getReg());
7250+
if (!RI.isVGPRClass(DefRC))
72517251
continue;
72527252
unsigned RCID = get(Opcode).operands()[OpIdx].RegClass;
7253-
unsigned expectedSize = RI.getRegSizeInBits(*RI.getRegClass(RCID));
7254-
unsigned currSize = RI.getRegSizeInBits(*RC);
7255-
if (expectedSize == 16 && currSize == 32) {
7253+
const TargetRegisterClass *UseRC = RI.getRegClass(RCID);
7254+
if (RI.getMatchingSuperRegClass(DefRC, UseRC, AMDGPU::lo16)) {
72567255
Op.setSubReg(AMDGPU::lo16);
7257-
} else if (expectedSize == 32 && currSize == 16) {
7256+
} else if (RI.getMatchingSuperRegClass(UseRC, DefRC, AMDGPU::lo16)) {
72587257
const DebugLoc &DL = MI.getDebugLoc();
72597258
Register NewDstReg =
72607259
MRI.createVirtualRegister(&AMDGPU::VGPR_32RegClass);

0 commit comments

Comments
 (0)