2
2
// RUN: %clang_cc1 -O1 -triple spirv64 -cl-std=CL3.0 -x cl %s -emit-llvm -o - | FileCheck %s --check-prefixes=CHECK,CHECK64
3
3
// RUN: %clang_cc1 -O1 -triple spirv32 -cl-std=CL3.0 -x cl %s -emit-llvm -o - | FileCheck %s --check-prefixes=CHECK,CHECK32
4
4
5
+ #ifdef __SYCL_DEVICE_ONLY__
6
+ #define SYCL_EXTERNAL __attribute__((sycl_device))
7
+ #else
8
+ #define SYCL_EXTERNAL
9
+ #endif
10
+
11
+
5
12
// CHECK: @test_num_workgroups(
6
13
// CHECK-NEXT: [[ENTRY:.*:]]
7
14
// CHECK64-NEXT: tail call i64 @llvm.spv.num.workgroups.i64(i32 0)
8
15
// CHECK32-NEXT: tail call i32 @llvm.spv.num.workgroups.i32(i32 0)
9
16
//
10
- unsigned int test_num_workgroups () {
17
+ SYCL_EXTERNAL unsigned int test_num_workgroups () {
11
18
return __builtin_spirv_num_workgroups (0 );
12
19
}
13
20
@@ -16,7 +23,7 @@ unsigned int test_num_workgroups() {
16
23
// CHECK64-NEXT: tail call i64 @llvm.spv.workgroup.size.i64(i32 0)
17
24
// CHECK32-NEXT: tail call i32 @llvm.spv.workgroup.size.i32(i32 0)
18
25
//
19
- unsigned int test_workgroup_size () {
26
+ SYCL_EXTERNAL unsigned int test_workgroup_size () {
20
27
return __builtin_spirv_workgroup_size (0 );
21
28
}
22
29
@@ -25,7 +32,7 @@ unsigned int test_workgroup_size() {
25
32
// CHECK64-NEXT: tail call i64 @llvm.spv.group.id.i64(i32 0)
26
33
// CHECK32-NEXT: tail call i32 @llvm.spv.group.id.i32(i32 0)
27
34
//
28
- unsigned int test_workgroup_id () {
35
+ SYCL_EXTERNAL unsigned int test_workgroup_id () {
29
36
return __builtin_spirv_workgroup_id (0 );
30
37
}
31
38
@@ -34,7 +41,7 @@ unsigned int test_workgroup_id() {
34
41
// CHECK64-NEXT: tail call i64 @llvm.spv.thread.id.in.group.i64(i32 0)
35
42
// CHECK32-NEXT: tail call i32 @llvm.spv.thread.id.in.group.i32(i32 0)
36
43
//
37
- unsigned int test_local_invocation_id () {
44
+ SYCL_EXTERNAL unsigned int test_local_invocation_id () {
38
45
return __builtin_spirv_local_invocation_id (0 );
39
46
}
40
47
@@ -43,7 +50,7 @@ unsigned int test_local_invocation_id() {
43
50
// CHECK64-NEXT: tail call i64 @llvm.spv.thread.id.i64(i32 0)
44
51
// CHECK32-NEXT: tail call i32 @llvm.spv.thread.id.i32(i32 0)
45
52
//
46
- unsigned int test_global_invocation_id () {
53
+ SYCL_EXTERNAL unsigned int test_global_invocation_id () {
47
54
return __builtin_spirv_global_invocation_id (0 );
48
55
}
49
56
@@ -52,7 +59,7 @@ unsigned int test_global_invocation_id() {
52
59
// CHECK64-NEXT: tail call i64 @llvm.spv.global.size.i64(i32 0)
53
60
// CHECK32-NEXT: tail call i32 @llvm.spv.global.size.i32(i32 0)
54
61
//
55
- unsigned int test_global_size () {
62
+ SYCL_EXTERNAL unsigned int test_global_size () {
56
63
return __builtin_spirv_global_size (0 );
57
64
}
58
65
@@ -61,46 +68,46 @@ unsigned int test_global_size() {
61
68
// CHECK64-NEXT: tail call i64 @llvm.spv.global.offset.i64(i32 0)
62
69
// CHECK32-NEXT: tail call i32 @llvm.spv.global.offset.i32(i32 0)
63
70
//
64
- unsigned int test_global_offset () {
71
+ SYCL_EXTERNAL unsigned int test_global_offset () {
65
72
return __builtin_spirv_global_offset (0 );
66
73
}
67
74
68
75
// CHECK: @test_subgroup_size(
69
76
// CHECK-NEXT: [[ENTRY:.*:]]
70
77
// CHECK-NEXT: tail call i32 @llvm.spv.subgroup.size()
71
78
//
72
- unsigned int test_subgroup_size () {
79
+ SYCL_EXTERNAL unsigned int test_subgroup_size () {
73
80
return __builtin_spirv_subgroup_size ();
74
81
}
75
82
76
83
// CHECK: @test_subgroup_max_size(
77
84
// CHECK-NEXT: [[ENTRY:.*:]]
78
85
// CHECK-NEXT: tail call i32 @llvm.spv.subgroup.max.size()
79
86
//
80
- unsigned int test_subgroup_max_size () {
87
+ SYCL_EXTERNAL unsigned int test_subgroup_max_size () {
81
88
return __builtin_spirv_subgroup_max_size ();
82
89
}
83
90
84
91
// CHECK: @test_num_subgroups(
85
92
// CHECK-NEXT: [[ENTRY:.*:]]
86
93
// CHECK-NEXT: tail call i32 @llvm.spv.num.subgroups()
87
94
//
88
- unsigned int test_num_subgroups () {
95
+ SYCL_EXTERNAL unsigned int test_num_subgroups () {
89
96
return __builtin_spirv_num_subgroups ();
90
97
}
91
98
92
99
// CHECK: @test_subgroup_id(
93
100
// CHECK-NEXT: [[ENTRY:.*:]]
94
101
// CHECK-NEXT: tail call i32 @llvm.spv.subgroup.id()
95
102
//
96
- unsigned int test_subgroup_id () {
103
+ SYCL_EXTERNAL unsigned int test_subgroup_id () {
97
104
return __builtin_spirv_subgroup_id ();
98
105
}
99
106
100
107
// CHECK: @test_subgroup_local_invocation_id(
101
108
// CHECK-NEXT: [[ENTRY:.*:]]
102
109
// CHECK-NEXT: tail call i32 @llvm.spv.subgroup.local.invocation.id()
103
110
//
104
- unsigned int test_subgroup_local_invocation_id () {
111
+ SYCL_EXTERNAL unsigned int test_subgroup_local_invocation_id () {
105
112
return __builtin_spirv_subgroup_local_invocation_id ();
106
113
}
0 commit comments