summaryrefslogtreecommitdiff
path: root/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
diff options
context:
space:
mode:
authorJay Foad <jay.foad@amd.com>2024-10-17 16:20:43 +0100
committerGitHub <noreply@github.com>2024-10-17 16:20:43 +0100
commit85c17e40926132575d1b98ca1a36b8394fe511cd (patch)
tree58d38f4833043d35f09edfcc412b278cfd5ad56a /llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
parent8c7f80f77505b7ff275d67a49f4f2dd07d604403 (diff)
[LLVM] Make more use of IRBuilder::CreateIntrinsic. NFC. (#112706)
Convert many instances of: Fn = Intrinsic::getOrInsertDeclaration(...); CreateCall(Fn, ...) to the equivalent CreateIntrinsic call.
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp b/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
index 7d3164c79089..c49aab823b44 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
@@ -576,10 +576,9 @@ bool AMDGPUCodeGenPrepareImpl::promoteUniformBitreverseToI32(
Builder.SetCurrentDebugLocation(I.getDebugLoc());
Type *I32Ty = getI32Ty(Builder, I.getType());
- Function *I32 =
- Intrinsic::getOrInsertDeclaration(Mod, Intrinsic::bitreverse, {I32Ty});
Value *ExtOp = Builder.CreateZExt(I.getOperand(0), I32Ty);
- Value *ExtRes = Builder.CreateCall(I32, { ExtOp });
+ Value *ExtRes =
+ Builder.CreateIntrinsic(Intrinsic::bitreverse, {I32Ty}, {ExtOp});
Value *LShrOp =
Builder.CreateLShr(ExtRes, 32 - getBaseElementBitWidth(I.getType()));
Value *TruncRes =
@@ -1260,9 +1259,8 @@ Value *AMDGPUCodeGenPrepareImpl::expandDivRem24Impl(
Value *FB = IsSigned ? Builder.CreateSIToFP(IB,F32Ty)
: Builder.CreateUIToFP(IB,F32Ty);
- Function *RcpDecl = Intrinsic::getOrInsertDeclaration(
- Mod, Intrinsic::amdgcn_rcp, Builder.getFloatTy());
- Value *RCP = Builder.CreateCall(RcpDecl, { FB });
+ Value *RCP = Builder.CreateIntrinsic(Intrinsic::amdgcn_rcp,
+ Builder.getFloatTy(), {FB});
Value *FQM = Builder.CreateFMul(FA, RCP);
// fq = trunc(fqm);
@@ -1455,9 +1453,7 @@ Value *AMDGPUCodeGenPrepareImpl::expandDivRem32(IRBuilder<> &Builder,
// Initial estimate of inv(y).
Value *FloatY = Builder.CreateUIToFP(Y, F32Ty);
- Function *Rcp =
- Intrinsic::getOrInsertDeclaration(Mod, Intrinsic::amdgcn_rcp, F32Ty);
- Value *RcpY = Builder.CreateCall(Rcp, {FloatY});
+ Value *RcpY = Builder.CreateIntrinsic(Intrinsic::amdgcn_rcp, F32Ty, {FloatY});
Constant *Scale = ConstantFP::get(F32Ty, llvm::bit_cast<float>(0x4F7FFFFE));
Value *ScaledY = Builder.CreateFMul(RcpY, Scale);
Value *Z = Builder.CreateFPToUI(ScaledY, I32Ty);