[llvm] [LLVM] Make more use of IRBuilder::CreateIntrinsic. NFC. (PR #112546)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 16 07:01:49 PDT 2024
================
@@ -2325,25 +2323,21 @@ static Value *upgradeNVVMIntrinsicCall(StringRef Name, CallBase *CI,
} else if (Name == "clz.ll") {
// llvm.nvvm.clz.ll returns an i32, but llvm.ctlz.i64 returns an i64.
Value *Arg = CI->getArgOperand(0);
- Value *Ctlz = Builder.CreateCall(
- Intrinsic::getOrInsertDeclaration(F->getParent(), Intrinsic::ctlz,
- {Arg->getType()}),
- {Arg, Builder.getFalse()}, "ctlz");
+ Value *Ctlz = Builder.CreateIntrinsic(Intrinsic::ctlz, {Arg->getType()},
+ {Arg, Builder.getFalse()},
+ /*FMFSource=*/nullptr, "ctlz");
Rep = Builder.CreateTrunc(Ctlz, Builder.getInt32Ty(), "ctlz.trunc");
} else if (Name == "popc.ll") {
// llvm.nvvm.popc.ll returns an i32, but llvm.ctpop.i64 returns an
// i64.
Value *Arg = CI->getArgOperand(0);
- Value *Popc = Builder.CreateCall(
- Intrinsic::getOrInsertDeclaration(F->getParent(), Intrinsic::ctpop,
- {Arg->getType()}),
- Arg, "ctpop");
+ Value *Popc = Builder.CreateIntrinsic(Intrinsic::ctpop, {Arg->getType()},
+ Arg, /*FMFSource=*/nullptr, "ctpop");
Rep = Builder.CreateTrunc(Popc, Builder.getInt32Ty(), "ctpop.trunc");
} else if (Name == "h2f") {
- Rep = Builder.CreateCall(Intrinsic::getOrInsertDeclaration(
- F->getParent(), Intrinsic::convert_from_fp16,
- {Builder.getFloatTy()}),
- CI->getArgOperand(0), "h2f");
+ Rep = Builder.CreateIntrinsic(Intrinsic::convert_from_fp16,
----------------
arsenm wrote:
We should stop using these intrinsics and just use fpext
https://github.com/llvm/llvm-project/pull/112546
More information about the llvm-commits
mailing list