@@ -862,7 +862,7 @@ bool IRTranslator::emitJumpTableHeader(SwitchCG::JumpTable &JT,
862862 // This value may be smaller or larger than the target's pointer type, and
863863 // therefore require extension or truncating.
864864 auto *PtrIRTy = PointerType::getUnqual (SValue.getContext ());
865- const LLT PtrScalarTy = LLT::scalar (DL->getTypeSizeInBits (PtrIRTy));
865+ const LLT PtrScalarTy = LLT::integer (DL->getTypeSizeInBits (PtrIRTy));
866866 Sub = MIB.buildZExtOrTrunc (PtrScalarTy, Sub);
867867
868868 JT.Reg = Sub.getReg (0 );
@@ -879,7 +879,8 @@ bool IRTranslator::emitJumpTableHeader(SwitchCG::JumpTable &JT,
879879 auto Cst = getOrCreateVReg (
880880 *ConstantInt::get (SValue.getType (), JTH.Last - JTH.First ));
881881 Cst = MIB.buildZExtOrTrunc (PtrScalarTy, Cst).getReg (0 );
882- auto Cmp = MIB.buildICmp (CmpInst::ICMP_UGT, LLT::scalar (1 ), Sub, Cst);
882+ LLT CmpTy = LLT::integer (1 );
883+ auto Cmp = MIB.buildICmp (CmpInst::ICMP_UGT, CmpTy, Sub, Cst);
883884
884885 auto BrCond = MIB.buildBrCond (Cmp.getReg (0 ), *JT.Default );
885886
@@ -910,7 +911,7 @@ void IRTranslator::emitSwitchCase(SwitchCG::CaseBlock &CB,
910911 return ;
911912 }
912913
913- const LLT i1Ty = LLT::scalar (1 );
914+ const LLT i1Ty = LLT::integer (1 );
914915 // Build the compare.
915916 if (!CB.CmpMHS ) {
916917 const auto *CI = dyn_cast<ConstantInt>(CB.CmpRHS );
@@ -1092,14 +1093,14 @@ void IRTranslator::emitBitTestHeader(SwitchCG::BitTestBlock &B,
10921093 LLT MaskTy = SwitchOpTy;
10931094 if (MaskTy.getSizeInBits () > PtrTy.getSizeInBits () ||
10941095 !llvm::has_single_bit<uint32_t >(MaskTy.getSizeInBits ()))
1095- MaskTy = LLT::scalar (PtrTy.getSizeInBits ());
1096+ MaskTy = LLT::integer (PtrTy.getSizeInBits ());
10961097 else {
10971098 // Ensure that the type will fit the mask value.
10981099 for (unsigned I = 0 , E = B.Cases .size (); I != E; ++I) {
10991100 if (!isUIntN (SwitchOpTy.getSizeInBits (), B.Cases [I].Mask )) {
11001101 // Switch table case range are encoded into series of masks.
11011102 // Just use pointer type, it's guaranteed to fit.
1102- MaskTy = LLT::scalar (PtrTy.getSizeInBits ());
1103+ MaskTy = LLT::integer (PtrTy.getSizeInBits ());
11031104 break ;
11041105 }
11051106 }
@@ -1122,8 +1123,9 @@ void IRTranslator::emitBitTestHeader(SwitchCG::BitTestBlock &B,
11221123 if (!B.FallthroughUnreachable ) {
11231124 // Conditional branch to the default block.
11241125 auto RangeCst = MIB.buildConstant (SwitchOpTy, B.Range );
1125- auto RangeCmp = MIB.buildICmp (CmpInst::Predicate::ICMP_UGT, LLT::scalar (1 ),
1126- RangeSub, RangeCst);
1126+ LLT CmpTy = LLT::integer (1 );
1127+ auto RangeCmp =
1128+ MIB.buildICmp (CmpInst::Predicate::ICMP_UGT, CmpTy, RangeSub, RangeCst);
11271129 MIB.buildBrCond (RangeCmp, *B.Default );
11281130 }
11291131
@@ -1141,6 +1143,7 @@ void IRTranslator::emitBitTestCase(SwitchCG::BitTestBlock &BB,
11411143 MIB.setMBB (*SwitchBB);
11421144
11431145 LLT SwitchTy = getLLTForMVT (BB.RegVT );
1146+ LLT I1 = LLT::integer (1 );
11441147 Register Cmp;
11451148 unsigned PopCount = llvm::popcount (B.Mask );
11461149 if (PopCount == 1 ) {
@@ -1149,14 +1152,12 @@ void IRTranslator::emitBitTestCase(SwitchCG::BitTestBlock &BB,
11491152 auto MaskTrailingZeros =
11501153 MIB.buildConstant (SwitchTy, llvm::countr_zero (B.Mask ));
11511154 Cmp =
1152- MIB.buildICmp (ICmpInst::ICMP_EQ, LLT::scalar (1 ), Reg, MaskTrailingZeros)
1153- .getReg (0 );
1155+ MIB.buildICmp (ICmpInst::ICMP_EQ, I1, Reg, MaskTrailingZeros).getReg (0 );
11541156 } else if (PopCount == BB.Range ) {
11551157 // There is only one zero bit in the range, test for it directly.
11561158 auto MaskTrailingOnes =
11571159 MIB.buildConstant (SwitchTy, llvm::countr_one (B.Mask ));
1158- Cmp = MIB.buildICmp (CmpInst::ICMP_NE, LLT::scalar (1 ), Reg, MaskTrailingOnes)
1159- .getReg (0 );
1160+ Cmp = MIB.buildICmp (CmpInst::ICMP_NE, I1, Reg, MaskTrailingOnes).getReg (0 );
11601161 } else {
11611162 // Make desired shift.
11621163 auto CstOne = MIB.buildConstant (SwitchTy, 1 );
@@ -1166,8 +1167,7 @@ void IRTranslator::emitBitTestCase(SwitchCG::BitTestBlock &BB,
11661167 auto CstMask = MIB.buildConstant (SwitchTy, B.Mask );
11671168 auto AndOp = MIB.buildAnd (SwitchTy, SwitchVal, CstMask);
11681169 auto CstZero = MIB.buildConstant (SwitchTy, 0 );
1169- Cmp = MIB.buildICmp (CmpInst::ICMP_NE, LLT::scalar (1 ), AndOp, CstZero)
1170- .getReg (0 );
1170+ Cmp = MIB.buildICmp (CmpInst::ICMP_NE, I1, AndOp, CstZero).getReg (0 );
11711171 }
11721172
11731173 // The branch probability from SwitchBB to B.TargetBB is B.ExtraProb.
@@ -1691,7 +1691,7 @@ bool IRTranslator::translateMemFunc(const CallInst &CI,
16911691 SrcRegs.push_back (SrcReg);
16921692 }
16931693
1694- LLT SizeTy = LLT::scalar (MinPtrSize);
1694+ LLT SizeTy = LLT::integer (MinPtrSize);
16951695
16961696 // The size operand should be the minimum of the pointer sizes.
16971697 Register &SizeOpReg = SrcRegs[SrcRegs.size () - 1 ];
@@ -2812,7 +2812,7 @@ bool IRTranslator::translateCall(const User &U, MachineIRBuilder &MIRBuilder) {
28122812 DL->getABITypeAlign (Info.memVT .getTypeForEVT (F->getContext ())));
28132813 LLT MemTy = Info.memVT .isSimple ()
28142814 ? getLLTForMVT (Info.memVT .getSimpleVT ())
2815- : LLT::scalar (Info.memVT .getStoreSizeInBits ());
2815+ : LLT::integer (Info.memVT .getStoreSizeInBits ());
28162816
28172817 // TODO: We currently just fallback to address space 0 if getTgtMemIntrinsic
28182818 // didn't yield anything useful.
@@ -3158,7 +3158,7 @@ bool IRTranslator::translateInsertElement(const User &U,
31583158 if (!Idx)
31593159 Idx = getOrCreateVReg (*U.getOperand (2 ));
31603160 if (MRI->getType (Idx).getSizeInBits () != PreferredVecIdxWidth) {
3161- const LLT VecIdxTy = LLT::scalar (PreferredVecIdxWidth);
3161+ const LLT VecIdxTy = LLT::integer (PreferredVecIdxWidth);
31623162 Idx = MIRBuilder.buildZExtOrTrunc (VecIdxTy, Idx).getReg (0 );
31633163 }
31643164 MIRBuilder.buildInsertVectorElement (Res, Val, Elt, Idx);
@@ -3201,7 +3201,7 @@ bool IRTranslator::translateInsertVector(const User &U,
32013201 if (isa<ScalableVectorType>(U.getOperand (0 )->getType ())) {
32023202 // We are inserting an illegal fixed vector into a scalable
32033203 // vector, use a scalar element insert.
3204- LLT VecIdxTy = LLT::scalar (PreferredVecIdxWidth);
3204+ LLT VecIdxTy = LLT::integer (PreferredVecIdxWidth);
32053205 Register Idx = getOrCreateVReg (*CI);
32063206 auto ScaledIndex = MIRBuilder.buildMul (
32073207 VecIdxTy, MIRBuilder.buildVScale (VecIdxTy, 1 ), Idx);
@@ -3239,7 +3239,7 @@ bool IRTranslator::translateExtractElement(const User &U,
32393239 if (!Idx)
32403240 Idx = getOrCreateVReg (*U.getOperand (1 ));
32413241 if (MRI->getType (Idx).getSizeInBits () != PreferredVecIdxWidth) {
3242- const LLT VecIdxTy = LLT::scalar (PreferredVecIdxWidth);
3242+ const LLT VecIdxTy = LLT::integer (PreferredVecIdxWidth);
32433243 Idx = MIRBuilder.buildZExtOrTrunc (VecIdxTy, Idx).getReg (0 );
32443244 }
32453245 MIRBuilder.buildExtractVectorElement (Res, Val, Idx);
@@ -3279,7 +3279,7 @@ bool IRTranslator::translateExtractVector(const User &U,
32793279 if (isa<ScalableVectorType>(U.getOperand (0 )->getType ())) {
32803280 // We are extracting an illegal fixed vector from a scalable
32813281 // vector, use a scalar element extract.
3282- LLT VecIdxTy = LLT::scalar (PreferredVecIdxWidth);
3282+ LLT VecIdxTy = LLT::integer (PreferredVecIdxWidth);
32833283 Register Idx = getOrCreateVReg (*CI);
32843284 auto ScaledIndex = MIRBuilder.buildMul (
32853285 VecIdxTy, MIRBuilder.buildVScale (VecIdxTy, 1 ), Idx);
@@ -3868,8 +3868,8 @@ bool IRTranslator::emitSPDescriptorParent(StackProtectorDescriptor &SPD,
38683868 // If useLoadStackGuardNode returns true, generate LOAD_STACK_GUARD.
38693869 // Otherwise, emit a volatile load to retrieve the stack guard value.
38703870 if (TLI->useLoadStackGuardNode (*ParentBB->getBasicBlock ()->getModule ())) {
3871- Guard =
3872- MRI->createGenericVirtualRegister (LLT::scalar (PtrTy. getSizeInBits ()) );
3871+ LLT RegTy = LLT::integer (PtrTy. getSizeInBits ());
3872+ Guard = MRI->createGenericVirtualRegister (RegTy );
38733873 getStackGuard (Guard, *CurBuilder);
38743874 } else {
38753875 // TODO: test using android subtarget when we support @llvm.thread.pointer.
@@ -3885,8 +3885,8 @@ bool IRTranslator::emitSPDescriptorParent(StackProtectorDescriptor &SPD,
38853885 }
38863886
38873887 // Perform the comparison.
3888- auto Cmp =
3889- CurBuilder->buildICmp (CmpInst::ICMP_NE, LLT::scalar ( 1 ) , Guard, GuardVal);
3888+ LLT I1 = LLT::integer ( 1 );
3889+ auto Cmp = CurBuilder->buildICmp (CmpInst::ICMP_NE, I1 , Guard, GuardVal);
38903890 // If the guard/stackslot do not equal, branch to failure MBB.
38913891 CurBuilder->buildBrCond (Cmp, *SPD.getFailureMBB ());
38923892 // Otherwise branch to success MBB.
0 commit comments