Skip to content

[SYCL] Restore missing 'signed char' SPIR-V builtins #18807

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 5 commits into from

Conversation

frasercrmck
Copy link
Contributor

A previous change 23584c1 inadvertently removed SPIR-V builtins for signed char types. Fixing this uncovered several missing builtins for regular 'char' types, too.

This commit re-introduces SPIR-V builtins for all three char types where appropriate. It also fixes the codegen for several cases, as seen in the clang tests where 'char' types were previously being unnecessarily promoted to int.

A previous change 23584c1 inadvertently removed SPIR-V builtins for
signed char types. Fixing this uncovered several missing builtins for
regular 'char' types, too.

This commit re-introduces SPIR-V builtins for all three char types where
appropriate. It also fixes the codegen for several cases, as seen in the
clang tests where 'char' types were previously being unnecessarily
promoted to int.
@frasercrmck frasercrmck requested a review from a team as a code owner June 4, 2025 15:10
@frasercrmck frasercrmck requested a review from steffenlarsen June 4, 2025 15:10
@hvdijk
Copy link
Contributor

hvdijk commented Jun 4, 2025

I tested NativeCPU with this PR (on commit 19b4465 to be precise) and it still fails to build SYCL-CTS. A complete list of the missing functions reported

ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar_rte(_Float16)
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar_rte(double)
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar_rte(float)
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar16_rte(double vector[16])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar16_rte(float vector[16])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar2_rte(_Float16 vector[2])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar2_rte(double vector[2])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar2_rte(float vector[2])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar3_rte(double vector[3])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar3_rte(float vector[3])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar4_rte(double vector[4])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar4_rte(float vector[4])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar8_rte(double vector[8])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar8_rte(float vector[8])
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char AS1*, signed char const AS3*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char AS3*, signed char const AS1*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[16] AS1*, signed char vector[16] const AS3*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[16] AS3*, signed char vector[16] const AS1*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[2] AS1*, signed char vector[2] const AS3*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[2] AS3*, signed char vector[2] const AS1*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[3] AS1*, signed char vector[3] const AS3*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[3] AS3*, signed char vector[3] const AS1*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[4] AS1*, signed char vector[4] const AS3*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[4] AS3*, signed char vector[4] const AS1*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[8] AS1*, signed char vector[8] const AS3*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[8] AS3*, signed char vector[8] const AS1*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_SConvert_Rschar(int)
ld.lld: error: undefined symbol: __spirv_SConvert_Rschar16(int vector[16])
ld.lld: error: undefined symbol: __spirv_SConvert_Rschar2(int vector[2])
ld.lld: error: undefined symbol: __spirv_SConvert_Rschar3(int vector[3])
ld.lld: error: undefined symbol: __spirv_SConvert_Rschar4(int vector[4])
ld.lld: error: undefined symbol: __spirv_SConvert_Rschar8(int vector[8])

@frasercrmck
Copy link
Contributor Author

I tested NativeCPU with this PR (on commit 19b4465 to be precise) and it still fails to build SYCL-CTS. A complete list of the missing functions reported

ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar_rte(_Float16)
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar_rte(double)
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar_rte(float)
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar16_rte(double vector[16])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar16_rte(float vector[16])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar2_rte(_Float16 vector[2])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar2_rte(double vector[2])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar2_rte(float vector[2])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar3_rte(double vector[3])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar3_rte(float vector[3])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar4_rte(double vector[4])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar4_rte(float vector[4])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar8_rte(double vector[8])
ld.lld: error: undefined symbol: __spirv_ConvertFToS_Rschar8_rte(float vector[8])
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char AS1*, signed char const AS3*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char AS3*, signed char const AS1*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[16] AS1*, signed char vector[16] const AS3*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[16] AS3*, signed char vector[16] const AS1*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[2] AS1*, signed char vector[2] const AS3*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[2] AS3*, signed char vector[2] const AS1*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[3] AS1*, signed char vector[3] const AS3*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[3] AS3*, signed char vector[3] const AS1*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[4] AS1*, signed char vector[4] const AS3*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[4] AS3*, signed char vector[4] const AS1*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[8] AS1*, signed char vector[8] const AS3*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_GroupAsyncCopy(int, signed char vector[8] AS3*, signed char vector[8] const AS1*, unsigned long, unsigned long, ocl_event)
ld.lld: error: undefined symbol: __spirv_SConvert_Rschar(int)
ld.lld: error: undefined symbol: __spirv_SConvert_Rschar16(int vector[16])
ld.lld: error: undefined symbol: __spirv_SConvert_Rschar2(int vector[2])
ld.lld: error: undefined symbol: __spirv_SConvert_Rschar3(int vector[3])
ld.lld: error: undefined symbol: __spirv_SConvert_Rschar4(int vector[4])
ld.lld: error: undefined symbol: __spirv_SConvert_Rschar8(int vector[8])

