Skip to content

Commit 5c289da

Browse files
vmustyaMaetveis
andauthored
[Clang][OpenCL] Add support for the cl_intel_subgroup_buffer_prefetch (#170532)
The commit adds support for the cl_intel_subgroup_buffer_prefetch OpenCL extension. The extension introduces a new built-in functions that allow prefetching data from a global memory to caches as a subgroup-level operation. The extension is defined here: https://registry.khronos.org/OpenCL/extensions/intel/cl_intel_subgroup_buffer_prefetch.html --------- Co-authored-by: Mészáros Gergely <[email protected]>
1 parent 6d60d3d commit 5c289da

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

clang/lib/Headers/opencl-c.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17525,6 +17525,13 @@ void __ovld __conv intel_sub_group_block_write_ui8( __global uint* p, uint
1752517525

1752617526
#endif // defined(cl_intel_subgroups_char) || defined(cl_intel_subgroups_short) ||
1752717527
// defined(cl_intel_subgroups_long)
17528+
17529+
#if defined(cl_intel_subgroup_buffer_prefetch)
17530+
void __ovld __conv intel_sub_group_block_prefetch_ui(const __global uint *p);
17531+
void __ovld __conv intel_sub_group_block_prefetch_ui2(const __global uint *p);
17532+
void __ovld __conv intel_sub_group_block_prefetch_ui4(const __global uint *p);
17533+
void __ovld __conv intel_sub_group_block_prefetch_ui8(const __global uint *p);
17534+
#endif // defined(cl_intel_subgroup_buffer_prefetch)
1752817535
#endif // cl_intel_subgroups
1752917536

1753017537
#if defined(cl_intel_subgroups_short)
@@ -17660,6 +17667,14 @@ void __ovld __conv intel_sub_group_block_write_us2( __global ushort* p, u
1766017667
void __ovld __conv intel_sub_group_block_write_us4( __global ushort* p, ushort4 data );
1766117668
void __ovld __conv intel_sub_group_block_write_us8( __global ushort* p, ushort8 data );
1766217669
void __ovld __conv intel_sub_group_block_write_us16( __global ushort* p, ushort16 data );
17670+
17671+
#if defined(cl_intel_subgroup_buffer_prefetch)
17672+
void __ovld __conv intel_sub_group_block_prefetch_us(const __global ushort *p);
17673+
void __ovld __conv intel_sub_group_block_prefetch_us2(const __global ushort *p);
17674+
void __ovld __conv intel_sub_group_block_prefetch_us4(const __global ushort *p);
17675+
void __ovld __conv intel_sub_group_block_prefetch_us8(const __global ushort *p);
17676+
void __ovld __conv intel_sub_group_block_prefetch_us16(const __global ushort *p);
17677+
#endif // defined(cl_intel_subgroup_buffer_prefetch)
1766317678
#endif // cl_intel_subgroups_short
1766417679

1766517680
#if defined(cl_intel_subgroups_char)
@@ -17795,6 +17810,14 @@ void __ovld __conv intel_sub_group_block_write_uc2( __global uchar* p, uc
1779517810
void __ovld __conv intel_sub_group_block_write_uc4( __global uchar* p, uchar4 data );
1779617811
void __ovld __conv intel_sub_group_block_write_uc8( __global uchar* p, uchar8 data );
1779717812
void __ovld __conv intel_sub_group_block_write_uc16( __global uchar* p, uchar16 data );
17813+
17814+
#if defined(cl_intel_subgroup_buffer_prefetch)
17815+
void __ovld __conv intel_sub_group_block_prefetch_uc(const __global uchar *p);
17816+
void __ovld __conv intel_sub_group_block_prefetch_uc2(const __global uchar *p);
17817+
void __ovld __conv intel_sub_group_block_prefetch_uc4(const __global uchar *p);
17818+
void __ovld __conv intel_sub_group_block_prefetch_uc8(const __global uchar *p);
17819+
void __ovld __conv intel_sub_group_block_prefetch_uc16(const __global uchar *p);
17820+
#endif // defined(cl_intel_subgroup_buffer_prefetch)
1779817821
#endif // cl_intel_subgroups_char
1779917822

1780017823
#if defined(cl_intel_subgroups_long)
@@ -17839,6 +17862,13 @@ void __ovld __conv intel_sub_group_block_write_ul( __global ulong* p, ul
1783917862
void __ovld __conv intel_sub_group_block_write_ul2( __global ulong* p, ulong2 data );
1784017863
void __ovld __conv intel_sub_group_block_write_ul4( __global ulong* p, ulong4 data );
1784117864
void __ovld __conv intel_sub_group_block_write_ul8( __global ulong* p, ulong8 data);
17865+
17866+
#if defined(cl_intel_subgroup_buffer_prefetch)
17867+
void __ovld __conv intel_sub_group_block_prefetch_ul(const __global ulong *p);
17868+
void __ovld __conv intel_sub_group_block_prefetch_ul2(const __global ulong *p);
17869+
void __ovld __conv intel_sub_group_block_prefetch_ul4(const __global ulong *p);
17870+
void __ovld __conv intel_sub_group_block_prefetch_ul8(const __global ulong *p);
17871+
#endif // defined(cl_intel_subgroup_buffer_prefetch)
1784217872
#endif // cl_intel_subgroups_long
1784317873

1784417874
#if defined(cl_intel_subgroup_local_block_io)

0 commit comments

Comments
 (0)