[llvm] 8fa4807 - [ExpandIRInsts] Simplify constant construction (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 29 06:15:39 PST 2026
Author: Nikita Popov
Date: 2026-01-29T15:15:29+01:00
New Revision: 8fa48070ec4055191239ed48c29e039c2358d48a
URL: https://github.com/llvm/llvm-project/commit/8fa48070ec4055191239ed48c29e039c2358d48a
DIFF: https://github.com/llvm/llvm-project/commit/8fa48070ec4055191239ed48c29e039c2358d48a.diff
LOG: [ExpandIRInsts] Simplify constant construction (NFC)
Don't go through IRBuilder for constants we can create with
APInt APIs.
Added:
Modified:
llvm/lib/CodeGen/ExpandIRInsts.cpp
Removed:
################################################################################
diff --git a/llvm/lib/CodeGen/ExpandIRInsts.cpp b/llvm/lib/CodeGen/ExpandIRInsts.cpp
index 311e04d726527..b1379d01feaea 100644
--- a/llvm/lib/CodeGen/ExpandIRInsts.cpp
+++ b/llvm/lib/CodeGen/ExpandIRInsts.cpp
@@ -528,14 +528,10 @@ static void expandFPToI(Instruction *FPToI) {
PowerOf2Ceil(FloatVal->getType()->getScalarSizeInBits());
unsigned ExponentWidth = FloatWidth - FPMantissaWidth - 1;
unsigned ExponentBias = (1 << (ExponentWidth - 1)) - 1;
- Value *ImplicitBit = Builder.CreateShl(
- Builder.getIntN(BitWidth, 1), Builder.getIntN(BitWidth, FPMantissaWidth));
+ Value *ImplicitBit =
+ ConstantInt::get(IntTy, APInt::getOneBitSet(BitWidth, FPMantissaWidth));
Value *SignificandMask =
- Builder.CreateSub(ImplicitBit, Builder.getIntN(BitWidth, 1));
- Value *NegOne = ConstantInt::getAllOnesValue(IntTy);
- Value *NegInf =
- Builder.CreateShl(ConstantInt::getSigned(IntTy, 1),
- ConstantInt::getSigned(IntTy, BitWidth - 1));
+ ConstantInt::get(IntTy, APInt::getLowBitsSet(BitWidth, FPMantissaWidth));
BasicBlock *Entry = Builder.GetInsertBlock();
Function *F = Entry->getParent();
@@ -591,7 +587,8 @@ static void expandFPToI(Instruction *FPToI) {
// if.then5:
Builder.SetInsertPoint(IfThen5);
- Value *PosInf = Builder.CreateXor(NegOne, NegInf);
+ Value *PosInf = ConstantInt::get(IntTy, APInt::getSignedMaxValue(BitWidth));
+ Value *NegInf = ConstantInt::get(IntTy, APInt::getSignedMinValue(BitWidth));
Value *Cond8 = Builder.CreateSelect(PosOrNeg, PosInf, NegInf);
Builder.CreateBr(End);
More information about the llvm-commits
mailing list