@@ -1895,25 +1895,26 @@ let Extension = FunctionExtension<"cl_khr_kernel_clock __opencl_c_kernel_clock_s
18951895}
18961896
18971897//--------------------------------------------------------------------
1898- // Intel different sub-group extensions.
1899- def FuncExtIntelSubgroups : FunctionExtension<"cl_intel_subgroups">;
1900- def FuncExtIntelSubgroupsShort : FunctionExtension<"cl_intel_subgroups_short">;
1901- def FuncExtIntelSubgroupsChar : FunctionExtension<"cl_intel_subgroups_char">;
1902- def FuncExtIntelSubgroupsLong : FunctionExtension<"cl_intel_subgroups_long">;
1898+ // Intel extensions.
1899+ def FuncExtIntelBfloat16Conversions : FunctionExtension<"cl_intel_bfloat16_conversions">;
1900+ def FuncExtIntelSplitWorkGroupBarrier : FunctionExtension<"cl_intel_split_work_group_barrier">;
19031901def FuncExtIntelSubgroupBufferPrefetch : FunctionExtension<"cl_intel_subgroup_buffer_prefetch">;
19041902def FuncExtIntelSubgroupLocalBlockIO : FunctionExtension<"cl_intel_subgroup_local_block_io">;
1905- def FuncExtIntelBfloat16Conversions : FunctionExtension<"cl_intel_bfloat16_conversions">;
1906- def FuncExtIntelSubgroupsRWImages : FunctionExtension<"cl_intel_subgroups __opencl_c_read_write_images">;
1907- def FuncExtIntelSubgroupsShortRWImages : FunctionExtension<"cl_intel_subgroups_short __opencl_c_read_write_images">;
1903+ def FuncExtIntelSubgroups : FunctionExtension<"cl_intel_subgroups">;
1904+ def FuncExtIntelSubgroupsChar : FunctionExtension<"cl_intel_subgroups_char">;
1905+ def FuncExtIntelSubgroupsCharLocalBlockIO : FunctionExtension<"cl_intel_subgroups_char cl_intel_subgroup_local_block_io">;
1906+ def FuncExtIntelSubgroupsCharPrefetch : FunctionExtension<"cl_intel_subgroups_char cl_intel_subgroup_buffer_prefetch">;
19081907def FuncExtIntelSubgroupsCharRWImages : FunctionExtension<"cl_intel_subgroups_char __opencl_c_read_write_images">;
1908+ def FuncExtIntelSubgroupsLong : FunctionExtension<"cl_intel_subgroups_long">;
1909+ def FuncExtIntelSubgroupsLongLocalBlockIO : FunctionExtension<"cl_intel_subgroups_long cl_intel_subgroup_local_block_io">;
1910+ def FuncExtIntelSubgroupsLongPrefetch : FunctionExtension<"cl_intel_subgroups_long cl_intel_subgroup_buffer_prefetch">;
19091911def FuncExtIntelSubgroupsLongRWImages : FunctionExtension<"cl_intel_subgroups_long __opencl_c_read_write_images">;
19101912def FuncExtIntelSubgroupsPrefetch : FunctionExtension<"cl_intel_subgroups cl_intel_subgroup_buffer_prefetch">;
1911- def FuncExtIntelSubgroupsShortPrefetch : FunctionExtension<"cl_intel_subgroups_short cl_intel_subgroup_buffer_prefetch">;
1912- def FuncExtIntelSubgroupsCharPrefetch : FunctionExtension<"cl_intel_subgroups_char cl_intel_subgroup_buffer_prefetch">;
1913- def FuncExtIntelSubgroupsLongPrefetch : FunctionExtension<"cl_intel_subgroups_long cl_intel_subgroup_buffer_prefetch">;
1913+ def FuncExtIntelSubgroupsRWImages : FunctionExtension<"cl_intel_subgroups __opencl_c_read_write_images">;
1914+ def FuncExtIntelSubgroupsShort : FunctionExtension<"cl_intel_subgroups_short">;
19141915def FuncExtIntelSubgroupsShortLocalBlockIO : FunctionExtension<"cl_intel_subgroups_short cl_intel_subgroup_local_block_io">;
1915- def FuncExtIntelSubgroupsCharLocalBlockIO : FunctionExtension<"cl_intel_subgroups_char cl_intel_subgroup_local_block_io ">;
1916- def FuncExtIntelSubgroupsLongLocalBlockIO : FunctionExtension<"cl_intel_subgroups_long cl_intel_subgroup_local_block_io ">;
1916+ def FuncExtIntelSubgroupsShortPrefetch : FunctionExtension<"cl_intel_subgroups_short cl_intel_subgroup_buffer_prefetch ">;
1917+ def FuncExtIntelSubgroupsShortRWImages : FunctionExtension<"cl_intel_subgroups_short __opencl_c_read_write_images ">;
19171918
19181919// cl_intel_subgroups - shuffle functions
19191920// intel_sub_group_shuffle(T, uint) for float/int/uint vectors, half/double
@@ -2285,6 +2286,18 @@ let Extension = FuncExtIntelBfloat16Conversions in {
22852286 def : Builtin<"intel_convert_as_bfloat1616_float16", [VectorType<Float, 16>, VectorType<UShort, 16>], Attr.Const>;
22862287}
22872288
2289+ let Extension = FuncExtIntelSplitWorkGroupBarrier in {
2290+ def : Builtin<"intel_work_group_barrier_arrive", [Void, MemFenceFlags], Attr.Convergent>;
2291+ let MinVersion = CL20 in {
2292+ def : Builtin<"intel_work_group_barrier_arrive", [Void, MemFenceFlags, MemoryScope], Attr.Convergent>;
2293+ }
2294+
2295+ def : Builtin<"intel_work_group_barrier_wait", [Void, MemFenceFlags], Attr.Convergent>;
2296+ let MinVersion = CL20 in {
2297+ def : Builtin<"intel_work_group_barrier_wait", [Void, MemFenceFlags, MemoryScope], Attr.Convergent>;
2298+ }
2299+ }
2300+
22882301//--------------------------------------------------------------------
22892302// Arm extensions.
22902303let Extension = ArmIntegerDotProductInt8 in {
0 commit comments