File tree Expand file tree Collapse file tree 1 file changed +11
-10
lines changed Expand file tree Collapse file tree 1 file changed +11
-10
lines changed Original file line number Diff line number Diff line change @@ -1334,20 +1334,21 @@ void SIPeepholeSDWA::legalizeScalarOperands(MachineInstr &MI,
13341334 const MCInstrDesc &Desc = TII->get (MI.getOpcode ());
13351335 unsigned ConstantBusCount = 0 ;
13361336 for (MachineOperand &Op : MI.explicit_uses ()) {
1337- if (!Op.isImm () && !(Op.isReg () && !TRI->isVGPR (*MRI, Op.getReg ())))
1338- continue ;
1339-
1340- unsigned I = Op.getOperandNo ();
1337+ if (Op.isReg ()) {
1338+ if (TRI->isVGPR (*MRI, Op.getReg ()))
1339+ continue ;
13411340
1342- int16_t RegClass = TII->getOpRegClassID (Desc.operands ()[I]);
1343- if (RegClass == -1 || !TRI->isVSSuperClass (TRI->getRegClass (RegClass)))
1341+ if (ST.hasSDWAScalar () && ConstantBusCount == 0 ) {
1342+ ++ConstantBusCount;
1343+ continue ;
1344+ }
1345+ } else if (!Op.isImm ())
13441346 continue ;
13451347
1346- if (ST. hasSDWAScalar () && ConstantBusCount == 0 && Op.isReg () &&
1347- TRI-> isSGPRReg (*MRI, Op. getReg ())) {
1348- ++ConstantBusCount;
1348+ unsigned I = Op.getOperandNo ();
1349+ const TargetRegisterClass *OpRC = TII-> getRegClass (Desc, I, TRI);
1350+ if (!OpRC || !TRI-> isVSSuperClass (OpRC))
13491351 continue ;
1350- }
13511352
13521353 Register VGPR = MRI->createVirtualRegister (&AMDGPU::VGPR_32RegClass);
13531354 auto Copy = BuildMI (*MI.getParent (), MI.getIterator (), MI.getDebugLoc (),
You can’t perform that action at this time.
0 commit comments