@@ -3254,12 +3254,26 @@ half SPIRV_OVERLOADABLE SPIRV_BUILTIN(GroupNonUniformShuffle, _i32_f16_i32, )(in
3254
3254
}
3255
3255
#endif // defined(cl_khr_fp16)
3256
3256
3257
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS (GroupNonUniformShuffle , char , int , char , uint , i32 , i8 , i32 )
3258
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS (GroupNonUniformShuffle , short , int , short , uint , i32 , i16 , i32 )
3259
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS (GroupNonUniformShuffle , int , int , int , uint , i32 , i32 , i32 )
3260
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS (GroupNonUniformShuffle , long , int , long , uint , i32 , i64 , i32 )
3261
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS (GroupNonUniformShuffle , float , int , float , uint , i32 , f32 , i32 )
3262
+ #if defined(cl_khr_fp64 )
3263
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS (GroupNonUniformShuffle , double , int , double , uint , i32 , f64 , i32 )
3264
+ #endif // defined(cl_khr_fp64)
3265
+ #if defined(cl_khr_fp16 )
3266
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS (GroupNonUniformShuffle , half , int , half , uint , i32 , f16 , i32 )
3267
+ #endif // defined(cl_khr_fp16)
3268
+
3257
3269
#define DEFN_SUB_GROUP_SHUFFLE_XOR (TYPE , TYPE_ABBR ) \
3258
3270
TYPE SPIRV_OVERLOADABLE SPIRV_BUILTIN(GroupNonUniformShuffleXor, _i32_##TYPE_ABBR##_i32, )(int Execution, TYPE x, uint c) \
3259
3271
{ \
3260
3272
c = get_sub_group_local_id() ^ c; \
3261
3273
return SPIRV_BUILTIN(GroupNonUniformShuffle, _i32_##TYPE_ABBR##_i32, )(Execution, x, c); \
3262
- }
3274
+ } \
3275
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS(GroupNonUniformShuffleXor, TYPE, int, TYPE, uint, i32, TYPE_ABBR, i32)
3276
+
3263
3277
3264
3278
DEFN_SUB_GROUP_SHUFFLE_XOR (char , i8 )
3265
3279
DEFN_SUB_GROUP_SHUFFLE_XOR (short , i16 )
@@ -3377,6 +3391,19 @@ half SPIRV_OVERLOADABLE SPIRV_BUILTIN(GroupNonUniformShuffleDown, _i32_f16_i32,
3377
3391
}
3378
3392
#endif // defined(cl_khr_fp16)
3379
3393
3394
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS (GroupNonUniformShuffleDown , char , int , char , uint , i32 , i8 , i32 )
3395
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS (GroupNonUniformShuffleDown , short , int , short , uint , i32 , i16 , i32 )
3396
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS (GroupNonUniformShuffleDown , int , int , int , uint , i32 , i32 , i32 )
3397
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS (GroupNonUniformShuffleDown , long , int , long , uint , i32 , i64 , i32 )
3398
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS (GroupNonUniformShuffleDown , float , int , float , uint , i32 , f32 , i32 )
3399
+ #if defined(cl_khr_fp64 )
3400
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS (GroupNonUniformShuffleDown , double , int , double , uint , i32 , f64 , i32 )
3401
+ #endif // defined(cl_khr_fp64)
3402
+ #if defined(cl_khr_fp16 )
3403
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS (GroupNonUniformShuffleDown , half , int , half , uint , i32 , f16 , i32 )
3404
+ #endif // defined(cl_khr_fp16)
3405
+
3406
+
3380
3407
// Shuffle up functions
3381
3408
#define DEFN_NON_UNIFORM_SHUFFLE_UP (TYPE , TYPE_ABBR ) \
3382
3409
TYPE SPIRV_OVERLOADABLE SPIRV_BUILTIN(GroupNonUniformShuffleUp, _i32_##TYPE_ABBR##_i32, )(int Execution, TYPE x, uint c) \
@@ -3390,7 +3417,8 @@ TYPE SPIRV_OVERLOADABLE SPIRV_BUILTIN(GroupNonUniformShuffleUp, _i32_##TYPE_ABBR
3390
3417
return intel_sub_group_shuffle_up((TYPE) 0, x, c); \
3391
3418
} \
3392
3419
return 0; \
3393
- }
3420
+ } \
3421
+ GENERATE_SPIRV_VECTOR_FUNCTIONS_3ARGS_SVS(GroupNonUniformShuffleUp, TYPE, int, TYPE, uint, i32, TYPE_ABBR, i32)
3394
3422
3395
3423
DEFN_NON_UNIFORM_SHUFFLE_UP (char , i8 )
3396
3424
DEFN_NON_UNIFORM_SHUFFLE_UP (short , i16 )
0 commit comments