Sorry about that. I believe I've fixed subsequently fixed the missing conversions.

As for __spirv_GroupAsyncCopy I believe I see it in my local remangled copies of remangled-l64-unsigned_char.libspirv-native_cpu.bc and remangled-l64-signed_char.libspirv-native_cpu.bc so perhaps that's fixed too? I'd need to try and reproduce what you're building to be sure.

@hvdijk
Copy link
Contributor

hvdijk commented Jun 4, 2025

I do see the commits that you added after your first one, but I did not think they would affect GroupAsyncCopy. I will re-test to make sure.

@frasercrmck
Copy link
Contributor Author

I do see the commits that you added after your first one, but I did not think they would affect GroupAsyncCopy. I will re-test to make sure.

Ah yep I'm also seeing Unresolved extern function '_Z22__spirv_GroupAsyncCopyiPU3AS1aPU3AS3Kamm9ocl_event'.

I wonder if it's the long/long long part of the function that's the problem, as opposed to the signed char part of it.

@hvdijk
Copy link
Contributor

hvdijk commented Jun 4, 2025

That does seem to be the problem, yes: I see locally that the functions that are defined are

__spirv_GroupAsyncCopy(int, signed char AS1*, signed char const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char AS3*, signed char const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(16) AS1*, signed char __vector(16) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(16) AS3*, signed char __vector(16) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(2) AS1*, signed char __vector(2) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(2) AS3*, signed char __vector(2) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(3) AS1*, signed char __vector(3) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(3) AS3*, signed char __vector(3) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(4) AS1*, signed char __vector(4) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(4) AS3*, signed char __vector(4) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(8) AS1*, signed char __vector(8) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(8) AS3*, signed char __vector(8) const AS1*, unsigned long long, unsigned long long, ocl_event)

They all have unsigned long long, and the undefined symbols are for unsigned long.

@hvdijk
Copy link
Contributor

hvdijk commented Jun 4, 2025

