@@ -946,11 +946,12 @@ EnableIfNativeShuffle<T> Shuffle(GroupT g, T x, id<1> local_id) {
946946 return result;
947947 } else if constexpr (ext::oneapi::experimental::is_user_constructed_group_v<
948948 GroupT>) {
949- return __spirv_GroupNonUniformShuffle (group_scope<GroupT>::value,
950- convertToOpenCLType (x), LocalId);
949+ return convertFromOpenCLTypeFor<T>( __spirv_GroupNonUniformShuffle (
950+ group_scope<GroupT>::value, convertToOpenCLType (x), LocalId) );
951951 } else {
952952 // Subgroup.
953- return __spirv_SubgroupShuffleINTEL (convertToOpenCLType (x), LocalId);
953+ return convertFromOpenCLTypeFor<T>(
954+ __spirv_SubgroupShuffleINTEL (convertToOpenCLType (x), LocalId));
954955 }
955956#else
956957 if constexpr (ext::oneapi::experimental::is_user_constructed_group_v<
@@ -987,8 +988,8 @@ EnableIfNativeShuffle<T> ShuffleXor(GroupT g, T x, id<1> mask) {
987988 convertToOpenCLType (x), TargetId);
988989 } else {
989990 // Subgroup.
990- return __spirv_SubgroupShuffleXorINTEL (convertToOpenCLType (x),
991- static_cast <uint32_t >(mask.get (0 )));
991+ return convertFromOpenCLTypeFor<T>( __spirv_SubgroupShuffleXorINTEL (
992+ convertToOpenCLType (x), static_cast <uint32_t >(mask.get (0 ) )));
992993 }
993994#else
994995 if constexpr (ext::oneapi::experimental::is_user_constructed_group_v<
@@ -1035,8 +1036,8 @@ EnableIfNativeShuffle<T> ShuffleDown(GroupT g, T x, uint32_t delta) {
10351036 convertToOpenCLType (x), TargetId);
10361037 } else {
10371038 // Subgroup.
1038- return __spirv_SubgroupShuffleDownINTEL (convertToOpenCLType (x),
1039- convertToOpenCLType (x), delta);
1039+ return convertFromOpenCLTypeFor<T>( __spirv_SubgroupShuffleDownINTEL (
1040+ convertToOpenCLType (x), convertToOpenCLType (x), delta) );
10401041 }
10411042#else
10421043 if constexpr (ext::oneapi::experimental::is_user_constructed_group_v<
@@ -1079,8 +1080,8 @@ EnableIfNativeShuffle<T> ShuffleUp(GroupT g, T x, uint32_t delta) {
10791080 convertToOpenCLType (x), TargetId);
10801081 } else {
10811082 // Subgroup.
1082- return __spirv_SubgroupShuffleUpINTEL (convertToOpenCLType (x),
1083- convertToOpenCLType (x), delta);
1083+ return convertFromOpenCLTypeFor<T>( __spirv_SubgroupShuffleUpINTEL (
1084+ convertToOpenCLType (x), convertToOpenCLType (x), delta) );
10841085 }
10851086#else
10861087 if constexpr (ext::oneapi::experimental::is_user_constructed_group_v<
0 commit comments