22// RUN: %clang_cc1 -O1 -triple spirv64 -cl-std=CL3.0 -x cl %s -emit-llvm -o - | FileCheck %s --check-prefixes=CHECK,CHECK64
33// RUN: %clang_cc1 -O1 -triple spirv32 -cl-std=CL3.0 -x cl %s -emit-llvm -o - | FileCheck %s --check-prefixes=CHECK,CHECK32
44
5+ #ifdef __SYCL_DEVICE_ONLY__
6+ #define SYCL_EXTERNAL __attribute__((sycl_device))
7+ #else
8+ #define SYCL_EXTERNAL
9+ #endif
10+
11+
512// CHECK: @test_num_workgroups(
613// CHECK-NEXT: [[ENTRY:.*:]]
714// CHECK64-NEXT: tail call i64 @llvm.spv.num.workgroups.i64(i32 0)
815// CHECK32-NEXT: tail call i32 @llvm.spv.num.workgroups.i32(i32 0)
916//
10- unsigned int test_num_workgroups () {
17+ SYCL_EXTERNAL unsigned int test_num_workgroups () {
1118 return __builtin_spirv_num_workgroups (0 );
1219}
1320
@@ -16,7 +23,7 @@ unsigned int test_num_workgroups() {
1623// CHECK64-NEXT: tail call i64 @llvm.spv.workgroup.size.i64(i32 0)
1724// CHECK32-NEXT: tail call i32 @llvm.spv.workgroup.size.i32(i32 0)
1825//
19- unsigned int test_workgroup_size () {
26+ SYCL_EXTERNAL unsigned int test_workgroup_size () {
2027 return __builtin_spirv_workgroup_size (0 );
2128}
2229
@@ -25,7 +32,7 @@ unsigned int test_workgroup_size() {
2532// CHECK64-NEXT: tail call i64 @llvm.spv.group.id.i64(i32 0)
2633// CHECK32-NEXT: tail call i32 @llvm.spv.group.id.i32(i32 0)
2734//
28- unsigned int test_workgroup_id () {
35+ SYCL_EXTERNAL unsigned int test_workgroup_id () {
2936 return __builtin_spirv_workgroup_id (0 );
3037}
3138
@@ -34,7 +41,7 @@ unsigned int test_workgroup_id() {
3441// CHECK64-NEXT: tail call i64 @llvm.spv.thread.id.in.group.i64(i32 0)
3542// CHECK32-NEXT: tail call i32 @llvm.spv.thread.id.in.group.i32(i32 0)
3643//
37- unsigned int test_local_invocation_id () {
44+ SYCL_EXTERNAL unsigned int test_local_invocation_id () {
3845 return __builtin_spirv_local_invocation_id (0 );
3946}
4047
@@ -43,7 +50,7 @@ unsigned int test_local_invocation_id() {
4350// CHECK64-NEXT: tail call i64 @llvm.spv.thread.id.i64(i32 0)
4451// CHECK32-NEXT: tail call i32 @llvm.spv.thread.id.i32(i32 0)
4552//
46- unsigned int test_global_invocation_id () {
53+ SYCL_EXTERNAL unsigned int test_global_invocation_id () {
4754 return __builtin_spirv_global_invocation_id (0 );
4855}
4956
@@ -52,7 +59,7 @@ unsigned int test_global_invocation_id() {
5259// CHECK64-NEXT: tail call i64 @llvm.spv.global.size.i64(i32 0)
5360// CHECK32-NEXT: tail call i32 @llvm.spv.global.size.i32(i32 0)
5461//
55- unsigned int test_global_size () {
62+ SYCL_EXTERNAL unsigned int test_global_size () {
5663 return __builtin_spirv_global_size (0 );
5764}
5865
@@ -61,46 +68,46 @@ unsigned int test_global_size() {
6168// CHECK64-NEXT: tail call i64 @llvm.spv.global.offset.i64(i32 0)
6269// CHECK32-NEXT: tail call i32 @llvm.spv.global.offset.i32(i32 0)
6370//
64- unsigned int test_global_offset () {
71+ SYCL_EXTERNAL unsigned int test_global_offset () {
6572 return __builtin_spirv_global_offset (0 );
6673}
6774
6875// CHECK: @test_subgroup_size(
6976// CHECK-NEXT: [[ENTRY:.*:]]
7077// CHECK-NEXT: tail call i32 @llvm.spv.subgroup.size()
7178//
72- unsigned int test_subgroup_size () {
79+ SYCL_EXTERNAL unsigned int test_subgroup_size () {
7380 return __builtin_spirv_subgroup_size ();
7481}
7582
7683// CHECK: @test_subgroup_max_size(
7784// CHECK-NEXT: [[ENTRY:.*:]]
7885// CHECK-NEXT: tail call i32 @llvm.spv.subgroup.max.size()
7986//
80- unsigned int test_subgroup_max_size () {
87+ SYCL_EXTERNAL unsigned int test_subgroup_max_size () {
8188 return __builtin_spirv_subgroup_max_size ();
8289}
8390
8491// CHECK: @test_num_subgroups(
8592// CHECK-NEXT: [[ENTRY:.*:]]
8693// CHECK-NEXT: tail call i32 @llvm.spv.num.subgroups()
8794//
88- unsigned int test_num_subgroups () {
95+ SYCL_EXTERNAL unsigned int test_num_subgroups () {
8996 return __builtin_spirv_num_subgroups ();
9097}
9198
9299// CHECK: @test_subgroup_id(
93100// CHECK-NEXT: [[ENTRY:.*:]]
94101// CHECK-NEXT: tail call i32 @llvm.spv.subgroup.id()
95102//
96- unsigned int test_subgroup_id () {
103+ SYCL_EXTERNAL unsigned int test_subgroup_id () {
97104 return __builtin_spirv_subgroup_id ();
98105}
99106
100107// CHECK: @test_subgroup_local_invocation_id(
101108// CHECK-NEXT: [[ENTRY:.*:]]
102109// CHECK-NEXT: tail call i32 @llvm.spv.subgroup.local.invocation.id()
103110//
104- unsigned int test_subgroup_local_invocation_id () {
111+ SYCL_EXTERNAL unsigned int test_subgroup_local_invocation_id () {
105112 return __builtin_spirv_subgroup_local_invocation_id ();
106113}
0 commit comments