@@ -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