diff --git a/clang/lib/Sema/SPIRVBuiltins.td b/clang/lib/Sema/SPIRVBuiltins.td index 4113e5e23aca1..2e46b37cf6974 100644 --- a/clang/lib/Sema/SPIRVBuiltins.td +++ b/clang/lib/Sema/SPIRVBuiltins.td @@ -911,52 +911,68 @@ foreach name = ["MemoryBarrier"] in { // 3.32.21. Group and Subgroup Instructions foreach name = ["GroupAsyncCopy"] in { - // TODO: Allow enum flags instead of UInt ? - // TODO: We should enforce that the UInt must be a literal. - def : SPVBuiltin<name, [Event, UInt, PointerType<AGenTypeN, LocalAS>, PointerType<ConstType<AGenTypeN>, GlobalAS>, Size, Size, Event], Attr.Convergent>; - def : SPVBuiltin<name, [Event, UInt, PointerType<AGenTypeN, GlobalAS>, PointerType<ConstType<AGenTypeN>, LocalAS>, Size, Size, Event], Attr.Convergent>; + // TODO: Allow enum flags instead of Int ? + // TODO: We should enforce that the Int must be a literal. + def : SPVBuiltin<name, + [Event, Int, PointerType<AGenTypeN, LocalAS>, + PointerType<ConstType<AGenTypeN>, GlobalAS>, Size, Size, + Event], + Attr.Convergent>; + def : SPVBuiltin<name, + [Event, Int, PointerType<AGenTypeN, GlobalAS>, + PointerType<ConstType<AGenTypeN>, LocalAS>, Size, Size, + Event], + Attr.Convergent>; } foreach name = ["GroupWaitEvents"] in { - def : SPVBuiltin<name, [Void, UInt, Int, PointerType<Event, DefaultAS>], Attr.Convergent>; - def : SPVBuiltin<name, [Void, UInt, Int, PointerType<Event, PrivateAS>], Attr.Convergent>; - def : SPVBuiltin<name, [Void, UInt, Int, PointerType<Event, GenericAS>], Attr.Convergent>; + def : SPVBuiltin<name, [Void, Int, Int, PointerType<Event, DefaultAS>], + Attr.Convergent>; + def : SPVBuiltin<name, [Void, Int, Int, PointerType<Event, PrivateAS>], + Attr.Convergent>; + def : SPVBuiltin<name, [Void, Int, Int, PointerType<Event, GenericAS>], + Attr.Convergent>; } foreach name = ["GroupAll", "GroupAny"] in { - def : SPVBuiltin<name, [Bool, UInt, Bool], Attr.Convergent>; + def : SPVBuiltin<name, [Bool, Int, Bool], Attr.Convergent>; } foreach name = ["GroupBroadcast"] in { foreach IDType = TLAllInts.List in { - def : SPVBuiltin<name, [AGenTypeN, UInt, AGenTypeN, IDType], Attr.Convergent>; - def : SPVBuiltin<name, [AGenTypeN, UInt, AGenTypeN, VectorType<IDType, 2>], Attr.Convergent>; - def : SPVBuiltin<name, [AGenTypeN, UInt, AGenTypeN, VectorType<IDType, 3>], Attr.Convergent>; - def : SPVBuiltin<name, [Bool, UInt, Bool, IDType], Attr.Convergent>; - def : SPVBuiltin<name, [Bool, UInt, Bool, VectorType<IDType, 2>], Attr.Convergent>; - def : SPVBuiltin<name, [Bool, UInt, Bool, VectorType<IDType, 3>], Attr.Convergent>; + def : SPVBuiltin<name, [AGenTypeN, Int, AGenTypeN, IDType], + Attr.Convergent>; + def : SPVBuiltin<name, [AGenTypeN, Int, AGenTypeN, VectorType<IDType, 2>], + Attr.Convergent>; + def : SPVBuiltin<name, [AGenTypeN, Int, AGenTypeN, VectorType<IDType, 3>], + Attr.Convergent>; + def : SPVBuiltin<name, [Bool, Int, Bool, IDType], Attr.Convergent>; + def : SPVBuiltin<name, [Bool, Int, Bool, VectorType<IDType, 2>], + Attr.Convergent>; + def : SPVBuiltin<name, [Bool, Int, Bool, VectorType<IDType, 3>], + Attr.Convergent>; } } foreach name = ["GroupIAdd", "GroupIMulKHR", "GroupBitwiseOrKHR", "GroupBitwiseXorKHR", "GroupBitwiseAndKHR"] in { - def : SPVBuiltin<name, [AIGenTypeN, UInt, UInt, AIGenTypeN], Attr.Convergent>; + def : SPVBuiltin<name, [AIGenTypeN, Int, Int, AIGenTypeN], Attr.Convergent>; } foreach name = ["GroupFAdd", "GroupFMin", "GroupFMax", "GroupFMulKHR"] in { - def : SPVBuiltin<name, [FGenTypeN, UInt, UInt, FGenTypeN], Attr.Convergent>; + def : SPVBuiltin<name, [FGenTypeN, Int, Int, FGenTypeN], Attr.Convergent>; } foreach name = ["GroupUMin", "GroupUMax"] in { - def : SPVBuiltin<name, [AUIGenTypeN, UInt, UInt, AUIGenTypeN], Attr.Convergent>; + def : SPVBuiltin<name, [AUIGenTypeN, Int, Int, AUIGenTypeN], Attr.Convergent>; } foreach name = ["GroupSMin", "GroupSMax"] in { - def : SPVBuiltin<name, [ASIGenTypeN, UInt, UInt, ASIGenTypeN], Attr.Convergent>; + def : SPVBuiltin<name, [ASIGenTypeN, Int, Int, ASIGenTypeN], Attr.Convergent>; } // TODO: These builtins need to support vectors of bool. foreach name = ["GroupLogicalAndKHR", "GroupLogicalOrKHR"] in { - def : SPVBuiltin<name, [Bool, UInt, UInt, Bool], Attr.Convergent>; + def : SPVBuiltin<name, [Bool, Int, Int, Bool], Attr.Convergent>; } diff --git a/clang/test/CodeGenSPIRV/spirv-builtin-lookup-group.cl b/clang/test/CodeGenSPIRV/spirv-builtin-lookup-group.cl new file mode 100644 index 0000000000000..0a31736f04122 --- /dev/null +++ b/clang/test/CodeGenSPIRV/spirv-builtin-lookup-group.cl @@ -0,0 +1,110 @@ +// RUN: %clang_cc1 -triple=spir64 -cl-std=CL2.0 -fdeclare-spirv-builtins -emit-llvm %s -o - | FileCheck %s + +void group_async_copy(short __attribute__((opencl_local)) *dst , short const __attribute__((opencl_global)) *src, +event_t event) { + // CHECK-LABEL: @group_async_copy( + // CHECK: tail call spir_func target("spirv.Event") @_Z22__spirv_GroupAsyncCopyiPU3AS3sPU3AS1Ksmm9ocl_event( + __spirv_GroupAsyncCopy(2, dst, src, 32, 16, event); +} + +void group_wait_event(event_t event) { + // CHECK-LABEL: @group_wait_event( + // CHECK: call spir_func void @_Z23__spirv_GroupWaitEventsiiP9ocl_event( + __spirv_GroupWaitEvents(1, 0, &event); +} + +bool group_all(bool predicate) { + // CHECK-LABEL: @group_all( + // CHECK: call spir_func zeroext i1 @_Z16__spirv_GroupAllib( + return __spirv_GroupAll(2, predicate); +} + +bool group_any(bool predicate) { + // CHECK-LABEL: @group_any( + // CHECK: call spir_func zeroext i1 @_Z16__spirv_GroupAnyib( + return __spirv_GroupAny(2, predicate); +} + +char group_broad_cast(char a) { + // CHECK-LABEL: @group_broad_cast( + // CHECK: call spir_func i32 @_Z22__spirv_GroupBroadcastiij( + return __spirv_GroupBroadcast(2, a, 0u); +} + +int group_iadd(int a) { + // CHECK-LABEL: @group_iadd( + // CHECK: call spir_func i32 @_Z17__spirv_GroupIAddiii( + return __spirv_GroupIAdd(2, 2, a); +} + +int group_imul_khr(short a) { + // CHECK-LABEL: @group_imul_khr( + // CHECK: call spir_func signext i16 @_Z20__spirv_GroupIMulKHRiis( + return __spirv_GroupIMulKHR(2, 0, a); +} + +bool group_bitwise_or_khr(long a) { + // CHECK-LABEL: @group_bitwise_or_khr( + // CHECK: call spir_func i64 @_Z25__spirv_GroupBitwiseOrKHRiil( + return __spirv_GroupBitwiseOrKHR(2, 0, a); +} + +float group_fadd(float a) { + // CHECK-LABEL: @group_fadd( + // CHECK: call spir_func float @_Z17__spirv_GroupFAddiif( + return __spirv_GroupFAdd(2, 1, a); +} + +float group_fmin(float a) { + // CHECK-LABEL: @group_fmin( + // CHECK: call spir_func float @_Z17__spirv_GroupFMiniif( + return __spirv_GroupFMin(2, 0, a); +} + +float group_fmax(float a) { + // CHECK-LABEL: @group_fmax( + // CHECK: call spir_func float @_Z17__spirv_GroupFMaxiif( + return __spirv_GroupFMax(2, 2, a); +} + +float group_ful_khr(float a) { + // CHECK-LABEL: @group_ful_khr( + // CHECK: call spir_func float @_Z20__spirv_GroupFMulKHRiif( + return __spirv_GroupFMulKHR(2, 2, a); +} + +unsigned char group_umin(unsigned char a ) { + // CHECK-LABEL: @group_umin( + // CHECK: call spir_func zeroext i8 @_Z17__spirv_GroupUMiniih( + return __spirv_GroupUMin(2, 0, a); +} + +unsigned long group_umax(unsigned long a) { + // CHECK-LABEL: @group_umax( + // CHECK: call spir_func i64 @_Z17__spirv_GroupUMaxiim( + return __spirv_GroupUMax(2, 0, a); +} + +char group_smin(char a) { + // CHECK-LABEL: @group_smin( + // CHECK: call spir_func i32 @_Z17__spirv_GroupSMiniii( + return __spirv_GroupSMin(2, 0, a); +} + +short group_smax(short a) { + // CHECK-LABEL: @group_smax( + // CHECK: call spir_func signext i16 @_Z17__spirv_GroupSMaxiis( + return __spirv_GroupSMax(2, 0, a); +} + +bool group_logical_and_khr(bool a) { + // CHECK-LABEL: @group_logical_and_khr( + // CHECK: call spir_func zeroext i1 @_Z26__spirv_GroupLogicalAndKHRiib( + return __spirv_GroupLogicalAndKHR(2, 0, a); +} + +bool group_logical_or_khr(bool a) { + // CHECK-LABEL: @group_logical_or_khr( + // CHECK: call spir_func zeroext i1 @_Z25__spirv_GroupLogicalOrKHRiib( + return __spirv_GroupLogicalOrKHR(2, 0, a); +} diff --git a/libclc/libspirv/include/libspirv/spirv_builtins.h b/libclc/libspirv/include/libspirv/spirv_builtins.h index 18483265d1f6a..ac3e871b3b0be 100644 --- a/libclc/libspirv/include/libspirv/spirv_builtins.h +++ b/libclc/libspirv/include/libspirv/spirv_builtins.h @@ -9852,49 +9852,49 @@ _CLC_OVERLOAD _CLC_DECL _CLC_CONSTFN __clc_vec16_int8_t #endif _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_char_t __local *, __clc_char_t const __global *, + __clc_int32_t, __clc_char_t __local *, __clc_char_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_char_t __global *, __clc_char_t const __local *, + __clc_int32_t, __clc_char_t __global *, __clc_char_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_char_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_char_t __local *, __clc_vec2_char_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_char_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_char_t __global *, __clc_vec2_char_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_char_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_char_t __local *, __clc_vec3_char_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_char_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_char_t __global *, __clc_vec3_char_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_char_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_char_t __local *, __clc_vec4_char_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_char_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_char_t __global *, __clc_vec4_char_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_char_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_char_t __local *, __clc_vec8_char_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_char_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_char_t __global *, __clc_vec8_char_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_char_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_char_t __local *, __clc_vec16_char_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_char_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_char_t __global *, __clc_vec16_char_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( @@ -9904,135 +9904,135 @@ _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( __clc_uint32_t, __clc_int8_t __global *, __clc_int8_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_int8_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_int8_t __local *, __clc_vec2_int8_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_int8_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_int8_t __global *, __clc_vec2_int8_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_int8_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_int8_t __local *, __clc_vec3_int8_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_int8_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_int8_t __global *, __clc_vec3_int8_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_int8_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_int8_t __local *, __clc_vec4_int8_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_int8_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_int8_t __global *, __clc_vec4_int8_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_int8_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_int8_t __local *, __clc_vec8_int8_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_int8_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_int8_t __global *, __clc_vec8_int8_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_int8_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_int8_t __local *, __clc_vec16_int8_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_int8_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_int8_t __global *, __clc_vec16_int8_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_int16_t __local *, __clc_int16_t const __global *, + __clc_int32_t, __clc_int16_t __local *, __clc_int16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_int16_t __global *, __clc_int16_t const __local *, + __clc_int32_t, __clc_int16_t __global *, __clc_int16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_int16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_int16_t __local *, __clc_vec2_int16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_int16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_int16_t __global *, __clc_vec2_int16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_int16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_int16_t __local *, __clc_vec3_int16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_int16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_int16_t __global *, __clc_vec3_int16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_int16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_int16_t __local *, __clc_vec4_int16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_int16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_int16_t __global *, __clc_vec4_int16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_int16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_int16_t __local *, __clc_vec8_int16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_int16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_int16_t __global *, __clc_vec8_int16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_int16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_int16_t __local *, __clc_vec16_int16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_int16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_int16_t __global *, __clc_vec16_int16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_int32_t __local *, __clc_int32_t const __global *, + __clc_int32_t, __clc_int32_t __local *, __clc_int32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( __clc_uint32_t, __clc_int32_t __global *, __clc_int32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_int32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_int32_t __local *, __clc_vec2_int32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_int32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_int32_t __global *, __clc_vec2_int32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_int32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_int32_t __local *, __clc_vec3_int32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_int32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_int32_t __global *, __clc_vec3_int32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_int32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_int32_t __local *, __clc_vec4_int32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_int32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_int32_t __global *, __clc_vec4_int32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_int32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_int32_t __local *, __clc_vec8_int32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_int32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_int32_t __global *, __clc_vec8_int32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_int32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_int32_t __local *, __clc_vec16_int32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_int32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_int32_t __global *, __clc_vec16_int32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( @@ -10042,376 +10042,376 @@ _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( __clc_uint32_t, __clc_int64_t __global *, __clc_int64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_int64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_int64_t __local *, __clc_vec2_int64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_int64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_int64_t __global *, __clc_vec2_int64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_int64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_int64_t __local *, __clc_vec3_int64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_int64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_int64_t __global *, __clc_vec3_int64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_int64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_int64_t __local *, __clc_vec4_int64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_int64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_int64_t __global *, __clc_vec4_int64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_int64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_int64_t __local *, __clc_vec8_int64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_int64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_int64_t __global *, __clc_vec8_int64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_int64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_int64_t __local *, __clc_vec16_int64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_int64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_int64_t __global *, __clc_vec16_int64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_uint8_t __local *, __clc_uint8_t const __global *, + __clc_int32_t, __clc_uint8_t __local *, __clc_uint8_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_uint8_t __global *, __clc_uint8_t const __local *, + __clc_int32_t, __clc_uint8_t __global *, __clc_uint8_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_uint8_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_uint8_t __local *, __clc_vec2_uint8_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_uint8_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_uint8_t __global *, __clc_vec2_uint8_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_uint8_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_uint8_t __local *, __clc_vec3_uint8_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_uint8_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_uint8_t __global *, __clc_vec3_uint8_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_uint8_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_uint8_t __local *, __clc_vec4_uint8_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_uint8_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_uint8_t __global *, __clc_vec4_uint8_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_uint8_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_uint8_t __local *, __clc_vec8_uint8_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_uint8_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_uint8_t __global *, __clc_vec8_uint8_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_uint8_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_uint8_t __local *, __clc_vec16_uint8_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_uint8_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_uint8_t __global *, __clc_vec16_uint8_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_uint16_t __local *, __clc_uint16_t const __global *, + __clc_int32_t, __clc_uint16_t __local *, __clc_uint16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_uint16_t __global *, __clc_uint16_t const __local *, + __clc_int32_t, __clc_uint16_t __global *, __clc_uint16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_uint16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_uint16_t __local *, __clc_vec2_uint16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_uint16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_uint16_t __global *, __clc_vec2_uint16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_uint16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_uint16_t __local *, __clc_vec3_uint16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_uint16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_uint16_t __global *, __clc_vec3_uint16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_uint16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_uint16_t __local *, __clc_vec4_uint16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_uint16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_uint16_t __global *, __clc_vec4_uint16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_uint16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_uint16_t __local *, __clc_vec8_uint16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_uint16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_uint16_t __global *, __clc_vec8_uint16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_uint16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_uint16_t __local *, __clc_vec16_uint16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_uint16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_uint16_t __global *, __clc_vec16_uint16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_uint32_t __local *, __clc_uint32_t const __global *, + __clc_int32_t, __clc_uint32_t __local *, __clc_uint32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_uint32_t __global *, __clc_uint32_t const __local *, + __clc_int32_t, __clc_uint32_t __global *, __clc_uint32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_uint32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_uint32_t __local *, __clc_vec2_uint32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_uint32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_uint32_t __global *, __clc_vec2_uint32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_uint32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_uint32_t __local *, __clc_vec3_uint32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_uint32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_uint32_t __global *, __clc_vec3_uint32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_uint32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_uint32_t __local *, __clc_vec4_uint32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_uint32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_uint32_t __global *, __clc_vec4_uint32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_uint32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_uint32_t __local *, __clc_vec8_uint32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_uint32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_uint32_t __global *, __clc_vec8_uint32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_uint32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_uint32_t __local *, __clc_vec16_uint32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_uint32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_uint32_t __global *, __clc_vec16_uint32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_uint64_t __local *, __clc_uint64_t const __global *, + __clc_int32_t, __clc_uint64_t __local *, __clc_uint64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_uint64_t __global *, __clc_uint64_t const __local *, + __clc_int32_t, __clc_uint64_t __global *, __clc_uint64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_uint64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_uint64_t __local *, __clc_vec2_uint64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_uint64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_uint64_t __global *, __clc_vec2_uint64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_uint64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_uint64_t __local *, __clc_vec3_uint64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_uint64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_uint64_t __global *, __clc_vec3_uint64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_uint64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_uint64_t __local *, __clc_vec4_uint64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_uint64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_uint64_t __global *, __clc_vec4_uint64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_uint64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_uint64_t __local *, __clc_vec8_uint64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_uint64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_uint64_t __global *, __clc_vec8_uint64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_uint64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_uint64_t __local *, __clc_vec16_uint64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_uint64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_uint64_t __global *, __clc_vec16_uint64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_fp32_t __local *, __clc_fp32_t const __global *, + __clc_int32_t, __clc_fp32_t __local *, __clc_fp32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_fp32_t __global *, __clc_fp32_t const __local *, + __clc_int32_t, __clc_fp32_t __global *, __clc_fp32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_fp32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_fp32_t __local *, __clc_vec2_fp32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_fp32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_fp32_t __global *, __clc_vec2_fp32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_fp32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_fp32_t __local *, __clc_vec3_fp32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_fp32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_fp32_t __global *, __clc_vec3_fp32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_fp32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_fp32_t __local *, __clc_vec4_fp32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_fp32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_fp32_t __global *, __clc_vec4_fp32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_fp32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_fp32_t __local *, __clc_vec8_fp32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_fp32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_fp32_t __global *, __clc_vec8_fp32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_fp32_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_fp32_t __local *, __clc_vec16_fp32_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_fp32_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_fp32_t __global *, __clc_vec16_fp32_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); #ifdef cl_khr_fp64 _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_fp64_t __local *, __clc_fp64_t const __global *, + __clc_int32_t, __clc_fp64_t __local *, __clc_fp64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_fp64_t __global *, __clc_fp64_t const __local *, + __clc_int32_t, __clc_fp64_t __global *, __clc_fp64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_fp64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_fp64_t __local *, __clc_vec2_fp64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_fp64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_fp64_t __global *, __clc_vec2_fp64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_fp64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_fp64_t __local *, __clc_vec3_fp64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_fp64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_fp64_t __global *, __clc_vec3_fp64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_fp64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_fp64_t __local *, __clc_vec4_fp64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_fp64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_fp64_t __global *, __clc_vec4_fp64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_fp64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_fp64_t __local *, __clc_vec8_fp64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_fp64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_fp64_t __global *, __clc_vec8_fp64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_fp64_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_fp64_t __local *, __clc_vec16_fp64_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_fp64_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_fp64_t __global *, __clc_vec16_fp64_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); #endif #ifdef cl_khr_fp16 _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_fp16_t __local *, __clc_fp16_t const __global *, + __clc_int32_t, __clc_fp16_t __local *, __clc_fp16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t, __clc_fp16_t __global *, __clc_fp16_t const __local *, + __clc_int32_t, __clc_fp16_t __global *, __clc_fp16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_fp16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_fp16_t __local *, __clc_vec2_fp16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec2_fp16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec2_fp16_t __global *, __clc_vec2_fp16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_fp16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_fp16_t __local *, __clc_vec3_fp16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec3_fp16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec3_fp16_t __global *, __clc_vec3_fp16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_fp16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_fp16_t __local *, __clc_vec4_fp16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec4_fp16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec4_fp16_t __global *, __clc_vec4_fp16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_fp16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_fp16_t __local *, __clc_vec8_fp16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec8_fp16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec8_fp16_t __global *, __clc_vec8_fp16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_fp16_t __local *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_fp16_t __local *, __clc_vec16_fp16_t const __global *, __clc_size_t, __clc_size_t, __clc_event_t); _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT __clc_event_t -__spirv_GroupAsyncCopy(__clc_uint32_t, __clc_vec16_fp16_t __global *, +__spirv_GroupAsyncCopy(__clc_int32_t, __clc_vec16_fp16_t __global *, __clc_vec16_fp16_t const __local *, __clc_size_t, __clc_size_t, __clc_event_t); #endif _CLC_OVERLOAD _CLC_DECL _CLC_CONVERGENT void -__spirv_GroupWaitEvents(__clc_uint32_t, __clc_int32_t, __clc_event_t *); +__spirv_GroupWaitEvents(__clc_int32_t, __clc_int32_t, __clc_event_t *); _CLC_OVERLOAD _CLC_DECL _CLC_CONSTFN __clc_bool_t __spirv_IsFinite(__clc_fp32_t); diff --git a/libclc/libspirv/lib/amdgcn-amdhsa/async/wait_group_events.cl b/libclc/libspirv/lib/amdgcn-amdhsa/async/wait_group_events.cl index 701668c73e6b6..6437cc8eba4ac 100644 --- a/libclc/libspirv/lib/amdgcn-amdhsa/async/wait_group_events.cl +++ b/libclc/libspirv/lib/amdgcn-amdhsa/async/wait_group_events.cl @@ -8,7 +8,7 @@ #include <libspirv/spirv.h> -_CLC_OVERLOAD _CLC_DEF void __spirv_GroupWaitEvents(unsigned int scope, +_CLC_OVERLOAD _CLC_DEF void __spirv_GroupWaitEvents(int scope, int num_events, event_t *event_list) { __spirv_ControlBarrier(scope, Workgroup, SequentiallyConsistent); diff --git a/libclc/libspirv/lib/amdgcn-amdhsa/group/collectives.cl b/libclc/libspirv/lib/amdgcn-amdhsa/group/collectives.cl index 3aa99d8a9180c..27218592b2487 100644 --- a/libclc/libspirv/lib/amdgcn-amdhsa/group/collectives.cl +++ b/libclc/libspirv/lib/amdgcn-amdhsa/group/collectives.cl @@ -196,7 +196,7 @@ __CLC_SUBGROUP_COLLECTIVE(LogicalAndKHR, __CLC_LOGICAL_AND, bool, a, true) #define __CLC_GROUP_COLLECTIVE_INNER(SPIRV_NAME, CLC_NAME, OP, TYPE, IDENTITY) \ _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT TYPE __CLC_APPEND( \ - __spirv_Group, SPIRV_NAME)(uint scope, uint op, TYPE x) { \ + __spirv_Group, SPIRV_NAME)(int scope, int op, TYPE x) { \ TYPE carry = IDENTITY; \ /* Perform GroupOperation within sub-group */ \ TYPE sg_x = __CLC_APPEND(__clc__Subgroup, CLC_NAME)(op, x, &carry); \ @@ -253,11 +253,11 @@ __CLC_SUBGROUP_COLLECTIVE(LogicalAndKHR, __CLC_LOGICAL_AND, bool, a, true) __CLC_GROUP_COLLECTIVE(Any, __CLC_OR, bool, false); __CLC_GROUP_COLLECTIVE(All, __CLC_AND, bool, true); -_CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT bool __spirv_GroupAny(uint scope, +_CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT bool __spirv_GroupAny(int scope, bool predicate) { return __spirv_GroupAny(scope, Reduce, predicate); } -_CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT bool __spirv_GroupAll(uint scope, +_CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT bool __spirv_GroupAll(int scope, bool predicate) { return __spirv_GroupAll(scope, Reduce, predicate); } @@ -343,13 +343,13 @@ __CLC_GROUP_COLLECTIVE(LogicalAndKHR, __CLC_LOGICAL_AND, bool, true) // half requires additional mangled entry points #define __CLC_GROUP_COLLECTIVE__DF16(MANGLED_NAME, SPIRV_DISPATCH) \ - _CLC_DEF _CLC_CONVERGENT half MANGLED_NAME(uint scope, uint op, half x) { \ + _CLC_DEF _CLC_CONVERGENT half MANGLED_NAME(int scope, uint op, half x) { \ return SPIRV_DISPATCH(scope, op, x); \ } -__CLC_GROUP_COLLECTIVE__DF16(_Z17__spirv_GroupFAddjjDF16_, __spirv_GroupFAdd) -__CLC_GROUP_COLLECTIVE__DF16(_Z17__spirv_GroupFMinjjDF16_, __spirv_GroupFMin) -__CLC_GROUP_COLLECTIVE__DF16(_Z17__spirv_GroupFMaxjjDF16_, __spirv_GroupFMax) -__CLC_GROUP_COLLECTIVE__DF16(_Z20__spirv_GroupFMulKHRjjDF16_, +__CLC_GROUP_COLLECTIVE__DF16(_Z17__spirv_GroupFAddiiDF16_, __spirv_GroupFAdd) +__CLC_GROUP_COLLECTIVE__DF16(_Z17__spirv_GroupFMiniiDF16_, __spirv_GroupFMin) +__CLC_GROUP_COLLECTIVE__DF16(_Z17__spirv_GroupFMaxiiDF16_, __spirv_GroupFMax) +__CLC_GROUP_COLLECTIVE__DF16(_Z20__spirv_GroupFMulKHRiiDF16_, __spirv_GroupFMulKHR) #undef __CLC_GROUP_COLLECTIVE__DF16 @@ -380,7 +380,7 @@ long __clc__3d_to_linear_local_id(ulong3 id) { #define __CLC_GROUP_BROADCAST(TYPE, TYPE_MANGLED) \ _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT TYPE __spirv_GroupBroadcast( \ - uint scope, TYPE x, ulong local_id) { \ + int scope, TYPE x, ulong local_id) { \ if (scope == Subgroup) { \ return _Z28__spirv_SubgroupShuffleINTELI##TYPE_MANGLED##ET_S0_j( \ x, local_id); \ @@ -396,17 +396,17 @@ long __clc__3d_to_linear_local_id(ulong3 id) { return result; \ } \ _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT TYPE __spirv_GroupBroadcast( \ - uint scope, TYPE x, ulong2 local_id) { \ + int scope, TYPE x, ulong2 local_id) { \ ulong linear_local_id = __clc__2d_to_linear_local_id(local_id); \ return __spirv_GroupBroadcast(scope, x, linear_local_id); \ } \ _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT TYPE __spirv_GroupBroadcast( \ - uint scope, TYPE x, ulong3 local_id) { \ + int scope, TYPE x, ulong3 local_id) { \ ulong linear_local_id = __clc__3d_to_linear_local_id(local_id); \ return __spirv_GroupBroadcast(scope, x, linear_local_id); \ } \ _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT TYPE __spirv_GroupBroadcast( \ - uint scope, TYPE x, uint local_id) { \ + int scope, TYPE x, uint local_id) { \ return __spirv_GroupBroadcast(scope, x, (ulong)local_id); \ } __CLC_GROUP_BROADCAST(char, a); diff --git a/libclc/libspirv/lib/amdgcn-amdhsa/group/group_ballot.cl b/libclc/libspirv/lib/amdgcn-amdhsa/group/group_ballot.cl index 7208f788898da..49fa34a8cd7ab 100644 --- a/libclc/libspirv/lib/amdgcn-amdhsa/group/group_ballot.cl +++ b/libclc/libspirv/lib/amdgcn-amdhsa/group/group_ballot.cl @@ -13,7 +13,7 @@ #define ICMP_NE 33 _CLC_DEF _CLC_CONVERGENT __clc_vec4_uint32_t -_Z29__spirv_GroupNonUniformBallotjb(unsigned flag, bool predicate) { +_Z29__spirv_GroupNonUniformBallotib(int flag, bool predicate) { // only support subgroup for now if (flag != Subgroup) { __builtin_trap(); diff --git a/libclc/libspirv/lib/generic/async/async_work_group_strided_copy.inc b/libclc/libspirv/lib/generic/async/async_work_group_strided_copy.inc index 513c93b6f74e1..d85ea78d44a58 100644 --- a/libclc/libspirv/lib/generic/async/async_work_group_strided_copy.inc +++ b/libclc/libspirv/lib/generic/async/async_work_group_strided_copy.inc @@ -6,18 +6,16 @@ // //===----------------------------------------------------------------------===// -_CLC_OVERLOAD _CLC_DEF event_t -__spirv_GroupAsyncCopy(unsigned int scope, global __CLC_GENTYPE *dst, - const local __CLC_GENTYPE *src, size_t num_gentypes, - size_t stride, event_t event) { +_CLC_OVERLOAD _CLC_DEF event_t __spirv_GroupAsyncCopy( + int scope, global __CLC_GENTYPE *dst, const local __CLC_GENTYPE *src, + size_t num_gentypes, size_t stride, event_t event) { STRIDED_COPY(global, local, stride, 1); return event; } -_CLC_OVERLOAD _CLC_DEF event_t -__spirv_GroupAsyncCopy(unsigned int scope, local __CLC_GENTYPE *dst, - const global __CLC_GENTYPE *src, size_t num_gentypes, - size_t stride, event_t event) { +_CLC_OVERLOAD _CLC_DEF event_t __spirv_GroupAsyncCopy( + int scope, local __CLC_GENTYPE *dst, const global __CLC_GENTYPE *src, + size_t num_gentypes, size_t stride, event_t event) { STRIDED_COPY(local, global, 1, stride); return event; } diff --git a/libclc/libspirv/lib/generic/async/wait_group_events.cl b/libclc/libspirv/lib/generic/async/wait_group_events.cl index 9a6475a3f626c..10590e68d1e6f 100644 --- a/libclc/libspirv/lib/generic/async/wait_group_events.cl +++ b/libclc/libspirv/lib/generic/async/wait_group_events.cl @@ -8,7 +8,7 @@ #include <libspirv/spirv.h> -_CLC_OVERLOAD _CLC_DEF void __spirv_GroupWaitEvents(unsigned int scope, +_CLC_OVERLOAD _CLC_DEF void __spirv_GroupWaitEvents(int scope, int num_events, event_t *event_list) { __spirv_ControlBarrier(scope, Workgroup, SequentiallyConsistent); diff --git a/libclc/libspirv/lib/generic/float16.cl b/libclc/libspirv/lib/generic/float16.cl index 3315ba531d785..0799c8ab18a12 100644 --- a/libclc/libspirv/lib/generic/float16.cl +++ b/libclc/libspirv/lib/generic/float16.cl @@ -3210,7 +3210,7 @@ _CLC_OVERLOAD _CLC_DEF _CLC_CONSTFN __clc_vec16_int8_t __spirv_FUnordNotEqual( } _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t args_0, __clc_float16_t __local *args_1, + __clc_int32_t args_0, __clc_float16_t __local *args_1, __clc_float16_t const __global *args_2, __clc_size_t args_3, __clc_size_t args_4, __clc_event_t args_5) { return __spirv_GroupAsyncCopy(args_0, (__clc_fp16_t __local *)(args_1), @@ -3219,7 +3219,7 @@ _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( } _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t args_0, __clc_float16_t __global *args_1, + __clc_int32_t args_0, __clc_float16_t __global *args_1, __clc_float16_t const __local *args_2, __clc_size_t args_3, __clc_size_t args_4, __clc_event_t args_5) { return __spirv_GroupAsyncCopy(args_0, (__clc_fp16_t __global *)(args_1), @@ -3228,7 +3228,7 @@ _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( } _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t args_0, __clc_vec2_float16_t __local *args_1, + __clc_int32_t args_0, __clc_vec2_float16_t __local *args_1, __clc_vec2_float16_t const __global *args_2, __clc_size_t args_3, __clc_size_t args_4, __clc_event_t args_5) { return __spirv_GroupAsyncCopy(args_0, (__clc_vec2_fp16_t __local *)(args_1), @@ -3237,7 +3237,7 @@ _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( } _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t args_0, __clc_vec2_float16_t __global *args_1, + __clc_int32_t args_0, __clc_vec2_float16_t __global *args_1, __clc_vec2_float16_t const __local *args_2, __clc_size_t args_3, __clc_size_t args_4, __clc_event_t args_5) { return __spirv_GroupAsyncCopy(args_0, (__clc_vec2_fp16_t __global *)(args_1), @@ -3246,7 +3246,7 @@ _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( } _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t args_0, __clc_vec3_float16_t __local *args_1, + __clc_int32_t args_0, __clc_vec3_float16_t __local *args_1, __clc_vec3_float16_t const __global *args_2, __clc_size_t args_3, __clc_size_t args_4, __clc_event_t args_5) { return __spirv_GroupAsyncCopy(args_0, (__clc_vec3_fp16_t __local *)(args_1), @@ -3255,7 +3255,7 @@ _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( } _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t args_0, __clc_vec3_float16_t __global *args_1, + __clc_int32_t args_0, __clc_vec3_float16_t __global *args_1, __clc_vec3_float16_t const __local *args_2, __clc_size_t args_3, __clc_size_t args_4, __clc_event_t args_5) { return __spirv_GroupAsyncCopy(args_0, (__clc_vec3_fp16_t __global *)(args_1), @@ -3264,7 +3264,7 @@ _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( } _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t args_0, __clc_vec4_float16_t __local *args_1, + __clc_int32_t args_0, __clc_vec4_float16_t __local *args_1, __clc_vec4_float16_t const __global *args_2, __clc_size_t args_3, __clc_size_t args_4, __clc_event_t args_5) { return __spirv_GroupAsyncCopy(args_0, (__clc_vec4_fp16_t __local *)(args_1), @@ -3273,7 +3273,7 @@ _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( } _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t args_0, __clc_vec4_float16_t __global *args_1, + __clc_int32_t args_0, __clc_vec4_float16_t __global *args_1, __clc_vec4_float16_t const __local *args_2, __clc_size_t args_3, __clc_size_t args_4, __clc_event_t args_5) { return __spirv_GroupAsyncCopy(args_0, (__clc_vec4_fp16_t __global *)(args_1), @@ -3282,7 +3282,7 @@ _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( } _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t args_0, __clc_vec8_float16_t __local *args_1, + __clc_int32_t args_0, __clc_vec8_float16_t __local *args_1, __clc_vec8_float16_t const __global *args_2, __clc_size_t args_3, __clc_size_t args_4, __clc_event_t args_5) { return __spirv_GroupAsyncCopy(args_0, (__clc_vec8_fp16_t __local *)(args_1), @@ -3291,7 +3291,7 @@ _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( } _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t args_0, __clc_vec8_float16_t __global *args_1, + __clc_int32_t args_0, __clc_vec8_float16_t __global *args_1, __clc_vec8_float16_t const __local *args_2, __clc_size_t args_3, __clc_size_t args_4, __clc_event_t args_5) { return __spirv_GroupAsyncCopy(args_0, (__clc_vec8_fp16_t __global *)(args_1), @@ -3300,7 +3300,7 @@ _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( } _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t args_0, __clc_vec16_float16_t __local *args_1, + __clc_int32_t args_0, __clc_vec16_float16_t __local *args_1, __clc_vec16_float16_t const __global *args_2, __clc_size_t args_3, __clc_size_t args_4, __clc_event_t args_5) { return __spirv_GroupAsyncCopy(args_0, (__clc_vec16_fp16_t __local *)(args_1), @@ -3309,7 +3309,7 @@ _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( } _CLC_OVERLOAD _CLC_DEF _CLC_CONVERGENT __clc_event_t __spirv_GroupAsyncCopy( - __clc_uint32_t args_0, __clc_vec16_float16_t __global *args_1, + __clc_int32_t args_0, __clc_vec16_float16_t __global *args_1, __clc_vec16_float16_t const __local *args_2, __clc_size_t args_3, __clc_size_t args_4, __clc_event_t args_5) { return __spirv_GroupAsyncCopy(args_0, (__clc_vec16_fp16_t __global *)(args_1), diff --git a/libclc/libspirv/lib/ptx-nvidiacl/async/async_work_group_strided_copy.cl b/libclc/libspirv/lib/ptx-nvidiacl/async/async_work_group_strided_copy.cl index ad8041eec3e5e..438ad9ccf6ab7 100644 --- a/libclc/libspirv/lib/ptx-nvidiacl/async/async_work_group_strided_copy.cl +++ b/libclc/libspirv/lib/ptx-nvidiacl/async/async_work_group_strided_copy.cl @@ -18,7 +18,7 @@ int __clc_nvvm_reflect_arch(); #define __CLC_GROUP_CP_ASYNC_DST_GLOBAL(TYPE) \ _CLC_OVERLOAD _CLC_DEF event_t __spirv_GroupAsyncCopy( \ - unsigned int scope, __attribute__((address_space(1))) TYPE *dst, \ + int scope, __attribute__((address_space(1))) TYPE *dst, \ const __attribute__((address_space(3))) TYPE *src, size_t num_gentypes, \ size_t stride, event_t event) { \ STRIDED_COPY(__attribute__((address_space(1))), \ @@ -64,7 +64,7 @@ __CLC_GROUP_CP_ASYNC_DST_GLOBAL(uchar16); #define __CLC_GROUP_CP_ASYNC_4(TYPE) \ _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT event_t __spirv_GroupAsyncCopy( \ - unsigned int scope, __attribute__((address_space(3))) TYPE *dst, \ + int scope, __attribute__((address_space(3))) TYPE *dst, \ const __attribute__((address_space(1))) TYPE *src, size_t num_gentypes, \ size_t stride, event_t event) { \ if (__clc_nvvm_reflect_arch() >= 800) { \ @@ -95,7 +95,7 @@ __CLC_GROUP_CP_ASYNC_4(uchar4); #define __CLC_GROUP_CP_ASYNC_8(TYPE) \ _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT event_t __spirv_GroupAsyncCopy( \ - unsigned int scope, __attribute__((address_space(3))) TYPE *dst, \ + int scope, __attribute__((address_space(3))) TYPE *dst, \ const __attribute__((address_space(1))) TYPE *src, size_t num_gentypes, \ size_t stride, event_t event) { \ if (__clc_nvvm_reflect_arch() >= 800) { \ @@ -129,7 +129,7 @@ __CLC_GROUP_CP_ASYNC_8(uchar8); #define __CLC_GROUP_CP_ASYNC_16(TYPE) \ _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT event_t __spirv_GroupAsyncCopy( \ - unsigned int scope, __attribute__((address_space(3))) TYPE *dst, \ + int scope, __attribute__((address_space(3))) TYPE *dst, \ const __attribute__((address_space(1))) TYPE *src, size_t num_gentypes, \ size_t stride, event_t event) { \ if (__clc_nvvm_reflect_arch() >= 800) { \ diff --git a/libclc/libspirv/lib/ptx-nvidiacl/async/wait_group_events.cl b/libclc/libspirv/lib/ptx-nvidiacl/async/wait_group_events.cl index 52dfd19a5e508..ae329324fd935 100644 --- a/libclc/libspirv/lib/ptx-nvidiacl/async/wait_group_events.cl +++ b/libclc/libspirv/lib/ptx-nvidiacl/async/wait_group_events.cl @@ -11,7 +11,7 @@ int __clc_nvvm_reflect_arch(); -_CLC_OVERLOAD _CLC_DEF void __spirv_GroupWaitEvents(unsigned int scope, +_CLC_OVERLOAD _CLC_DEF void __spirv_GroupWaitEvents(int scope, int num_events, event_t *event_list) { if (__clc_nvvm_reflect_arch() >= 800) { diff --git a/libclc/libspirv/lib/ptx-nvidiacl/group/collectives.cl b/libclc/libspirv/lib/ptx-nvidiacl/group/collectives.cl index 13b4c1f96354a..6e090d68178c3 100644 --- a/libclc/libspirv/lib/ptx-nvidiacl/group/collectives.cl +++ b/libclc/libspirv/lib/ptx-nvidiacl/group/collectives.cl @@ -204,13 +204,13 @@ __clc__SubgroupShuffleUp(complex_double x, uint delta) { // TODO: Implement InclusiveScan/ExclusiveScan // Currently only Reduce is required (for GroupAny and GroupAll) _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT bool -__clc__SubgroupBitwiseOr(uint op, bool predicate, bool *carry) { +__clc__SubgroupBitwiseOr(int op, bool predicate, bool *carry) { bool result = __nvvm_vote_any_sync(__clc__membermask(), predicate); *carry = result; return result; } _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT bool -__clc__SubgroupBitwiseAny(uint op, bool predicate, bool *carry) { +__clc__SubgroupBitwiseAny(int op, bool predicate, bool *carry) { bool result = __nvvm_vote_all_sync(__clc__membermask(), predicate); *carry = result; return result; @@ -477,7 +477,7 @@ __CLC_SUBGROUP_COLLECTIVE(LogicalAndKHR, __CLC_LOGICAL_AND, bool, true) #define __CLC_GROUP_COLLECTIVE_OUTER(SPIRV_NAME, CLC_NAME, OP, TYPE, IDENTITY) \ _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT TYPE __CLC_APPEND( \ - __spirv_Group, SPIRV_NAME)(uint scope, uint op, TYPE x) { \ + __spirv_Group, SPIRV_NAME)(int scope, int op, TYPE x) { \ __CLC_GROUP_COLLECTIVE_INNER(CLC_NAME, OP, TYPE, IDENTITY) \ } @@ -495,18 +495,18 @@ __CLC_SUBGROUP_COLLECTIVE(LogicalAndKHR, __CLC_LOGICAL_AND, bool, true) #define __CLC_GROUP_COLLECTIVE_MANUAL_MANGLE(SPIRV_NAME_MANGLED, CLC_NAME, OP, \ TYPE, IDENTITY) \ - _CLC_DEF _CLC_CONVERGENT TYPE SPIRV_NAME_MANGLED(uint scope, uint op, \ + _CLC_DEF _CLC_CONVERGENT TYPE SPIRV_NAME_MANGLED(int scope, int op, \ TYPE x) { \ __CLC_GROUP_COLLECTIVE_INNER(CLC_NAME, OP, TYPE, IDENTITY) \ } __CLC_GROUP_COLLECTIVE(BitwiseOr, __CLC_OR, bool, false); __CLC_GROUP_COLLECTIVE(BitwiseAny, __CLC_AND, bool, true); -_CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT bool __spirv_GroupAny(uint scope, +_CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT bool __spirv_GroupAny(int scope, bool predicate) { return __spirv_GroupBitwiseOr(scope, Reduce, predicate); } -_CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT bool __spirv_GroupAll(uint scope, +_CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT bool __spirv_GroupAll(int scope, bool predicate) { return __spirv_GroupBitwiseAny(scope, Reduce, predicate); } @@ -536,13 +536,13 @@ __CLC_GROUP_COLLECTIVE(FMulKHR, __CLC_MUL, float, 1) __CLC_GROUP_COLLECTIVE(FMulKHR, __CLC_MUL, double, 1) __CLC_GROUP_COLLECTIVE_MANUAL_MANGLE( - _Z22__spirv_GroupCMulINTELjjN5__spv12complex_halfE, CMulINTEL, + _Z22__spirv_GroupCMulINTELiiN5__spv12complex_halfE, CMulINTEL, __CLC_COMPLEX_MUL, complex_half, ((complex_half){1, 0})) __CLC_GROUP_COLLECTIVE_MANUAL_MANGLE( - _Z22__spirv_GroupCMulINTELjjN5__spv13complex_floatE, CMulINTEL, + _Z22__spirv_GroupCMulINTELiiN5__spv13complex_floatE, CMulINTEL, __CLC_COMPLEX_MUL, complex_float, ((complex_float){1, 0})) __CLC_GROUP_COLLECTIVE_MANUAL_MANGLE( - _Z22__spirv_GroupCMulINTELjjN5__spv14complex_doubleE, CMulINTEL, + _Z22__spirv_GroupCMulINTELiiN5__spv14complex_doubleE, CMulINTEL, __CLC_COMPLEX_MUL, complex_double, ((complex_double){1, 0})) __CLC_GROUP_COLLECTIVE(SMin, __CLC_MIN, char, CHAR_MAX) @@ -602,13 +602,13 @@ __CLC_GROUP_COLLECTIVE(LogicalAndKHR, __CLC_LOGICAL_AND, bool, true) // half requires additional mangled entry points #define __CLC_GROUP_COLLECTIVE__DF16(MANGLED_NAME, SPIRV_DISPATCH) \ - _CLC_DEF _CLC_CONVERGENT half MANGLED_NAME(uint scope, uint op, half x) { \ + _CLC_DEF _CLC_CONVERGENT half MANGLED_NAME(int scope, uint op, half x) { \ return SPIRV_DISPATCH(scope, op, x); \ } -__CLC_GROUP_COLLECTIVE__DF16(_Z17__spirv_GroupFAddjjDF16_, __spirv_GroupFAdd) -__CLC_GROUP_COLLECTIVE__DF16(_Z17__spirv_GroupFMinjjDF16_, __spirv_GroupFMin) -__CLC_GROUP_COLLECTIVE__DF16(_Z17__spirv_GroupFMaxjjDF16_, __spirv_GroupFMax) -__CLC_GROUP_COLLECTIVE__DF16(_Z20__spirv_GroupFMulKHRjjDF16_, +__CLC_GROUP_COLLECTIVE__DF16(_Z17__spirv_GroupFAddiiDF16_, __spirv_GroupFAdd) +__CLC_GROUP_COLLECTIVE__DF16(_Z17__spirv_GroupFMiniiDF16_, __spirv_GroupFMin) +__CLC_GROUP_COLLECTIVE__DF16(_Z17__spirv_GroupFMaxiiDF16_, __spirv_GroupFMax) +__CLC_GROUP_COLLECTIVE__DF16(_Z20__spirv_GroupFMulKHRiiDF16_, __spirv_GroupFMulKHR) #undef __CLC_GROUP_COLLECTIVE__DF16 @@ -639,7 +639,7 @@ long __clc__3d_to_linear_local_id(ulong3 id) { #define __CLC_GROUP_BROADCAST(TYPE) \ _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT TYPE __spirv_GroupBroadcast( \ - uint scope, TYPE x, ulong local_id) { \ + int scope, TYPE x, ulong local_id) { \ if (scope == Subgroup) { \ return __clc__SubgroupShuffle(x, local_id); \ } \ @@ -654,17 +654,17 @@ long __clc__3d_to_linear_local_id(ulong3 id) { return result; \ } \ _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT TYPE __spirv_GroupBroadcast( \ - uint scope, TYPE x, ulong2 local_id) { \ + int scope, TYPE x, ulong2 local_id) { \ ulong linear_local_id = __clc__2d_to_linear_local_id(local_id); \ return __spirv_GroupBroadcast(scope, x, linear_local_id); \ } \ _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT TYPE __spirv_GroupBroadcast( \ - uint scope, TYPE x, ulong3 local_id) { \ + int scope, TYPE x, ulong3 local_id) { \ ulong linear_local_id = __clc__3d_to_linear_local_id(local_id); \ return __spirv_GroupBroadcast(scope, x, linear_local_id); \ } \ _CLC_DEF _CLC_OVERLOAD _CLC_CONVERGENT TYPE __spirv_GroupBroadcast( \ - uint scope, TYPE x, uint local_id) { \ + int scope, TYPE x, uint local_id) { \ return __spirv_GroupBroadcast(scope, x, (ulong)local_id); \ } __CLC_GROUP_BROADCAST(char); @@ -681,18 +681,18 @@ __CLC_GROUP_BROADCAST(double) // half requires additional mangled entry points _CLC_DEF _CLC_CONVERGENT half -_Z17__spirv_GroupBroadcastjDF16_m(uint scope, half x, ulong local_id) { +_Z17__spirv_GroupBroadcastiDF16_m(int scope, half x, ulong local_id) { return __spirv_GroupBroadcast(scope, x, local_id); } _CLC_DEF _CLC_CONVERGENT half -_Z17__spirv_GroupBroadcastjDF16_Dv2_m(uint scope, half x, ulong2 local_id) { +_Z17__spirv_GroupBroadcastiDF16_Dv2_m(int scope, half x, ulong2 local_id) { return __spirv_GroupBroadcast(scope, x, local_id); } _CLC_DEF _CLC_CONVERGENT half -_Z17__spirv_GroupBroadcastjDF16_Dv3_m(uint scope, half x, ulong3 local_id) { +_Z17__spirv_GroupBroadcastiDF16_Dv3_m(int scope, half x, ulong3 local_id) { return __spirv_GroupBroadcast(scope, x, local_id); } -_CLC_DEF _CLC_CONVERGENT half _Z22__spirv_GroupBroadcastjDF16_j(uint scope, +_CLC_DEF _CLC_CONVERGENT half _Z22__spirv_GroupBroadcastiDF16_j(int scope, half x, uint local_id) { return __spirv_GroupBroadcast(scope, x, (ulong)local_id); diff --git a/libclc/libspirv/lib/ptx-nvidiacl/group/group_non_uniform.cl b/libclc/libspirv/lib/ptx-nvidiacl/group/group_non_uniform.cl index 671dbb4535d76..3474f17666080 100644 --- a/libclc/libspirv/lib/ptx-nvidiacl/group/group_non_uniform.cl +++ b/libclc/libspirv/lib/ptx-nvidiacl/group/group_non_uniform.cl @@ -13,7 +13,7 @@ #include <libspirv/spirv_types.h> _CLC_DEF _CLC_CONVERGENT __clc_vec4_uint32_t -_Z29__spirv_GroupNonUniformBallotjb(unsigned flag, bool predicate) { +_Z29__spirv_GroupNonUniformBallotib(int flag, bool predicate) { // only support subgroup for now if (flag != Subgroup) { __builtin_trap(); @@ -38,7 +38,7 @@ _Z29__spirv_GroupNonUniformBallotjb(unsigned flag, bool predicate) { _CLC_DEF _CLC_CONVERGENT uint _Z37__spirv_GroupNonUniformBallotBitCountN5__spv5Scope4FlagEiDv4_j( - uint scope, uint flag, __clc_vec4_uint32_t mask) { + int scope, int flag, __clc_vec4_uint32_t mask) { // here we assume scope == __spv::Scope::Subgroup // flag == InclusiveScan is not yet implemented if (flag == Reduce) { diff --git a/libdevice/nativecpu_utils.cpp b/libdevice/nativecpu_utils.cpp index 6c6ae6d021d02..1b84903018c51 100644 --- a/libdevice/nativecpu_utils.cpp +++ b/libdevice/nativecpu_utils.cpp @@ -104,7 +104,7 @@ DefSubgroupBlockINTEL(uint8_t) DefSubgroupBlockINTEL(uint16_t) #define DefineGOp1(spir_sfx, name)\ DEVICE_EXTERN_C bool __mux_sub_group_##name##_i1(bool) noexcept;\ DEVICE_EXTERN_C bool __mux_work_group_##name##_i1(uint32_t id, bool val) noexcept;\ -DEVICE_EXTERNAL bool __spirv_Group ## spir_sfx(unsigned g, bool val) noexcept {\ +DEVICE_EXTERNAL bool __spirv_Group ## spir_sfx(int32_t g, bool val) noexcept {\ if (__spv::Scope::Flag::Subgroup == g)\ return __mux_sub_group_##name##_i1(val);\ else if (__spv::Scope::Flag::Workgroup == g)\ @@ -119,13 +119,13 @@ DefineGOp1(All, all) #define DefineGOp(Type, MuxType, spir_sfx, mux_sfx) \ DEVICE_EXTERN_C MuxType __mux_sub_group_scan_inclusive_##mux_sfx(MuxType) noexcept; \ DEVICE_EXTERN_C MuxType __mux_sub_group_scan_exclusive_##mux_sfx(MuxType) noexcept; \ - DEVICE_EXTERN_C MuxType __mux_sub_group_reduce_##mux_sfx(MuxType) noexcept; \ + DEVICE_EXTERN_C MuxType __mux_sub_group_reduce_##mux_sfx(MuxType) noexcept; \ DEVICE_EXTERN_C MuxType __mux_work_group_scan_exclusive_##mux_sfx(uint32_t, \ MuxType) noexcept; \ DEVICE_EXTERN_C MuxType __mux_work_group_scan_inclusive_##mux_sfx(uint32_t, \ MuxType) noexcept; \ DEVICE_EXTERN_C MuxType __mux_work_group_reduce_##mux_sfx(uint32_t, MuxType) noexcept;\ - DEVICE_EXTERNAL Type __spirv_Group##spir_sfx(uint32_t g, uint32_t id, \ + DEVICE_EXTERNAL Type __spirv_Group##spir_sfx(int32_t g, int32_t id, \ Type v) noexcept { \ if (__spv::Scope::Flag::Subgroup == g) { \ if (static_cast<unsigned>(__spv::GroupOperation::InclusiveScan) == id) \ @@ -203,7 +203,7 @@ DefineLogicalGroupOp(bool, bool, i1) int32_t sg_lid) noexcept; #define DefineBroadCastImpl(Type, Sfx, MuxType, IDType) \ - DEVICE_EXTERNAL Type __spirv_GroupBroadcast(uint32_t g, Type v, \ + DEVICE_EXTERNAL Type __spirv_GroupBroadcast(int32_t g, Type v, \ IDType l) noexcept { \ if (__spv::Scope::Flag::Subgroup == g) \ return __mux_sub_group_broadcast_##Sfx(v, l); \ @@ -211,16 +211,16 @@ DefineLogicalGroupOp(bool, bool, i1) return __mux_work_group_broadcast_##Sfx(0, v, l, 0, 0); \ } \ \ - DEVICE_EXTERNAL Type __spirv_GroupBroadcast(uint32_t g, Type v, \ - sycl::vec<IDType, 2>::vector_t l) noexcept{ \ + DEVICE_EXTERNAL Type __spirv_GroupBroadcast(int32_t g, Type v, \ + sycl::vec<IDType, 2>::vector_t l) noexcept { \ if (__spv::Scope::Flag::Subgroup == g) \ return __mux_sub_group_broadcast_##Sfx(v, l[0]); \ else \ return __mux_work_group_broadcast_##Sfx(0, v, l[0], l[1], 0); \ } \ \ - DEVICE_EXTERNAL Type __spirv_GroupBroadcast(uint32_t g, Type v, \ - sycl::vec<IDType, 3>::vector_t l) noexcept{ \ + DEVICE_EXTERNAL Type __spirv_GroupBroadcast(int32_t g, Type v, \ + sycl::vec<IDType, 3>::vector_t l) noexcept { \ if (__spv::Scope::Flag::Subgroup == g) \ return __mux_sub_group_broadcast_##Sfx(v, l[0]); \ else \ diff --git a/sycl/include/sycl/__spirv/spirv_ops.hpp b/sycl/include/sycl/__spirv/spirv_ops.hpp index f83067c8b2f4f..04cfec68e7679 100644 --- a/sycl/include/sycl/__spirv/spirv_ops.hpp +++ b/sycl/include/sycl/__spirv/spirv_ops.hpp @@ -883,7 +883,7 @@ extern __DPCPP_SYCL_EXTERNAL __ocl_vec_t<uint16_t, N> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT __ocl_vec_t<uint32_t, 4> - __spirv_GroupNonUniformBallot(uint32_t Execution, bool Predicate) noexcept; + __spirv_GroupNonUniformBallot(int32_t Execution, bool Predicate) noexcept; // TODO: I'm not 100% sure that these NonUniform instructions should be // convergent Following precedent set for GroupNonUniformBallot above @@ -911,137 +911,125 @@ __spirv_GroupNonUniformAny(__spv::Scope::Flag, bool); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformSMin(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformSMin(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformUMin(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformUMin(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformFMin(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformFMin(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformSMax(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformSMax(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformUMax(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformUMax(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformFMax(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformFMax(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformIAdd(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformIAdd(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformFAdd(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformFAdd(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformIMul(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformIMul(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformFMul(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformFMul(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformBitwiseOr(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformBitwiseOr(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformBitwiseXor(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformBitwiseXor(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformBitwiseAnd(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformBitwiseAnd(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformLogicalOr(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformLogicalOr(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformLogicalAnd(__spv::Scope::Flag, unsigned int, ValueT); +__spirv_GroupNonUniformLogicalAnd(__spv::Scope::Flag, int, ValueT); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformSMin(__spv::Scope::Flag, unsigned int, ValueT, - unsigned int); +__spirv_GroupNonUniformSMin(__spv::Scope::Flag, int, ValueT, unsigned int); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformUMin(__spv::Scope::Flag, unsigned int, ValueT, - unsigned int); +__spirv_GroupNonUniformUMin(__spv::Scope::Flag, int, ValueT, unsigned int); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformFMin(__spv::Scope::Flag, unsigned int, ValueT, - unsigned int); +__spirv_GroupNonUniformFMin(__spv::Scope::Flag, int, ValueT, unsigned int); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformSMax(__spv::Scope::Flag, unsigned int, ValueT, - unsigned int); +__spirv_GroupNonUniformSMax(__spv::Scope::Flag, int, ValueT, unsigned int); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformUMax(__spv::Scope::Flag, unsigned int, ValueT, - unsigned int); +__spirv_GroupNonUniformUMax(__spv::Scope::Flag, int, ValueT, unsigned int); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformFMax(__spv::Scope::Flag, unsigned int, ValueT, - unsigned int); +__spirv_GroupNonUniformFMax(__spv::Scope::Flag, int, ValueT, unsigned int); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformIAdd(__spv::Scope::Flag, unsigned int, ValueT, - unsigned int); +__spirv_GroupNonUniformIAdd(__spv::Scope::Flag, int, ValueT, unsigned int); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformFAdd(__spv::Scope::Flag, unsigned int, ValueT, - unsigned int); +__spirv_GroupNonUniformFAdd(__spv::Scope::Flag, int, ValueT, unsigned int); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformIMul(__spv::Scope::Flag, unsigned int, ValueT, - unsigned int); +__spirv_GroupNonUniformIMul(__spv::Scope::Flag, int, ValueT, unsigned int); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformFMul(__spv::Scope::Flag, unsigned int, ValueT, - unsigned int); +__spirv_GroupNonUniformFMul(__spv::Scope::Flag, int, ValueT, unsigned int); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformBitwiseOr(__spv::Scope::Flag, unsigned int, ValueT, - unsigned int); +__spirv_GroupNonUniformBitwiseOr(__spv::Scope::Flag, int, ValueT, unsigned int); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformBitwiseXor(__spv::Scope::Flag, unsigned int, ValueT, +__spirv_GroupNonUniformBitwiseXor(__spv::Scope::Flag, int, ValueT, unsigned int); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformBitwiseAnd(__spv::Scope::Flag, unsigned int, ValueT, +__spirv_GroupNonUniformBitwiseAnd(__spv::Scope::Flag, int, ValueT, unsigned int); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformLogicalOr(__spv::Scope::Flag, unsigned int, ValueT, - unsigned int); +__spirv_GroupNonUniformLogicalOr(__spv::Scope::Flag, int, ValueT, unsigned int); template <typename ValueT> __SYCL_CONVERGENT__ extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT ValueT -__spirv_GroupNonUniformLogicalAnd(__spv::Scope::Flag, unsigned int, ValueT, +__spirv_GroupNonUniformLogicalAnd(__spv::Scope::Flag, int, ValueT, unsigned int); extern __DPCPP_SYCL_EXTERNAL __SYCL_EXPORT void @@ -1208,9 +1196,9 @@ extern __DPCPP_SYCL_EXTERNAL void __spirv_TaskSequenceReleaseINTEL( template <typename dataT> __SYCL_CONVERGENT__ extern __ocl_event_t -__SYCL_OpGroupAsyncCopyGlobalToLocal(__spv::Scope::Flag, dataT *Dest, - const dataT *Src, size_t NumElements, - size_t Stride, __ocl_event_t) noexcept { +__SYCL_OpGroupAsyncCopyGlobalToLocal(int32_t, dataT *Dest, const dataT *Src, + size_t NumElements, size_t Stride, + __ocl_event_t) noexcept { for (size_t i = 0; i < NumElements; i++) { Dest[i] = Src[i * Stride]; } @@ -1220,9 +1208,9 @@ __SYCL_OpGroupAsyncCopyGlobalToLocal(__spv::Scope::Flag, dataT *Dest, template <typename dataT> __SYCL_CONVERGENT__ extern __ocl_event_t -__SYCL_OpGroupAsyncCopyLocalToGlobal(__spv::Scope::Flag, dataT *Dest, - const dataT *Src, size_t NumElements, - size_t Stride, __ocl_event_t) noexcept { +__SYCL_OpGroupAsyncCopyLocalToGlobal(int32_t, dataT *Dest, const dataT *Src, + size_t NumElements, size_t Stride, + __ocl_event_t) noexcept { for (size_t i = 0; i < NumElements; i++) { Dest[i * Stride] = Src[i]; } diff --git a/sycl/include/sycl/__spirv/spirv_types.hpp b/sycl/include/sycl/__spirv/spirv_types.hpp index 3a082b3fdf3aa..1aeb4cdd88c50 100644 --- a/sycl/include/sycl/__spirv/spirv_types.hpp +++ b/sycl/include/sycl/__spirv/spirv_types.hpp @@ -24,7 +24,7 @@ namespace __spv { struct Scope { - enum Flag : uint32_t { + enum Flag : int32_t { CrossDevice = 0, Device = 1, Workgroup = 2, @@ -34,13 +34,13 @@ struct Scope { constexpr Scope(Flag flag) : flag_value(flag) {} - constexpr operator uint32_t() const { return flag_value; } + constexpr operator int32_t() const { return flag_value; } Flag flag_value; }; struct StorageClass { - enum Flag : uint32_t { + enum Flag : int32_t { UniformConstant = 0, Input = 1, Uniform = 2, @@ -75,13 +75,13 @@ struct StorageClass { Max = 0x7fffffff, }; constexpr StorageClass(Flag flag) : flag_value(flag) {} - constexpr operator uint32_t() const { return flag_value; } + constexpr operator int32_t() const { return flag_value; } Flag flag_value; }; struct MemorySemanticsMask { - enum Flag : uint32_t { + enum Flag : int32_t { None = 0x0, Acquire = 0x2, Release = 0x4, @@ -97,12 +97,12 @@ struct MemorySemanticsMask { constexpr MemorySemanticsMask(Flag flag) : flag_value(flag) {} - constexpr operator uint32_t() const { return flag_value; } + constexpr operator int32_t() const { return flag_value; } Flag flag_value; }; -enum class GroupOperation : uint32_t { +enum class GroupOperation : int32_t { Reduce = 0, InclusiveScan = 1, ExclusiveScan = 2, diff --git a/sycl/test/check_device_code/group_operations.cpp b/sycl/test/check_device_code/group_operations.cpp index 7145b38c4f254..83b26c118ae4d 100644 --- a/sycl/test/check_device_code/group_operations.cpp +++ b/sycl/test/check_device_code/group_operations.cpp @@ -54,521 +54,521 @@ template <typename G> [[gnu::always_inline]] void test(G g) { SYCL_EXTERNAL void test_group(group<> g) { test(g); } // int8_t -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastji{{m|y}}(i32 2, i32 1, i64 0) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastji{{m|y}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastji{{m|y}}(i32 2, i32 1, i64 2) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastii{{m|y}}(i32 2, i32 1, i64 0) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastii{{m|y}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastii{{m|y}}(i32 2, i32 1, i64 2) // uint8_t -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjj{{m|y}}(i32 2, i32 1, i64 0) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjj{{m|y}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjj{{m|y}}(i32 2, i32 1, i64 2) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastij{{m|y}}(i32 2, i32 1, i64 0) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastij{{m|y}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastij{{m|y}}(i32 2, i32 1, i64 2) // int16_t -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastji{{m|y}}(i32 2, i32 1, i64 0) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastji{{m|y}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastji{{m|y}}(i32 2, i32 1, i64 2) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastii{{m|y}}(i32 2, i32 1, i64 0) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastii{{m|y}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastii{{m|y}}(i32 2, i32 1, i64 2) // uint16_t -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjj{{m|y}}(i32 2, i32 1, i64 0) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjj{{m|y}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjj{{m|y}}(i32 2, i32 1, i64 2) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastij{{m|y}}(i32 2, i32 1, i64 0) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastij{{m|y}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastij{{m|y}}(i32 2, i32 1, i64 2) // int32_t -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastji{{m|y}}(i32 2, i32 1, i64 0) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastji{{m|y}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastji{{m|y}}(i32 2, i32 1, i64 2) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastii{{m|y}}(i32 2, i32 1, i64 0) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastii{{m|y}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastii{{m|y}}(i32 2, i32 1, i64 2) // uint32_t -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 2, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 2, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 2, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjj{{m|y}}(i32 2, i32 1, i64 0) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjj{{m|y}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjj{{m|y}}(i32 2, i32 1, i64 2) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 2, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 2, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 2, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastij{{m|y}}(i32 2, i32 1, i64 0) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastij{{m|y}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastij{{m|y}}(i32 2, i32 1, i64 2) // int64_t (Linux: long, Windows: long long) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRjj{{l|x}}(i32 2, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRjj{{l|x}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRjj{{l|x}}(i32 2, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRjj{{l|x}}(i32 2, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRjj{{l|x}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRjj{{l|x}}(i32 2, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRjj{{l|x}}(i32 2, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRjj{{l|x}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRjj{{l|x}}(i32 2, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMaxjj{{l|x}}(i32 2, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMaxjj{{l|x}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMaxjj{{l|x}}(i32 2, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMinjj{{l|x}}(i32 2, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMinjj{{l|x}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMinjj{{l|x}}(i32 2, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRjj{{l|x}}(i32 2, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRjj{{l|x}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRjj{{l|x}}(i32 2, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddjj{{l|x}}(i32 2, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddjj{{l|x}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddjj{{l|x}}(i32 2, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcastj{{l|x}}{{m|y}}(i32 2, i64 1, i64 0) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcastj{{l|x}}{{m|y}}(i32 2, i64 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcastj{{l|x}}{{m|y}}(i32 2, i64 1, i64 2) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRii{{l|x}}(i32 2, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRii{{l|x}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRii{{l|x}}(i32 2, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRii{{l|x}}(i32 2, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRii{{l|x}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRii{{l|x}}(i32 2, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRii{{l|x}}(i32 2, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRii{{l|x}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRii{{l|x}}(i32 2, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMaxii{{l|x}}(i32 2, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMaxii{{l|x}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMaxii{{l|x}}(i32 2, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMinii{{l|x}}(i32 2, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMinii{{l|x}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMinii{{l|x}}(i32 2, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRii{{l|x}}(i32 2, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRii{{l|x}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRii{{l|x}}(i32 2, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddii{{l|x}}(i32 2, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddii{{l|x}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddii{{l|x}}(i32 2, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcasti{{l|x}}{{m|y}}(i32 2, i64 1, i64 0) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcasti{{l|x}}{{m|y}}(i32 2, i64 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcasti{{l|x}}{{m|y}}(i32 2, i64 1, i64 2) // uint64_t (Linux: unsigned long, Windows: unsigned long long) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRjj{{m|y}}(i32 2, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRjj{{m|y}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRjj{{m|y}}(i32 2, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRjj{{m|y}}(i32 2, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRjj{{m|y}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRjj{{m|y}}(i32 2, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRjj{{m|y}}(i32 2, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRjj{{m|y}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRjj{{m|y}}(i32 2, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMaxjj{{m|y}}(i32 2, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMaxjj{{m|y}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMaxjj{{m|y}}(i32 2, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMinjj{{m|y}}(i32 2, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMinjj{{m|y}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMinjj{{m|y}}(i32 2, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRjj{{m|y}}(i32 2, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRjj{{m|y}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRjj{{m|y}}(i32 2, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddjj{{m|y}}(i32 2, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddjj{{m|y}}(i32 2, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddjj{{m|y}}(i32 2, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcastj{{m|y}}{{m|y}}(i32 2, i64 1, i64 0) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcastj{{m|y}}{{m|y}}(i32 2, i64 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcastj{{m|y}}{{m|y}}(i32 2, i64 1, i64 2) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRii{{m|y}}(i32 2, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRii{{m|y}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRii{{m|y}}(i32 2, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRii{{m|y}}(i32 2, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRii{{m|y}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRii{{m|y}}(i32 2, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRii{{m|y}}(i32 2, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRii{{m|y}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRii{{m|y}}(i32 2, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMaxii{{m|y}}(i32 2, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMaxii{{m|y}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMaxii{{m|y}}(i32 2, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMinii{{m|y}}(i32 2, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMinii{{m|y}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMinii{{m|y}}(i32 2, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRii{{m|y}}(i32 2, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRii{{m|y}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRii{{m|y}}(i32 2, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddii{{m|y}}(i32 2, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddii{{m|y}}(i32 2, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddii{{m|y}}(i32 2, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcasti{{m|y}}{{m|y}}(i32 2, i64 1, i64 0) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcasti{{m|y}}{{m|y}}(i32 2, i64 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcasti{{m|y}}{{m|y}}(i32 2, i64 1, i64 2) // half (15360 = 0xH3C00 = 1) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMaxjjDF16_(i32 2, i32 0, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMaxjjDF16_(i32 2, i32 1, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMaxjjDF16_(i32 2, i32 2, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMinjjDF16_(i32 2, i32 0, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMinjjDF16_(i32 2, i32 1, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMinjjDF16_(i32 2, i32 2, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMulKHRjjDF16_(i32 2, i32 0, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMulKHRjjDF16_(i32 2, i32 1, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMulKHRjjDF16_(i32 2, i32 2, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFAddjjDF16_(i32 2, i32 0, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFAddjjDF16_(i32 2, i32 1, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFAddjjDF16_(i32 2, i32 2, half 0xH3C00) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjj{{m|y}}(i32 2, i32 15360, i64 0) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjj{{m|y}}(i32 2, i32 15360, i64 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjj{{m|y}}(i32 2, i32 15360, i64 2) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMaxiiDF16_(i32 2, i32 0, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMaxiiDF16_(i32 2, i32 1, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMaxiiDF16_(i32 2, i32 2, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMiniiDF16_(i32 2, i32 0, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMiniiDF16_(i32 2, i32 1, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMiniiDF16_(i32 2, i32 2, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMulKHRiiDF16_(i32 2, i32 0, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMulKHRiiDF16_(i32 2, i32 1, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMulKHRiiDF16_(i32 2, i32 2, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFAddiiDF16_(i32 2, i32 0, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFAddiiDF16_(i32 2, i32 1, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFAddiiDF16_(i32 2, i32 2, half 0xH3C00) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastij{{m|y}}(i32 2, i32 15360, i64 0) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastij{{m|y}}(i32 2, i32 15360, i64 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastij{{m|y}}(i32 2, i32 15360, i64 2) // float -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMaxjjf(i32 2, i32 0, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMaxjjf(i32 2, i32 1, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMaxjjf(i32 2, i32 2, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMinjjf(i32 2, i32 0, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMinjjf(i32 2, i32 1, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMinjjf(i32 2, i32 2, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMulKHRjjf(i32 2, i32 0, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMulKHRjjf(i32 2, i32 1, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMulKHRjjf(i32 2, i32 2, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFAddjjf(i32 2, i32 0, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFAddjjf(i32 2, i32 1, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFAddjjf(i32 2, i32 2, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupBroadcastjf{{m|y}}(i32 2, float 1.000000e+00, i64 0) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupBroadcastjf{{m|y}}(i32 2, float 1.000000e+00, i64 1) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupBroadcastjf{{m|y}}(i32 2, float 1.000000e+00, i64 2) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMaxiif(i32 2, i32 0, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMaxiif(i32 2, i32 1, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMaxiif(i32 2, i32 2, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMiniif(i32 2, i32 0, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMiniif(i32 2, i32 1, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMiniif(i32 2, i32 2, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMulKHRiif(i32 2, i32 0, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMulKHRiif(i32 2, i32 1, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMulKHRiif(i32 2, i32 2, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFAddiif(i32 2, i32 0, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFAddiif(i32 2, i32 1, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFAddiif(i32 2, i32 2, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupBroadcastif{{m|y}}(i32 2, float 1.000000e+00, i64 0) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupBroadcastif{{m|y}}(i32 2, float 1.000000e+00, i64 1) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupBroadcastif{{m|y}}(i32 2, float 1.000000e+00, i64 2) // double -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMaxjjd(i32 2, i32 0, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMaxjjd(i32 2, i32 1, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMaxjjd(i32 2, i32 2, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMinjjd(i32 2, i32 0, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMinjjd(i32 2, i32 1, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMinjjd(i32 2, i32 2, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMulKHRjjd(i32 2, i32 0, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMulKHRjjd(i32 2, i32 1, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMulKHRjjd(i32 2, i32 2, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFAddjjd(i32 2, i32 0, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFAddjjd(i32 2, i32 1, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFAddjjd(i32 2, i32 2, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupBroadcastjd{{m|y}}(i32 2, double 1.000000e+00, i64 0) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupBroadcastjd{{m|y}}(i32 2, double 1.000000e+00, i64 1) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupBroadcastjd{{m|y}}(i32 2, double 1.000000e+00, i64 2) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMaxiid(i32 2, i32 0, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMaxiid(i32 2, i32 1, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMaxiid(i32 2, i32 2, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMiniid(i32 2, i32 0, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMiniid(i32 2, i32 1, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMiniid(i32 2, i32 2, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMulKHRiid(i32 2, i32 0, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMulKHRiid(i32 2, i32 1, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMulKHRiid(i32 2, i32 2, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFAddiid(i32 2, i32 0, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFAddiid(i32 2, i32 1, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFAddiid(i32 2, i32 2, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupBroadcastid{{m|y}}(i32 2, double 1.000000e+00, i64 0) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupBroadcastid{{m|y}}(i32 2, double 1.000000e+00, i64 1) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupBroadcastid{{m|y}}(i32 2, double 1.000000e+00, i64 2) SYCL_EXTERNAL void test_sub_group(sub_group g) { test(g); } // int8_t -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjij(i32 3, i32 1, i32 0) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjij(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjij(i32 3, i32 1, i32 2) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastiij(i32 3, i32 1, i32 0) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastiij(i32 3, i32 1, i32 2) // uint8_t -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjjj(i32 3, i32 1, i32 0) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjjj(i32 3, i32 1, i32 2) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastijj(i32 3, i32 1, i32 0) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastijj(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastijj(i32 3, i32 1, i32 2) // int16_t -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjij(i32 3, i32 1, i32 0) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjij(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjij(i32 3, i32 1, i32 2) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastiij(i32 3, i32 1, i32 0) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastiij(i32 3, i32 1, i32 2) // uint16_t -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjjj(i32 3, i32 1, i32 0) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjjj(i32 3, i32 1, i32 2) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastijj(i32 3, i32 1, i32 0) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastijj(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastijj(i32 3, i32 1, i32 2) // int32_t -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMinjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjji(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjij(i32 3, i32 1, i32 0) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjij(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjij(i32 3, i32 1, i32 2) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMaxiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupSMiniii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiii(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastiij(i32 3, i32 1, i32 0) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastiij(i32 3, i32 1, i32 2) // uint32_t -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMinjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 3, i32 0, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddjjj(i32 3, i32 2, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjjj(i32 3, i32 1, i32 0) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjjj(i32 3, i32 1, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjjj(i32 3, i32 1, i32 2) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseAndKHRiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseOrKHRiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBitwiseXorKHRiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMaxiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupUMiniij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIMulKHRiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 3, i32 0, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupIAddiij(i32 3, i32 2, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastijj(i32 3, i32 1, i32 0) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastijj(i32 3, i32 1, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastijj(i32 3, i32 1, i32 2) // int64_t (Linux: long, Windows: long long) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRjj{{l|x}}(i32 3, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRjj{{l|x}}(i32 3, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRjj{{l|x}}(i32 3, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRjj{{l|x}}(i32 3, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRjj{{l|x}}(i32 3, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRjj{{l|x}}(i32 3, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRjj{{l|x}}(i32 3, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRjj{{l|x}}(i32 3, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRjj{{l|x}}(i32 3, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMaxjj{{l|x}}(i32 3, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMaxjj{{l|x}}(i32 3, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMaxjj{{l|x}}(i32 3, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMinjj{{l|x}}(i32 3, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMinjj{{l|x}}(i32 3, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMinjj{{l|x}}(i32 3, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRjj{{l|x}}(i32 3, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRjj{{l|x}}(i32 3, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRjj{{l|x}}(i32 3, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddjj{{l|x}}(i32 3, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddjj{{l|x}}(i32 3, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddjj{{l|x}}(i32 3, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcastj{{l|x}}j(i32 3, i64 1, i32 0) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcastj{{l|x}}j(i32 3, i64 1, i32 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcastj{{l|x}}j(i32 3, i64 1, i32 2) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRii{{l|x}}(i32 3, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRii{{l|x}}(i32 3, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRii{{l|x}}(i32 3, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRii{{l|x}}(i32 3, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRii{{l|x}}(i32 3, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRii{{l|x}}(i32 3, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRii{{l|x}}(i32 3, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRii{{l|x}}(i32 3, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRii{{l|x}}(i32 3, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMaxii{{l|x}}(i32 3, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMaxii{{l|x}}(i32 3, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMaxii{{l|x}}(i32 3, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMinii{{l|x}}(i32 3, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMinii{{l|x}}(i32 3, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupSMinii{{l|x}}(i32 3, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRii{{l|x}}(i32 3, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRii{{l|x}}(i32 3, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRii{{l|x}}(i32 3, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddii{{l|x}}(i32 3, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddii{{l|x}}(i32 3, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddii{{l|x}}(i32 3, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcasti{{l|x}}j(i32 3, i64 1, i32 0) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcasti{{l|x}}j(i32 3, i64 1, i32 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcasti{{l|x}}j(i32 3, i64 1, i32 2) // uint64_t (Linux: unsigned long, Windows: unsigned long long) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRjj{{m|y}}(i32 3, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRjj{{m|y}}(i32 3, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRjj{{m|y}}(i32 3, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRjj{{m|y}}(i32 3, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRjj{{m|y}}(i32 3, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRjj{{m|y}}(i32 3, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRjj{{m|y}}(i32 3, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRjj{{m|y}}(i32 3, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRjj{{m|y}}(i32 3, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMaxjj{{m|y}}(i32 3, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMaxjj{{m|y}}(i32 3, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMaxjj{{m|y}}(i32 3, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMinjj{{m|y}}(i32 3, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMinjj{{m|y}}(i32 3, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMinjj{{m|y}}(i32 3, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRjj{{m|y}}(i32 3, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRjj{{m|y}}(i32 3, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRjj{{m|y}}(i32 3, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddjj{{m|y}}(i32 3, i32 0, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddjj{{m|y}}(i32 3, i32 1, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddjj{{m|y}}(i32 3, i32 2, i64 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcastj{{m|y}}j(i32 3, i64 1, i32 0) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcastj{{m|y}}j(i32 3, i64 1, i32 1) -// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcastj{{m|y}}j(i32 3, i64 1, i32 2) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRii{{m|y}}(i32 3, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRii{{m|y}}(i32 3, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseAndKHRii{{m|y}}(i32 3, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRii{{m|y}}(i32 3, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRii{{m|y}}(i32 3, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseOrKHRii{{m|y}}(i32 3, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRii{{m|y}}(i32 3, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRii{{m|y}}(i32 3, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBitwiseXorKHRii{{m|y}}(i32 3, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMaxii{{m|y}}(i32 3, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMaxii{{m|y}}(i32 3, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMaxii{{m|y}}(i32 3, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMinii{{m|y}}(i32 3, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMinii{{m|y}}(i32 3, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupUMinii{{m|y}}(i32 3, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRii{{m|y}}(i32 3, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRii{{m|y}}(i32 3, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIMulKHRii{{m|y}}(i32 3, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddii{{m|y}}(i32 3, i32 0, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddii{{m|y}}(i32 3, i32 1, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupIAddii{{m|y}}(i32 3, i32 2, i64 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcasti{{m|y}}j(i32 3, i64 1, i32 0) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcasti{{m|y}}j(i32 3, i64 1, i32 1) +// CHECK: call spir_func i64 @_Z[[#]]__spirv_GroupBroadcasti{{m|y}}j(i32 3, i64 1, i32 2) // half (15360 = 0xH3C00 = 1) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMaxjjDF16_(i32 3, i32 0, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMaxjjDF16_(i32 3, i32 1, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMaxjjDF16_(i32 3, i32 2, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMinjjDF16_(i32 3, i32 0, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMinjjDF16_(i32 3, i32 1, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMinjjDF16_(i32 3, i32 2, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMulKHRjjDF16_(i32 3, i32 0, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMulKHRjjDF16_(i32 3, i32 1, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMulKHRjjDF16_(i32 3, i32 2, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFAddjjDF16_(i32 3, i32 0, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFAddjjDF16_(i32 3, i32 1, half 0xH3C00) -// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFAddjjDF16_(i32 3, i32 2, half 0xH3C00) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjjj(i32 3, i32 15360, i32 0) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjjj(i32 3, i32 15360, i32 1) -// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastjjj(i32 3, i32 15360, i32 2) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMaxiiDF16_(i32 3, i32 0, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMaxiiDF16_(i32 3, i32 1, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMaxiiDF16_(i32 3, i32 2, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMiniiDF16_(i32 3, i32 0, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMiniiDF16_(i32 3, i32 1, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMiniiDF16_(i32 3, i32 2, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMulKHRiiDF16_(i32 3, i32 0, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMulKHRiiDF16_(i32 3, i32 1, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFMulKHRiiDF16_(i32 3, i32 2, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFAddiiDF16_(i32 3, i32 0, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFAddiiDF16_(i32 3, i32 1, half 0xH3C00) +// CHECK: call spir_func half @_Z[[#]]__spirv_GroupFAddiiDF16_(i32 3, i32 2, half 0xH3C00) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastijj(i32 3, i32 15360, i32 0) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastijj(i32 3, i32 15360, i32 1) +// CHECK: call spir_func i32 @_Z[[#]]__spirv_GroupBroadcastijj(i32 3, i32 15360, i32 2) // float -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMaxjjf(i32 3, i32 0, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMaxjjf(i32 3, i32 1, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMaxjjf(i32 3, i32 2, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMinjjf(i32 3, i32 0, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMinjjf(i32 3, i32 1, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMinjjf(i32 3, i32 2, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMulKHRjjf(i32 3, i32 0, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMulKHRjjf(i32 3, i32 1, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMulKHRjjf(i32 3, i32 2, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFAddjjf(i32 3, i32 0, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFAddjjf(i32 3, i32 1, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFAddjjf(i32 3, i32 2, float 1.000000e+00) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupBroadcastjfj(i32 3, float 1.000000e+00, i32 0) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupBroadcastjfj(i32 3, float 1.000000e+00, i32 1) -// CHECK: call spir_func float @_Z[[#]]__spirv_GroupBroadcastjfj(i32 3, float 1.000000e+00, i32 2) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMaxiif(i32 3, i32 0, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMaxiif(i32 3, i32 1, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMaxiif(i32 3, i32 2, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMiniif(i32 3, i32 0, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMiniif(i32 3, i32 1, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMiniif(i32 3, i32 2, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMulKHRiif(i32 3, i32 0, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMulKHRiif(i32 3, i32 1, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFMulKHRiif(i32 3, i32 2, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFAddiif(i32 3, i32 0, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFAddiif(i32 3, i32 1, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupFAddiif(i32 3, i32 2, float 1.000000e+00) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupBroadcastifj(i32 3, float 1.000000e+00, i32 0) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupBroadcastifj(i32 3, float 1.000000e+00, i32 1) +// CHECK: call spir_func float @_Z[[#]]__spirv_GroupBroadcastifj(i32 3, float 1.000000e+00, i32 2) // double -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMaxjjd(i32 3, i32 0, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMaxjjd(i32 3, i32 1, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMaxjjd(i32 3, i32 2, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMinjjd(i32 3, i32 0, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMinjjd(i32 3, i32 1, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMinjjd(i32 3, i32 2, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMulKHRjjd(i32 3, i32 0, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMulKHRjjd(i32 3, i32 1, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMulKHRjjd(i32 3, i32 2, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFAddjjd(i32 3, i32 0, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFAddjjd(i32 3, i32 1, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFAddjjd(i32 3, i32 2, double 1.000000e+00) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupBroadcastjdj(i32 3, double 1.000000e+00, i32 0) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupBroadcastjdj(i32 3, double 1.000000e+00, i32 1) -// CHECK: call spir_func double @_Z[[#]]__spirv_GroupBroadcastjdj(i32 3, double 1.000000e+00, i32 2) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMaxiid(i32 3, i32 0, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMaxiid(i32 3, i32 1, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMaxiid(i32 3, i32 2, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMiniid(i32 3, i32 0, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMiniid(i32 3, i32 1, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMiniid(i32 3, i32 2, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMulKHRiid(i32 3, i32 0, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMulKHRiid(i32 3, i32 1, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFMulKHRiid(i32 3, i32 2, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFAddiid(i32 3, i32 0, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFAddiid(i32 3, i32 1, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupFAddiid(i32 3, i32 2, double 1.000000e+00) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupBroadcastidj(i32 3, double 1.000000e+00, i32 0) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupBroadcastidj(i32 3, double 1.000000e+00, i32 1) +// CHECK: call spir_func double @_Z[[#]]__spirv_GroupBroadcastidj(i32 3, double 1.000000e+00, i32 2) diff --git a/sycl/test/check_device_code/sub_group_mask.cpp b/sycl/test/check_device_code/sub_group_mask.cpp index 2a7c0b14a914f..533cb584d1c97 100644 --- a/sycl/test/check_device_code/sub_group_mask.cpp +++ b/sycl/test/check_device_code/sub_group_mask.cpp @@ -7,4 +7,4 @@ using namespace sycl; SYCL_EXTERNAL void test_group_mask(sub_group g) { ext::oneapi::group_ballot(g, true); } -// CHECK: %{{.*}} = call spir_func <4 x i32> @_Z[[#]]__spirv_GroupNonUniformBallotjb(i32 {{.*}}, i1{{.*}}) +// CHECK: %{{.*}} = call spir_func <4 x i32> @_Z[[#]]__spirv_GroupNonUniformBallotib(i32 {{.*}}, i1{{.*}})