@@ -1226,7 +1226,6 @@ Register AMDGPULegalizerInfo::getSegmentAperture(
12261226 Offset << AMDGPU::Hwreg::OFFSET_SHIFT_ |
12271227 WidthM1 << AMDGPU::Hwreg::WIDTH_M1_SHIFT_;
12281228
1229- Register ApertureReg = MRI.createGenericVirtualRegister (S32);
12301229 Register GetReg = MRI.createVirtualRegister (&AMDGPU::SReg_32RegClass);
12311230
12321231 B.buildInstr (AMDGPU::S_GETREG_B32)
@@ -1235,9 +1234,7 @@ Register AMDGPULegalizerInfo::getSegmentAperture(
12351234 MRI.setType (GetReg, S32);
12361235
12371236 auto ShiftAmt = B.buildConstant (S32, WidthM1 + 1 );
1238- B.buildShl (ApertureReg, GetReg, ShiftAmt);
1239-
1240- return ApertureReg;
1237+ return B.buildShl (S32, GetReg, ShiftAmt).getReg (0 );
12411238 }
12421239
12431240 Register QueuePtr = MRI.createGenericVirtualRegister (
@@ -1261,12 +1258,10 @@ Register AMDGPULegalizerInfo::getSegmentAperture(
12611258 4 ,
12621259 MinAlign (64 , StructOffset));
12631260
1264- Register LoadResult = MRI.createGenericVirtualRegister (S32);
12651261 Register LoadAddr;
12661262
12671263 B.materializePtrAdd (LoadAddr, QueuePtr, LLT::scalar (64 ), StructOffset);
1268- B.buildLoad (LoadResult, LoadAddr, *MMO);
1269- return LoadResult;
1264+ return B.buildLoad (S32, LoadAddr, *MMO).getReg (0 );
12701265}
12711266
12721267bool AMDGPULegalizerInfo::legalizeAddrSpaceCast (
@@ -1327,13 +1322,11 @@ bool AMDGPULegalizerInfo::legalizeAddrSpaceCast(
13271322 auto SegmentNull = B.buildConstant (DstTy, NullVal);
13281323 auto FlatNull = B.buildConstant (SrcTy, 0 );
13291324
1330- Register PtrLo32 = MRI.createGenericVirtualRegister (DstTy);
1331-
13321325 // Extract low 32-bits of the pointer.
1333- B.buildExtract (PtrLo32 , Src, 0 );
1326+ auto PtrLo32 = B.buildExtract (DstTy , Src, 0 );
13341327
1335- Register CmpRes = MRI. createGenericVirtualRegister ( LLT::scalar ( 1 ));
1336- B.buildICmp (CmpInst::ICMP_NE, CmpRes , Src, FlatNull.getReg (0 ));
1328+ auto CmpRes =
1329+ B.buildICmp (CmpInst::ICMP_NE, LLT::scalar ( 1 ) , Src, FlatNull.getReg (0 ));
13371330 B.buildSelect (Dst, CmpRes, PtrLo32, SegmentNull.getReg (0 ));
13381331
13391332 MI.eraseFromParent ();
@@ -1355,19 +1348,16 @@ bool AMDGPULegalizerInfo::legalizeAddrSpaceCast(
13551348 if (!ApertureReg.isValid ())
13561349 return false ;
13571350
1358- Register CmpRes = MRI.createGenericVirtualRegister (LLT::scalar (1 ));
1359- B.buildICmp (CmpInst::ICMP_NE, CmpRes, Src, SegmentNull.getReg (0 ));
1360-
1361- Register BuildPtr = MRI.createGenericVirtualRegister (DstTy);
1351+ auto CmpRes =
1352+ B.buildICmp (CmpInst::ICMP_NE, LLT::scalar (1 ), Src, SegmentNull.getReg (0 ));
13621353
13631354 // Coerce the type of the low half of the result so we can use merge_values.
1364- Register SrcAsInt = MRI.createGenericVirtualRegister (S32);
1365- B.buildPtrToInt (SrcAsInt, Src);
1355+ Register SrcAsInt = B.buildPtrToInt (S32, Src).getReg (0 );
13661356
13671357 // TODO: Should we allow mismatched types but matching sizes in merges to
13681358 // avoid the ptrtoint?
1369- B.buildMerge (BuildPtr , {SrcAsInt, ApertureReg});
1370- B.buildSelect (Dst, CmpRes, BuildPtr, FlatNull. getReg ( 0 ) );
1359+ auto BuildPtr = B.buildMerge (DstTy , {SrcAsInt, ApertureReg});
1360+ B.buildSelect (Dst, CmpRes, BuildPtr, FlatNull);
13711361
13721362 MI.eraseFromParent ();
13731363 return true ;
@@ -2281,8 +2271,6 @@ bool AMDGPULegalizerInfo::legalizeFDIV64(MachineInstr &MI,
22812271 // Workaround a hardware bug on SI where the condition output from div_scale
22822272 // is not usable.
22832273
2284- Scale = MRI.createGenericVirtualRegister (S1);
2285-
22862274 LLT S32 = LLT::scalar (32 );
22872275
22882276 auto NumUnmerge = B.buildUnmerge (S32, LHS);
@@ -2294,7 +2282,7 @@ bool AMDGPULegalizerInfo::legalizeFDIV64(MachineInstr &MI,
22942282 Scale1Unmerge.getReg (1 ));
22952283 auto CmpDen = B.buildICmp (ICmpInst::ICMP_EQ, S1, DenUnmerge.getReg (1 ),
22962284 Scale0Unmerge.getReg (1 ));
2297- B.buildXor (Scale , CmpNum, CmpDen);
2285+ Scale = B.buildXor (S1 , CmpNum, CmpDen). getReg ( 0 );
22982286 } else {
22992287 Scale = DivScale1.getReg (1 );
23002288 }
0 commit comments