They are defined using Size which is the equivalent of size_t, and should be unsigned long for us (we may need to change that, but that's what it should be at the moment), yet I'm seeing unsigned long long even without your PR. That problem may possibly been a separate issue that merely happened to come up at the same time, I will check that and let you know.

@hvdijk
Copy link
Contributor

hvdijk commented Jun 4, 2025

Ah, I was checking the wrong commit, whoops. Checking on 73ff319 (just before 23584c1), I see that we were previously getting GroupAsyncCopy with unsigned long. For having something to compare against (apologies for the wall of text), this is the complete list of overloads of GroupAsyncCopy that we were previously getting:

__spirv_GroupAsyncCopy(int, char AS1*, char const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, char AS3*, char const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, char __vector(2) AS1*, char __vector(2) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, char __vector(2) AS3*, char __vector(2) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, char __vector(3) AS1*, char __vector(3) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, char __vector(3) AS3*, char __vector(3) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, char __vector(4) AS1*, char __vector(4) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, char __vector(4) AS3*, char __vector(4) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, char __vector(8) AS1*, char __vector(8) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, char __vector(8) AS3*, char __vector(8) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, char __vector(16) AS1*, char __vector(16) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, char __vector(16) AS3*, char __vector(16) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, double AS1*, double const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, double AS1*, double const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, double AS3*, double const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, double AS3*, double const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(2) AS1*, double __vector(2) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(2) AS1*, double __vector(2) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(2) AS3*, double __vector(2) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(2) AS3*, double __vector(2) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(3) AS1*, double __vector(3) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(3) AS1*, double __vector(3) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(3) AS3*, double __vector(3) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(3) AS3*, double __vector(3) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(4) AS1*, double __vector(4) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(4) AS1*, double __vector(4) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(4) AS3*, double __vector(4) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(4) AS3*, double __vector(4) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(8) AS1*, double __vector(8) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(8) AS1*, double __vector(8) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(8) AS3*, double __vector(8) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(8) AS3*, double __vector(8) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(16) AS1*, double __vector(16) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(16) AS1*, double __vector(16) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(16) AS3*, double __vector(16) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, double __vector(16) AS3*, double __vector(16) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, float AS1*, float const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, float AS1*, float const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, float AS3*, float const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, float AS3*, float const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(2) AS1*, float __vector(2) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(2) AS1*, float __vector(2) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(2) AS3*, float __vector(2) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(2) AS3*, float __vector(2) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(3) AS1*, float __vector(3) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(3) AS1*, float __vector(3) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(3) AS3*, float __vector(3) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(3) AS3*, float __vector(3) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(4) AS1*, float __vector(4) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(4) AS1*, float __vector(4) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(4) AS3*, float __vector(4) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(4) AS3*, float __vector(4) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(8) AS1*, float __vector(8) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(8) AS1*, float __vector(8) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(8) AS3*, float __vector(8) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(8) AS3*, float __vector(8) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(16) AS1*, float __vector(16) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(16) AS1*, float __vector(16) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(16) AS3*, float __vector(16) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, float __vector(16) AS3*, float __vector(16) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, int AS1*, int const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, int AS1*, int const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, int AS3*, int const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, int AS3*, int const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(2) AS1*, int __vector(2) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(2) AS1*, int __vector(2) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(2) AS3*, int __vector(2) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(2) AS3*, int __vector(2) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(3) AS1*, int __vector(3) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(3) AS1*, int __vector(3) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(3) AS3*, int __vector(3) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(3) AS3*, int __vector(3) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(4) AS1*, int __vector(4) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(4) AS1*, int __vector(4) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(4) AS3*, int __vector(4) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(4) AS3*, int __vector(4) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(8) AS1*, int __vector(8) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(8) AS1*, int __vector(8) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(8) AS3*, int __vector(8) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(8) AS3*, int __vector(8) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(16) AS1*, int __vector(16) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(16) AS1*, int __vector(16) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(16) AS3*, int __vector(16) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, int __vector(16) AS3*, int __vector(16) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, long AS1*, long const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, long AS3*, long const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, long long AS1*, long long const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, long long AS3*, long long const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, long long __vector(2) AS1*, long long __vector(2) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, long long __vector(2) AS3*, long long __vector(2) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, long long __vector(3) AS1*, long long __vector(3) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, long long __vector(3) AS3*, long long __vector(3) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, long long __vector(4) AS1*, long long __vector(4) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, long long __vector(4) AS3*, long long __vector(4) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, long long __vector(8) AS1*, long long __vector(8) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, long long __vector(8) AS3*, long long __vector(8) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, long long __vector(16) AS1*, long long __vector(16) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, long long __vector(16) AS3*, long long __vector(16) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, long __vector(2) AS1*, long __vector(2) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, long __vector(2) AS3*, long __vector(2) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, long __vector(3) AS1*, long __vector(3) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, long __vector(3) AS3*, long __vector(3) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, long __vector(4) AS1*, long __vector(4) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, long __vector(4) AS3*, long __vector(4) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, long __vector(8) AS1*, long __vector(8) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, long __vector(8) AS3*, long __vector(8) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, long __vector(16) AS1*, long __vector(16) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, long __vector(16) AS3*, long __vector(16) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, short AS1*, short const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, short AS1*, short const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, short AS3*, short const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, short AS3*, short const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(2) AS1*, short __vector(2) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(2) AS1*, short __vector(2) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(2) AS3*, short __vector(2) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(2) AS3*, short __vector(2) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(3) AS1*, short __vector(3) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(3) AS1*, short __vector(3) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(3) AS3*, short __vector(3) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(3) AS3*, short __vector(3) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(4) AS1*, short __vector(4) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(4) AS1*, short __vector(4) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(4) AS3*, short __vector(4) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(4) AS3*, short __vector(4) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(8) AS1*, short __vector(8) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(8) AS1*, short __vector(8) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(8) AS3*, short __vector(8) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(8) AS3*, short __vector(8) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(16) AS1*, short __vector(16) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(16) AS1*, short __vector(16) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(16) AS3*, short __vector(16) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, short __vector(16) AS3*, short __vector(16) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char AS1*, signed char const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char AS1*, signed char const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char AS3*, signed char const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char AS3*, signed char const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(2) AS1*, signed char __vector(2) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(2) AS1*, signed char __vector(2) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(2) AS3*, signed char __vector(2) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(2) AS3*, signed char __vector(2) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(3) AS1*, signed char __vector(3) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(3) AS1*, signed char __vector(3) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(3) AS3*, signed char __vector(3) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(3) AS3*, signed char __vector(3) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(4) AS1*, signed char __vector(4) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(4) AS1*, signed char __vector(4) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(4) AS3*, signed char __vector(4) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(4) AS3*, signed char __vector(4) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(8) AS1*, signed char __vector(8) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(8) AS1*, signed char __vector(8) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(8) AS3*, signed char __vector(8) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(8) AS3*, signed char __vector(8) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(16) AS1*, signed char __vector(16) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(16) AS1*, signed char __vector(16) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(16) AS3*, signed char __vector(16) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, signed char __vector(16) AS3*, signed char __vector(16) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char AS1*, unsigned char const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char AS1*, unsigned char const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char AS3*, unsigned char const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char AS3*, unsigned char const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(2) AS1*, unsigned char __vector(2) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(2) AS1*, unsigned char __vector(2) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(2) AS3*, unsigned char __vector(2) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(2) AS3*, unsigned char __vector(2) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(3) AS1*, unsigned char __vector(3) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(3) AS1*, unsigned char __vector(3) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(3) AS3*, unsigned char __vector(3) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(3) AS3*, unsigned char __vector(3) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(4) AS1*, unsigned char __vector(4) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(4) AS1*, unsigned char __vector(4) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(4) AS3*, unsigned char __vector(4) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(4) AS3*, unsigned char __vector(4) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(8) AS1*, unsigned char __vector(8) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(8) AS1*, unsigned char __vector(8) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(8) AS3*, unsigned char __vector(8) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(8) AS3*, unsigned char __vector(8) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(16) AS1*, unsigned char __vector(16) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(16) AS1*, unsigned char __vector(16) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(16) AS3*, unsigned char __vector(16) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned char __vector(16) AS3*, unsigned char __vector(16) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int AS1*, unsigned int const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int AS1*, unsigned int const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int AS3*, unsigned int const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int AS3*, unsigned int const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(2) AS1*, unsigned int __vector(2) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(2) AS1*, unsigned int __vector(2) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(2) AS3*, unsigned int __vector(2) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(2) AS3*, unsigned int __vector(2) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(3) AS1*, unsigned int __vector(3) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(3) AS1*, unsigned int __vector(3) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(3) AS3*, unsigned int __vector(3) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(3) AS3*, unsigned int __vector(3) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(4) AS1*, unsigned int __vector(4) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(4) AS1*, unsigned int __vector(4) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(4) AS3*, unsigned int __vector(4) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(4) AS3*, unsigned int __vector(4) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(8) AS1*, unsigned int __vector(8) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(8) AS1*, unsigned int __vector(8) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(8) AS3*, unsigned int __vector(8) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(8) AS3*, unsigned int __vector(8) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(16) AS1*, unsigned int __vector(16) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(16) AS1*, unsigned int __vector(16) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(16) AS3*, unsigned int __vector(16) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned int __vector(16) AS3*, unsigned int __vector(16) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long AS1*, unsigned long const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long AS3*, unsigned long const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long long AS1*, unsigned long long const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long long AS3*, unsigned long long const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long long __vector(2) AS1*, unsigned long long __vector(2) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long long __vector(2) AS3*, unsigned long long __vector(2) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long long __vector(3) AS1*, unsigned long long __vector(3) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long long __vector(3) AS3*, unsigned long long __vector(3) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long long __vector(4) AS1*, unsigned long long __vector(4) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long long __vector(4) AS3*, unsigned long long __vector(4) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long long __vector(8) AS1*, unsigned long long __vector(8) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long long __vector(8) AS3*, unsigned long long __vector(8) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long long __vector(16) AS1*, unsigned long long __vector(16) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long long __vector(16) AS3*, unsigned long long __vector(16) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long __vector(2) AS1*, unsigned long __vector(2) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long __vector(2) AS3*, unsigned long __vector(2) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long __vector(3) AS1*, unsigned long __vector(3) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long __vector(3) AS3*, unsigned long __vector(3) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long __vector(4) AS1*, unsigned long __vector(4) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long __vector(4) AS3*, unsigned long __vector(4) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long __vector(8) AS1*, unsigned long __vector(8) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long __vector(8) AS3*, unsigned long __vector(8) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long __vector(16) AS1*, unsigned long __vector(16) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned long __vector(16) AS3*, unsigned long __vector(16) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short AS1*, unsigned short const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short AS1*, unsigned short const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short AS3*, unsigned short const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short AS3*, unsigned short const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(2) AS1*, unsigned short __vector(2) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(2) AS1*, unsigned short __vector(2) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(2) AS3*, unsigned short __vector(2) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(2) AS3*, unsigned short __vector(2) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(3) AS1*, unsigned short __vector(3) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(3) AS1*, unsigned short __vector(3) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(3) AS3*, unsigned short __vector(3) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(3) AS3*, unsigned short __vector(3) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(4) AS1*, unsigned short __vector(4) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(4) AS1*, unsigned short __vector(4) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(4) AS3*, unsigned short __vector(4) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(4) AS3*, unsigned short __vector(4) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(8) AS1*, unsigned short __vector(8) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(8) AS1*, unsigned short __vector(8) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(8) AS3*, unsigned short __vector(8) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(8) AS3*, unsigned short __vector(8) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(16) AS1*, unsigned short __vector(16) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(16) AS1*, unsigned short __vector(16) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(16) AS3*, unsigned short __vector(16) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, unsigned short __vector(16) AS3*, unsigned short __vector(16) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 AS1*, _Float16 const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 AS1*, _Float16 const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 AS3*, _Float16 const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 AS3*, _Float16 const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(2) AS1*, _Float16 __vector(2) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(2) AS1*, _Float16 __vector(2) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(2) AS3*, _Float16 __vector(2) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(2) AS3*, _Float16 __vector(2) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(3) AS1*, _Float16 __vector(3) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(3) AS1*, _Float16 __vector(3) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(3) AS3*, _Float16 __vector(3) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(3) AS3*, _Float16 __vector(3) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(4) AS1*, _Float16 __vector(4) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(4) AS1*, _Float16 __vector(4) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(4) AS3*, _Float16 __vector(4) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(4) AS3*, _Float16 __vector(4) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(8) AS1*, _Float16 __vector(8) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(8) AS1*, _Float16 __vector(8) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(8) AS3*, _Float16 __vector(8) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(8) AS3*, _Float16 __vector(8) const AS1*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(16) AS1*, _Float16 __vector(16) const AS3*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(16) AS1*, _Float16 __vector(16) const AS3*, unsigned long, unsigned long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(16) AS3*, _Float16 __vector(16) const AS1*, unsigned long long, unsigned long long, ocl_event)
__spirv_GroupAsyncCopy(int, _Float16 __vector(16) AS3*, _Float16 __vector(16) const AS1*, unsigned long, unsigned long, ocl_event)

@frasercrmck
Copy link
Contributor Author

As the original was reverted, I will close this and open a new combined PR.

@frasercrmck frasercrmck closed this Jun 9, 2025
@frasercrmck frasercrmck deleted the sycl-signed-char-builtins branch June 9, 2025 16:04
ldrumm pushed a commit that referenced this pull request Jun 18, 2025
This reapplies commit 23584c1. It also
includes changes from #18807 which attempt to address the issues that
led to the original revert.

We were previously achieving the signed char builtin definitions in
libspirv via one of two ways. The first was explicitly definining schar
overloads of builtins in the source. The second was by remangling 'char'
builtins to one of schar or uchar, depending on the host platform.

Since we are defining our builtins in OpenCL C, the plain 'char' type is
already a signed type. This presents us with the opportunity to achieve
our desired schar builtins solely through remangling. The primary idea
is to reduce our libclc/libspirv diff with upstream. We also have the
option to introduce signed char builtins upstream. As it stands the
schar problem isn't far from the 'half' mangling problem that we also
now deal with purely in the remangler.
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.

2 participants