Skip to content

Conversation

@wenju-he
Copy link
Contributor

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.

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.
@wenju-he wenju-he requested a review from Copilot November 28, 2025 06:23
@llvmbot llvmbot added clang Clang issues not falling into any other category clang:frontend Language frontend issues, e.g. anything involving "Sema" labels Nov 28, 2025
@wenju-he wenju-he requested review from bader and svenvh November 28, 2025 06:23
@llvmbot
Copy link
Member

llvmbot commented Nov 28, 2025

@llvm/pr-subscribers-clang

Author: Wenju He (wenju-he)

Changes

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.


Full diff: https://github.com/llvm/llvm-project/pull/169875.diff

2 Files Affected:

  • (modified) clang/include/clang/Basic/OpenCLExtensions.def (+4)
  • (modified) clang/test/SemaOpenCL/extension-version.cl (+30)
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"

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clang:frontend Language frontend issues, e.g. anything involving "Sema" clang Clang issues not falling into any other category

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants