Skip to content

[libspirv] Fix ptx bindless image builtins to be Itanium-compliant#21466

Open
wenju-he wants to merge 1 commit intointel:syclfrom
wenju-he:libspirv-ImageArrayFetch-ImageArrayRead-SampledImageArrayFetch-mangling
Open

[libspirv] Fix ptx bindless image builtins to be Itanium-compliant#21466
wenju-he wants to merge 1 commit intointel:syclfrom
wenju-he:libspirv-ImageArrayFetch-ImageArrayRead-SampledImageArrayFetch-mangling

Conversation

@wenju-he
Copy link
Contributor

@wenju-he wenju-he commented Mar 9, 2026

Fixed C preprocessor macros in image.cl to generate proper Itanium C++ ABI mangled names with substitution references (S0_) for repeated vector types in SPIR-V bindless image array functions.

Previously, libclc-remangler undocumentedly corrected Itanium C++ ABI violations. Now new symbol names match SYCL frontend output directly, eliminating the need for libclc-remangler correction.

Example for _spirv_ImageArrayWrite<ulong, vec2, vec2>: Before: Z23__spirv_ImageArrayWriteImDv2_iDv2_iEvT_T0_iT1
^^^^^ ^^^^^ - both spelled out
After: Z23__spirv_ImageArrayWriteImDv2_iS0_EvT_T0_iT1
^^^ - second uses S0

Fixed C preprocessor macros in image.cl to generate proper Itanium C++
ABI mangled names with substitution references (S0_) for repeated vector
types in SPIR-V bindless image array functions.

Previously, libclc-remangler undocumentedly corrected Itanium C++ ABI
violations. Now new symbol names match SYCL frontend output directly,
eliminating the need for libclc-remangler correction.

Example for __spirv_ImageArrayWrite<ulong, vec2<int>, vec2<int>>:
Before: _Z23__spirv_ImageArrayWriteImDv2_iDv2_iEvT_T0_iT1_
                                              ^^^^^ ^^^^^ - both spelled out
After:  _Z23__spirv_ImageArrayWriteImDv2_iS0_EvT_T0_iT1_
                                              ^^^ - second uses S0_

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant