@@ -105,7 +105,7 @@ bool AMDGPUInstructionSelector::constrainCopyLikeIntrin(MachineInstr &MI,
105105 MachineOperand &Src = MI.getOperand (1 );
106106
107107 // TODO: This should be legalized to s32 if needed
108- if (MRI->getType (Dst.getReg ()) == LLT::scalar (1 ))
108+ if (MRI->getType (Dst.getReg ()). isScalar (1 ))
109109 return false ;
110110
111111 const TargetRegisterClass *DstRC
@@ -293,7 +293,7 @@ bool AMDGPUInstructionSelector::selectPHI(MachineInstr &I) const {
293293 // - divergent S1 G_PHI should go through lane mask merging algorithm
294294 // and be fully inst-selected in AMDGPUGlobalISelDivergenceLowering
295295 // - uniform S1 G_PHI should be lowered into S32 G_PHI in AMDGPURegBankSelect
296- if (DefTy == LLT::scalar (1 ))
296+ if (DefTy. isScalar (1 ))
297297 return false ;
298298
299299 // TODO: Verify this doesn't have insane operands (i.e. VGPR to SGPR copy)
@@ -733,9 +733,9 @@ bool AMDGPUInstructionSelector::selectG_BUILD_VECTOR(MachineInstr &MI) const {
733733 // Selection logic below is for V2S16 only.
734734 // For G_BUILD_VECTOR_TRUNC, additionally check that the operands are s32.
735735 Register Dst = MI.getOperand (0 ).getReg ();
736- if (MRI->getType (Dst) != LLT::fixed_vector (2 , 16 ) ||
736+ if (! MRI->getType (Dst). isFixedVector (2 , 16 ) ||
737737 (MI.getOpcode () == AMDGPU::G_BUILD_VECTOR_TRUNC &&
738- SrcTy != LLT::scalar (32 )))
738+ !SrcTy. isScalar (32 )))
739739 return selectImpl (MI, *CoverageInfo);
740740
741741 const RegisterBank *DstBank = RBI.getRegBank (Dst, *MRI, TRI);
@@ -1073,9 +1073,9 @@ bool AMDGPUInstructionSelector::selectDivScale(MachineInstr &MI) const {
10731073
10741074 LLT Ty = MRI->getType (Dst0);
10751075 unsigned Opc;
1076- if (Ty == LLT::scalar (32 ))
1076+ if (Ty. isScalar (32 ))
10771077 Opc = AMDGPU::V_DIV_SCALE_F32_e64;
1078- else if (Ty == LLT::scalar (64 ))
1078+ else if (Ty. isScalar (64 ))
10791079 Opc = AMDGPU::V_DIV_SCALE_F64_e64;
10801080 else
10811081 return false ;
@@ -2387,11 +2387,10 @@ bool AMDGPUInstructionSelector::selectG_TRUNC(MachineInstr &I) const {
23872387 Register SrcReg = I.getOperand (1 ).getReg ();
23882388 const LLT DstTy = MRI->getType (DstReg);
23892389 const LLT SrcTy = MRI->getType (SrcReg);
2390- const LLT S1 = LLT::scalar (1 );
23912390
23922391 const RegisterBank *SrcRB = RBI.getRegBank (SrcReg, *MRI, TRI);
23932392 const RegisterBank *DstRB;
2394- if (DstTy == S1 ) {
2393+ if (DstTy. isScalar ( 1 ) ) {
23952394 // This is a special case. We don't treat s1 for legalization artifacts as
23962395 // vcc booleans.
23972396 DstRB = SrcRB;
@@ -2429,7 +2428,7 @@ bool AMDGPUInstructionSelector::selectG_TRUNC(MachineInstr &I) const {
24292428 return true ;
24302429 }
24312430
2432- if (DstTy == LLT::fixed_vector (2 , 16 ) && SrcTy == LLT::fixed_vector (2 , 32 )) {
2431+ if (DstTy. isFixedVector (2 , 16 ) && SrcTy. isFixedVector (2 , 32 )) {
24332432 MachineBasicBlock *MBB = I.getParent ();
24342433 const DebugLoc &DL = I.getDebugLoc ();
24352434
@@ -2721,8 +2720,7 @@ static bool isExtractHiElt(MachineRegisterInfo &MRI, Register In,
27212720 if (Shuffle->getOpcode () != AMDGPU::G_SHUFFLE_VECTOR)
27222721 return false ;
27232722
2724- assert (MRI.getType (Shuffle->getOperand (0 ).getReg ()) ==
2725- LLT::fixed_vector (2 , 16 ));
2723+ assert (MRI.getType (Shuffle->getOperand (0 ).getReg ()).isFixedVector (2 , 16 ));
27262724
27272725 ArrayRef<int > Mask = Shuffle->getOperand (3 ).getShuffleMask ();
27282726 assert (Mask.size () == 2 );
@@ -2746,8 +2744,8 @@ bool AMDGPUInstructionSelector::selectG_FPEXT(MachineInstr &I) const {
27462744
27472745 Register Src = I.getOperand (1 ).getReg ();
27482746
2749- if (MRI->getType (Dst) == LLT::scalar (32 ) &&
2750- MRI->getType (Src) == LLT::scalar (16 )) {
2747+ if (MRI->getType (Dst). isScalar (32 ) &&
2748+ MRI->getType (Src). isScalar (16 )) {
27512749 if (isExtractHiElt (*MRI, Src, Src)) {
27522750 MachineBasicBlock *BB = I.getParent ();
27532751 BuildMI (*BB, &I, I.getDebugLoc (), TII.get (AMDGPU::S_CVT_HI_F32_F16), Dst)
@@ -2775,7 +2773,7 @@ bool AMDGPUInstructionSelector::selectG_FNEG(MachineInstr &MI) const {
27752773 Register Dst = MI.getOperand (0 ).getReg ();
27762774 const RegisterBank *DstRB = RBI.getRegBank (Dst, *MRI, TRI);
27772775 if (DstRB->getID () != AMDGPU::SGPRRegBankID ||
2778- MRI->getType (Dst) != LLT::scalar (64 ))
2776+ ! MRI->getType (Dst). isScalar (64 ))
27792777 return false ;
27802778
27812779 Register Src = MI.getOperand (1 ).getReg ();
@@ -2821,7 +2819,7 @@ bool AMDGPUInstructionSelector::selectG_FABS(MachineInstr &MI) const {
28212819 Register Dst = MI.getOperand (0 ).getReg ();
28222820 const RegisterBank *DstRB = RBI.getRegBank (Dst, *MRI, TRI);
28232821 if (DstRB->getID () != AMDGPU::SGPRRegBankID ||
2824- MRI->getType (Dst) != LLT::scalar (64 ))
2822+ ! MRI->getType (Dst). isScalar (64 ))
28252823 return false ;
28262824
28272825 Register Src = MI.getOperand (1 ).getReg ();
@@ -2993,7 +2991,7 @@ bool AMDGPUInstructionSelector::selectG_BRCOND(MachineInstr &I) const {
29932991 // RegBankSelect knows what it's doing if the branch condition is scc, even
29942992 // though it currently does not.
29952993 if (!isVCC (CondReg, *MRI)) {
2996- if (MRI->getType (CondReg) != LLT::scalar (32 ))
2994+ if (! MRI->getType (CondReg). isScalar (32 ))
29972995 return false ;
29982996
29992997 CondPhysReg = AMDGPU::SCC;
@@ -3456,15 +3454,15 @@ bool AMDGPUInstructionSelector::selectBufferLoadLds(MachineInstr &MI) const {
34563454static Register matchZeroExtendFromS32 (MachineRegisterInfo &MRI, Register Reg) {
34573455 Register ZExtSrc;
34583456 if (mi_match (Reg, MRI, m_GZExt (m_Reg (ZExtSrc))))
3459- return MRI.getType (ZExtSrc) == LLT::scalar (32 ) ? ZExtSrc : Register ();
3457+ return MRI.getType (ZExtSrc). isScalar (32 ) ? ZExtSrc : Register ();
34603458
34613459 // Match legalized form %zext = G_MERGE_VALUES (s32 %x), (s32 0)
34623460 const MachineInstr *Def = getDefIgnoringCopies (Reg, MRI);
34633461 if (Def->getOpcode () != AMDGPU::G_MERGE_VALUES)
34643462 return Register ();
34653463
34663464 assert (Def->getNumOperands () == 3 &&
3467- MRI.getType (Def->getOperand (0 ).getReg ()) == LLT::scalar (64 ));
3465+ MRI.getType (Def->getOperand (0 ).getReg ()). isScalar (64 ));
34683466 if (mi_match (Def->getOperand (2 ).getReg (), MRI, m_ZeroInt ())) {
34693467 return Def->getOperand (1 ).getReg ();
34703468 }
@@ -4054,7 +4052,7 @@ bool AMDGPUInstructionSelector::select(MachineInstr &I) {
40544052 // This is a workaround. For extension from type i1, `selectImpl()` uses
40554053 // patterns from TD file and generates an illegal VGPR to SGPR COPY as type
40564054 // i1 can only be hold in a SGPR class.
4057- if (MRI->getType (I.getOperand (1 ).getReg ()) != LLT::scalar (1 ) &&
4055+ if (! MRI->getType (I.getOperand (1 ).getReg ()). isScalar (1 ) &&
40584056 selectImpl (I, *CoverageInfo))
40594057 return true ;
40604058 return selectG_SZA_EXT (I);
@@ -4287,7 +4285,7 @@ AMDGPUInstructionSelector::selectVOP3PModsImpl(
42874285 if (MI->getOpcode () == AMDGPU::G_FNEG &&
42884286 // It's possible to see an f32 fneg here, but unlikely.
42894287 // TODO: Treat f32 fneg as only high bit.
4290- MRI.getType (Src) == LLT::fixed_vector (2 , 16 )) {
4288+ MRI.getType (Src). isFixedVector (2 , 16 )) {
42914289 Mods ^= (SISrcMods::NEG | SISrcMods::NEG_HI);
42924290 Src = MI->getOperand (1 ).getReg ();
42934291 MI = MRI.getVRegDef (Src);
@@ -5785,7 +5783,7 @@ AMDGPUInstructionSelector::selectSMRDBufferSgprImm(MachineOperand &Root) const {
57855783 if (!EncodedOffset)
57865784 return std::nullopt ;
57875785
5788- assert (MRI->getType (SOffset) == LLT::scalar (32 ));
5786+ assert (MRI->getType (SOffset). isScalar (32 ));
57895787 return {{[=](MachineInstrBuilder &MIB) { MIB.addReg (SOffset); },
57905788 [=](MachineInstrBuilder &MIB) { MIB.addImm (*EncodedOffset); }}};
57915789}
@@ -5800,7 +5798,7 @@ AMDGPUInstructionSelector::selectVOP3PMadMixModsImpl(MachineOperand &Root,
58005798 std::tie (Src, Mods) = selectVOP3ModsImpl (Root.getReg ());
58015799
58025800 if (mi_match (Src, *MRI, m_GFPExt (m_Reg (Src)))) {
5803- assert (MRI->getType (Src) == LLT::scalar (16 ));
5801+ assert (MRI->getType (Src). isScalar (16 ));
58045802
58055803 // Only change Src if src modifier could be gained. In such cases new Src
58065804 // could be sgpr but this does not violate constant bus restriction for
0 commit comments