@@ -443,16 +443,16 @@ EnableIfNativeShuffle<T> SubgroupShuffleXor(T x, id<1> local_id) {
443
443
}
444
444
445
445
template <typename T>
446
- EnableIfNativeShuffle<T> SubgroupShuffleDown (T x, T y, id<1 > local_id) {
446
+ EnableIfNativeShuffle<T> SubgroupShuffleDown (T x, id<1 > local_id) {
447
447
using OCLT = detail::ConvertToOpenCLType_t<T>;
448
448
return __spirv_SubgroupShuffleDownINTEL (
449
- OCLT (x), OCLT (y ), static_cast <uint32_t >(local_id.get (0 )));
449
+ OCLT (x), OCLT (x ), static_cast <uint32_t >(local_id.get (0 )));
450
450
}
451
451
452
452
template <typename T>
453
- EnableIfNativeShuffle<T> SubgroupShuffleUp (T x, T y, id<1 > local_id) {
453
+ EnableIfNativeShuffle<T> SubgroupShuffleUp (T x, id<1 > local_id) {
454
454
using OCLT = detail::ConvertToOpenCLType_t<T>;
455
- return __spirv_SubgroupShuffleUpINTEL (OCLT (x), OCLT (y ),
455
+ return __spirv_SubgroupShuffleUpINTEL (OCLT (x), OCLT (x ),
456
456
static_cast <uint32_t >(local_id.get (0 )));
457
457
}
458
458
@@ -488,22 +488,20 @@ EnableIfBitcastShuffle<T> SubgroupShuffleXor(T x, id<1> local_id) {
488
488
}
489
489
490
490
template <typename T>
491
- EnableIfBitcastShuffle<T> SubgroupShuffleDown (T x, T y, id<1 > local_id) {
491
+ EnableIfBitcastShuffle<T> SubgroupShuffleDown (T x, id<1 > local_id) {
492
492
using ShuffleT = ConvertToNativeShuffleType_t<T>;
493
493
auto ShuffleX = detail::bit_cast<ShuffleT>(x);
494
- auto ShuffleY = detail::bit_cast<ShuffleT>(y);
495
494
ShuffleT Result = __spirv_SubgroupShuffleDownINTEL (
496
- ShuffleX, ShuffleY , static_cast <uint32_t >(local_id.get (0 )));
495
+ ShuffleX, ShuffleX , static_cast <uint32_t >(local_id.get (0 )));
497
496
return detail::bit_cast<T>(Result);
498
497
}
499
498
500
499
template <typename T>
501
- EnableIfBitcastShuffle<T> SubgroupShuffleUp (T x, T y, id<1 > local_id) {
500
+ EnableIfBitcastShuffle<T> SubgroupShuffleUp (T x, id<1 > local_id) {
502
501
using ShuffleT = ConvertToNativeShuffleType_t<T>;
503
502
auto ShuffleX = detail::bit_cast<ShuffleT>(x);
504
- auto ShuffleY = detail::bit_cast<ShuffleT>(y);
505
503
ShuffleT Result = __spirv_SubgroupShuffleUpINTEL (
506
- ShuffleX, ShuffleY , static_cast <uint32_t >(local_id.get (0 )));
504
+ ShuffleX, ShuffleX , static_cast <uint32_t >(local_id.get (0 )));
507
505
return detail::bit_cast<T>(Result);
508
506
}
509
507
@@ -550,33 +548,29 @@ EnableIfGenericShuffle<T> SubgroupShuffleXor(T x, id<1> local_id) {
550
548
}
551
549
552
550
template <typename T>
553
- EnableIfGenericShuffle<T> SubgroupShuffleDown (T x, T y, id<1 > local_id) {
551
+ EnableIfGenericShuffle<T> SubgroupShuffleDown (T x, id<1 > local_id) {
554
552
T Result;
555
553
char *XBytes = reinterpret_cast <char *>(&x);
556
- char *YBytes = reinterpret_cast <char *>(&y);
557
554
char *ResultBytes = reinterpret_cast <char *>(&Result);
558
555
auto ShuffleBytes = [=](size_t Offset, size_t Size ) {
559
- uint64_t ShuffleX, ShuffleY, ShuffleResult;
556
+ uint64_t ShuffleX, ShuffleResult;
560
557
detail::memcpy (&ShuffleX, XBytes + Offset, Size );
561
- detail::memcpy (&ShuffleY, YBytes + Offset, Size );
562
- ShuffleResult = SubgroupShuffleDown (ShuffleX, ShuffleY, local_id);
558
+ ShuffleResult = SubgroupShuffleDown (ShuffleX, local_id);
563
559
detail::memcpy (ResultBytes + Offset, &ShuffleResult, Size );
564
560
};
565
561
GenericCall<T>(ShuffleBytes);
566
562
return Result;
567
563
}
568
564
569
565
template <typename T>
570
- EnableIfGenericShuffle<T> SubgroupShuffleUp (T x, T y, id<1 > local_id) {
566
+ EnableIfGenericShuffle<T> SubgroupShuffleUp (T x, id<1 > local_id) {
571
567
T Result;
572
568
char *XBytes = reinterpret_cast <char *>(&x);
573
- char *YBytes = reinterpret_cast <char *>(&y);
574
569
char *ResultBytes = reinterpret_cast <char *>(&Result);
575
570
auto ShuffleBytes = [=](size_t Offset, size_t Size ) {
576
- uint64_t ShuffleX, ShuffleY, ShuffleResult;
571
+ uint64_t ShuffleX, ShuffleResult;
577
572
detail::memcpy (&ShuffleX, XBytes + Offset, Size );
578
- detail::memcpy (&ShuffleY, YBytes + Offset, Size );
579
- ShuffleResult = SubgroupShuffleUp (ShuffleX, ShuffleY, local_id);
573
+ ShuffleResult = SubgroupShuffleUp (ShuffleX, local_id);
580
574
detail::memcpy (ResultBytes + Offset, &ShuffleResult, Size );
581
575
};
582
576
GenericCall<T>(ShuffleBytes);
0 commit comments