@@ -106,7 +106,13 @@ int main() {
106106//
107107// CHECK-AMDGCN: Function Attrs: convergent mustprogress noinline norecurse nounwind optnone
108108// CHECK-AMDGCN-NEXT: define dso_local amdgpu_kernel void @_ZTS26single_purpose_kernel_name
109- // CHECK-AMDGCN-SAME: (ptr addrspace(4) noundef byref(%struct.single_purpose_kernel) align 1 %0) #[[AMDGCN_ATTR0:[0-9]+]] {
109+ // CHECK-AMDGCN-SAME: (ptr addrspace(4) noundef byref(%struct.single_purpose_kernel) align 1 %0) #[[AMDGCN_ATTR0:[0-9]+]]
110+ // CHECK-AMDGCN-SAME: !kernel_arg_addr_space ![[KERNEL_ARG_ADDRSP:[0-9]+]]
111+ // CHECK-AMDGCN-SAME: !kernel_arg_access_qual ![[KERNEL_ARG_ACCQUAL:[0-9]+]]
112+ // CHECK-AMDGCN-SAME: !kernel_arg_type ![[KERNEL_ARG_TYPE1:[0-9]+]]
113+ // CHECK-AMDGCN-SAME: !kernel_arg_base_type ![[KERNEL_ARG_TYPE1]]
114+ // CHECK-AMDGCN-SAME: !kernel_arg_type_qual ![[KERNEL_ARG_TYPEQ:[0-9]+]]
115+ // CHECK-AMDGCN-SAME: {
110116// CHECK-AMDGCN-NEXT: entry:
111117// CHECK-AMDGCN-NEXT: %coerce = alloca %struct.single_purpose_kernel, align 1, addrspace(5)
112118// CHECK-AMDGCN-NEXT: %kernelFunc = addrspacecast ptr addrspace(5) %coerce to ptr
@@ -119,7 +125,13 @@ int main() {
119125//
120126// CHECK-NVPTX: Function Attrs: convergent mustprogress noinline norecurse nounwind optnone
121127// CHECK-NVPTX-NEXT: define dso_local ptx_kernel void @_ZTS26single_purpose_kernel_name
122- // CHECK-NVPTX-SAME: (ptr noundef byval(%struct.single_purpose_kernel) align 1 %kernelFunc) #[[NVPTX_ATTR0:[0-9]+]] {
128+ // CHECK-NVPTX-SAME: (ptr noundef byval(%struct.single_purpose_kernel) align 1 %kernelFunc) #[[NVPTX_ATTR0:[0-9]+]]
129+ // CHECK-NVPTX-SAME: !kernel_arg_addr_space ![[KERNEL_ARG_ADDRSP:[0-9]+]]
130+ // CHECK-NVPTX-SAME: !kernel_arg_access_qual ![[KERNEL_ARG_ACCQUAL:[0-9]+]]
131+ // CHECK-NVPTX-SAME: !kernel_arg_type ![[KERNEL_ARG_TYPE1:[0-9]+]]
132+ // CHECK-NVPTX-SAME: !kernel_arg_base_type ![[KERNEL_ARG_TYPE1]]
133+ // CHECK-NVPTX-SAME: !kernel_arg_type_qual ![[KERNEL_ARG_TYPEQ:[0-9]+]]
134+ // CHECK-NVPTX-SAME: {
123135// CHECK-NVPTX-NEXT: entry:
124136// CHECK-NVPTX-NEXT: call void @_ZNK21single_purpose_kernelclEv
125137// CHECK-NVPTX-SAME: (ptr noundef nonnull align 1 dereferenceable(1) %kernelFunc) #[[NVPTX_ATTR1:[0-9]+]]
@@ -129,7 +141,13 @@ int main() {
129141//
130142// CHECK-SPIR: Function Attrs: convergent mustprogress noinline norecurse nounwind optnone
131143// CHECK-SPIR-NEXT: define {{[a-z_ ]*}}spir_kernel void @_ZTS26single_purpose_kernel_name
132- // CHECK-SPIR-SAME: (ptr noundef byval(%struct.single_purpose_kernel) align 1 %kernelFunc) #[[SPIR_ATTR0:[0-9]+]] {
144+ // CHECK-SPIR-SAME: (ptr noundef byval(%struct.single_purpose_kernel) align 1 %kernelFunc) #[[SPIR_ATTR0:[0-9]+]]
145+ // CHECK-SPIR-SAME: !kernel_arg_addr_space ![[KERNEL_ARG_ADDRSP:[0-9]+]]
146+ // CHECK-SPIR-SAME: !kernel_arg_access_qual ![[KERNEL_ARG_ACCQUAL:[0-9]+]]
147+ // CHECK-SPIR-SAME: !kernel_arg_type ![[KERNEL_ARG_TYPE1:[0-9]+]]
148+ // CHECK-SPIR-SAME: !kernel_arg_base_type ![[KERNEL_ARG_TYPE1]]
149+ // CHECK-SPIR-SAME: !kernel_arg_type_qual ![[KERNEL_ARG_TYPEQ:[0-9]+]]
150+ // CHECK-SPIR-SAME: {
133151// CHECK-SPIR-NEXT: entry:
134152// CHECK-SPIR-NEXT: %kernelFunc.ascast = addrspacecast ptr %kernelFunc to ptr addrspace(4)
135153// CHECK-SPIR-NEXT: call spir_func void @_ZNK21single_purpose_kernelclEv
@@ -143,7 +161,13 @@ int main() {
143161//
144162// CHECK-AMDGCN: Function Attrs: convergent mustprogress noinline norecurse nounwind optnone
145163// CHECK-AMDGCN-NEXT: define dso_local amdgpu_kernel void @_ZTSZ4mainE18lambda_kernel_name
146- // CHECK-AMDGCN-SAME: (i32 %kernelFunc.coerce) #[[AMDGCN_ATTR0]] {
164+ // CHECK-AMDGCN-SAME: (i32 %kernelFunc.coerce) #[[AMDGCN_ATTR0]]
165+ // CHECK-AMDGCN-SAME: !kernel_arg_addr_space ![[KERNEL_ARG_ADDRSP]]
166+ // CHECK-AMDGCN-SAME: !kernel_arg_access_qual ![[KERNEL_ARG_ACCQUAL]]
167+ // CHECK-AMDGCN-SAME: !kernel_arg_type ![[KERNEL_ARG_TYPE2:[0-9]+]]
168+ // CHECK-AMDGCN-SAME: !kernel_arg_base_type ![[KERNEL_ARG_TYPE2]]
169+ // CHECK-AMDGCN-SAME: !kernel_arg_type_qual ![[KERNEL_ARG_TYPEQ]]
170+ // CHECK-AMDGCN-SAME: {
147171// CHECK-AMDGCN-NEXT: entry:
148172// CHECK-AMDGCN-NEXT: %kernelFunc = alloca %class.anon, align 4, addrspace(5)
149173// CHECK-AMDGCN-NEXT: %kernelFunc1 = addrspacecast ptr addrspace(5) %kernelFunc to ptr
@@ -157,7 +181,13 @@ int main() {
157181//
158182// CHECK-NVPTX: Function Attrs: convergent mustprogress noinline norecurse nounwind optnone
159183// CHECK-NVPTX-NEXT: define dso_local ptx_kernel void @_ZTSZ4mainE18lambda_kernel_name
160- // CHECK-NVPTX-SAME: (ptr noundef byval(%class.anon) align 4 %kernelFunc) #[[NVPTX_ATTR0]] {
184+ // CHECK-NVPTX-SAME: (ptr noundef byval(%class.anon) align 4 %kernelFunc) #[[NVPTX_ATTR0]]
185+ // CHECK-NVPTX-SAME: !kernel_arg_addr_space ![[KERNEL_ARG_ADDRSP]]
186+ // CHECK-NVPTX-SAME: !kernel_arg_access_qual ![[KERNEL_ARG_ACCQUAL]]
187+ // CHECK-NVPTX-SAME: !kernel_arg_type ![[KERNEL_ARG_TYPE2:[0-9]+]]
188+ // CHECK-NVPTX-SAME: !kernel_arg_base_type ![[KERNEL_ARG_TYPE2]]
189+ // CHECK-NVPTX-SAME: !kernel_arg_type_qual ![[KERNEL_ARG_TYPEQ]]
190+ // CHECK-NVPTX-SAME: {
161191// CHECK-NVPTX-NEXT: entry:
162192// CHECK-NVPTX-NEXT: call void @_ZZ4mainENKUlvE_clEv
163193// CHECK-NVPTX-SAME: (ptr noundef nonnull align 4 dereferenceable(4) %kernelFunc) #[[NVPTX_ATTR1]]
@@ -167,7 +197,13 @@ int main() {
167197//
168198// CHECK-SPIR: Function Attrs: convergent mustprogress noinline norecurse nounwind optnone
169199// CHECK-SPIR-NEXT: define {{[a-z_ ]*}}spir_kernel void @_ZTSZ4mainE18lambda_kernel_name
170- // CHECK-SPIR-SAME: (ptr noundef byval(%class.anon) align 4 %kernelFunc) #[[SPIR_ATTR0]] {
200+ // CHECK-SPIR-SAME: (ptr noundef byval(%class.anon) align 4 %kernelFunc) #[[SPIR_ATTR0]]
201+ // CHECK-SPIR-SAME: !kernel_arg_addr_space ![[KERNEL_ARG_ADDRSP]]
202+ // CHECK-SPIR-SAME: !kernel_arg_access_qual ![[KERNEL_ARG_ACCQUAL]]
203+ // CHECK-SPIR-SAME: !kernel_arg_type ![[KERNEL_ARG_TYPE2:[0-9]+]]
204+ // CHECK-SPIR-SAME: !kernel_arg_base_type ![[KERNEL_ARG_TYPE2]]
205+ // CHECK-SPIR-SAME: !kernel_arg_type_qual ![[KERNEL_ARG_TYPEQ]]
206+ // CHECK-SPIR-SAME: {
171207// CHECK-SPIR-NEXT: entry:
172208// CHECK-SPIR-NEXT: %kernelFunc.ascast = addrspacecast ptr %kernelFunc to ptr addrspace(4)
173209// CHECK-SPIR-NEXT: call spir_func void @_ZZ4mainENKUlvE_clEv
@@ -184,3 +220,9 @@ int main() {
184220//
185221// CHECK-SPIR: #[[SPIR_ATTR0]] = { convergent mustprogress noinline norecurse nounwind optnone "no-trapping-math"="true" "stack-protector-buffer-size"="8" }
186222// CHECK-SPIR: #[[SPIR_ATTR1]] = { convergent nounwind }
223+
224+ // CHECK-DEVICE: ![[KERNEL_ARG_ADDRSP]] = !{i32 0}
225+ // CHECK-DEVICE: ![[KERNEL_ARG_ACCQUAL]] = !{!"none"}
226+ // CHECK-DEVICE: ![[KERNEL_ARG_TYPE1]] = !{!"single_purpose_kernel"}
227+ // CHECK-DEVICE: ![[KERNEL_ARG_TYPEQ]] = !{!""}
228+ // CHECK-DEVICE: ![[KERNEL_ARG_TYPE2]] = !{!"(lambda
0 commit comments