1 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 -mattr=-code-object-v3 -filetype=obj -o - < %s | llvm-readobj -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX700 --check-prefix=NOTES %s
2 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx802 -mattr=-code-object-v3 -filetype=obj -o - < %s | llvm-readobj -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX802 --check-prefix=NOTES %s
3 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -mattr=-code-object-v3 -filetype=obj -o - < %s | llvm-readobj -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX900 --check-prefix=NOTES %s
4 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 -mattr=-code-object-v3 -amdgpu-dump-hsa-metadata -amdgpu-verify-hsa-metadata -filetype=obj -o - < %s 2>&1 | FileCheck --check-prefix=PARSER %s
5 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx802 -mattr=-code-object-v3 -amdgpu-dump-hsa-metadata -amdgpu-verify-hsa-metadata -filetype=obj -o - < %s 2>&1 | FileCheck --check-prefix=PARSER %s
6 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -mattr=-code-object-v3 -amdgpu-dump-hsa-metadata -amdgpu-verify-hsa-metadata -filetype=obj -o - < %s 2>&1 | FileCheck --check-prefix=PARSER %s
8 %struct.A = type { i8, float }
9 %opencl.image1d_t = type opaque
10 %opencl.image2d_t = type opaque
11 %opencl.image3d_t = type opaque
12 %opencl.queue_t = type opaque
13 %opencl.pipe_t = type opaque
14 %struct.B = type { i32 addrspace(1)*}
15 %opencl.clk_event_t = type opaque
17 @__test_block_invoke_kernel_runtime_handle = external addrspace(1) externally_initialized constant i8 addrspace(1)*
20 ; CHECK: Version: [ 1, 0 ]
22 ; CHECK: - '1:1:4:%d\n'
23 ; CHECK: - '2:1:8:%g\n'
26 ; CHECK: - Name: test_char
27 ; CHECK-NEXT: SymbolName: 'test_char@kd'
28 ; CHECK-NEXT: Language: OpenCL C
29 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
31 ; CHECK-NEXT: - Name: a
32 ; CHECK-NEXT: TypeName: char
34 ; CHECK-NEXT: Align: 1
35 ; CHECK-NEXT: ValueKind: ByValue
36 ; CHECK-NEXT: ValueType: I8
37 ; CHECK-NEXT: AccQual: Default
38 ; CHECK-NEXT: - Size: 8
39 ; CHECK-NEXT: Align: 8
40 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
41 ; CHECK-NEXT: ValueType: I64
42 ; CHECK-NEXT: - Size: 8
43 ; CHECK-NEXT: Align: 8
44 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
45 ; CHECK-NEXT: ValueType: I64
46 ; CHECK-NEXT: - Size: 8
47 ; CHECK-NEXT: Align: 8
48 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
49 ; CHECK-NEXT: ValueType: I64
50 ; CHECK-NEXT: - Size: 8
51 ; CHECK-NEXT: Align: 8
52 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
53 ; CHECK-NEXT: ValueType: I8
54 ; CHECK-NEXT: AddrSpaceQual: Global
55 ; CHECK-NOT: ValueKind: HiddenDefaultQueue
56 ; CHECK-NOT: ValueKind: HiddenCompletionAction
57 define amdgpu_kernel void @test_char(i8 %a) #0
58 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !9
59 !kernel_arg_base_type !9 !kernel_arg_type_qual !4 {
63 ; CHECK: - Name: test_ushort2
64 ; CHECK-NEXT: SymbolName: 'test_ushort2@kd'
65 ; CHECK-NEXT: Language: OpenCL C
66 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
68 ; CHECK-NEXT: - Name: a
69 ; CHECK-NEXT: TypeName: ushort2
71 ; CHECK-NEXT: Align: 4
72 ; CHECK-NEXT: ValueKind: ByValue
73 ; CHECK-NEXT: ValueType: U16
74 ; CHECK-NEXT: AccQual: Default
75 ; CHECK-NEXT: - Size: 8
76 ; CHECK-NEXT: Align: 8
77 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
78 ; CHECK-NEXT: ValueType: I64
79 ; CHECK-NEXT: - Size: 8
80 ; CHECK-NEXT: Align: 8
81 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
82 ; CHECK-NEXT: ValueType: I64
83 ; CHECK-NEXT: - Size: 8
84 ; CHECK-NEXT: Align: 8
85 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
86 ; CHECK-NEXT: ValueType: I64
87 ; CHECK-NEXT: - Size: 8
88 ; CHECK-NEXT: Align: 8
89 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
90 ; CHECK-NEXT: ValueType: I8
91 ; CHECK-NEXT: AddrSpaceQual: Global
92 define amdgpu_kernel void @test_ushort2(<2 x i16> %a) #0
93 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !10
94 !kernel_arg_base_type !10 !kernel_arg_type_qual !4 {
98 ; CHECK: - Name: test_int3
99 ; CHECK-NEXT: SymbolName: 'test_int3@kd'
100 ; CHECK-NEXT: Language: OpenCL C
101 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
103 ; CHECK-NEXT: - Name: a
104 ; CHECK-NEXT: TypeName: int3
105 ; CHECK-NEXT: Size: 16
106 ; CHECK-NEXT: Align: 16
107 ; CHECK-NEXT: ValueKind: ByValue
108 ; CHECK-NEXT: ValueType: I32
109 ; CHECK-NEXT: AccQual: Default
110 ; CHECK-NEXT: - Size: 8
111 ; CHECK-NEXT: Align: 8
112 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
113 ; CHECK-NEXT: ValueType: I64
114 ; CHECK-NEXT: - Size: 8
115 ; CHECK-NEXT: Align: 8
116 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
117 ; CHECK-NEXT: ValueType: I64
118 ; CHECK-NEXT: - Size: 8
119 ; CHECK-NEXT: Align: 8
120 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
121 ; CHECK-NEXT: ValueType: I64
122 ; CHECK-NEXT: - Size: 8
123 ; CHECK-NEXT: Align: 8
124 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
125 ; CHECK-NEXT: ValueType: I8
126 ; CHECK-NEXT: AddrSpaceQual: Global
127 define amdgpu_kernel void @test_int3(<3 x i32> %a) #0
128 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !11
129 !kernel_arg_base_type !11 !kernel_arg_type_qual !4 {
133 ; CHECK: - Name: test_ulong4
134 ; CHECK-NEXT: SymbolName: 'test_ulong4@kd'
135 ; CHECK-NEXT: Language: OpenCL C
136 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
138 ; CHECK-NEXT: - Name: a
139 ; CHECK-NEXT: TypeName: ulong4
140 ; CHECK-NEXT: Size: 32
141 ; CHECK-NEXT: Align: 32
142 ; CHECK-NEXT: ValueKind: ByValue
143 ; CHECK-NEXT: ValueType: U64
144 ; CHECK-NEXT: AccQual: Default
145 ; CHECK-NEXT: - Size: 8
146 ; CHECK-NEXT: Align: 8
147 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
148 ; CHECK-NEXT: ValueType: I64
149 ; CHECK-NEXT: - Size: 8
150 ; CHECK-NEXT: Align: 8
151 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
152 ; CHECK-NEXT: ValueType: I64
153 ; CHECK-NEXT: - Size: 8
154 ; CHECK-NEXT: Align: 8
155 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
156 ; CHECK-NEXT: ValueType: I64
157 ; CHECK-NEXT: - Size: 8
158 ; CHECK-NEXT: Align: 8
159 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
160 ; CHECK-NEXT: ValueType: I8
161 ; CHECK-NEXT: AddrSpaceQual: Global
162 define amdgpu_kernel void @test_ulong4(<4 x i64> %a) #0
163 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !12
164 !kernel_arg_base_type !12 !kernel_arg_type_qual !4 {
168 ; CHECK: - Name: test_half8
169 ; CHECK-NEXT: SymbolName: 'test_half8@kd'
170 ; CHECK-NEXT: Language: OpenCL C
171 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
173 ; CHECK-NEXT: - Name: a
174 ; CHECK-NEXT: TypeName: half8
175 ; CHECK-NEXT: Size: 16
176 ; CHECK-NEXT: Align: 16
177 ; CHECK-NEXT: ValueKind: ByValue
178 ; CHECK-NEXT: ValueType: F16
179 ; CHECK-NEXT: AccQual: Default
180 ; CHECK-NEXT: - Size: 8
181 ; CHECK-NEXT: Align: 8
182 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
183 ; CHECK-NEXT: ValueType: I64
184 ; CHECK-NEXT: - Size: 8
185 ; CHECK-NEXT: Align: 8
186 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
187 ; CHECK-NEXT: ValueType: I64
188 ; CHECK-NEXT: - Size: 8
189 ; CHECK-NEXT: Align: 8
190 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
191 ; CHECK-NEXT: ValueType: I64
192 ; CHECK-NEXT: - Size: 8
193 ; CHECK-NEXT: Align: 8
194 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
195 ; CHECK-NEXT: ValueType: I8
196 ; CHECK-NEXT: AddrSpaceQual: Global
197 define amdgpu_kernel void @test_half8(<8 x half> %a) #0
198 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !13
199 !kernel_arg_base_type !13 !kernel_arg_type_qual !4 {
203 ; CHECK: - Name: test_float16
204 ; CHECK-NEXT: SymbolName: 'test_float16@kd'
205 ; CHECK-NEXT: Language: OpenCL C
206 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
208 ; CHECK-NEXT: - Name: a
209 ; CHECK-NEXT: TypeName: float16
210 ; CHECK-NEXT: Size: 64
211 ; CHECK-NEXT: Align: 64
212 ; CHECK-NEXT: ValueKind: ByValue
213 ; CHECK-NEXT: ValueType: F32
214 ; CHECK-NEXT: AccQual: Default
215 ; CHECK-NEXT: - Size: 8
216 ; CHECK-NEXT: Align: 8
217 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
218 ; CHECK-NEXT: ValueType: I64
219 ; CHECK-NEXT: - Size: 8
220 ; CHECK-NEXT: Align: 8
221 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
222 ; CHECK-NEXT: ValueType: I64
223 ; CHECK-NEXT: - Size: 8
224 ; CHECK-NEXT: Align: 8
225 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
226 ; CHECK-NEXT: ValueType: I64
227 ; CHECK-NEXT: - Size: 8
228 ; CHECK-NEXT: Align: 8
229 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
230 ; CHECK-NEXT: ValueType: I8
231 ; CHECK-NEXT: AddrSpaceQual: Global
232 define amdgpu_kernel void @test_float16(<16 x float> %a) #0
233 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !14
234 !kernel_arg_base_type !14 !kernel_arg_type_qual !4 {
238 ; CHECK: - Name: test_double16
239 ; CHECK-NEXT: SymbolName: 'test_double16@kd'
240 ; CHECK-NEXT: Language: OpenCL C
241 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
243 ; CHECK-NEXT: - Name: a
244 ; CHECK-NEXT: TypeName: double16
245 ; CHECK-NEXT: Size: 128
246 ; CHECK-NEXT: Align: 128
247 ; CHECK-NEXT: ValueKind: ByValue
248 ; CHECK-NEXT: ValueType: F64
249 ; CHECK-NEXT: AccQual: Default
250 ; CHECK-NEXT: - Size: 8
251 ; CHECK-NEXT: Align: 8
252 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
253 ; CHECK-NEXT: ValueType: I64
254 ; CHECK-NEXT: - Size: 8
255 ; CHECK-NEXT: Align: 8
256 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
257 ; CHECK-NEXT: ValueType: I64
258 ; CHECK-NEXT: - Size: 8
259 ; CHECK-NEXT: Align: 8
260 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
261 ; CHECK-NEXT: ValueType: I64
262 ; CHECK-NEXT: - Size: 8
263 ; CHECK-NEXT: Align: 8
264 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
265 ; CHECK-NEXT: ValueType: I8
266 ; CHECK-NEXT: AddrSpaceQual: Global
267 define amdgpu_kernel void @test_double16(<16 x double> %a) #0
268 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !15
269 !kernel_arg_base_type !15 !kernel_arg_type_qual !4 {
273 ; CHECK: - Name: test_pointer
274 ; CHECK-NEXT: SymbolName: 'test_pointer@kd'
275 ; CHECK-NEXT: Language: OpenCL C
276 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
278 ; CHECK-NEXT: - Name: a
279 ; CHECK-NEXT: TypeName: 'int addrspace(5)*'
280 ; CHECK-NEXT: Size: 8
281 ; CHECK-NEXT: Align: 8
282 ; CHECK-NEXT: ValueKind: GlobalBuffer
283 ; CHECK-NEXT: ValueType: I32
284 ; CHECK-NEXT: AddrSpaceQual: Global
285 ; CHECK-NEXT: AccQual: Default
286 ; CHECK-NEXT: - Size: 8
287 ; CHECK-NEXT: Align: 8
288 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
289 ; CHECK-NEXT: ValueType: I64
290 ; CHECK-NEXT: - Size: 8
291 ; CHECK-NEXT: Align: 8
292 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
293 ; CHECK-NEXT: ValueType: I64
294 ; CHECK-NEXT: - Size: 8
295 ; CHECK-NEXT: Align: 8
296 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
297 ; CHECK-NEXT: ValueType: I64
298 ; CHECK-NEXT: - Size: 8
299 ; CHECK-NEXT: Align: 8
300 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
301 ; CHECK-NEXT: ValueType: I8
302 ; CHECK-NEXT: AddrSpaceQual: Global
303 define amdgpu_kernel void @test_pointer(i32 addrspace(1)* %a) #0
304 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !16
305 !kernel_arg_base_type !16 !kernel_arg_type_qual !4 {
309 ; CHECK: - Name: test_image
310 ; CHECK-NEXT: SymbolName: 'test_image@kd'
311 ; CHECK-NEXT: Language: OpenCL C
312 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
314 ; CHECK-NEXT: - Name: a
315 ; CHECK-NEXT: TypeName: image2d_t
316 ; CHECK-NEXT: Size: 8
317 ; CHECK-NEXT: Align: 8
318 ; CHECK-NEXT: ValueKind: Image
319 ; CHECK-NEXT: ValueType: Struct
320 ; CHECK-NEXT: AddrSpaceQual: Global
321 ; CHECK-NEXT: AccQual: Default
322 ; CHECK-NEXT: - Size: 8
323 ; CHECK-NEXT: Align: 8
324 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
325 ; CHECK-NEXT: ValueType: I64
326 ; CHECK-NEXT: - Size: 8
327 ; CHECK-NEXT: Align: 8
328 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
329 ; CHECK-NEXT: ValueType: I64
330 ; CHECK-NEXT: - Size: 8
331 ; CHECK-NEXT: Align: 8
332 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
333 ; CHECK-NEXT: ValueType: I64
334 ; CHECK-NEXT: - Size: 8
335 ; CHECK-NEXT: Align: 8
336 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
337 ; CHECK-NEXT: ValueType: I8
338 ; CHECK-NEXT: AddrSpaceQual: Global
339 define amdgpu_kernel void @test_image(%opencl.image2d_t addrspace(1)* %a) #0
340 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !17
341 !kernel_arg_base_type !17 !kernel_arg_type_qual !4 {
345 ; CHECK: - Name: test_sampler
346 ; CHECK-NEXT: SymbolName: 'test_sampler@kd'
347 ; CHECK-NEXT: Language: OpenCL C
348 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
350 ; CHECK-NEXT: - Name: a
351 ; CHECK-NEXT: TypeName: sampler_t
352 ; CHECK-NEXT: Size: 4
353 ; CHECK-NEXT: Align: 4
354 ; CHECK-NEXT: ValueKind: Sampler
355 ; CHECK-NEXT: ValueType: I32
356 ; CHECK-NEXT: AccQual: Default
357 ; CHECK-NEXT: - Size: 8
358 ; CHECK-NEXT: Align: 8
359 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
360 ; CHECK-NEXT: ValueType: I64
361 ; CHECK-NEXT: - Size: 8
362 ; CHECK-NEXT: Align: 8
363 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
364 ; CHECK-NEXT: ValueType: I64
365 ; CHECK-NEXT: - Size: 8
366 ; CHECK-NEXT: Align: 8
367 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
368 ; CHECK-NEXT: ValueType: I64
369 ; CHECK-NEXT: - Size: 8
370 ; CHECK-NEXT: Align: 8
371 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
372 ; CHECK-NEXT: ValueType: I8
373 ; CHECK-NEXT: AddrSpaceQual: Global
374 define amdgpu_kernel void @test_sampler(i32 %a) #0
375 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !18
376 !kernel_arg_base_type !18 !kernel_arg_type_qual !4 {
380 ; CHECK: - Name: test_queue
381 ; CHECK-NEXT: SymbolName: 'test_queue@kd'
382 ; CHECK-NEXT: Language: OpenCL C
383 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
385 ; CHECK-NEXT: - Name: a
386 ; CHECK-NEXT: TypeName: queue_t
387 ; CHECK-NEXT: Size: 8
388 ; CHECK-NEXT: Align: 8
389 ; CHECK-NEXT: ValueKind: Queue
390 ; CHECK-NEXT: ValueType: Struct
391 ; CHECK-NEXT: AddrSpaceQual: Global
392 ; CHECK-NEXT: AccQual: Default
393 ; CHECK-NEXT: - Size: 8
394 ; CHECK-NEXT: Align: 8
395 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
396 ; CHECK-NEXT: ValueType: I64
397 ; CHECK-NEXT: - Size: 8
398 ; CHECK-NEXT: Align: 8
399 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
400 ; CHECK-NEXT: ValueType: I64
401 ; CHECK-NEXT: - Size: 8
402 ; CHECK-NEXT: Align: 8
403 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
404 ; CHECK-NEXT: ValueType: I64
405 ; CHECK-NEXT: - Size: 8
406 ; CHECK-NEXT: Align: 8
407 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
408 ; CHECK-NEXT: ValueType: I8
409 ; CHECK-NEXT: AddrSpaceQual: Global
410 define amdgpu_kernel void @test_queue(%opencl.queue_t addrspace(1)* %a) #0
411 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !19
412 !kernel_arg_base_type !19 !kernel_arg_type_qual !4 {
416 ; CHECK: - Name: test_struct
417 ; CHECK-NEXT: SymbolName: 'test_struct@kd'
418 ; CHECK-NEXT: Language: OpenCL C
419 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
421 ; CHECK-NEXT: - Name: a
422 ; CHECK-NEXT: TypeName: struct A
423 ; CHECK-NEXT: Size: 4
424 ; CHECK-NEXT: Align: 4
425 ; CHECK-NEXT: ValueKind: GlobalBuffer
426 ; CHECK-NEXT: ValueType: Struct
427 ; CHECK-NEXT: AddrSpaceQual: Private
428 ; CHECK-NEXT: AccQual: Default
429 ; CHECK-NEXT: - Size: 8
430 ; CHECK-NEXT: Align: 8
431 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
432 ; CHECK-NEXT: ValueType: I64
433 ; CHECK-NEXT: - Size: 8
434 ; CHECK-NEXT: Align: 8
435 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
436 ; CHECK-NEXT: ValueType: I64
437 ; CHECK-NEXT: - Size: 8
438 ; CHECK-NEXT: Align: 8
439 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
440 ; CHECK-NEXT: ValueType: I64
441 ; CHECK-NEXT: - Size: 8
442 ; CHECK-NEXT: Align: 8
443 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
444 ; CHECK-NEXT: ValueType: I8
445 ; CHECK-NEXT: AddrSpaceQual: Global
446 define amdgpu_kernel void @test_struct(%struct.A addrspace(5)* byval %a) #0
447 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !20
448 !kernel_arg_base_type !20 !kernel_arg_type_qual !4 {
452 ; CHECK: - Name: test_i128
453 ; CHECK-NEXT: SymbolName: 'test_i128@kd'
454 ; CHECK-NEXT: Language: OpenCL C
455 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
457 ; CHECK-NEXT: - Name: a
458 ; CHECK-NEXT: TypeName: i128
459 ; CHECK-NEXT: Size: 16
460 ; CHECK-NEXT: Align: 8
461 ; CHECK-NEXT: ValueKind: ByValue
462 ; CHECK-NEXT: ValueType: Struct
463 ; CHECK-NEXT: AccQual: Default
464 ; CHECK-NEXT: - Size: 8
465 ; CHECK-NEXT: Align: 8
466 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
467 ; CHECK-NEXT: ValueType: I64
468 ; CHECK-NEXT: - Size: 8
469 ; CHECK-NEXT: Align: 8
470 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
471 ; CHECK-NEXT: ValueType: I64
472 ; CHECK-NEXT: - Size: 8
473 ; CHECK-NEXT: Align: 8
474 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
475 ; CHECK-NEXT: ValueType: I64
476 ; CHECK-NEXT: - Size: 8
477 ; CHECK-NEXT: Align: 8
478 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
479 ; CHECK-NEXT: ValueType: I8
480 ; CHECK-NEXT: AddrSpaceQual: Global
481 define amdgpu_kernel void @test_i128(i128 %a) #0
482 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !21
483 !kernel_arg_base_type !21 !kernel_arg_type_qual !4 {
487 ; CHECK: - Name: test_multi_arg
488 ; CHECK-NEXT: SymbolName: 'test_multi_arg@kd'
489 ; CHECK-NEXT: Language: OpenCL C
490 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
492 ; CHECK-NEXT: - Name: a
493 ; CHECK-NEXT: TypeName: int
494 ; CHECK-NEXT: Size: 4
495 ; CHECK-NEXT: Align: 4
496 ; CHECK-NEXT: ValueKind: ByValue
497 ; CHECK-NEXT: ValueType: I32
498 ; CHECK-NEXT: AccQual: Default
499 ; CHECK-NEXT: - Name: b
500 ; CHECK-NEXT: TypeName: short2
501 ; CHECK-NEXT: Size: 4
502 ; CHECK-NEXT: Align: 4
503 ; CHECK-NEXT: ValueKind: ByValue
504 ; CHECK-NEXT: ValueType: I16
505 ; CHECK-NEXT: AccQual: Default
506 ; CHECK-NEXT: - Name: c
507 ; CHECK-NEXT: TypeName: char3
508 ; CHECK-NEXT: Size: 4
509 ; CHECK-NEXT: Align: 4
510 ; CHECK-NEXT: ValueKind: ByValue
511 ; CHECK-NEXT: ValueType: I8
512 ; CHECK-NEXT: AccQual: Default
513 ; CHECK-NEXT: - Size: 8
514 ; CHECK-NEXT: Align: 8
515 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
516 ; CHECK-NEXT: ValueType: I64
517 ; CHECK-NEXT: - Size: 8
518 ; CHECK-NEXT: Align: 8
519 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
520 ; CHECK-NEXT: ValueType: I64
521 ; CHECK-NEXT: - Size: 8
522 ; CHECK-NEXT: Align: 8
523 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
524 ; CHECK-NEXT: ValueType: I64
525 ; CHECK-NEXT: - Size: 8
526 ; CHECK-NEXT: Align: 8
527 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
528 ; CHECK-NEXT: ValueType: I8
529 ; CHECK-NEXT: AddrSpaceQual: Global
530 define amdgpu_kernel void @test_multi_arg(i32 %a, <2 x i16> %b, <3 x i8> %c) #0
531 !kernel_arg_addr_space !22 !kernel_arg_access_qual !23 !kernel_arg_type !24
532 !kernel_arg_base_type !24 !kernel_arg_type_qual !25 {
536 ; CHECK: - Name: test_addr_space
537 ; CHECK-NEXT: SymbolName: 'test_addr_space@kd'
538 ; CHECK-NEXT: Language: OpenCL C
539 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
541 ; CHECK-NEXT: - Name: g
542 ; CHECK-NEXT: TypeName: 'int addrspace(5)*'
543 ; CHECK-NEXT: Size: 8
544 ; CHECK-NEXT: Align: 8
545 ; CHECK-NEXT: ValueKind: GlobalBuffer
546 ; CHECK-NEXT: ValueType: I32
547 ; CHECK-NEXT: AddrSpaceQual: Global
548 ; CHECK-NEXT: AccQual: Default
549 ; CHECK-NEXT: - Name: c
550 ; CHECK-NEXT: TypeName: 'int addrspace(5)*'
551 ; CHECK-NEXT: Size: 8
552 ; CHECK-NEXT: Align: 8
553 ; CHECK-NEXT: ValueKind: GlobalBuffer
554 ; CHECK-NEXT: ValueType: I32
555 ; CHECK-NEXT: AddrSpaceQual: Constant
556 ; CHECK-NEXT: AccQual: Default
557 ; CHECK-NEXT: - Name: l
558 ; CHECK-NEXT: TypeName: 'int addrspace(5)*'
559 ; CHECK-NEXT: Size: 4
560 ; CHECK-NEXT: Align: 4
561 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
562 ; CHECK-NEXT: ValueType: I32
563 ; CHECK-NEXT: PointeeAlign: 4
564 ; CHECK-NEXT: AddrSpaceQual: Local
565 ; CHECK-NEXT: AccQual: Default
566 ; CHECK-NEXT: - Size: 8
567 ; CHECK-NEXT: Align: 8
568 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
569 ; CHECK-NEXT: ValueType: I64
570 ; CHECK-NEXT: - Size: 8
571 ; CHECK-NEXT: Align: 8
572 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
573 ; CHECK-NEXT: ValueType: I64
574 ; CHECK-NEXT: - Size: 8
575 ; CHECK-NEXT: Align: 8
576 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
577 ; CHECK-NEXT: ValueType: I64
578 ; CHECK-NEXT: - Size: 8
579 ; CHECK-NEXT: Align: 8
580 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
581 ; CHECK-NEXT: ValueType: I8
582 ; CHECK-NEXT: AddrSpaceQual: Global
583 define amdgpu_kernel void @test_addr_space(i32 addrspace(1)* %g,
584 i32 addrspace(4)* %c,
585 i32 addrspace(3)* %l) #0
586 !kernel_arg_addr_space !50 !kernel_arg_access_qual !23 !kernel_arg_type !51
587 !kernel_arg_base_type !51 !kernel_arg_type_qual !25 {
591 ; CHECK: - Name: test_type_qual
592 ; CHECK-NEXT: SymbolName: 'test_type_qual@kd'
593 ; CHECK-NEXT: Language: OpenCL C
594 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
596 ; CHECK-NEXT: - Name: a
597 ; CHECK-NEXT: TypeName: 'int addrspace(5)*'
598 ; CHECK-NEXT: Size: 8
599 ; CHECK-NEXT: Align: 8
600 ; CHECK-NEXT: ValueKind: GlobalBuffer
601 ; CHECK-NEXT: ValueType: I32
602 ; CHECK-NEXT: AddrSpaceQual: Global
603 ; CHECK-NEXT: AccQual: Default
604 ; CHECK-NEXT: IsVolatile: true
605 ; CHECK-NEXT: - Name: b
606 ; CHECK-NEXT: TypeName: 'int addrspace(5)*'
607 ; CHECK-NEXT: Size: 8
608 ; CHECK-NEXT: Align: 8
609 ; CHECK-NEXT: ValueKind: GlobalBuffer
610 ; CHECK-NEXT: ValueType: I32
611 ; CHECK-NEXT: AddrSpaceQual: Global
612 ; CHECK-NEXT: AccQual: Default
613 ; CHECK-NEXT: IsConst: true
614 ; CHECK-NEXT: IsRestrict: true
615 ; CHECK-NEXT: - Name: c
616 ; CHECK-NEXT: TypeName: 'int addrspace(5)*'
617 ; CHECK-NEXT: Size: 8
618 ; CHECK-NEXT: Align: 8
619 ; CHECK-NEXT: ValueKind: Pipe
620 ; CHECK-NEXT: ValueType: Struct
621 ; CHECK-NEXT: AddrSpaceQual: Global
622 ; CHECK-NEXT: AccQual: Default
623 ; CHECK-NEXT: IsPipe: true
624 ; CHECK-NEXT: - Size: 8
625 ; CHECK-NEXT: Align: 8
626 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
627 ; CHECK-NEXT: ValueType: I64
628 ; CHECK-NEXT: - Size: 8
629 ; CHECK-NEXT: Align: 8
630 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
631 ; CHECK-NEXT: ValueType: I64
632 ; CHECK-NEXT: - Size: 8
633 ; CHECK-NEXT: Align: 8
634 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
635 ; CHECK-NEXT: ValueType: I64
636 ; CHECK-NEXT: - Size: 8
637 ; CHECK-NEXT: Align: 8
638 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
639 ; CHECK-NEXT: ValueType: I8
640 ; CHECK-NEXT: AddrSpaceQual: Global
641 define amdgpu_kernel void @test_type_qual(i32 addrspace(1)* %a,
642 i32 addrspace(1)* %b,
643 %opencl.pipe_t addrspace(1)* %c) #0
644 !kernel_arg_addr_space !22 !kernel_arg_access_qual !23 !kernel_arg_type !51
645 !kernel_arg_base_type !51 !kernel_arg_type_qual !70 {
649 ; CHECK: - Name: test_access_qual
650 ; CHECK-NEXT: SymbolName: 'test_access_qual@kd'
651 ; CHECK-NEXT: Language: OpenCL C
652 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
654 ; CHECK-NEXT: - Name: ro
655 ; CHECK-NEXT: TypeName: image1d_t
656 ; CHECK-NEXT: Size: 8
657 ; CHECK-NEXT: Align: 8
658 ; CHECK-NEXT: ValueKind: Image
659 ; CHECK-NEXT: ValueType: Struct
660 ; CHECK-NEXT: AddrSpaceQual: Global
661 ; CHECK-NEXT: AccQual: ReadOnly
662 ; CHECK-NEXT: - Name: wo
663 ; CHECK-NEXT: TypeName: image2d_t
664 ; CHECK-NEXT: Size: 8
665 ; CHECK-NEXT: Align: 8
666 ; CHECK-NEXT: ValueKind: Image
667 ; CHECK-NEXT: ValueType: Struct
668 ; CHECK-NEXT: AddrSpaceQual: Global
669 ; CHECK-NEXT: AccQual: WriteOnly
670 ; CHECK-NEXT: - Name: rw
671 ; CHECK-NEXT: TypeName: image3d_t
672 ; CHECK-NEXT: Size: 8
673 ; CHECK-NEXT: Align: 8
674 ; CHECK-NEXT: ValueKind: Image
675 ; CHECK-NEXT: ValueType: Struct
676 ; CHECK-NEXT: AddrSpaceQual: Global
677 ; CHECK-NEXT: AccQual: ReadWrite
678 ; CHECK-NEXT: - Size: 8
679 ; CHECK-NEXT: Align: 8
680 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
681 ; CHECK-NEXT: ValueType: I64
682 ; CHECK-NEXT: - Size: 8
683 ; CHECK-NEXT: Align: 8
684 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
685 ; CHECK-NEXT: ValueType: I64
686 ; CHECK-NEXT: - Size: 8
687 ; CHECK-NEXT: Align: 8
688 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
689 ; CHECK-NEXT: ValueType: I64
690 ; CHECK-NEXT: - Size: 8
691 ; CHECK-NEXT: Align: 8
692 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
693 ; CHECK-NEXT: ValueType: I8
694 ; CHECK-NEXT: AddrSpaceQual: Global
695 define amdgpu_kernel void @test_access_qual(%opencl.image1d_t addrspace(1)* %ro,
696 %opencl.image2d_t addrspace(1)* %wo,
697 %opencl.image3d_t addrspace(1)* %rw) #0
698 !kernel_arg_addr_space !60 !kernel_arg_access_qual !61 !kernel_arg_type !62
699 !kernel_arg_base_type !62 !kernel_arg_type_qual !25 {
703 ; CHECK: - Name: test_vec_type_hint_half
704 ; CHECK-NEXT: SymbolName: 'test_vec_type_hint_half@kd'
705 ; CHECK-NEXT: Language: OpenCL C
706 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
708 ; CHECK-NEXT: VecTypeHint: half
710 ; CHECK-NEXT: - Name: a
711 ; CHECK-NEXT: TypeName: int
712 ; CHECK-NEXT: Size: 4
713 ; CHECK-NEXT: Align: 4
714 ; CHECK-NEXT: ValueKind: ByValue
715 ; CHECK-NEXT: ValueType: I32
716 ; CHECK-NEXT: AccQual: Default
717 ; CHECK-NEXT: - Size: 8
718 ; CHECK-NEXT: Align: 8
719 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
720 ; CHECK-NEXT: ValueType: I64
721 ; CHECK-NEXT: - Size: 8
722 ; CHECK-NEXT: Align: 8
723 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
724 ; CHECK-NEXT: ValueType: I64
725 ; CHECK-NEXT: - Size: 8
726 ; CHECK-NEXT: Align: 8
727 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
728 ; CHECK-NEXT: ValueType: I64
729 ; CHECK-NEXT: - Size: 8
730 ; CHECK-NEXT: Align: 8
731 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
732 ; CHECK-NEXT: ValueType: I8
733 ; CHECK-NEXT: AddrSpaceQual: Global
734 define amdgpu_kernel void @test_vec_type_hint_half(i32 %a) #0
735 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
736 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !26 {
740 ; CHECK: - Name: test_vec_type_hint_float
741 ; CHECK-NEXT: SymbolName: 'test_vec_type_hint_float@kd'
742 ; CHECK-NEXT: Language: OpenCL C
743 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
745 ; CHECK-NEXT: VecTypeHint: float
747 ; CHECK-NEXT: - Name: a
748 ; CHECK-NEXT: TypeName: int
749 ; CHECK-NEXT: Size: 4
750 ; CHECK-NEXT: Align: 4
751 ; CHECK-NEXT: ValueKind: ByValue
752 ; CHECK-NEXT: ValueType: I32
753 ; CHECK-NEXT: AccQual: Default
754 ; CHECK-NEXT: - Size: 8
755 ; CHECK-NEXT: Align: 8
756 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
757 ; CHECK-NEXT: ValueType: I64
758 ; CHECK-NEXT: - Size: 8
759 ; CHECK-NEXT: Align: 8
760 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
761 ; CHECK-NEXT: ValueType: I64
762 ; CHECK-NEXT: - Size: 8
763 ; CHECK-NEXT: Align: 8
764 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
765 ; CHECK-NEXT: ValueType: I64
766 ; CHECK-NEXT: - Size: 8
767 ; CHECK-NEXT: Align: 8
768 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
769 ; CHECK-NEXT: ValueType: I8
770 ; CHECK-NEXT: AddrSpaceQual: Global
771 define amdgpu_kernel void @test_vec_type_hint_float(i32 %a) #0
772 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
773 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !27 {
777 ; CHECK: - Name: test_vec_type_hint_double
778 ; CHECK-NEXT: SymbolName: 'test_vec_type_hint_double@kd'
779 ; CHECK-NEXT: Language: OpenCL C
780 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
782 ; CHECK-NEXT: VecTypeHint: double
784 ; CHECK-NEXT: - Name: a
785 ; CHECK-NEXT: TypeName: int
786 ; CHECK-NEXT: Size: 4
787 ; CHECK-NEXT: Align: 4
788 ; CHECK-NEXT: ValueKind: ByValue
789 ; CHECK-NEXT: ValueType: I32
790 ; CHECK-NEXT: AccQual: Default
791 ; CHECK-NEXT: - Size: 8
792 ; CHECK-NEXT: Align: 8
793 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
794 ; CHECK-NEXT: ValueType: I64
795 ; CHECK-NEXT: - Size: 8
796 ; CHECK-NEXT: Align: 8
797 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
798 ; CHECK-NEXT: ValueType: I64
799 ; CHECK-NEXT: - Size: 8
800 ; CHECK-NEXT: Align: 8
801 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
802 ; CHECK-NEXT: ValueType: I64
803 ; CHECK-NEXT: - Size: 8
804 ; CHECK-NEXT: Align: 8
805 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
806 ; CHECK-NEXT: ValueType: I8
807 ; CHECK-NEXT: AddrSpaceQual: Global
808 define amdgpu_kernel void @test_vec_type_hint_double(i32 %a) #0
809 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
810 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !28 {
814 ; CHECK: - Name: test_vec_type_hint_char
815 ; CHECK-NEXT: SymbolName: 'test_vec_type_hint_char@kd'
816 ; CHECK-NEXT: Language: OpenCL C
817 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
819 ; CHECK-NEXT: VecTypeHint: char
821 ; CHECK-NEXT: - Name: a
822 ; CHECK-NEXT: TypeName: int
823 ; CHECK-NEXT: Size: 4
824 ; CHECK-NEXT: Align: 4
825 ; CHECK-NEXT: ValueKind: ByValue
826 ; CHECK-NEXT: ValueType: I32
827 ; CHECK-NEXT: AccQual: Default
828 ; CHECK-NEXT: - Size: 8
829 ; CHECK-NEXT: Align: 8
830 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
831 ; CHECK-NEXT: ValueType: I64
832 ; CHECK-NEXT: - Size: 8
833 ; CHECK-NEXT: Align: 8
834 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
835 ; CHECK-NEXT: ValueType: I64
836 ; CHECK-NEXT: - Size: 8
837 ; CHECK-NEXT: Align: 8
838 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
839 ; CHECK-NEXT: ValueType: I64
840 ; CHECK-NEXT: - Size: 8
841 ; CHECK-NEXT: Align: 8
842 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
843 ; CHECK-NEXT: ValueType: I8
844 ; CHECK-NEXT: AddrSpaceQual: Global
845 define amdgpu_kernel void @test_vec_type_hint_char(i32 %a) #0
846 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
847 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !29 {
851 ; CHECK: - Name: test_vec_type_hint_short
852 ; CHECK-NEXT: SymbolName: 'test_vec_type_hint_short@kd'
853 ; CHECK-NEXT: Language: OpenCL C
854 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
856 ; CHECK-NEXT: VecTypeHint: short
858 ; CHECK-NEXT: - Name: a
859 ; CHECK-NEXT: TypeName: int
860 ; CHECK-NEXT: Size: 4
861 ; CHECK-NEXT: Align: 4
862 ; CHECK-NEXT: ValueKind: ByValue
863 ; CHECK-NEXT: ValueType: I32
864 ; CHECK-NEXT: AccQual: Default
865 ; CHECK-NEXT: - Size: 8
866 ; CHECK-NEXT: Align: 8
867 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
868 ; CHECK-NEXT: ValueType: I64
869 ; CHECK-NEXT: - Size: 8
870 ; CHECK-NEXT: Align: 8
871 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
872 ; CHECK-NEXT: ValueType: I64
873 ; CHECK-NEXT: - Size: 8
874 ; CHECK-NEXT: Align: 8
875 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
876 ; CHECK-NEXT: ValueType: I64
877 ; CHECK-NEXT: - Size: 8
878 ; CHECK-NEXT: Align: 8
879 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
880 ; CHECK-NEXT: ValueType: I8
881 ; CHECK-NEXT: AddrSpaceQual: Global
882 define amdgpu_kernel void @test_vec_type_hint_short(i32 %a) #0
883 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
884 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !30 {
888 ; CHECK: - Name: test_vec_type_hint_long
889 ; CHECK-NEXT: SymbolName: 'test_vec_type_hint_long@kd'
890 ; CHECK-NEXT: Language: OpenCL C
891 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
893 ; CHECK-NEXT: VecTypeHint: long
895 ; CHECK-NEXT: - Name: a
896 ; CHECK-NEXT: TypeName: int
897 ; CHECK-NEXT: Size: 4
898 ; CHECK-NEXT: Align: 4
899 ; CHECK-NEXT: ValueKind: ByValue
900 ; CHECK-NEXT: ValueType: I32
901 ; CHECK-NEXT: AccQual: Default
902 ; CHECK-NEXT: - Size: 8
903 ; CHECK-NEXT: Align: 8
904 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
905 ; CHECK-NEXT: ValueType: I64
906 ; CHECK-NEXT: - Size: 8
907 ; CHECK-NEXT: Align: 8
908 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
909 ; CHECK-NEXT: ValueType: I64
910 ; CHECK-NEXT: - Size: 8
911 ; CHECK-NEXT: Align: 8
912 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
913 ; CHECK-NEXT: ValueType: I64
914 ; CHECK-NEXT: - Size: 8
915 ; CHECK-NEXT: Align: 8
916 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
917 ; CHECK-NEXT: ValueType: I8
918 ; CHECK-NEXT: AddrSpaceQual: Global
919 define amdgpu_kernel void @test_vec_type_hint_long(i32 %a) #0
920 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
921 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !31 {
925 ; CHECK: - Name: test_vec_type_hint_unknown
926 ; CHECK-NEXT: SymbolName: 'test_vec_type_hint_unknown@kd'
927 ; CHECK-NEXT: Language: OpenCL C
928 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
930 ; CHECK-NEXT: VecTypeHint: unknown
932 ; CHECK-NEXT: - Name: a
933 ; CHECK-NEXT: TypeName: int
934 ; CHECK-NEXT: Size: 4
935 ; CHECK-NEXT: Align: 4
936 ; CHECK-NEXT: ValueKind: ByValue
937 ; CHECK-NEXT: ValueType: I32
938 ; CHECK-NEXT: AccQual: Default
939 ; CHECK-NEXT: - Size: 8
940 ; CHECK-NEXT: Align: 8
941 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
942 ; CHECK-NEXT: ValueType: I64
943 ; CHECK-NEXT: - Size: 8
944 ; CHECK-NEXT: Align: 8
945 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
946 ; CHECK-NEXT: ValueType: I64
947 ; CHECK-NEXT: - Size: 8
948 ; CHECK-NEXT: Align: 8
949 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
950 ; CHECK-NEXT: ValueType: I64
951 ; CHECK-NEXT: - Size: 8
952 ; CHECK-NEXT: Align: 8
953 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
954 ; CHECK-NEXT: ValueType: I8
955 ; CHECK-NEXT: AddrSpaceQual: Global
956 define amdgpu_kernel void @test_vec_type_hint_unknown(i32 %a) #0
957 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
958 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !32 {
962 ; CHECK: - Name: test_reqd_wgs_vec_type_hint
963 ; CHECK-NEXT: SymbolName: 'test_reqd_wgs_vec_type_hint@kd'
964 ; CHECK-NEXT: Language: OpenCL C
965 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
967 ; CHECK-NEXT: ReqdWorkGroupSize: [ 1, 2, 4 ]
968 ; CHECK-NEXT: VecTypeHint: int
970 ; CHECK-NEXT: - Name: a
971 ; CHECK-NEXT: TypeName: int
972 ; CHECK-NEXT: Size: 4
973 ; CHECK-NEXT: Align: 4
974 ; CHECK-NEXT: ValueKind: ByValue
975 ; CHECK-NEXT: ValueType: I32
976 ; CHECK-NEXT: AccQual: Default
977 ; CHECK-NEXT: - Size: 8
978 ; CHECK-NEXT: Align: 8
979 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
980 ; CHECK-NEXT: ValueType: I64
981 ; CHECK-NEXT: - Size: 8
982 ; CHECK-NEXT: Align: 8
983 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
984 ; CHECK-NEXT: ValueType: I64
985 ; CHECK-NEXT: - Size: 8
986 ; CHECK-NEXT: Align: 8
987 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
988 ; CHECK-NEXT: ValueType: I64
989 ; CHECK-NEXT: - Size: 8
990 ; CHECK-NEXT: Align: 8
991 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
992 ; CHECK-NEXT: ValueType: I8
993 ; CHECK-NEXT: AddrSpaceQual: Global
994 define amdgpu_kernel void @test_reqd_wgs_vec_type_hint(i32 %a) #0
995 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
996 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !5
997 !reqd_work_group_size !6 {
1001 ; CHECK: - Name: test_wgs_hint_vec_type_hint
1002 ; CHECK-NEXT: SymbolName: 'test_wgs_hint_vec_type_hint@kd'
1003 ; CHECK-NEXT: Language: OpenCL C
1004 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1005 ; CHECK-NEXT: Attrs:
1006 ; CHECK-NEXT: WorkGroupSizeHint: [ 8, 16, 32 ]
1007 ; CHECK-NEXT: VecTypeHint: uint4
1009 ; CHECK-NEXT: - Name: a
1010 ; CHECK-NEXT: TypeName: int
1011 ; CHECK-NEXT: Size: 4
1012 ; CHECK-NEXT: Align: 4
1013 ; CHECK-NEXT: ValueKind: ByValue
1014 ; CHECK-NEXT: ValueType: I32
1015 ; CHECK-NEXT: AccQual: Default
1016 ; CHECK-NEXT: - Size: 8
1017 ; CHECK-NEXT: Align: 8
1018 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
1019 ; CHECK-NEXT: ValueType: I64
1020 ; CHECK-NEXT: - Size: 8
1021 ; CHECK-NEXT: Align: 8
1022 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
1023 ; CHECK-NEXT: ValueType: I64
1024 ; CHECK-NEXT: - Size: 8
1025 ; CHECK-NEXT: Align: 8
1026 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
1027 ; CHECK-NEXT: ValueType: I64
1028 ; CHECK-NEXT: - Size: 8
1029 ; CHECK-NEXT: Align: 8
1030 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
1031 ; CHECK-NEXT: ValueType: I8
1032 ; CHECK-NEXT: AddrSpaceQual: Global
1033 define amdgpu_kernel void @test_wgs_hint_vec_type_hint(i32 %a) #0
1034 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
1035 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !7
1036 !work_group_size_hint !8 {
1040 ; CHECK: - Name: test_arg_ptr_to_ptr
1041 ; CHECK-NEXT: SymbolName: 'test_arg_ptr_to_ptr@kd'
1042 ; CHECK-NEXT: Language: OpenCL C
1043 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1045 ; CHECK-NEXT: - Name: a
1046 ; CHECK-NEXT: TypeName: 'int addrspace(5)* addrspace(5)*'
1047 ; CHECK-NEXT: Size: 8
1048 ; CHECK-NEXT: Align: 8
1049 ; CHECK-NEXT: ValueKind: GlobalBuffer
1050 ; CHECK-NEXT: ValueType: I32
1051 ; CHECK-NEXT: AddrSpaceQual: Global
1052 ; CHECK-NEXT: AccQual: Default
1053 ; CHECK-NEXT: - Size: 8
1054 ; CHECK-NEXT: Align: 8
1055 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
1056 ; CHECK-NEXT: ValueType: I64
1057 ; CHECK-NEXT: - Size: 8
1058 ; CHECK-NEXT: Align: 8
1059 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
1060 ; CHECK-NEXT: ValueType: I64
1061 ; CHECK-NEXT: - Size: 8
1062 ; CHECK-NEXT: Align: 8
1063 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
1064 ; CHECK-NEXT: ValueType: I64
1065 ; CHECK-NEXT: - Size: 8
1066 ; CHECK-NEXT: Align: 8
1067 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
1068 ; CHECK-NEXT: ValueType: I8
1069 ; CHECK-NEXT: AddrSpaceQual: Global
1070 define amdgpu_kernel void @test_arg_ptr_to_ptr(i32 addrspace(5)* addrspace(1)* %a) #0
1071 !kernel_arg_addr_space !81 !kernel_arg_access_qual !2 !kernel_arg_type !80
1072 !kernel_arg_base_type !80 !kernel_arg_type_qual !4 {
1076 ; CHECK: - Name: test_arg_struct_contains_ptr
1077 ; CHECK-NEXT: SymbolName: 'test_arg_struct_contains_ptr@kd'
1078 ; CHECK-NEXT: Language: OpenCL C
1079 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1081 ; CHECK-NEXT: - Name: a
1082 ; CHECK-NEXT: TypeName: struct B
1083 ; CHECK-NEXT: Size: 4
1084 ; CHECK-NEXT: Align: 4
1085 ; CHECK-NEXT: ValueKind: GlobalBuffer
1086 ; CHECK-NEXT: ValueType: Struct
1087 ; CHECK-NEXT: AddrSpaceQual: Private
1088 ; CHECK-NEXT: AccQual: Default
1089 ; CHECK-NEXT: - Size: 8
1090 ; CHECK-NEXT: Align: 8
1091 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
1092 ; CHECK-NEXT: ValueType: I64
1093 ; CHECK-NEXT: - Size: 8
1094 ; CHECK-NEXT: Align: 8
1095 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
1096 ; CHECK-NEXT: ValueType: I64
1097 ; CHECK-NEXT: - Size: 8
1098 ; CHECK-NEXT: Align: 8
1099 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
1100 ; CHECK-NEXT: ValueType: I64
1101 ; CHECK-NEXT: - Size: 8
1102 ; CHECK-NEXT: Align: 8
1103 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
1104 ; CHECK-NEXT: ValueType: I8
1105 ; CHECK-NEXT: AddrSpaceQual: Global
1106 define amdgpu_kernel void @test_arg_struct_contains_ptr(%struct.B addrspace(5)* byval %a) #0
1107 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !82
1108 !kernel_arg_base_type !82 !kernel_arg_type_qual !4 {
1112 ; CHECK: - Name: test_arg_vector_of_ptr
1113 ; CHECK-NEXT: SymbolName: 'test_arg_vector_of_ptr@kd'
1114 ; CHECK-NEXT: Language: OpenCL C
1115 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1117 ; CHECK-NEXT: - Name: a
1118 ; CHECK-NEXT: TypeName: 'global int addrspace(5)* __attribute__((ext_vector_type(2)))'
1119 ; CHECK-NEXT: Size: 16
1120 ; CHECK-NEXT: Align: 16
1121 ; CHECK-NEXT: ValueKind: ByValue
1122 ; CHECK-NEXT: ValueType: I32
1123 ; CHECK-NEXT: AccQual: Default
1124 ; CHECK-NEXT: - Size: 8
1125 ; CHECK-NEXT: Align: 8
1126 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
1127 ; CHECK-NEXT: ValueType: I64
1128 ; CHECK-NEXT: - Size: 8
1129 ; CHECK-NEXT: Align: 8
1130 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
1131 ; CHECK-NEXT: ValueType: I64
1132 ; CHECK-NEXT: - Size: 8
1133 ; CHECK-NEXT: Align: 8
1134 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
1135 ; CHECK-NEXT: ValueType: I64
1136 ; CHECK-NEXT: - Size: 8
1137 ; CHECK-NEXT: Align: 8
1138 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
1139 ; CHECK-NEXT: ValueType: I8
1140 ; CHECK-NEXT: AddrSpaceQual: Global
1141 define amdgpu_kernel void @test_arg_vector_of_ptr(<2 x i32 addrspace(1)*> %a) #0
1142 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !83
1143 !kernel_arg_base_type !83 !kernel_arg_type_qual !4 {
1147 ; CHECK: - Name: test_arg_unknown_builtin_type
1148 ; CHECK-NEXT: SymbolName: 'test_arg_unknown_builtin_type@kd'
1149 ; CHECK-NEXT: Language: OpenCL C
1150 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1152 ; CHECK-NEXT: - Name: a
1153 ; CHECK-NEXT: TypeName: clk_event_t
1154 ; CHECK-NEXT: Size: 8
1155 ; CHECK-NEXT: Align: 8
1156 ; CHECK-NEXT: ValueKind: GlobalBuffer
1157 ; CHECK-NEXT: ValueType: Struct
1158 ; CHECK-NEXT: AddrSpaceQual: Global
1159 ; CHECK-NEXT: AccQual: Default
1160 ; CHECK-NEXT: - Size: 8
1161 ; CHECK-NEXT: Align: 8
1162 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
1163 ; CHECK-NEXT: ValueType: I64
1164 ; CHECK-NEXT: - Size: 8
1165 ; CHECK-NEXT: Align: 8
1166 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
1167 ; CHECK-NEXT: ValueType: I64
1168 ; CHECK-NEXT: - Size: 8
1169 ; CHECK-NEXT: Align: 8
1170 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
1171 ; CHECK-NEXT: ValueType: I64
1172 ; CHECK-NEXT: - Size: 8
1173 ; CHECK-NEXT: Align: 8
1174 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
1175 ; CHECK-NEXT: ValueType: I8
1176 ; CHECK-NEXT: AddrSpaceQual: Global
1177 define amdgpu_kernel void @test_arg_unknown_builtin_type(
1178 %opencl.clk_event_t addrspace(1)* %a) #0
1179 !kernel_arg_addr_space !81 !kernel_arg_access_qual !2 !kernel_arg_type !84
1180 !kernel_arg_base_type !84 !kernel_arg_type_qual !4 {
1184 ; CHECK: - Name: test_pointee_align
1185 ; CHECK-NEXT: SymbolName: 'test_pointee_align@kd'
1186 ; CHECK-NEXT: Language: OpenCL C
1187 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1189 ; CHECK-NEXT: - Name: a
1190 ; CHECK-NEXT: TypeName: 'long addrspace(5)*'
1191 ; CHECK-NEXT: Size: 8
1192 ; CHECK-NEXT: Align: 8
1193 ; CHECK-NEXT: ValueKind: GlobalBuffer
1194 ; CHECK-NEXT: ValueType: I64
1195 ; CHECK-NEXT: AddrSpaceQual: Global
1196 ; CHECK-NEXT: AccQual: Default
1197 ; CHECK-NEXT: - Name: b
1198 ; CHECK-NEXT: TypeName: 'char addrspace(5)*'
1199 ; CHECK-NEXT: Size: 4
1200 ; CHECK-NEXT: Align: 4
1201 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
1202 ; CHECK-NEXT: ValueType: I8
1203 ; CHECK-NEXT: PointeeAlign: 1
1204 ; CHECK-NEXT: AddrSpaceQual: Local
1205 ; CHECK-NEXT: AccQual: Default
1206 ; CHECK-NEXT: - Name: c
1207 ; CHECK-NEXT: TypeName: 'char2 addrspace(5)*'
1208 ; CHECK-NEXT: Size: 4
1209 ; CHECK-NEXT: Align: 4
1210 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
1211 ; CHECK-NEXT: ValueType: I8
1212 ; CHECK-NEXT: PointeeAlign: 2
1213 ; CHECK-NEXT: AddrSpaceQual: Local
1214 ; CHECK-NEXT: AccQual: Default
1215 ; CHECK-NEXT: - Name: d
1216 ; CHECK-NEXT: TypeName: 'char3 addrspace(5)*'
1217 ; CHECK-NEXT: Size: 4
1218 ; CHECK-NEXT: Align: 4
1219 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
1220 ; CHECK-NEXT: ValueType: I8
1221 ; CHECK-NEXT: PointeeAlign: 4
1222 ; CHECK-NEXT: AddrSpaceQual: Local
1223 ; CHECK-NEXT: AccQual: Default
1224 ; CHECK-NEXT: - Name: e
1225 ; CHECK-NEXT: TypeName: 'char4 addrspace(5)*'
1226 ; CHECK-NEXT: Size: 4
1227 ; CHECK-NEXT: Align: 4
1228 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
1229 ; CHECK-NEXT: ValueType: I8
1230 ; CHECK-NEXT: PointeeAlign: 4
1231 ; CHECK-NEXT: AddrSpaceQual: Local
1232 ; CHECK-NEXT: AccQual: Default
1233 ; CHECK-NEXT: - Name: f
1234 ; CHECK-NEXT: TypeName: 'char8 addrspace(5)*'
1235 ; CHECK-NEXT: Size: 4
1236 ; CHECK-NEXT: Align: 4
1237 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
1238 ; CHECK-NEXT: ValueType: I8
1239 ; CHECK-NEXT: PointeeAlign: 8
1240 ; CHECK-NEXT: AddrSpaceQual: Local
1241 ; CHECK-NEXT: AccQual: Default
1242 ; CHECK-NEXT: - Name: g
1243 ; CHECK-NEXT: TypeName: 'char16 addrspace(5)*'
1244 ; CHECK-NEXT: Size: 4
1245 ; CHECK-NEXT: Align: 4
1246 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
1247 ; CHECK-NEXT: ValueType: I8
1248 ; CHECK-NEXT: PointeeAlign: 16
1249 ; CHECK-NEXT: AddrSpaceQual: Local
1250 ; CHECK-NEXT: AccQual: Default
1251 ; CHECK-NEXT: - Name: h
1252 ; CHECK-NEXT: Size: 4
1253 ; CHECK-NEXT: Align: 4
1254 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
1255 ; CHECK-NEXT: ValueType: Struct
1256 ; CHECK-NEXT: PointeeAlign: 1
1257 ; CHECK-NEXT: AddrSpaceQual: Local
1258 ; CHECK-NEXT: - Size: 8
1259 ; CHECK-NEXT: Align: 8
1260 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
1261 ; CHECK-NEXT: ValueType: I64
1262 ; CHECK-NEXT: - Size: 8
1263 ; CHECK-NEXT: Align: 8
1264 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
1265 ; CHECK-NEXT: ValueType: I64
1266 ; CHECK-NEXT: - Size: 8
1267 ; CHECK-NEXT: Align: 8
1268 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
1269 ; CHECK-NEXT: ValueType: I64
1270 ; CHECK-NEXT: - Size: 8
1271 ; CHECK-NEXT: Align: 8
1272 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
1273 ; CHECK-NEXT: ValueType: I8
1274 ; CHECK-NEXT: AddrSpaceQual: Global
1275 define amdgpu_kernel void @test_pointee_align(i64 addrspace(1)* %a,
1276 i8 addrspace(3)* %b,
1277 <2 x i8> addrspace(3)* %c,
1278 <3 x i8> addrspace(3)* %d,
1279 <4 x i8> addrspace(3)* %e,
1280 <8 x i8> addrspace(3)* %f,
1281 <16 x i8> addrspace(3)* %g,
1282 {} addrspace(3)* %h) #0
1283 !kernel_arg_addr_space !91 !kernel_arg_access_qual !92 !kernel_arg_type !93
1284 !kernel_arg_base_type !93 !kernel_arg_type_qual !94 {
1288 ; CHECK: - Name: test_pointee_align_attribute
1289 ; CHECK-NEXT: SymbolName: 'test_pointee_align_attribute@kd'
1290 ; CHECK-NEXT: Language: OpenCL C
1291 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1293 ; CHECK-NEXT: - Name: a
1294 ; CHECK-NEXT: TypeName: 'long addrspace(5)*'
1295 ; CHECK-NEXT: Size: 8
1296 ; CHECK-NEXT: Align: 8
1297 ; CHECK-NEXT: ValueKind: GlobalBuffer
1298 ; CHECK-NEXT: ValueType: I64
1299 ; CHECK-NEXT: AddrSpaceQual: Global
1300 ; CHECK-NEXT: AccQual: Default
1301 ; CHECK-NEXT: - Name: b
1302 ; CHECK-NEXT: TypeName: 'char addrspace(5)*'
1303 ; CHECK-NEXT: Size: 4
1304 ; CHECK-NEXT: Align: 4
1305 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
1306 ; CHECK-NEXT: ValueType: I8
1307 ; CHECK-NEXT: PointeeAlign: 8
1308 ; CHECK-NEXT: AddrSpaceQual: Local
1309 ; CHECK-NEXT: AccQual: Default
1310 ; CHECK-NEXT: - Name: c
1311 ; CHECK-NEXT: TypeName: 'char2 addrspace(5)*'
1312 ; CHECK-NEXT: Size: 4
1313 ; CHECK-NEXT: Align: 4
1314 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
1315 ; CHECK-NEXT: ValueType: I8
1316 ; CHECK-NEXT: PointeeAlign: 32
1317 ; CHECK-NEXT: AddrSpaceQual: Local
1318 ; CHECK-NEXT: AccQual: Default
1319 ; CHECK-NEXT: - Name: d
1320 ; CHECK-NEXT: TypeName: 'char3 addrspace(5)*'
1321 ; CHECK-NEXT: Size: 4
1322 ; CHECK-NEXT: Align: 4
1323 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
1324 ; CHECK-NEXT: ValueType: I8
1325 ; CHECK-NEXT: PointeeAlign: 64
1326 ; CHECK-NEXT: AddrSpaceQual: Local
1327 ; CHECK-NEXT: AccQual: Default
1328 ; CHECK-NEXT: - Name: e
1329 ; CHECK-NEXT: TypeName: 'char4 addrspace(5)*'
1330 ; CHECK-NEXT: Size: 4
1331 ; CHECK-NEXT: Align: 4
1332 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
1333 ; CHECK-NEXT: ValueType: I8
1334 ; CHECK-NEXT: PointeeAlign: 256
1335 ; CHECK-NEXT: AddrSpaceQual: Local
1336 ; CHECK-NEXT: AccQual: Default
1337 ; CHECK-NEXT: - Name: f
1338 ; CHECK-NEXT: TypeName: 'char8 addrspace(5)*'
1339 ; CHECK-NEXT: Size: 4
1340 ; CHECK-NEXT: Align: 4
1341 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
1342 ; CHECK-NEXT: ValueType: I8
1343 ; CHECK-NEXT: PointeeAlign: 128
1344 ; CHECK-NEXT: AddrSpaceQual: Local
1345 ; CHECK-NEXT: AccQual: Default
1346 ; CHECK-NEXT: - Name: g
1347 ; CHECK-NEXT: TypeName: 'char16 addrspace(5)*'
1348 ; CHECK-NEXT: Size: 4
1349 ; CHECK-NEXT: Align: 4
1350 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
1351 ; CHECK-NEXT: ValueType: I8
1352 ; CHECK-NEXT: PointeeAlign: 1024
1353 ; CHECK-NEXT: AddrSpaceQual: Local
1354 ; CHECK-NEXT: AccQual: Default
1355 ; CHECK-NEXT: - Name: h
1356 ; CHECK-NEXT: Size: 4
1357 ; CHECK-NEXT: Align: 4
1358 ; CHECK-NEXT: ValueKind: DynamicSharedPointer
1359 ; CHECK-NEXT: ValueType: Struct
1360 ; CHECK-NEXT: PointeeAlign: 16
1361 ; CHECK-NEXT: AddrSpaceQual: Local
1362 ; CHECK-NEXT: - Size: 8
1363 ; CHECK-NEXT: Align: 8
1364 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
1365 ; CHECK-NEXT: ValueType: I64
1366 ; CHECK-NEXT: - Size: 8
1367 ; CHECK-NEXT: Align: 8
1368 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
1369 ; CHECK-NEXT: ValueType: I64
1370 ; CHECK-NEXT: - Size: 8
1371 ; CHECK-NEXT: Align: 8
1372 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
1373 ; CHECK-NEXT: ValueType: I64
1374 ; CHECK-NEXT: - Size: 8
1375 ; CHECK-NEXT: Align: 8
1376 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
1377 ; CHECK-NEXT: ValueType: I8
1378 ; CHECK-NEXT: AddrSpaceQual: Global
1379 define amdgpu_kernel void @test_pointee_align_attribute(i64 addrspace(1)* align 16 %a,
1380 i8 addrspace(3)* align 8 %b,
1381 <2 x i8> addrspace(3)* align 32 %c,
1382 <3 x i8> addrspace(3)* align 64 %d,
1383 <4 x i8> addrspace(3)* align 256 %e,
1384 <8 x i8> addrspace(3)* align 128 %f,
1385 <16 x i8> addrspace(3)* align 1024 %g,
1386 {} addrspace(3)* align 16 %h) #0
1387 !kernel_arg_addr_space !91 !kernel_arg_access_qual !92 !kernel_arg_type !93
1388 !kernel_arg_base_type !93 !kernel_arg_type_qual !94 {
1393 ; CHECK: - Name: __test_block_invoke_kernel
1394 ; CHECK-NEXT: SymbolName: '__test_block_invoke_kernel@kd'
1395 ; CHECK-NEXT: Language: OpenCL C
1396 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1397 ; CHECK-NEXT: Attrs:
1398 ; CHECK-NEXT: RuntimeHandle: __test_block_invoke_kernel_runtime_handle
1400 ; CHECK-NEXT: - Name: arg
1401 ; CHECK-NEXT: TypeName: __block_literal
1402 ; CHECK-NEXT: Size: 25
1403 ; CHECK-NEXT: Align: 1
1404 ; CHECK-NEXT: ValueKind: ByValue
1405 ; CHECK-NEXT: ValueType: Struct
1406 ; CHECK-NEXT: AccQual: Default
1407 ; CHECK-NEXT: - Size: 8
1408 ; CHECK-NEXT: Align: 8
1409 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
1410 ; CHECK-NEXT: ValueType: I64
1411 ; CHECK-NEXT: - Size: 8
1412 ; CHECK-NEXT: Align: 8
1413 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
1414 ; CHECK-NEXT: ValueType: I64
1415 ; CHECK-NEXT: - Size: 8
1416 ; CHECK-NEXT: Align: 8
1417 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
1418 ; CHECK-NEXT: ValueType: I64
1419 ; CHECK-NEXT: - Size: 8
1420 ; CHECK-NEXT: Align: 8
1421 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
1422 ; CHECK-NEXT: ValueType: I8
1423 ; CHECK-NEXT: AddrSpaceQual: Global
1424 define amdgpu_kernel void @__test_block_invoke_kernel(
1425 <{ i32, i32, i8*, i8 addrspace(1)*, i8 }> %arg) #1
1426 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !110
1427 !kernel_arg_base_type !110 !kernel_arg_type_qual !4 {
1431 ; CHECK: - Name: test_enqueue_kernel_caller
1432 ; CHECK-NEXT: SymbolName: 'test_enqueue_kernel_caller@kd'
1433 ; CHECK-NEXT: Language: OpenCL C
1434 ; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1436 ; CHECK-NEXT: - Name: a
1437 ; CHECK-NEXT: TypeName: char
1438 ; CHECK-NEXT: Size: 1
1439 ; CHECK-NEXT: Align: 1
1440 ; CHECK-NEXT: ValueKind: ByValue
1441 ; CHECK-NEXT: ValueType: I8
1442 ; CHECK-NEXT: AccQual: Default
1443 ; CHECK-NEXT: - Size: 8
1444 ; CHECK-NEXT: Align: 8
1445 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
1446 ; CHECK-NEXT: ValueType: I64
1447 ; CHECK-NEXT: - Size: 8
1448 ; CHECK-NEXT: Align: 8
1449 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
1450 ; CHECK-NEXT: ValueType: I64
1451 ; CHECK-NEXT: - Size: 8
1452 ; CHECK-NEXT: Align: 8
1453 ; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
1454 ; CHECK-NEXT: ValueType: I64
1455 ; CHECK-NEXT: - Size: 8
1456 ; CHECK-NEXT: Align: 8
1457 ; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
1458 ; CHECK-NEXT: ValueType: I8
1459 ; CHECK-NEXT: AddrSpaceQual: Global
1460 ; CHECK-NEXT: - Size: 8
1461 ; CHECK-NEXT: Align: 8
1462 ; CHECK-NEXT: ValueKind: HiddenDefaultQueue
1463 ; CHECK-NEXT: ValueType: I8
1464 ; CHECK-NEXT: AddrSpaceQual: Global
1465 ; CHECK-NEXT: - Size: 8
1466 ; CHECK-NEXT: Align: 8
1467 ; CHECK-NEXT: ValueKind: HiddenCompletionAction
1468 ; CHECK-NEXT: ValueType: I8
1469 ; CHECK-NEXT: AddrSpaceQual: Global
1470 define amdgpu_kernel void @test_enqueue_kernel_caller(i8 %a) #2
1471 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !9
1472 !kernel_arg_base_type !9 !kernel_arg_type_qual !4 {
1476 ; CHECK: - Name: unknown_addrspace_kernarg
1478 ; CHECK-NEXT: - Name: ptr
1479 ; CHECK-NEXT: Size: 8
1480 ; CHECK-NEXT: Align: 8
1481 ; CHECK-NEXT: ValueKind: GlobalBuffer
1482 ; CHECK-NEXT: ValueType: I32
1483 define amdgpu_kernel void @unknown_addrspace_kernarg(i32 addrspace(12345)* %ptr) #0 {
1487 attributes #0 = { "amdgpu-implicitarg-num-bytes"="48" }
1488 attributes #1 = { "amdgpu-implicitarg-num-bytes"="48" "runtime-handle"="__test_block_invoke_kernel_runtime_handle" }
1489 attributes #2 = { "amdgpu-implicitarg-num-bytes"="48" "calls-enqueue-kernel" }
1491 !llvm.printf.fmts = !{!100, !101}
1497 !5 = !{i32 undef, i32 1}
1498 !6 = !{i32 1, i32 2, i32 4}
1499 !7 = !{<4 x i32> undef, i32 0}
1500 !8 = !{i32 8, i32 16, i32 32}
1507 !15 = !{!"double16"}
1508 !16 = !{!"int addrspace(5)*"}
1509 !17 = !{!"image2d_t"}
1510 !18 = !{!"sampler_t"}
1512 !20 = !{!"struct A"}
1514 !22 = !{i32 0, i32 0, i32 0}
1515 !23 = !{!"none", !"none", !"none"}
1516 !24 = !{!"int", !"short2", !"char3"}
1517 !25 = !{!"", !"", !""}
1518 !26 = !{half undef, i32 1}
1519 !27 = !{float undef, i32 1}
1520 !28 = !{double undef, i32 1}
1521 !29 = !{i8 undef, i32 1}
1522 !30 = !{i16 undef, i32 1}
1523 !31 = !{i64 undef, i32 1}
1524 !32 = !{i32 addrspace(5)*undef, i32 1}
1525 !50 = !{i32 1, i32 2, i32 3}
1526 !51 = !{!"int addrspace(5)*", !"int addrspace(5)*", !"int addrspace(5)*"}
1527 !60 = !{i32 1, i32 1, i32 1}
1528 !61 = !{!"read_only", !"write_only", !"read_write"}
1529 !62 = !{!"image1d_t", !"image2d_t", !"image3d_t"}
1530 !70 = !{!"volatile", !"const restrict", !"pipe"}
1531 !80 = !{!"int addrspace(5)* addrspace(5)*"}
1533 !82 = !{!"struct B"}
1534 !83 = !{!"global int addrspace(5)* __attribute__((ext_vector_type(2)))"}
1535 !84 = !{!"clk_event_t"}
1536 !opencl.ocl.version = !{!90}
1537 !90 = !{i32 2, i32 0}
1538 !91 = !{i32 0, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3}
1539 !92 = !{!"none", !"none", !"none", !"none", !"none", !"none", !"none"}
1540 !93 = !{!"long addrspace(5)*", !"char addrspace(5)*", !"char2 addrspace(5)*", !"char3 addrspace(5)*", !"char4 addrspace(5)*", !"char8 addrspace(5)*", !"char16 addrspace(5)*"}
1541 !94 = !{!"", !"", !"", !"", !"", !"", !""}
1542 !100 = !{!"1:1:4:%d\5Cn"}
1543 !101 = !{!"2:1:8:%g\5Cn"}
1544 !110 = !{!"__block_literal"}
1546 ; PARSER: AMDGPU HSA Metadata Parser Test: PASS