File tree Expand file tree Collapse file tree 1 file changed +5
-6
lines changed Expand file tree Collapse file tree 1 file changed +5
-6
lines changed Original file line number Diff line number Diff 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);
You can’t perform that action at this time.
0 commit comments