[llvm] [NVPTX] Cleanup and document nvvm.fabs intrinsics, adding f16 support (PR #135644)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 14 09:45:42 PDT 2025
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff HEAD~1 HEAD --extensions cpp -- llvm/lib/IR/AutoUpgrade.cpp llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/lib/IR/AutoUpgrade.cpp b/llvm/lib/IR/AutoUpgrade.cpp
index 79709ae1b..c9b946615 100644
--- a/llvm/lib/IR/AutoUpgrade.cpp
+++ b/llvm/lib/IR/AutoUpgrade.cpp
@@ -1285,7 +1285,8 @@ static bool upgradeIntrinsicFunction1(Function *F, Function *&NewFn,
bool Expand = false;
if (Name.consume_front("abs."))
// nvvm.abs.{i,ii}
- Expand = Name == "i" || Name == "ll" || Name == "bf16" || Name == "bf16x2";
+ Expand =
+ Name == "i" || Name == "ll" || Name == "bf16" || Name == "bf16x2";
else if (Name == "clz.ll" || Name == "popc.ll" || Name == "h2f" ||
Name == "swap.lo.hi.b64")
Expand = true;
@@ -2306,7 +2307,9 @@ static Value *upgradeNVVMIntrinsicCall(StringRef Name, CallBase *CI,
Arg, llvm::Constant::getNullValue(Arg->getType()), "abs.cond");
Rep = Builder.CreateSelect(Cmp, Arg, Neg, "abs");
} else if (Name == "abs.bf16" || Name == "abs.bf16x2") {
- Type *Ty = (Name == "abs.bf16") ? Builder.getBFloatTy() : FixedVectorType::get(Builder.getBFloatTy(), 2);
+ Type *Ty = (Name == "abs.bf16")
+ ? Builder.getBFloatTy()
+ : FixedVectorType::get(Builder.getBFloatTy(), 2);
Value *Arg = Builder.CreateBitCast(CI->getArgOperand(0), Ty);
Value *Abs = Builder.CreateUnaryIntrinsic(Intrinsic::nvvm_fabs, Arg);
Rep = Builder.CreateBitCast(Abs, CI->getType());
diff --git a/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp b/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
index 15695c287..5834214f1 100644
--- a/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
+++ b/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
@@ -414,8 +414,9 @@ static Instruction *convertNvvmIntrinsicToLlvm(InstCombiner &IC,
}
case SPC_Fabs: {
if (II->getType() == IC.Builder.getDoubleTy())
- return IC.Builder.CreateUnaryIntrinsic(Intrinsic::fabs, II->getArgOperand(0));
- return nullptr;
+ return IC.Builder.CreateUnaryIntrinsic(Intrinsic::fabs,
+ II->getArgOperand(0));
+ return nullptr;
}
}
llvm_unreachable("All SpecialCase enumerators should be handled in switch.");
``````````
</details>
https://github.com/llvm/llvm-project/pull/135644
More information about the llvm-commits
mailing list