Skip to content

[OpenCL] Add test for __kernel_exec macro #138287

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

svenvh
Copy link
Member

@svenvh svenvh commented May 2, 2025

The __kernel_exec macro is mandated by the OpenCL C specification and supplied by opencl-c-base.h, but it was not covered in any tests.

The `__kernel_exec` macro is mandated by the OpenCL C specification
and supplied by `opencl-c-base.h`, but it was not covered in any
tests.
@svenvh svenvh added the OpenCL label May 2, 2025
@llvmbot llvmbot added the clang Clang issues not falling into any other category label May 2, 2025
@llvmbot
Copy link
Member

llvmbot commented May 2, 2025

@llvm/pr-subscribers-clang

Author: Sven van Haastregt (svenvh)

Changes

The __kernel_exec macro is mandated by the OpenCL C specification and supplied by opencl-c-base.h, but it was not covered in any tests.


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

1 Files Affected:

  • (modified) clang/test/CodeGenOpenCL/kernel-attributes.cl (+6-1)
diff --git a/clang/test/CodeGenOpenCL/kernel-attributes.cl b/clang/test/CodeGenOpenCL/kernel-attributes.cl
index 3625138f96330..d3d033349768f 100644
--- a/clang/test/CodeGenOpenCL/kernel-attributes.cl
+++ b/clang/test/CodeGenOpenCL/kernel-attributes.cl
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s
+// RUN: %clang_cc1 -fdeclare-opencl-builtins -finclude-default-header -emit-llvm -o - %s | FileCheck %s
 
 typedef unsigned int uint4 __attribute__((ext_vector_type(4)));
 
@@ -11,8 +11,13 @@ kernel __attribute__((vec_type_hint(uint4))) __attribute__((work_group_size_hint
 kernel __attribute__((intel_reqd_sub_group_size(8))) void kernel3(int a) {}
 // CHECK: define {{(dso_local )?}}spir_kernel void @kernel3(i32 {{[^%]*}}%a) {{[^{]+}} !intel_reqd_sub_group_size ![[MD5:[0-9]+]]
 
+__kernel_exec(32, float) void kernel_from_exec(int a) {}
+// CHECK: define {{(dso_local )?}}spir_kernel void @kernel_from_exec(i32 {{[^%]*}}%a) {{[^{]+}} !vec_type_hint ![[MD6:[0-9]+]] !work_group_size_hint ![[MD7:[0-9]+]]
+
 // CHECK: [[MD1]] = !{i32 poison, i32 1}
 // CHECK: [[MD2]] = !{i32 1, i32 2, i32 4}
 // CHECK: [[MD3]] = !{<4 x i32> poison, i32 0}
 // CHECK: [[MD4]] = !{i32 8, i32 16, i32 32}
 // CHECK: [[MD5]] = !{i32 8}
+// CHECK: [[MD6]] = !{float poison, i32 0}
+// CHECK: [[MD7]] = !{i32 32, i32 1, i32 1}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang Clang issues not falling into any other category OpenCL
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants