@@ -219,8 +219,9 @@ struct sub_group {
219
219
220
220
/* --- one-input shuffles --- */
221
221
/* indices in [0 , sub_group size) */
222
-
223
- template <typename T> T shuffle (T x, id_type local_id) const {
222
+ template <typename T>
223
+ __SYCL_DEPRECATED (" Shuffles in the sub-group class are deprecated." )
224
+ T shuffle (T x, id_type local_id) const {
224
225
#ifdef __SYCL_DEVICE_ONLY__
225
226
return sycl::detail::spirv::SubgroupShuffle (x, local_id);
226
227
#else
@@ -231,7 +232,9 @@ struct sub_group {
231
232
#endif
232
233
}
233
234
234
- template <typename T> T shuffle_down (T x, uint32_t delta) const {
235
+ template <typename T>
236
+ __SYCL_DEPRECATED (" Shuffles in the sub-group class are deprecated." )
237
+ T shuffle_down (T x, uint32_t delta) const {
235
238
#ifdef __SYCL_DEVICE_ONLY__
236
239
return sycl::detail::spirv::SubgroupShuffleDown (x, delta);
237
240
#else
@@ -242,7 +245,9 @@ struct sub_group {
242
245
#endif
243
246
}
244
247
245
- template <typename T> T shuffle_up (T x, uint32_t delta) const {
248
+ template <typename T>
249
+ __SYCL_DEPRECATED (" Shuffles in the sub-group class are deprecated." )
250
+ T shuffle_up (T x, uint32_t delta) const {
246
251
#ifdef __SYCL_DEVICE_ONLY__
247
252
return sycl::detail::spirv::SubgroupShuffleUp (x, delta);
248
253
#else
@@ -253,7 +258,9 @@ struct sub_group {
253
258
#endif
254
259
}
255
260
256
- template <typename T> T shuffle_xor (T x, id_type value) const {
261
+ template <typename T>
262
+ __SYCL_DEPRECATED (" Shuffles in the sub-group class are deprecated." )
263
+ T shuffle_xor (T x, id_type value) const {
257
264
#ifdef __SYCL_DEVICE_ONLY__
258
265
return sycl::detail::spirv::SubgroupShuffleXor (x, value);
259
266
#else
@@ -358,7 +365,7 @@ struct sub_group {
358
365
}
359
366
return res;
360
367
}
361
- #else // __NVPTX__ || __AMDGCN__
368
+ #else // __NVPTX__ || __AMDGCN__
362
369
template <int N, typename CVT, access::address_space Space,
363
370
access::decorated IsDecorated, typename T = std::remove_cv_t <CVT>>
364
371
std::enable_if_t <
@@ -608,6 +615,7 @@ struct sub_group {
608
615
}
609
616
610
617
/* --- synchronization functions --- */
618
+ __SYCL_DEPRECATED (" Sub-group barrier with no arguments is deprecated." )
611
619
void barrier () const {
612
620
#ifdef __SYCL_DEVICE_ONLY__
613
621
__spirv_ControlBarrier (
@@ -636,6 +644,7 @@ struct sub_group {
636
644
#endif
637
645
}
638
646
647
+ #ifndef __INTEL_PREVIEW_BREAKING_CHANGES__
639
648
/* --- deprecated collective functions --- */
640
649
template <typename T>
641
650
__SYCL_DEPRECATED (" Collectives in the sub-group class are deprecated. Use "
@@ -752,6 +761,7 @@ struct sub_group {
752
761
" Sub-groups are not supported on host." );
753
762
#endif
754
763
}
764
+ #endif // __INTEL_PREVIEW_BREAKING_CHANGES__
755
765
756
766
linear_id_type get_group_linear_range () const {
757
767
#ifdef __SYCL_DEVICE_ONLY__
0 commit comments