[llvm] [SPIR-V] Fix some GEP legalization (PR #150943)
Steven Perron via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 29 07:18:43 PDT 2025
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.org/llvm/llvm-project/pull/150943 at github.com>
================
@@ -593,54 +604,64 @@ void SPIRVEmitIntrinsics::maybeAssignPtrType(Type *&Ty, Value *Op, Type *RefTy,
bool SPIRVEmitIntrinsics::walkLogicalAccessChain(
GetElementPtrInst &GEP,
- const std::function<void(Type *, uint64_t)> &OnStaticIndexing,
+ const std::function<void(Type *, uint64_t)> &OnLiteralIndexing,
const std::function<void(Type *, Value *)> &OnDynamicIndexing) {
+ // We only rewrite i8* GEP. Other should be left as-is.
+ // Observation so-far is i8* GEP always have a single index. Making sure
+ // that's the case.
----------------
s-perron wrote:
This is more than an observation. The semantics of the GEP force this to be true. The first index will index the pointer, then you end up with an i8, which cannot be indexed.
https://github.com/llvm/llvm-project/pull/150943
More information about the llvm-commits
mailing list