1
1
// RUN: %clang_cc1 -fsycl-is-device -internal-isystem %S/Inputs -triple spir64-unknown-unknown -disable-llvm-passes -opaque-pointers -emit-llvm %s -o - | FileCheck %s
2
2
3
- // This test checks if the metadata "kernel-arg-runtime-aligned"
4
- // is generated if the kernel captures an accessor.
3
+ // This test checks if the metadata "kernel-arg-runtime-aligned" and "kernel_arg_exclusive_ptr"
4
+ // are generated if the kernel captures an accessor.
5
5
6
6
#include " sycl.hpp"
7
7
@@ -100,37 +100,43 @@ int main() {
100
100
// CHECK-SAME: ptr noundef byval{{.*}}align 4 [[ACC_RANGE2:%[a-zA-Z0-9_]+6]],
101
101
// CHECK-SAME: ptr noundef byval{{.*}}align 4 [[MEM_RANGE2:%[a-zA-Z0-9_]+7]],
102
102
// CHECK-SAME: ptr noundef byval{{.*}}align 4 [[OFFSET2:%[a-zA-Z0-9_]+8]])
103
- // CHECK-SAME: !kernel_arg_runtime_aligned ![[#RTALIGNED1:]]
103
+ // CHECK-SAME: !kernel_arg_runtime_aligned ![[#ACCESSORMD1:]]
104
+ // CHECK-SAME: !kernel_arg_exclusive_ptr ![[#ACCESSORMD1]]
104
105
105
106
// Check kernel_readOnlyAcc parameters
106
107
// CHECK: define {{.*}}spir_kernel void @{{.*}}kernel_readOnlyAcc
107
108
// CHECK-SAME: ptr addrspace(1) noundef readonly align 4 [[MEM_ARG1:%[a-zA-Z0-9_]+]],
108
109
// CHECK-SAME: ptr noundef byval{{.*}}align 4 [[ACC_RANGE1:%[a-zA-Z0-9_]+1]],
109
110
// CHECK-SAME: ptr noundef byval{{.*}}align 4 [[MEM_RANGE1:%[a-zA-Z0-9_]+2]],
110
111
// CHECK-SAME: ptr noundef byval{{.*}}align 4 [[OFFSET1:%[a-zA-Z0-9_]+3]]
111
- // CHECK-SAME: !kernel_arg_runtime_aligned ![[#RTALIGNED2:]]
112
+ // CHECK-SAME: !kernel_arg_runtime_aligned ![[#ACCESSORMD2:]]
113
+ // CHECK-SAME: !kernel_arg_exclusive_ptr ![[#ACCESSORMD2]]
112
114
113
115
// Check kernel_B parameters
114
116
// CHECK: define {{.*}}spir_kernel void @{{.*}}kernel_B
115
117
// CHECK-NOT: kernel_arg_runtime_aligned
118
+ // CHECK-NOT: kernel_arg_exclusive_ptr
116
119
117
120
// Check kernel_C parameters
118
121
// CHECK: define {{.*}}spir_kernel void @{{.*}}kernel_C
119
122
// CHECK-SAME: i32 noundef [[MEM_ARG1:%[a-zA-Z0-9_]+]]
120
123
// CHECK-NOT: kernel_arg_runtime_aligned
124
+ // CHECK-NOT: kernel_arg_exclusive_ptr
121
125
122
126
// Check usm_ptr parameters
123
127
// CHECK: define {{.*}}spir_kernel void @{{.*}}usm_ptr
124
128
// CHECK-SAME: ptr addrspace(1) noundef align 4 [[MEM_ARG1:%[a-zA-Z0-9_]+]],
125
129
// CHECK-SAME: ptr addrspace(1) noundef align 4 [[MEM_ARG1:%[a-zA-Z0-9_]+]]
126
130
// CHECK-NOT: kernel_arg_runtime_aligned
131
+ // CHECK-NOT: kernel_arg_exclusive_ptr
127
132
128
133
// CHECK: define {{.*}}spir_kernel void @{{.*}}localAccessor
129
134
// CHECK-SAME: ptr addrspace(1) noundef align 4 [[MEM_ARG1:%[a-zA-Z0-9_]+]],
130
135
// CHECK-SAME: ptr noundef byval{{.*}}align 4 [[ACC_RANGE1:%[a-zA-Z0-9_]+1]],
131
136
// CHECK-SAME: ptr noundef byval{{.*}}align 4 [[MEM_RANGE1:%[a-zA-Z0-9_]+2]],
132
137
// CHECK-SAME: ptr noundef byval{{.*}}align 4 [[OFFSET1:%[a-zA-Z0-9_]+3]]
133
- // CHECK-SAME: !kernel_arg_runtime_aligned ![[#RTALIGNED2]]
138
+ // CHECK-SAME: !kernel_arg_runtime_aligned ![[#ACCESSORMD2]]
139
+ // CHECK-SAME: !kernel_arg_exclusive_ptr ![[#ACCESSORMD2]]
134
140
135
141
// Check kernel_acc_raw_ptr parameters
136
142
// CHECK: define {{.*}}spir_kernel void @{{.*}}kernel_acc_raw_ptr
@@ -139,7 +145,8 @@ int main() {
139
145
// CHECK-SAME: ptr noundef byval{{.*}}align 4 [[MEM_RANGE1:%[a-zA-Z0-9_]+2]],
140
146
// CHECK-SAME: ptr noundef byval{{.*}}align 4 [[OFFSET1:%[a-zA-Z0-9_]+3]]
141
147
// CHECK-SAME: ptr addrspace(1) noundef align 4 [[MEM_ARG1:%[a-zA-Z0-9_]+]]
142
- // CHECK-SAME: !kernel_arg_runtime_aligned ![[#RTALIGNED3:]]
148
+ // CHECK-SAME: !kernel_arg_runtime_aligned ![[#ACCESSORMD3:]]
149
+ // CHECK-SAME: !kernel_arg_exclusive_ptr ![[#ACCESSORMD3]]
143
150
144
151
// Check esimd_kernel_with_acc parameters
145
152
// CHECK: define {{.*}}spir_kernel void @{{.*}}esimd_kernel_with_acc
@@ -148,6 +155,6 @@ int main() {
148
155
// Check kernel-arg-runtime-aligned metadata.
149
156
// The value of any metadata element is 1 for any kernel arguments
150
157
// that corresponds to the base pointer of an accessor and 0 otherwise.
151
- // CHECK: ![[#RTALIGNED1 ]] = !{i1 true, i1 false, i1 false, i1 false, i1 true, i1 false, i1 false, i1 false}
152
- // CHECK: ![[#RTALIGNED2 ]] = !{i1 true, i1 false, i1 false, i1 false}
153
- // CHECK: ![[#RTALIGNED3 ]] = !{i1 true, i1 false, i1 false, i1 false, i1 false}
158
+ // CHECK: ![[#ACCESSORMD1 ]] = !{i1 true, i1 false, i1 false, i1 false, i1 true, i1 false, i1 false, i1 false}
159
+ // CHECK: ![[#ACCESSORMD2 ]] = !{i1 true, i1 false, i1 false, i1 false}
160
+ // CHECK: ![[#ACCESSORMD3 ]] = !{i1 true, i1 false, i1 false, i1 false, i1 false}
0 commit comments