[llvm] [SPIRV] Add OpAccessChain instruction support (PR #66253)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 26 06:12:39 PDT 2023
Nathan =?utf-8?q?Gauër?= <brioche at google.com>,
Nathan =?utf-8?q?Gauër?= <brioche at google.com>
Message-ID:
In-Reply-To: <llvm/llvm-project/pull/66253/llvm at github.com>
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 69d9ad1cee93ffa4e111863db14f97ce6c440292 d39b7362648d8ffb094ef250755d762331c38c54 -- llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp b/llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
index 4e4938641511..02183c0e44c9 100644
--- a/llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
@@ -1300,12 +1300,14 @@ bool SPIRVInstructionSelector::selectGEP(Register ResVReg,
MachineInstr &I) const {
const bool isGEPInBounds = I.getOperand(2).getImm();
- // OpAccessChain could be used for OpenCL, but the SPIRV-LLVM Translator only relies
- // on PtrAccessChain, so we'll try not to deviate. For Vulkan however, we have to use
- // Op[InBounds]AccessChain.
+ // OpAccessChain could be used for OpenCL, but the SPIRV-LLVM Translator only
+ // relies on PtrAccessChain, so we'll try not to deviate. For Vulkan however,
+ // we have to use Op[InBounds]AccessChain.
const unsigned Opcode = STI.isVulkanEnv()
- ? (isGEPInBounds ? SPIRV::OpInBoundsAccessChain : SPIRV::OpAccessChain)
- : (isGEPInBounds ? SPIRV::OpInBoundsPtrAccessChain : SPIRV::OpPtrAccessChain);
+ ? (isGEPInBounds ? SPIRV::OpInBoundsAccessChain
+ : SPIRV::OpAccessChain)
+ : (isGEPInBounds ? SPIRV::OpInBoundsPtrAccessChain
+ : SPIRV::OpPtrAccessChain);
auto Res = BuildMI(*I.getParent(), I, I.getDebugLoc(), TII.get(Opcode))
.addDef(ResVReg)
@@ -1313,7 +1315,10 @@ bool SPIRVInstructionSelector::selectGEP(Register ResVReg,
// Object to get a pointer to.
.addUse(I.getOperand(3).getReg());
// Adding indices.
- const unsigned StartingIndex = (Opcode == SPIRV::OpAccessChain || Opcode == SPIRV::OpInBoundsAccessChain) ? 5 : 4;
+ const unsigned StartingIndex =
+ (Opcode == SPIRV::OpAccessChain || Opcode == SPIRV::OpInBoundsAccessChain)
+ ? 5
+ : 4;
for (unsigned i = StartingIndex; i < I.getNumExplicitOperands(); ++i)
Res.addUse(I.getOperand(i).getReg());
return Res.constrainAllUses(TII, TRI, RBI);
``````````
</details>
https://github.com/llvm/llvm-project/pull/66253
More information about the llvm-commits
mailing list