https://github.com/wenju-he created https://github.com/llvm/llvm-project/pull/169875
Add following extensions: cl_intel_subgroup_buffer_prefetch cl_intel_subgroup_local_block_io cl_intel_subgroups_char cl_intel_subgroups_long This allows targets to expose these extensions via getSupportedOpenCLOpts and ensures macros are defined when enabled. >From 67f4256f00246bd6d05444647351162e19197db4 Mon Sep 17 00:00:00 2001 From: Wenju He <[email protected]> Date: Fri, 28 Nov 2025 07:10:47 +0100 Subject: [PATCH] [OpenCL] Add missing Intel subgroup extensions to OpenCLExtensions.def Add following extensions: cl_intel_subgroup_buffer_prefetch cl_intel_subgroup_local_block_io cl_intel_subgroups_char cl_intel_subgroups_long This allows targets to expose these extensions via getSupportedOpenCLOpts and ensures macros are defined when enabled. --- .../include/clang/Basic/OpenCLExtensions.def | 4 +++ clang/test/SemaOpenCL/extension-version.cl | 30 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/clang/include/clang/Basic/OpenCLExtensions.def b/clang/include/clang/Basic/OpenCLExtensions.def index 809f73be90c4e..5b964bc292ecd 100644 --- a/clang/include/clang/Basic/OpenCLExtensions.def +++ b/clang/include/clang/Basic/OpenCLExtensions.def @@ -141,7 +141,11 @@ OPENCL_EXTENSION(cl_amd_media_ops2, true, 100) // Intel OpenCL extensions OPENCL_EXTENSION(cl_intel_subgroups, true, 120) +OPENCL_EXTENSION(cl_intel_subgroups_char, true, 120) +OPENCL_EXTENSION(cl_intel_subgroups_long, true, 120) OPENCL_EXTENSION(cl_intel_subgroups_short, true, 120) +OPENCL_EXTENSION(cl_intel_subgroup_buffer_prefetch, false, 120) +OPENCL_EXTENSION(cl_intel_subgroup_local_block_io, false, 120) OPENCL_EXTENSION(cl_intel_device_side_avc_motion_estimation, true, 120) // OpenCL C 3.0 features (6.2.1. Features) diff --git a/clang/test/SemaOpenCL/extension-version.cl b/clang/test/SemaOpenCL/extension-version.cl index c634cf313b36d..7e06ecfbc73bf 100644 --- a/clang/test/SemaOpenCL/extension-version.cl +++ b/clang/test/SemaOpenCL/extension-version.cl @@ -340,6 +340,24 @@ #endif #pragma OPENCL EXTENSION cl_intel_subgroups : enable +#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 120) +#ifndef cl_intel_subgroups_char +#error "Missing cl_intel_subgroups_char define" +#endif +#else +// expected-warning@+2{{unsupported OpenCL extension 'cl_intel_subgroups_char' - ignoring}} +#endif +#pragma OPENCL EXTENSION cl_intel_subgroups_char : enable + +#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 120) +#ifndef cl_intel_subgroups_long +#error "Missing cl_intel_subgroups_long define" +#endif +#else +// expected-warning@+2{{unsupported OpenCL extension 'cl_intel_subgroups_long' - ignoring}} +#endif +#pragma OPENCL EXTENSION cl_intel_subgroups_long : enable + #if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 120) #ifndef cl_intel_subgroups_short #error "Missing cl_intel_subgroups_short define" @@ -349,6 +367,18 @@ #endif #pragma OPENCL EXTENSION cl_intel_subgroups_short : enable +#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 120) +#ifndef cl_intel_subgroup_buffer_prefetch +#error "Missing cl_intel_subgroup_buffer_prefetch define" +#endif +#endif + +#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 120) +#ifndef cl_intel_subgroup_local_block_io +#error "Missing cl_intel_subgroup_local_block_io define" +#endif +#endif + #if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 120) #ifndef cl_intel_device_side_avc_motion_estimation #error "Missing cl_intel_device_side_avc_motion_estimation define" _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
