@@ -215,7 +215,7 @@ void RegBankLegalizeHelper::lower(MachineInstr &MI,
215215 LLT EltTy = DstTy.getElementType ();
216216 B128 = LLT::fixed_vector (128 / EltTy.getSizeInBits (), EltTy);
217217 } else {
218- B128 = LLT::scalar (128 );
218+ B128 = LLT::integer (128 );
219219 }
220220 if (Size / 128 == 2 )
221221 splitLoad (MI, {B128, B128});
@@ -258,42 +258,42 @@ void RegBankLegalizeHelper::lower(MachineInstr &MI,
258258 // TODO: executeInWaterfallLoop(... WaterfallSgprs)
259259}
260260
261- LLT RegBankLegalizeHelper::getTyFromID ( RegBankLLTMappingApplyID ID) {
261+ bool RegBankLegalizeHelper::isValidTyForID (LLT Ty, RegBankLLTMappingApplyID ID) {
262262 switch (ID) {
263263 case Vcc:
264264 case UniInVcc:
265- return LLT::scalar (1 );
265+ return Ty. isScalar (1 );
266266 case Sgpr16:
267- return LLT::scalar (16 );
267+ return Ty. isScalar (16 );
268268 case Sgpr32:
269269 case Sgpr32Trunc:
270270 case Sgpr32AExt:
271271 case Sgpr32AExtBoolInReg:
272272 case Sgpr32SExt:
273273 case UniInVgprS32:
274274 case Vgpr32:
275- return LLT::scalar (32 );
275+ return Ty. isScalar (32 );
276276 case Sgpr64:
277277 case Vgpr64:
278- return LLT::scalar (64 );
278+ return Ty. isScalar (64 );
279279 case SgprP1:
280280 case VgprP1:
281- return LLT::pointer (1 , 64 );
281+ return Ty == LLT::pointer (1 , 64 );
282282 case SgprP3:
283283 case VgprP3:
284- return LLT::pointer (3 , 32 );
284+ return Ty == LLT::pointer (3 , 32 );
285285 case SgprP4:
286286 case VgprP4:
287- return LLT::pointer (4 , 64 );
287+ return Ty == LLT::pointer (4 , 64 );
288288 case SgprP5:
289289 case VgprP5:
290- return LLT::pointer (5 , 32 );
290+ return Ty == LLT::pointer (5 , 32 );
291291 case SgprV4S32:
292292 case VgprV4S32:
293293 case UniInVgprV4S32:
294- return LLT::fixed_vector (4 , 32 );
294+ return Ty. isFixedVector (4 , 32 );
295295 default :
296- return LLT ();
296+ return Ty == LLT ();
297297 }
298298}
299299
@@ -302,45 +302,45 @@ LLT RegBankLegalizeHelper::getBTyFromID(RegBankLLTMappingApplyID ID, LLT Ty) {
302302 case SgprB32:
303303 case VgprB32:
304304 case UniInVgprB32:
305- if (Ty == LLT::scalar (32 ) || Ty == LLT::fixed_vector (2 , 16 ) ||
305+ if (Ty. isScalar (32 ) || Ty. isFixedVector (2 , 16 ) ||
306306 Ty == LLT::pointer (3 , 32 ) || Ty == LLT::pointer (5 , 32 ) ||
307307 Ty == LLT::pointer (6 , 32 ))
308308 return Ty;
309309 return LLT ();
310310 case SgprB64:
311311 case VgprB64:
312312 case UniInVgprB64:
313- if (Ty == LLT::scalar (64 ) || Ty == LLT::fixed_vector (2 , 32 ) ||
314- Ty == LLT::fixed_vector (4 , 16 ) || Ty == LLT::pointer (0 , 64 ) ||
313+ if (Ty. isScalar (64 ) || Ty. isFixedVector (2 , 32 ) ||
314+ Ty. isFixedVector (4 , 16 ) || Ty == LLT::pointer (0 , 64 ) ||
315315 Ty == LLT::pointer (1 , 64 ) || Ty == LLT::pointer (4 , 64 ))
316316 return Ty;
317317 return LLT ();
318318 case SgprB96:
319319 case VgprB96:
320320 case UniInVgprB96:
321- if (Ty == LLT::scalar (96 ) || Ty == LLT::fixed_vector (3 , 32 ) ||
322- Ty == LLT::fixed_vector (6 , 16 ))
321+ if (Ty. isScalar (96 ) || Ty. isFixedVector (3 , 32 ) ||
322+ Ty. isFixedVector (6 , 16 ))
323323 return Ty;
324324 return LLT ();
325325 case SgprB128:
326326 case VgprB128:
327327 case UniInVgprB128:
328- if (Ty == LLT::scalar (128 ) || Ty == LLT::fixed_vector (4 , 32 ) ||
329- Ty == LLT::fixed_vector (2 , 64 ))
328+ if (Ty. isScalar (128 ) || Ty. isFixedVector (4 , 32 ) ||
329+ Ty. isFixedVector (2 , 64 ))
330330 return Ty;
331331 return LLT ();
332332 case SgprB256:
333333 case VgprB256:
334334 case UniInVgprB256:
335- if (Ty == LLT::scalar (256 ) || Ty == LLT::fixed_vector (8 , 32 ) ||
336- Ty == LLT::fixed_vector (4 , 64 ) || Ty == LLT::fixed_vector (16 , 16 ))
335+ if (Ty. isScalar (256 ) || Ty. isFixedVector (8 , 32 ) ||
336+ Ty. isFixedVector (4 , 64 ) || Ty. isFixedVector (16 , 16 ))
337337 return Ty;
338338 return LLT ();
339339 case SgprB512:
340340 case VgprB512:
341341 case UniInVgprB512:
342- if (Ty == LLT::scalar (512 ) || Ty == LLT::fixed_vector (16 , 32 ) ||
343- Ty == LLT::fixed_vector (8 , 64 ))
342+ if (Ty. isScalar (512 ) || Ty. isFixedVector (16 , 32 ) ||
343+ Ty. isFixedVector (8 , 64 ))
344344 return Ty;
345345 return LLT ();
346346 default :
@@ -430,7 +430,7 @@ void RegBankLegalizeHelper::applyMappingDst(
430430 case VgprP4:
431431 case VgprP5:
432432 case VgprV4S32: {
433- assert (Ty == getTyFromID ( MethodIDs[OpIdx]));
433+ assert (isValidTyForID (Ty, MethodIDs[OpIdx]));
434434 assert (RB == getRegBankFromID (MethodIDs[OpIdx]));
435435 break ;
436436 }
@@ -464,7 +464,7 @@ void RegBankLegalizeHelper::applyMappingDst(
464464 }
465465 case UniInVgprS32:
466466 case UniInVgprV4S32: {
467- assert (Ty == getTyFromID ( MethodIDs[OpIdx]));
467+ assert (isValidTyForID (Ty, MethodIDs[OpIdx]));
468468 assert (RB == SgprRB);
469469 Register NewVgprDst = MRI.createVirtualRegister ({VgprRB, Ty});
470470 Op.setReg (NewVgprDst);
@@ -537,7 +537,7 @@ void RegBankLegalizeHelper::applyMappingSrc(
537537 case SgprP4:
538538 case SgprP5:
539539 case SgprV4S32: {
540- assert (Ty == getTyFromID ( MethodIDs[i]));
540+ assert (isValidTyForID (Ty, MethodIDs[i]));
541541 assert (RB == getRegBankFromID (MethodIDs[i]));
542542 break ;
543543 }
@@ -560,7 +560,7 @@ void RegBankLegalizeHelper::applyMappingSrc(
560560 case VgprP4:
561561 case VgprP5:
562562 case VgprV4S32: {
563- assert (Ty == getTyFromID ( MethodIDs[i]));
563+ assert (isValidTyForID (Ty, MethodIDs[i]));
564564 if (RB != VgprRB) {
565565 auto CopyToVgpr = B.buildCopy ({VgprRB, Ty}, Reg);
566566 Op.setReg (CopyToVgpr.getReg (0 ));
@@ -619,7 +619,7 @@ void RegBankLegalizeHelper::applyMappingPHI(MachineInstr &MI) {
619619 Register Dst = MI.getOperand (0 ).getReg ();
620620 LLT Ty = MRI.getType (Dst);
621621
622- if (Ty == LLT::scalar (1 ) && MUI.isUniform (Dst)) {
622+ if (Ty. isScalar (1 ) && MUI.isUniform (Dst)) {
623623 B.setInsertPt (*MI.getParent (), MI.getParent ()->getFirstNonPHI ());
624624
625625 Register NewDst = MRI.createVirtualRegister (SgprRB_S32);
@@ -644,7 +644,7 @@ void RegBankLegalizeHelper::applyMappingPHI(MachineInstr &MI) {
644644 // ALL divergent i1 phis should be already lowered and inst-selected into PHI
645645 // with sgpr reg class and S1 LLT.
646646 // Note: this includes divergent phis that don't require lowering.
647- if (Ty == LLT::scalar (1 ) && MUI.isDivergent (Dst)) {
647+ if (Ty. isScalar (1 ) && MUI.isDivergent (Dst)) {
648648 LLVM_DEBUG (dbgs () << " Divergent S1 G_PHI: " ; MI.dump (););
649649 llvm_unreachable (" Make sure to run AMDGPUGlobalISelDivergenceLowering "
650650 " before RegBankLegalize to lower lane mask(vcc) phis" );
@@ -653,7 +653,7 @@ void RegBankLegalizeHelper::applyMappingPHI(MachineInstr &MI) {
653653 // We accept all types that can fit in some register class.
654654 // Uniform G_PHIs have all sgpr registers.
655655 // Divergent G_PHIs have vgpr dst but inputs can be sgpr or vgpr.
656- if (Ty == LLT::scalar (32 ) || Ty == LLT::pointer (4 , 64 )) {
656+ if (Ty. isScalar (32 ) || Ty == LLT::pointer (4 , 64 )) {
657657 return ;
658658 }
659659
0 commit comments