diff --git a/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp b/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp index 44872761760db..434336ef137ff 100644 --- a/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp +++ b/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp @@ -1116,8 +1116,8 @@ void SIFixSGPRCopies::fixSCCCopies(MachineFunction &MF) { Register SrcReg = MI.getOperand(1).getReg(); Register DstReg = MI.getOperand(0).getReg(); if (SrcReg == AMDGPU::SCC) { - Register SCCCopy = MRI->createVirtualRegister( - TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID)); + Register SCCCopy = + MRI->createVirtualRegister(TRI->getWaveMaskRegClass()); I = BuildMI(*MI.getParent(), std::next(MachineBasicBlock::iterator(MI)), MI.getDebugLoc(), TII->get(IsWave32 ? AMDGPU::S_CSELECT_B32 diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp index 736f714ac1a77..bbb1d0c5eba14 100644 --- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp @@ -4562,7 +4562,7 @@ loadM0FromVGPR(const SIInstrInfo *TII, MachineBasicBlock &MBB, MachineInstr &MI, const DebugLoc &DL = MI.getDebugLoc(); MachineBasicBlock::iterator I(&MI); - const auto *BoolXExecRC = TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID); + const auto *BoolXExecRC = TRI->getWaveMaskRegClass(); Register DstReg = MI.getOperand(0).getReg(); Register SaveExec = MRI.createVirtualRegister(BoolXExecRC); Register TmpExec = MRI.createVirtualRegister(BoolXExecRC); @@ -5064,7 +5064,7 @@ MachineBasicBlock *SITargetLowering::EmitInstrWithCustomInserter( return BB; } - const auto *CarryRC = TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID); + const auto *CarryRC = TRI->getWaveMaskRegClass(); Register DestSub0 = MRI.createVirtualRegister(&AMDGPU::VGPR_32RegClass); Register DestSub1 = MRI.createVirtualRegister(&AMDGPU::VGPR_32RegClass); @@ -5296,7 +5296,7 @@ MachineBasicBlock *SITargetLowering::EmitInstrWithCustomInserter( Register DstLo = MRI.createVirtualRegister(&AMDGPU::VGPR_32RegClass); Register DstHi = MRI.createVirtualRegister(&AMDGPU::VGPR_32RegClass); - const auto *CondRC = TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID); + const auto *CondRC = TRI->getWaveMaskRegClass(); Register SrcCondCopy = MRI.createVirtualRegister(CondRC); const TargetRegisterClass *Src0RC = Src0.isReg() diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp index c6f28af1e5e73..87b213767b4fc 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp @@ -1231,8 +1231,7 @@ void SIInstrInfo::insertVectorSelect(MachineBasicBlock &MBB, Register TrueReg, Register FalseReg) const { MachineRegisterInfo &MRI = MBB.getParent()->getRegInfo(); - const TargetRegisterClass *BoolXExecRC = - RI.getRegClass(AMDGPU::SReg_1_XEXECRegClassID); + const TargetRegisterClass *BoolXExecRC = RI.getWaveMaskRegClass(); assert(MRI.getRegClass(DstReg) == &AMDGPU::VGPR_32RegClass && "Not a VGPR32 reg"); @@ -6417,7 +6416,7 @@ static void emitLoadScalarOpsFromVGPRLoop( ST.isWave32() ? AMDGPU::S_XOR_B32_term : AMDGPU::S_XOR_B64_term; unsigned AndOpc = ST.isWave32() ? AMDGPU::S_AND_B32 : AMDGPU::S_AND_B64; - const auto *BoolXExecRC = TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID); + const auto *BoolXExecRC = TRI->getWaveMaskRegClass(); MachineBasicBlock::iterator I = LoopBB.begin(); @@ -6565,7 +6564,7 @@ loadMBUFScalarOperandsFromVGPR(const SIInstrInfo &TII, MachineInstr &MI, const DebugLoc &DL = MI.getDebugLoc(); unsigned Exec = ST.isWave32() ? AMDGPU::EXEC_LO : AMDGPU::EXEC; unsigned MovExecOpc = ST.isWave32() ? AMDGPU::S_MOV_B32 : AMDGPU::S_MOV_B64; - const auto *BoolXExecRC = TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID); + const auto *BoolXExecRC = TRI->getWaveMaskRegClass(); // Save SCC. Waterfall Loop may overwrite SCC. Register SaveSCCReg; @@ -6958,7 +6957,7 @@ SIInstrInfo::legalizeOperands(MachineInstr &MI, Register NewVAddrHi = MRI.createVirtualRegister(&AMDGPU::VGPR_32RegClass); Register NewVAddr = MRI.createVirtualRegister(&AMDGPU::VReg_64RegClass); - const auto *BoolXExecRC = RI.getRegClass(AMDGPU::SReg_1_XEXECRegClassID); + const auto *BoolXExecRC = RI.getWaveMaskRegClass(); Register CondReg0 = MRI.createVirtualRegister(BoolXExecRC); Register CondReg1 = MRI.createVirtualRegister(BoolXExecRC); @@ -7336,7 +7335,7 @@ void SIInstrInfo::moveToVALUImpl(SIInstrWorklist &Worklist, unsigned Opc = (Inst.getOpcode() == AMDGPU::S_ADD_CO_PSEUDO) ? AMDGPU::V_ADDC_U32_e64 : AMDGPU::V_SUBB_U32_e64; - const auto *CarryRC = RI.getRegClass(AMDGPU::SReg_1_XEXECRegClassID); + const auto *CarryRC = RI.getWaveMaskRegClass(); Register CarryInReg = Inst.getOperand(4).getReg(); if (!MRI.constrainRegClass(CarryInReg, CarryRC)) { @@ -7711,8 +7710,7 @@ void SIInstrInfo::lowerSelect(SIInstrWorklist &Worklist, MachineInstr &Inst, Register NewCondReg = CondReg; if (IsSCC) { - const TargetRegisterClass *TC = - RI.getRegClass(AMDGPU::SReg_1_XEXECRegClassID); + const TargetRegisterClass *TC = RI.getWaveMaskRegClass(); NewCondReg = MRI.createVirtualRegister(TC); // Now look for the closest SCC def if it is a copy diff --git a/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp b/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp index 1b52a48d068eb..23d04fae42015 100644 --- a/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp +++ b/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp @@ -2014,7 +2014,7 @@ Register SILoadStoreOptimizer::computeBase(MachineInstr &MI, MachineOperand OffsetHi = createRegOrImm(static_cast(Addr.Offset >> 32), MI); - const auto *CarryRC = TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID); + const auto *CarryRC = TRI->getWaveMaskRegClass(); Register CarryReg = MRI->createVirtualRegister(CarryRC); Register DeadCarryReg = MRI->createVirtualRegister(CarryRC); diff --git a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp index 4c571a36e4896..2d1cd1bda3afe 100644 --- a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp @@ -3428,8 +3428,7 @@ SIRegisterInfo::getRegClassForSizeOnBank(unsigned Size, std::max(ST.useRealTrue16Insts() ? 16u : 32u, Size)); case AMDGPU::VCCRegBankID: assert(Size == 1); - return isWave32 ? &AMDGPU::SReg_32_XM0_XEXECRegClass - : &AMDGPU::SReg_64_XEXECRegClass; + return getWaveMaskRegClass(); case AMDGPU::SGPRRegBankID: return getSGPRClassForBitWidth(std::max(32u, Size)); case AMDGPU::AGPRRegBankID: @@ -3472,8 +3471,7 @@ SIRegisterInfo::getRegClass(unsigned RCID) const { case AMDGPU::SReg_1RegClassID: return getBoolRC(); case AMDGPU::SReg_1_XEXECRegClassID: - return isWave32 ? &AMDGPU::SReg_32_XM0_XEXECRegClass - : &AMDGPU::SReg_64_XEXECRegClass; + return getWaveMaskRegClass(); case -1: return nullptr; default: