[llvm] [SPIRV] Legalize byte-buffer reinterpretation ptrcasts (#192523) (PR #212999)
Tim Corringham via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 25 03:08:43 PDT 2026
================
@@ -222,15 +222,207 @@ class SPIRVLegalizePointerCastImpl {
return std::make_pair(GEP, CurrentTy);
}
+ static IntrinsicInst *getResourceGetPointer(Value *Ptr) {
+ if (auto *II = dyn_cast<IntrinsicInst>(Ptr))
+ if (II->getIntrinsicID() == Intrinsic::spv_resource_getpointer)
+ return II;
+ return nullptr;
+ }
+
+ Value *gepByteOffset(IRBuilder<> &B, Value *BasePtr, unsigned ByteOffset) {
+ if (ByteOffset == 0)
+ return BasePtr;
+
+ IntrinsicInst *ResourcePtr = getResourceGetPointer(BasePtr);
+ assert(ResourcePtr &&
+ "byte layout pointer must come from spv.resource.getpointer");
----------------
tcorringham wrote:
I've changed it to a guard for a non-null ResourcePtr and a fall through to llvm_unreachable.
https://github.com/llvm/llvm-project/pull/212999
More information about the llvm-commits
mailing list