[clang] [llvm] [HLSL][DXIL][SPIRV] Create llvm dot intrinsic and use for HLSL (PR #102872)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 12 15:27:00 PDT 2024
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 3c3df1bef84bd509bdd2b6033bc9bb3653826388 c08c0153cbde1f43bebdbb8b50b74e77cdfc40bb --extensions cpp -- clang/lib/CodeGen/CGBuiltin.cpp llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp b/llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp
index 9b7ea0950d..7578752780 100644
--- a/llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp
+++ b/llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp
@@ -100,15 +100,17 @@ static bool expandFloatDotIntrinsic(CallInst *Orig) {
default:
llvm_unreachable("dot product with vector outside 2-4 range");
}
- Value *Result = Builder.CreateIntrinsic(ATy->getScalarType(), DotIntrinsic,
- ArrayRef<Value *>{A, B}, nullptr, "dot");
+ Value *Result =
+ Builder.CreateIntrinsic(ATy->getScalarType(), DotIntrinsic,
+ ArrayRef<Value *>{A, B}, nullptr, "dot");
Orig->replaceAllUsesWith(Result);
Orig->eraseFromParent();
return true;
}
// Expand integer dot product to multiply and add ops
-static bool expandIntegerDotIntrinsic(CallInst *Orig, Intrinsic::ID DotIntrinsic) {
+static bool expandIntegerDotIntrinsic(CallInst *Orig,
+ Intrinsic::ID DotIntrinsic) {
assert(DotIntrinsic == Intrinsic::sdot || DotIntrinsic == Intrinsic::udot);
Value *A = Orig->getOperand(0);
Value *B = Orig->getOperand(1);
@@ -124,9 +126,8 @@ static bool expandIntegerDotIntrinsic(CallInst *Orig, Intrinsic::ID DotIntrinsic
assert(ATy->getScalarType()->isIntegerTy());
Value *Result;
- Intrinsic::ID MadIntrinsic = DotIntrinsic == Intrinsic::sdot
- ? Intrinsic::dx_imad
- : Intrinsic::dx_umad;
+ Intrinsic::ID MadIntrinsic =
+ DotIntrinsic == Intrinsic::sdot ? Intrinsic::dx_imad : Intrinsic::dx_umad;
Value *Elt0 = Builder.CreateExtractElement(A, (uint64_t)0);
Value *Elt1 = Builder.CreateExtractElement(B, (uint64_t)0);
Result = Builder.CreateMul(Elt0, Elt1);
@@ -134,8 +135,8 @@ static bool expandIntegerDotIntrinsic(CallInst *Orig, Intrinsic::ID DotIntrinsic
Elt0 = Builder.CreateExtractElement(A, i);
Elt1 = Builder.CreateExtractElement(B, i);
Result = Builder.CreateIntrinsic(Result->getType(), MadIntrinsic,
- ArrayRef<Value *>{Elt0, Elt1, Result},
- nullptr, "dx.mad");
+ ArrayRef<Value *>{Elt0, Elt1, Result},
+ nullptr, "dx.mad");
}
Orig->replaceAllUsesWith(Result);
``````````
</details>
https://github.com/llvm/llvm-project/pull/102872
More information about the cfe-commits
mailing list