@@ -17482,7 +17482,50 @@ double __ovld __conv intel_sub_group_shuffle_up( double prev, double cur, uint
17482
17482
double __ovld __conv intel_sub_group_shuffle_xor( double, uint );
17483
17483
#endif
17484
17484
17485
- #endif //cl_intel_subgroups
17485
+ #if defined(cl_intel_subgroups_char) || defined(cl_intel_subgroups_short) || \
17486
+ defined(cl_intel_subgroups_long)
17487
+
17488
+ #if defined(__opencl_c_images)
17489
+ uint __ovld __conv intel_sub_group_block_read_ui(read_only image2d_t, int2);
17490
+ uint2 __ovld __conv intel_sub_group_block_read_ui2(read_only image2d_t, int2);
17491
+ uint4 __ovld __conv intel_sub_group_block_read_ui4(read_only image2d_t, int2);
17492
+ uint8 __ovld __conv intel_sub_group_block_read_ui8(read_only image2d_t, int2);
17493
+ #endif // defined(__opencl_c_images)
17494
+
17495
+ #if defined(__opencl_c_read_write_images)
17496
+ uint __ovld __conv intel_sub_group_block_read_ui(read_write image2d_t, int2);
17497
+ uint2 __ovld __conv intel_sub_group_block_read_ui2(read_write image2d_t, int2);
17498
+ uint4 __ovld __conv intel_sub_group_block_read_ui4(read_write image2d_t, int2);
17499
+ uint8 __ovld __conv intel_sub_group_block_read_ui8(read_write image2d_t, int2);
17500
+ #endif // defined(__opencl_c_read_write_images)
17501
+
17502
+ uint __ovld __conv intel_sub_group_block_read_ui( const __global uint* p );
17503
+ uint2 __ovld __conv intel_sub_group_block_read_ui2( const __global uint* p );
17504
+ uint4 __ovld __conv intel_sub_group_block_read_ui4( const __global uint* p );
17505
+ uint8 __ovld __conv intel_sub_group_block_read_ui8( const __global uint* p );
17506
+
17507
+ #if defined(__opencl_c_images)
17508
+ void __ovld __conv intel_sub_group_block_write_ui(read_only image2d_t, int2, uint);
17509
+ void __ovld __conv intel_sub_group_block_write_ui2(read_only image2d_t, int2, uint2);
17510
+ void __ovld __conv intel_sub_group_block_write_ui4(read_only image2d_t, int2, uint4);
17511
+ void __ovld __conv intel_sub_group_block_write_ui8(read_only image2d_t, int2, uint8);
17512
+ #endif // defined(__opencl_c_images)
17513
+
17514
+ #if defined(__opencl_c_read_write_images)
17515
+ void __ovld __conv intel_sub_group_block_write_ui(read_write image2d_t, int2, uint);
17516
+ void __ovld __conv intel_sub_group_block_write_ui2(read_write image2d_t, int2, uint2);
17517
+ void __ovld __conv intel_sub_group_block_write_ui4(read_write image2d_t, int2, uint4);
17518
+ void __ovld __conv intel_sub_group_block_write_ui8(read_write image2d_t, int2, uint8);
17519
+ #endif // defined(__opencl_c_read_write_images)
17520
+
17521
+ void __ovld __conv intel_sub_group_block_write_ui( __global uint* p, uint data );
17522
+ void __ovld __conv intel_sub_group_block_write_ui2( __global uint* p, uint2 data );
17523
+ void __ovld __conv intel_sub_group_block_write_ui4( __global uint* p, uint4 data );
17524
+ void __ovld __conv intel_sub_group_block_write_ui8( __global uint* p, uint8 data );
17525
+
17526
+ #endif // defined(cl_intel_subgroups_char) || defined(cl_intel_subgroups_short) ||
17527
+ // defined(cl_intel_subgroups_long)
17528
+ #endif // cl_intel_subgroups
17486
17529
17487
17530
#if defined(cl_intel_subgroups_short)
17488
17531
short __ovld __conv intel_sub_group_broadcast( short , uint sub_group_local_id );
@@ -17574,44 +17617,6 @@ ushort __ovld __conv intel_sub_group_scan_inclusive_min( ushort x );
17574
17617
short __ovld __conv intel_sub_group_scan_inclusive_max( short x );
17575
17618
ushort __ovld __conv intel_sub_group_scan_inclusive_max( ushort x );
17576
17619
17577
- #if defined(__opencl_c_images)
17578
- uint __ovld __conv intel_sub_group_block_read_ui(read_only image2d_t, int2);
17579
- uint2 __ovld __conv intel_sub_group_block_read_ui2(read_only image2d_t, int2);
17580
- uint4 __ovld __conv intel_sub_group_block_read_ui4(read_only image2d_t, int2);
17581
- uint8 __ovld __conv intel_sub_group_block_read_ui8(read_only image2d_t, int2);
17582
- #endif // defined(__opencl_c_images)
17583
-
17584
- #if defined(__opencl_c_read_write_images)
17585
- uint __ovld __conv intel_sub_group_block_read_ui(read_write image2d_t, int2);
17586
- uint2 __ovld __conv intel_sub_group_block_read_ui2(read_write image2d_t, int2);
17587
- uint4 __ovld __conv intel_sub_group_block_read_ui4(read_write image2d_t, int2);
17588
- uint8 __ovld __conv intel_sub_group_block_read_ui8(read_write image2d_t, int2);
17589
- #endif // defined(__opencl_c_read_write_images)
17590
-
17591
- uint __ovld __conv intel_sub_group_block_read_ui( const __global uint* p );
17592
- uint2 __ovld __conv intel_sub_group_block_read_ui2( const __global uint* p );
17593
- uint4 __ovld __conv intel_sub_group_block_read_ui4( const __global uint* p );
17594
- uint8 __ovld __conv intel_sub_group_block_read_ui8( const __global uint* p );
17595
-
17596
- #if defined(__opencl_c_images)
17597
- void __ovld __conv intel_sub_group_block_write_ui(read_only image2d_t, int2, uint);
17598
- void __ovld __conv intel_sub_group_block_write_ui2(read_only image2d_t, int2, uint2);
17599
- void __ovld __conv intel_sub_group_block_write_ui4(read_only image2d_t, int2, uint4);
17600
- void __ovld __conv intel_sub_group_block_write_ui8(read_only image2d_t, int2, uint8);
17601
- #endif //defined(__opencl_c_images)
17602
-
17603
- #if defined(__opencl_c_read_write_images)
17604
- void __ovld __conv intel_sub_group_block_write_ui(read_write image2d_t, int2, uint);
17605
- void __ovld __conv intel_sub_group_block_write_ui2(read_write image2d_t, int2, uint2);
17606
- void __ovld __conv intel_sub_group_block_write_ui4(read_write image2d_t, int2, uint4);
17607
- void __ovld __conv intel_sub_group_block_write_ui8(read_write image2d_t, int2, uint8);
17608
- #endif // defined(__opencl_c_read_write_images)
17609
-
17610
- void __ovld __conv intel_sub_group_block_write_ui( __global uint* p, uint data );
17611
- void __ovld __conv intel_sub_group_block_write_ui2( __global uint* p, uint2 data );
17612
- void __ovld __conv intel_sub_group_block_write_ui4( __global uint* p, uint4 data );
17613
- void __ovld __conv intel_sub_group_block_write_ui8( __global uint* p, uint8 data );
17614
-
17615
17620
#if defined(__opencl_c_images)
17616
17621
ushort __ovld __conv intel_sub_group_block_read_us(read_only image2d_t, int2);
17617
17622
ushort2 __ovld __conv intel_sub_group_block_read_us2(read_only image2d_t, int2);
@@ -17657,6 +17662,185 @@ void __ovld __conv intel_sub_group_block_write_us8( __global ushort* p, u
17657
17662
void __ovld __conv intel_sub_group_block_write_us16( __global ushort* p, ushort16 data );
17658
17663
#endif // cl_intel_subgroups_short
17659
17664
17665
+ #if defined(cl_intel_subgroups_char)
17666
+ char __ovld __conv intel_sub_group_broadcast( char , uint sub_group_local_id );
17667
+ char2 __ovld __conv intel_sub_group_broadcast( char2, uint sub_group_local_id );
17668
+ char3 __ovld __conv intel_sub_group_broadcast( char3, uint sub_group_local_id );
17669
+ char4 __ovld __conv intel_sub_group_broadcast( char4, uint sub_group_local_id );
17670
+ char8 __ovld __conv intel_sub_group_broadcast( char8, uint sub_group_local_id );
17671
+
17672
+ uchar __ovld __conv intel_sub_group_broadcast( uchar , uint sub_group_local_id );
17673
+ uchar2 __ovld __conv intel_sub_group_broadcast( uchar2, uint sub_group_local_id );
17674
+ uchar3 __ovld __conv intel_sub_group_broadcast( uchar3, uint sub_group_local_id );
17675
+ uchar4 __ovld __conv intel_sub_group_broadcast( uchar4, uint sub_group_local_id );
17676
+ uchar8 __ovld __conv intel_sub_group_broadcast( uchar8, uint sub_group_local_id );
17677
+
17678
+ char __ovld __conv intel_sub_group_shuffle( char , uint );
17679
+ char2 __ovld __conv intel_sub_group_shuffle( char2 , uint );
17680
+ char3 __ovld __conv intel_sub_group_shuffle( char3 , uint );
17681
+ char4 __ovld __conv intel_sub_group_shuffle( char4 , uint );
17682
+ char8 __ovld __conv intel_sub_group_shuffle( char8 , uint );
17683
+ char16 __ovld __conv intel_sub_group_shuffle( char16, uint);
17684
+
17685
+ uchar __ovld __conv intel_sub_group_shuffle( uchar , uint );
17686
+ uchar2 __ovld __conv intel_sub_group_shuffle( uchar2 , uint );
17687
+ uchar3 __ovld __conv intel_sub_group_shuffle( uchar3 , uint );
17688
+ uchar4 __ovld __conv intel_sub_group_shuffle( uchar4 , uint );
17689
+ uchar8 __ovld __conv intel_sub_group_shuffle( uchar8 , uint );
17690
+ uchar16 __ovld __conv intel_sub_group_shuffle( uchar16, uint );
17691
+
17692
+ char __ovld __conv intel_sub_group_shuffle_down( char cur, char next, uint );
17693
+ char2 __ovld __conv intel_sub_group_shuffle_down( char2 cur, char2 next, uint );
17694
+ char3 __ovld __conv intel_sub_group_shuffle_down( char3 cur, char3 next, uint );
17695
+ char4 __ovld __conv intel_sub_group_shuffle_down( char4 cur, char4 next, uint );
17696
+ char8 __ovld __conv intel_sub_group_shuffle_down( char8 cur, char8 next, uint );
17697
+ char16 __ovld __conv intel_sub_group_shuffle_down( char16 cur, char16 next, uint );
17698
+
17699
+ uchar __ovld __conv intel_sub_group_shuffle_down( uchar cur, uchar next, uint );
17700
+ uchar2 __ovld __conv intel_sub_group_shuffle_down( uchar2 cur, uchar2 next, uint );
17701
+ uchar3 __ovld __conv intel_sub_group_shuffle_down( uchar3 cur, uchar3 next, uint );
17702
+ uchar4 __ovld __conv intel_sub_group_shuffle_down( uchar4 cur, uchar4 next, uint );
17703
+ uchar8 __ovld __conv intel_sub_group_shuffle_down( uchar8 cur, uchar8 next, uint );
17704
+ uchar16 __ovld __conv intel_sub_group_shuffle_down( uchar16 cur, uchar16 next, uint );
17705
+
17706
+ char __ovld __conv intel_sub_group_shuffle_up( char cur, char next, uint );
17707
+ char2 __ovld __conv intel_sub_group_shuffle_up( char2 cur, char2 next, uint );
17708
+ char3 __ovld __conv intel_sub_group_shuffle_up( char3 cur, char3 next, uint );
17709
+ char4 __ovld __conv intel_sub_group_shuffle_up( char4 cur, char4 next, uint );
17710
+ char8 __ovld __conv intel_sub_group_shuffle_up( char8 cur, char8 next, uint );
17711
+ char16 __ovld __conv intel_sub_group_shuffle_up( char16 cur, char16 next, uint );
17712
+
17713
+ uchar __ovld __conv intel_sub_group_shuffle_up( uchar cur, uchar next, uint );
17714
+ uchar2 __ovld __conv intel_sub_group_shuffle_up( uchar2 cur, uchar2 next, uint );
17715
+ uchar3 __ovld __conv intel_sub_group_shuffle_up( uchar3 cur, uchar3 next, uint );
17716
+ uchar4 __ovld __conv intel_sub_group_shuffle_up( uchar4 cur, uchar4 next, uint );
17717
+ uchar8 __ovld __conv intel_sub_group_shuffle_up( uchar8 cur, uchar8 next, uint );
17718
+ uchar16 __ovld __conv intel_sub_group_shuffle_up( uchar16 cur, uchar16 next, uint );
17719
+
17720
+ char __ovld __conv intel_sub_group_shuffle_xor( char , uint );
17721
+ char2 __ovld __conv intel_sub_group_shuffle_xor( char2 , uint );
17722
+ char3 __ovld __conv intel_sub_group_shuffle_xor( char3 , uint );
17723
+ char4 __ovld __conv intel_sub_group_shuffle_xor( char4 , uint );
17724
+ char8 __ovld __conv intel_sub_group_shuffle_xor( char8 , uint );
17725
+ char16 __ovld __conv intel_sub_group_shuffle_xor( char16, uint );
17726
+
17727
+ uchar __ovld __conv intel_sub_group_shuffle_xor( uchar , uint );
17728
+ uchar2 __ovld __conv intel_sub_group_shuffle_xor( uchar2 , uint );
17729
+ uchar3 __ovld __conv intel_sub_group_shuffle_xor( uchar3 , uint );
17730
+ uchar4 __ovld __conv intel_sub_group_shuffle_xor( uchar4 , uint );
17731
+ uchar8 __ovld __conv intel_sub_group_shuffle_xor( uchar8 , uint );
17732
+ uchar16 __ovld __conv intel_sub_group_shuffle_xor( uchar16, uint );
17733
+
17734
+ char __ovld __conv intel_sub_group_reduce_add( char x );
17735
+ uchar __ovld __conv intel_sub_group_reduce_add( uchar x );
17736
+ char __ovld __conv intel_sub_group_reduce_min( char x );
17737
+ uchar __ovld __conv intel_sub_group_reduce_min( uchar x );
17738
+ char __ovld __conv intel_sub_group_reduce_max( char x );
17739
+ uchar __ovld __conv intel_sub_group_reduce_max( uchar x );
17740
+
17741
+ char __ovld __conv intel_sub_group_scan_exclusive_add( char x );
17742
+ uchar __ovld __conv intel_sub_group_scan_exclusive_add( uchar x );
17743
+ char __ovld __conv intel_sub_group_scan_exclusive_min( char x );
17744
+ uchar __ovld __conv intel_sub_group_scan_exclusive_min( uchar x );
17745
+ char __ovld __conv intel_sub_group_scan_exclusive_max( char x );
17746
+ uchar __ovld __conv intel_sub_group_scan_exclusive_max( uchar x );
17747
+
17748
+ char __ovld __conv intel_sub_group_scan_inclusive_add( char x );
17749
+ uchar __ovld __conv intel_sub_group_scan_inclusive_add( uchar x );
17750
+ char __ovld __conv intel_sub_group_scan_inclusive_min( char x );
17751
+ uchar __ovld __conv intel_sub_group_scan_inclusive_min( uchar x );
17752
+ char __ovld __conv intel_sub_group_scan_inclusive_max( char x );
17753
+ uchar __ovld __conv intel_sub_group_scan_inclusive_max( uchar x );
17754
+
17755
+ #if defined(__opencl_c_images)
17756
+ uchar __ovld __conv intel_sub_group_block_read_uc(read_only image2d_t, int2);
17757
+ uchar2 __ovld __conv intel_sub_group_block_read_uc2(read_only image2d_t, int2);
17758
+ uchar4 __ovld __conv intel_sub_group_block_read_uc4(read_only image2d_t, int2);
17759
+ uchar8 __ovld __conv intel_sub_group_block_read_uc8(read_only image2d_t, int2);
17760
+ uchar16 __ovld __conv intel_sub_group_block_read_uc16(read_only image2d_t, int2);
17761
+ #endif // defined(__opencl_c_images)
17762
+
17763
+ #if defined(__opencl_c_read_write_images)
17764
+ uchar __ovld __conv intel_sub_group_block_read_uc(read_write image2d_t, int2);
17765
+ uchar2 __ovld __conv intel_sub_group_block_read_uc2(read_write image2d_t, int2);
17766
+ uchar4 __ovld __conv intel_sub_group_block_read_uc4(read_write image2d_t, int2);
17767
+ uchar8 __ovld __conv intel_sub_group_block_read_uc8(read_write image2d_t, int2);
17768
+ uchar16 __ovld __conv intel_sub_group_block_read_uc16(read_write image2d_t, int2);
17769
+ #endif // defined(__opencl_c_read_write_images)
17770
+
17771
+ uchar __ovld __conv intel_sub_group_block_read_uc( const __global uchar* p );
17772
+ uchar2 __ovld __conv intel_sub_group_block_read_uc2( const __global uchar* p );
17773
+ uchar4 __ovld __conv intel_sub_group_block_read_uc4( const __global uchar* p );
17774
+ uchar8 __ovld __conv intel_sub_group_block_read_uc8( const __global uchar* p );
17775
+ uchar16 __ovld __conv intel_sub_group_block_read_uc16( const __global uchar* p );
17776
+
17777
+ #if defined(__opencl_c_images)
17778
+ void __ovld __conv intel_sub_group_block_write_uc(write_only image2d_t, int2, uchar);
17779
+ void __ovld __conv intel_sub_group_block_write_uc2(write_only image2d_t, int2, uchar2);
17780
+ void __ovld __conv intel_sub_group_block_write_uc4(write_only image2d_t, int2, uchar4);
17781
+ void __ovld __conv intel_sub_group_block_write_uc8(write_only image2d_t, int2, uchar8);
17782
+ void __ovld __conv intel_sub_group_block_write_uc16(write_only image2d_t, int2, uchar16);
17783
+ #endif // defined(__opencl_c_images)
17784
+
17785
+ #if defined(__opencl_c_read_write_images)
17786
+ void __ovld __conv intel_sub_group_block_write_uc(read_write image2d_t, int2, uchar);
17787
+ void __ovld __conv intel_sub_group_block_write_uc2(read_write image2d_t, int2, uchar2);
17788
+ void __ovld __conv intel_sub_group_block_write_uc4(read_write image2d_t, int2, uchar4);
17789
+ void __ovld __conv intel_sub_group_block_write_uc8(read_write image2d_t, int2, uchar8);
17790
+ void __ovld __conv intel_sub_group_block_write_uc16(read_write image2d_t, int2, uchar16);
17791
+ #endif // defined(__opencl_c_read_write_images)
17792
+
17793
+ void __ovld __conv intel_sub_group_block_write_uc( __global uchar* p, uchar data );
17794
+ void __ovld __conv intel_sub_group_block_write_uc2( __global uchar* p, uchar2 data );
17795
+ void __ovld __conv intel_sub_group_block_write_uc4( __global uchar* p, uchar4 data );
17796
+ void __ovld __conv intel_sub_group_block_write_uc8( __global uchar* p, uchar8 data );
17797
+ void __ovld __conv intel_sub_group_block_write_uc16( __global uchar* p, uchar16 data );
17798
+ #endif // cl_intel_subgroups_char
17799
+
17800
+ #if defined(cl_intel_subgroups_long)
17801
+ #if defined(__opencl_c_images)
17802
+ ulong __ovld __conv intel_sub_group_block_read_ul(read_only image2d_t, int2);
17803
+ ulong2 __ovld __conv intel_sub_group_block_read_ul2(read_only image2d_t, int2);
17804
+ ulong4 __ovld __conv intel_sub_group_block_read_ul4(read_only image2d_t, int2);
17805
+ ulong8 __ovld __conv intel_sub_group_block_read_ul8(read_only image2d_t, int2);
17806
+ ulong16 __ovld __conv intel_sub_group_block_read_ul16(read_only image2d_t, int2);
17807
+ #endif // defined(__opencl_c_images)
17808
+
17809
+ #if defined(__opencl_c_read_write_images)
17810
+ ulong __ovld __conv intel_sub_group_block_read_ul(read_write image2d_t, int2);
17811
+ ulong2 __ovld __conv intel_sub_group_block_read_ul2(read_write image2d_t, int2);
17812
+ ulong4 __ovld __conv intel_sub_group_block_read_ul4(read_write image2d_t, int2);
17813
+ ulong8 __ovld __conv intel_sub_group_block_read_ul8(read_write image2d_t, int2);
17814
+ ulong16 __ovld __conv intel_sub_group_block_read_ul16(read_write image2d_t, int2);
17815
+ #endif // defined(__opencl_c_read_write_images)
17816
+
17817
+ ulong __ovld __conv intel_sub_group_block_read_ul( const __global ulong* p );
17818
+ ulong2 __ovld __conv intel_sub_group_block_read_ul2( const __global ulong* p );
17819
+ ulong4 __ovld __conv intel_sub_group_block_read_ul4( const __global ulong* p );
17820
+ ulong8 __ovld __conv intel_sub_group_block_read_ul8( const __global ulong* p );
17821
+
17822
+ #if defined(__opencl_c_images)
17823
+ void __ovld __conv intel_sub_group_block_write_ul(write_only image2d_t, int2, ulong);
17824
+ void __ovld __conv intel_sub_group_block_write_ul2(write_only image2d_t, int2, ulong2);
17825
+ void __ovld __conv intel_sub_group_block_write_ul4(write_only image2d_t, int2, ulong4);
17826
+ void __ovld __conv intel_sub_group_block_write_ul8(write_only image2d_t, int2, ulong8);
17827
+ void __ovld __conv intel_sub_group_block_write_ul16(write_only image2d_t, int2, ulong16);
17828
+ #endif // defined(__opencl_c_images)
17829
+
17830
+ #if defined(__opencl_c_read_write_images)
17831
+ void __ovld __conv intel_sub_group_block_write_ul(read_write image2d_t, int2, ulong);
17832
+ void __ovld __conv intel_sub_group_block_write_ul2(read_write image2d_t, int2, ulong2);
17833
+ void __ovld __conv intel_sub_group_block_write_ul4(read_write image2d_t, int2, ulong4);
17834
+ void __ovld __conv intel_sub_group_block_write_ul8(read_write image2d_t, int2, ulong8);
17835
+ void __ovld __conv intel_sub_group_block_write_ul16(read_write image2d_t, int2, ulong16);
17836
+ #endif // defined(__opencl_c_read_write_images)
17837
+
17838
+ void __ovld __conv intel_sub_group_block_write_ul( __global ulong* p, ulong data );
17839
+ void __ovld __conv intel_sub_group_block_write_ul2( __global ulong* p, ulong2 data );
17840
+ void __ovld __conv intel_sub_group_block_write_ul4( __global ulong* p, ulong4 data );
17841
+ void __ovld __conv intel_sub_group_block_write_ul8( __global ulong* p, ulong8 data);
17842
+ #endif // cl_intel_subgroups_long
17843
+
17660
17844
#ifdef cl_intel_device_side_avc_motion_estimation
17661
17845
#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : begin
17662
17846
0 commit comments