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

Reply via email to