Skip to content

Commit d1f19e7

Browse files
committed
- Address reviewer comments
1 parent 439661b commit d1f19e7

File tree

2 files changed

+19
-27
lines changed

2 files changed

+19
-27
lines changed

llvm/lib/Target/AMDGPU/SIInstrInfo.cpp

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2312,8 +2312,8 @@ bool SIInstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
23122312
// present an issue.
23132313
// Fallback to V_MOV base lowering in all but the common cases.
23142314
const bool VMov64 = VMovOpc != AMDGPU::V_MOV_B32_e32;
2315-
const MachineFunction *MF = MBB.getParent();
2316-
const MachineRegisterInfo &MRI = MF->getRegInfo();
2315+
MachineFunction *MF = MBB.getParent();
2316+
MachineRegisterInfo &MRI = MF->getRegInfo();
23172317
const unsigned Opcode = AMDGPU::V_CNDMASK_B32_e64;
23182318
const MCInstrDesc &Desc = get(Opcode);
23192319

@@ -2359,30 +2359,18 @@ bool SIInstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
23592359

23602360
if (UseVCndMask && VMov64) {
23612361
// Dual V_CNDMASK_B32
2362-
MachineOperand ActiveLo =
2363-
ActiveSrc.isReg()
2364-
? MachineOperand::CreateReg(
2365-
RI.getSubReg(ActiveSrc.getReg(), AMDGPU::sub0), false,
2366-
/*isImp=*/false, /*isKill=*/false)
2367-
: MachineOperand::CreateImm(ActiveImmLo.getSExtValue());
2368-
MachineOperand ActiveHi =
2369-
ActiveSrc.isReg()
2370-
? MachineOperand::CreateReg(
2371-
RI.getSubReg(ActiveSrc.getReg(), AMDGPU::sub1), false,
2372-
/*isImp=*/false, /*isKill=*/ActiveSrc.isKill())
2373-
: MachineOperand::CreateImm(ActiveImmHi.getSExtValue());
2374-
MachineOperand InactiveLo =
2375-
InactiveSrc.isReg()
2376-
? MachineOperand::CreateReg(
2377-
RI.getSubReg(InactiveSrc.getReg(), AMDGPU::sub0), false,
2378-
/*isImp=*/false, /*isKill=*/false)
2379-
: MachineOperand::CreateImm(InactiveImmLo.getSExtValue());
2380-
MachineOperand InactiveHi =
2381-
InactiveSrc.isReg()
2382-
? MachineOperand::CreateReg(
2383-
RI.getSubReg(InactiveSrc.getReg(), AMDGPU::sub1), false,
2384-
/*isImp=*/false, /*isKill=*/InactiveSrc.isKill())
2385-
: MachineOperand::CreateImm(InactiveImmHi.getSExtValue());
2362+
MachineOperand ActiveLo = buildExtractSubRegOrImm(
2363+
MI, MRI, ActiveSrc, nullptr, AMDGPU::sub0, nullptr);
2364+
MachineOperand ActiveHi = buildExtractSubRegOrImm(
2365+
MI, MRI, ActiveSrc, nullptr, AMDGPU::sub1, nullptr);
2366+
MachineOperand InactiveLo = buildExtractSubRegOrImm(
2367+
MI, MRI, InactiveSrc, nullptr, AMDGPU::sub0, nullptr);
2368+
MachineOperand InactiveHi = buildExtractSubRegOrImm(
2369+
MI, MRI, InactiveSrc, nullptr, AMDGPU::sub1, nullptr);
2370+
if (ActiveSrc.isReg())
2371+
ActiveHi.setIsKill(ActiveSrc.isKill());
2372+
if (InactiveSrc.isReg())
2373+
InactiveHi.setIsKill(InactiveSrc.isKill());
23862374
BuildMI(MBB, MI, DL, Desc, RI.getSubReg(DstReg, AMDGPU::sub0))
23872375
.addImm(0)
23882376
.add(InactiveLo)
@@ -5783,6 +5771,9 @@ unsigned SIInstrInfo::buildExtractSubReg(
57835771
MachineBasicBlock::iterator MI, MachineRegisterInfo &MRI,
57845772
const MachineOperand &SuperReg, const TargetRegisterClass *SuperRC,
57855773
unsigned SubIdx, const TargetRegisterClass *SubRC) const {
5774+
if (!SuperReg.getReg().isVirtual())
5775+
return RI.getSubReg(SuperReg.getReg(), SubIdx);
5776+
57865777
MachineBasicBlock *MBB = MI->getParent();
57875778
DebugLoc DL = MI->getDebugLoc();
57885779
Register SubReg = MRI.createVirtualRegister(SubRC);

llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1082,8 +1082,9 @@ void SIWholeQuadMode::lowerBlock(MachineBasicBlock &MBB) {
10821082
if (ActiveLanesReg) {
10831083
MI.addOperand(*MBB.getParent(),
10841084
MachineOperand::CreateReg(ActiveLanesReg, false, true));
1085-
} else
1085+
} else {
10861086
assert(State == StateExact || State == StateWQM);
1087+
}
10871088
break;
10881089
default:
10891090
break;

0 commit comments

Comments
 (0)