blob: 7299a67755eca5d942fc2a85f466f4003c6c2865 [file] [log] [blame]
Yaxun Liua711cc72016-07-16 05:09:21 +00001; RUN: llc -mtriple=amdgcn--amdhsa < %s | FileCheck %s
2
3%struct.A = type { i8, float }
4%opencl.image1d_t = type opaque
5%opencl.image2d_t = type opaque
6%opencl.image3d_t = type opaque
7%opencl.queue_t = type opaque
8%opencl.pipe_t = type opaque
9%struct.B = type { i32 addrspace(1)*}
10%opencl.clk_event_t = type opaque
11
12; CHECK: .section .AMDGPU.runtime_metadata
13; CHECK-NEXT: .byte 1
14; CHECK-NEXT: .short 256
15; CHECK-NEXT: .byte 2
16; CHECK-NEXT: .byte 0
17; CHECK-NEXT: .byte 3
18; CHECK-NEXT: .short 200
19
20; CHECK-LABEL:{{^}}test_char:
21; CHECK: .section .AMDGPU.runtime_metadata
22; CHECK-NEXT: .byte 4
23; CHECK-NEXT: .byte 6
24; CHECK-NEXT: .long 9
25; CHECK-NEXT: .ascii "test_char"
26; CHECK-NEXT: .byte 7
27; CHECK-NEXT: .byte 9
28; CHECK-NEXT: .long 1
29; CHECK-NEXT: .byte 10
30; CHECK-NEXT: .long 1
31; CHECK-NEXT: .byte 11
32; CHECK-NEXT: .long 4
33; CHECK-NEXT: .ascii "char"
34; CHECK-NEXT: .byte 13
35; CHECK-NEXT: .byte 0
36; CHECK-NEXT: .byte 14
37; CHECK-NEXT: .short 1
38; CHECK-NEXT: .byte 16
39; CHECK-NEXT: .byte 0
40; CHECK-NEXT: .byte 8
41; CHECK-NEXT: .byte 5
42
43define amdgpu_kernel void @test_char(i8 %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !9 !kernel_arg_base_type !9 !kernel_arg_type_qual !4 {
44 ret void
45}
46
47; CHECK-LABEL:{{^}}test_ushort2:
48; CHECK: .section .AMDGPU.runtime_metadata
49; CHECK-NEXT: .byte 4
50; CHECK-NEXT: .byte 6
51; CHECK-NEXT: .long 12
52; CHECK-NEXT: .ascii "test_ushort2"
53; CHECK-NEXT: .byte 7
54; CHECK-NEXT: .byte 9
55; CHECK-NEXT: .long 4
56; CHECK-NEXT: .byte 10
57; CHECK-NEXT: .long 4
58; CHECK-NEXT: .byte 11
59; CHECK-NEXT: .long 7
60; CHECK-NEXT: .ascii "ushort2"
61; CHECK-NEXT: .byte 13
62; CHECK-NEXT: .byte 0
63; CHECK-NEXT: .byte 14
64; CHECK-NEXT: .short 4
65; CHECK-NEXT: .byte 16
66; CHECK-NEXT: .byte 0
67; CHECK-NEXT: .byte 8
68; CHECK-NEXT: .byte 5
69
70define amdgpu_kernel void @test_ushort2(<2 x i16> %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !10 !kernel_arg_base_type !10 !kernel_arg_type_qual !4 {
71 ret void
72}
73
74; CHECK-LABEL:{{^}}test_int3:
75; CHECK: .section .AMDGPU.runtime_metadata
76; CHECK-NEXT: .byte 4
77; CHECK-NEXT: .byte 6
78; CHECK-NEXT: .long 9
79; CHECK-NEXT: .ascii "test_int3"
80; CHECK-NEXT: .byte 7
81; CHECK-NEXT: .byte 9
82; CHECK-NEXT: .long 16
83; CHECK-NEXT: .byte 10
84; CHECK-NEXT: .long 16
85; CHECK-NEXT: .byte 11
86; CHECK-NEXT: .long 4
87; CHECK-NEXT: .ascii "int3"
88; CHECK-NEXT: .byte 13
89; CHECK-NEXT: .byte 0
90; CHECK-NEXT: .byte 14
91; CHECK-NEXT: .short 6
92; CHECK-NEXT: .byte 16
93; CHECK-NEXT: .byte 0
94; CHECK-NEXT: .byte 8
95; CHECK-NEXT: .byte 5
96
97define amdgpu_kernel void @test_int3(<3 x i32> %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !11 !kernel_arg_base_type !11 !kernel_arg_type_qual !4 {
98 ret void
99}
100
101; CHECK-LABEL:{{^}}test_ulong4:
102; CHECK: .section .AMDGPU.runtime_metadata
103; CHECK-NEXT: .byte 4
104; CHECK-NEXT: .byte 6
105; CHECK-NEXT: .long 11
106; CHECK-NEXT: .ascii "test_ulong4"
107; CHECK-NEXT: .byte 7
108; CHECK-NEXT: .byte 9
109; CHECK-NEXT: .long 32
110; CHECK-NEXT: .byte 10
111; CHECK-NEXT: .long 32
112; CHECK-NEXT: .byte 11
113; CHECK-NEXT: .long 6
114; CHECK-NEXT: .ascii "ulong4"
115; CHECK-NEXT: .byte 13
116; CHECK-NEXT: .byte 0
117; CHECK-NEXT: .byte 14
118; CHECK-NEXT: .short 10
119; CHECK-NEXT: .byte 16
120; CHECK-NEXT: .byte 0
121; CHECK-NEXT: .byte 8
122; CHECK-NEXT: .byte 5
123
124define amdgpu_kernel void @test_ulong4(<4 x i64> %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !12 !kernel_arg_base_type !12 !kernel_arg_type_qual !4 {
125 ret void
126}
127
128; CHECK-LABEL:{{^}}test_half8:
129; CHECK: .section .AMDGPU.runtime_metadata
130; CHECK-NEXT: .byte 4
131; CHECK-NEXT: .byte 6
132; CHECK-NEXT: .long 10
133; CHECK-NEXT: .ascii "test_half8"
134; CHECK-NEXT: .byte 7
135; CHECK-NEXT: .byte 9
136; CHECK-NEXT: .long 16
137; CHECK-NEXT: .byte 10
138; CHECK-NEXT: .long 16
139; CHECK-NEXT: .byte 11
140; CHECK-NEXT: .long 5
141; CHECK-NEXT: .ascii "half8"
142; CHECK-NEXT: .byte 13
143; CHECK-NEXT: .byte 0
144; CHECK-NEXT: .byte 14
145; CHECK-NEXT: .short 5
146; CHECK-NEXT: .byte 16
147; CHECK-NEXT: .byte 0
148; CHECK-NEXT: .byte 8
149; CHECK-NEXT: .byte 5
150
151define amdgpu_kernel void @test_half8(<8 x half> %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !13 !kernel_arg_base_type !13 !kernel_arg_type_qual !4 {
152 ret void
153}
154
155; CHECK-LABEL:{{^}}test_float16:
156; CHECK: .section .AMDGPU.runtime_metadata
157; CHECK-NEXT: .byte 4
158; CHECK-NEXT: .byte 6
159; CHECK-NEXT: .long 12
160; CHECK-NEXT: .ascii "test_float16"
161; CHECK-NEXT: .byte 7
162; CHECK-NEXT: .byte 9
163; CHECK-NEXT: .long 64
164; CHECK-NEXT: .byte 10
165; CHECK-NEXT: .long 64
166; CHECK-NEXT: .byte 11
167; CHECK-NEXT: .long 7
168; CHECK-NEXT: .ascii "float16"
169; CHECK-NEXT: .byte 13
170; CHECK-NEXT: .byte 0
171; CHECK-NEXT: .byte 14
172; CHECK-NEXT: .short 8
173; CHECK-NEXT: .byte 16
174; CHECK-NEXT: .byte 0
175; CHECK-NEXT: .byte 8
176; CHECK-NEXT: .byte 5
177
178define amdgpu_kernel void @test_float16(<16 x float> %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !14 !kernel_arg_base_type !14 !kernel_arg_type_qual !4 {
179 ret void
180}
181
182; CHECK-LABEL:{{^}}test_double16:
183; CHECK: .section .AMDGPU.runtime_metadata
184; CHECK-NEXT: .byte 4
185; CHECK-NEXT: .byte 6
186; CHECK-NEXT: .long 13
187; CHECK-NEXT: .ascii "test_double16"
188; CHECK-NEXT: .byte 7
189; CHECK-NEXT: .byte 9
190; CHECK-NEXT: .long 128
191; CHECK-NEXT: .byte 10
192; CHECK-NEXT: .long 128
193; CHECK-NEXT: .byte 11
194; CHECK-NEXT: .long 8
195; CHECK-NEXT: .ascii "double16"
196; CHECK-NEXT: .byte 13
197; CHECK-NEXT: .byte 0
198; CHECK-NEXT: .byte 14
199; CHECK-NEXT: .short 11
200; CHECK-NEXT: .byte 16
201; CHECK-NEXT: .byte 0
202; CHECK-NEXT: .byte 8
203; CHECK-NEXT: .byte 5
204
205define amdgpu_kernel void @test_double16(<16 x double> %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !15 !kernel_arg_base_type !15 !kernel_arg_type_qual !4 {
206 ret void
207}
208
209; CHECK-LABEL:{{^}}test_pointer:
210; CHECK: .section .AMDGPU.runtime_metadata
211; CHECK-NEXT: .byte 4
212; CHECK-NEXT: .byte 6
213; CHECK-NEXT: .long 12
214; CHECK-NEXT: .ascii "test_pointer"
215; CHECK-NEXT: .byte 7
216; CHECK-NEXT: .byte 9
217; CHECK-NEXT: .long 8
218; CHECK-NEXT: .byte 10
219; CHECK-NEXT: .long 8
Yaxun Liuadd05a82016-09-01 18:46:49 +0000220; CHECK-NEXT: .byte 32
221; CHECK-NEXT: .long 4
Yaxun Liua711cc72016-07-16 05:09:21 +0000222; CHECK-NEXT: .byte 11
223; CHECK-NEXT: .long 5
224; CHECK-NEXT: .ascii "int *"
225; CHECK-NEXT: .byte 13
226; CHECK-NEXT: .byte 1
227; CHECK-NEXT: .byte 14
228; CHECK-NEXT: .short 6
229; CHECK-NEXT: .byte 16
230; CHECK-NEXT: .byte 0
231; CHECK-NEXT: .byte 15
232; CHECK-NEXT: .byte 1
233; CHECK-NEXT: .byte 8
234; CHECK-NEXT: .byte 5
235
236define amdgpu_kernel void @test_pointer(i32 addrspace(1)* %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !16 !kernel_arg_base_type !16 !kernel_arg_type_qual !4 {
237 ret void
238}
239
240; CHECK-LABEL:{{^}}test_image:
241; CHECK: .section .AMDGPU.runtime_metadata
242; CHECK-NEXT: .byte 4
243; CHECK-NEXT: .byte 6
244; CHECK-NEXT: .long 10
245; CHECK-NEXT: .ascii "test_image"
246; CHECK-NEXT: .byte 7
247; CHECK-NEXT: .byte 9
248; CHECK-NEXT: .long 8
249; CHECK-NEXT: .byte 10
250; CHECK-NEXT: .long 8
251; CHECK-NEXT: .byte 11
252; CHECK-NEXT: .long 9
253; CHECK-NEXT: .ascii "image2d_t"
254; CHECK-NEXT: .byte 13
255; CHECK-NEXT: .byte 2
256; CHECK-NEXT: .byte 14
257; CHECK-NEXT: .short 0
258; CHECK-NEXT: .byte 16
259; CHECK-NEXT: .byte 0
260; CHECK-NEXT: .byte 15
261; CHECK-NEXT: .byte 1
262; CHECK-NEXT: .byte 8
263; CHECK-NEXT: .byte 5
264
265define amdgpu_kernel void @test_image(%opencl.image2d_t addrspace(1)* %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !17 !kernel_arg_base_type !17 !kernel_arg_type_qual !4 {
266 ret void
267}
268
269; CHECK-LABEL:{{^}}test_sampler:
270; CHECK: .section .AMDGPU.runtime_metadata
271; CHECK-NEXT: .byte 4
272; CHECK-NEXT: .byte 6
273; CHECK-NEXT: .long 12
274; CHECK-NEXT: .ascii "test_sampler"
275; CHECK-NEXT: .byte 7
276; CHECK-NEXT: .byte 9
277; CHECK-NEXT: .long 4
278; CHECK-NEXT: .byte 10
279; CHECK-NEXT: .long 4
280; CHECK-NEXT: .byte 11
281; CHECK-NEXT: .long 9
282; CHECK-NEXT: .ascii "sampler_t"
283; CHECK-NEXT: .byte 13
284; CHECK-NEXT: .byte 3
285; CHECK-NEXT: .byte 14
286; CHECK-NEXT: .short 6
287; CHECK-NEXT: .byte 16
288; CHECK-NEXT: .byte 0
289; CHECK-NEXT: .byte 8
290; CHECK-NEXT: .byte 5
291
292define amdgpu_kernel void @test_sampler(i32 %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !18 !kernel_arg_base_type !18 !kernel_arg_type_qual !4 {
293 ret void
294}
295
296; CHECK-LABEL:{{^}}test_queue:
297; CHECK: .section .AMDGPU.runtime_metadata
298; CHECK-NEXT: .byte 4
299; CHECK-NEXT: .byte 6
300; CHECK-NEXT: .long 10
301; CHECK-NEXT: .ascii "test_queue"
302; CHECK-NEXT: .byte 7
303; CHECK-NEXT: .byte 9
304; CHECK-NEXT: .long 8
305; CHECK-NEXT: .byte 10
306; CHECK-NEXT: .long 8
307; CHECK-NEXT: .byte 11
308; CHECK-NEXT: .long 7
309; CHECK-NEXT: .ascii "queue_t"
310; CHECK-NEXT: .byte 13
311; CHECK-NEXT: .byte 4
312; CHECK-NEXT: .byte 14
313; CHECK-NEXT: .short 0
314; CHECK-NEXT: .byte 16
315; CHECK-NEXT: .byte 0
316; CHECK-NEXT: .byte 15
317; CHECK-NEXT: .byte 1
318; CHECK-NEXT: .byte 8
319; CHECK-NEXT: .byte 5
320
321define amdgpu_kernel void @test_queue(%opencl.queue_t addrspace(1)* %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !19 !kernel_arg_base_type !19 !kernel_arg_type_qual !4 {
322 ret void
323}
324
325; CHECK-LABEL:{{^}}test_struct:
326; CHECK: .section .AMDGPU.runtime_metadata
327; CHECK-NEXT: .byte 4
328; CHECK-NEXT: .byte 6
329; CHECK-NEXT: .long 11
330; CHECK-NEXT: .ascii "test_struct"
331; CHECK-NEXT: .byte 7
332; CHECK-NEXT: .byte 9
333; CHECK-NEXT: .long 4
334; CHECK-NEXT: .byte 10
335; CHECK-NEXT: .long 4
Yaxun Liuadd05a82016-09-01 18:46:49 +0000336; CHECK-NEXT: .byte 32
337; CHECK-NEXT: .long 4
Yaxun Liua711cc72016-07-16 05:09:21 +0000338; CHECK-NEXT: .byte 11
339; CHECK-NEXT: .long 8
340; CHECK-NEXT: .ascii "struct A"
341; CHECK-NEXT: .byte 13
342; CHECK-NEXT: .byte 1
343; CHECK-NEXT: .byte 14
344; CHECK-NEXT: .short 0
345; CHECK-NEXT: .byte 16
346; CHECK-NEXT: .byte 0
347; CHECK-NEXT: .byte 15
348; CHECK-NEXT: .byte 0
349; CHECK-NEXT: .byte 8
350; CHECK-NEXT: .byte 5
351
352define amdgpu_kernel void @test_struct(%struct.A* byval %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !20 !kernel_arg_base_type !20 !kernel_arg_type_qual !4 {
353 ret void
354}
355
356; CHECK-LABEL:{{^}}test_i128:
357; CHECK: .section .AMDGPU.runtime_metadata
358; CHECK-NEXT: .byte 4
359; CHECK-NEXT: .byte 6
360; CHECK-NEXT: .long 9
361; CHECK-NEXT: .ascii "test_i128"
362; CHECK-NEXT: .byte 7
363; CHECK-NEXT: .byte 9
364; CHECK-NEXT: .long 16
365; CHECK-NEXT: .byte 10
366; CHECK-NEXT: .long 8
367; CHECK-NEXT: .byte 11
368; CHECK-NEXT: .long 4
369; CHECK-NEXT: .ascii "i128"
370; CHECK-NEXT: .byte 13
371; CHECK-NEXT: .byte 0
372; CHECK-NEXT: .byte 14
373; CHECK-NEXT: .short 0
374; CHECK-NEXT: .byte 16
375; CHECK-NEXT: .byte 0
376; CHECK-NEXT: .byte 8
377; CHECK-NEXT: .byte 5
378
379define amdgpu_kernel void @test_i128(i128 %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !21 !kernel_arg_base_type !21 !kernel_arg_type_qual !4 {
380 ret void
381}
382
383; CHECK-LABEL:{{^}}test_multi_arg:
384; CHECK: .section .AMDGPU.runtime_metadata
385; CHECK-NEXT: .byte 4
386; CHECK-NEXT: .byte 6
387; CHECK-NEXT: .long 14
388; CHECK-NEXT: .ascii "test_multi_arg"
389; CHECK-NEXT: .byte 7
390; CHECK-NEXT: .byte 9
391; CHECK-NEXT: .long 4
392; CHECK-NEXT: .byte 10
393; CHECK-NEXT: .long 4
394; CHECK-NEXT: .byte 11
395; CHECK-NEXT: .long 3
396; CHECK-NEXT: .ascii "int"
397; CHECK-NEXT: .byte 13
398; CHECK-NEXT: .byte 0
399; CHECK-NEXT: .byte 14
400; CHECK-NEXT: .short 6
401; CHECK-NEXT: .byte 16
402; CHECK-NEXT: .byte 0
403; CHECK-NEXT: .byte 8
404; CHECK-NEXT: .byte 7
405; CHECK-NEXT: .byte 9
406; CHECK-NEXT: .long 4
407; CHECK-NEXT: .byte 10
408; CHECK-NEXT: .long 4
409; CHECK-NEXT: .byte 11
410; CHECK-NEXT: .long 6
411; CHECK-NEXT: .ascii "short2"
412; CHECK-NEXT: .byte 13
413; CHECK-NEXT: .byte 0
414; CHECK-NEXT: .byte 14
415; CHECK-NEXT: .short 3
416; CHECK-NEXT: .byte 16
417; CHECK-NEXT: .byte 0
418; CHECK-NEXT: .byte 8
419; CHECK-NEXT: .byte 7
420; CHECK-NEXT: .byte 9
421; CHECK-NEXT: .long 4
422; CHECK-NEXT: .byte 10
423; CHECK-NEXT: .long 4
424; CHECK-NEXT: .byte 11
425; CHECK-NEXT: .long 5
426; CHECK-NEXT: .ascii "char3"
427; CHECK-NEXT: .byte 13
428; CHECK-NEXT: .byte 0
429; CHECK-NEXT: .byte 14
430; CHECK-NEXT: .short 1
431; CHECK-NEXT: .byte 16
432; CHECK-NEXT: .byte 0
433; CHECK-NEXT: .byte 8
434; CHECK-NEXT: .byte 5
435
436define amdgpu_kernel void @test_multi_arg(i32 %a, <2 x i16> %b, <3 x i8> %c) !kernel_arg_addr_space !22 !kernel_arg_access_qual !23 !kernel_arg_type !24 !kernel_arg_base_type !24 !kernel_arg_type_qual !25 {
437 ret void
438}
439
440; CHECK-LABEL:{{^}}test_addr_space:
441; CHECK: .section .AMDGPU.runtime_metadata
442; CHECK-NEXT: .byte 4
443; CHECK-NEXT: .byte 6
444; CHECK-NEXT: .long 15
445; CHECK-NEXT: .ascii "test_addr_space"
446; CHECK-NEXT: .byte 7
447; CHECK-NEXT: .byte 9
448; CHECK-NEXT: .long 8
449; CHECK-NEXT: .byte 10
450; CHECK-NEXT: .long 8
Yaxun Liuadd05a82016-09-01 18:46:49 +0000451; CHECK-NEXT: .byte 32
452; CHECK-NEXT: .long 4
Yaxun Liua711cc72016-07-16 05:09:21 +0000453; CHECK-NEXT: .byte 11
454; CHECK-NEXT: .long 5
455; CHECK-NEXT: .ascii "int *"
456; CHECK-NEXT: .byte 13
457; CHECK-NEXT: .byte 1
458; CHECK-NEXT: .byte 14
459; CHECK-NEXT: .short 6
460; CHECK-NEXT: .byte 16
461; CHECK-NEXT: .byte 0
462; CHECK-NEXT: .byte 15
463; CHECK-NEXT: .byte 1
464; CHECK-NEXT: .byte 8
465; CHECK-NEXT: .byte 7
466; CHECK-NEXT: .byte 9
467; CHECK-NEXT: .long 8
468; CHECK-NEXT: .byte 10
469; CHECK-NEXT: .long 8
Yaxun Liuadd05a82016-09-01 18:46:49 +0000470; CHECK-NEXT: .byte 32
471; CHECK-NEXT: .long 4
Yaxun Liua711cc72016-07-16 05:09:21 +0000472; CHECK-NEXT: .byte 11
473; CHECK-NEXT: .long 5
474; CHECK-NEXT: .ascii "int *"
475; CHECK-NEXT: .byte 13
476; CHECK-NEXT: .byte 1
477; CHECK-NEXT: .byte 14
478; CHECK-NEXT: .short 6
479; CHECK-NEXT: .byte 16
480; CHECK-NEXT: .byte 0
481; CHECK-NEXT: .byte 15
482; CHECK-NEXT: .byte 2
483; CHECK-NEXT: .byte 8
484; CHECK-NEXT: .byte 7
485; CHECK-NEXT: .byte 9
486; CHECK-NEXT: .long 4
487; CHECK-NEXT: .byte 10
488; CHECK-NEXT: .long 4
Yaxun Liuadd05a82016-09-01 18:46:49 +0000489; CHECK-NEXT: .byte 32
490; CHECK-NEXT: .long 4
Yaxun Liua711cc72016-07-16 05:09:21 +0000491; CHECK-NEXT: .byte 11
492; CHECK-NEXT: .long 5
493; CHECK-NEXT: .ascii "int *"
494; CHECK-NEXT: .byte 13
495; CHECK-NEXT: .byte 1
496; CHECK-NEXT: .byte 14
497; CHECK-NEXT: .short 6
498; CHECK-NEXT: .byte 16
499; CHECK-NEXT: .byte 0
500; CHECK-NEXT: .byte 15
501; CHECK-NEXT: .byte 3
502; CHECK-NEXT: .byte 8
503; CHECK-NEXT: .byte 5
504
505define amdgpu_kernel void @test_addr_space(i32 addrspace(1)* %g, i32 addrspace(2)* %c, i32 addrspace(3)* %l) !kernel_arg_addr_space !50 !kernel_arg_access_qual !23 !kernel_arg_type !51 !kernel_arg_base_type !51 !kernel_arg_type_qual !25 {
506 ret void
507}
508
509; CHECK-LABEL:{{^}}test_type_qual:
510; CHECK: .section .AMDGPU.runtime_metadata
511; CHECK-NEXT: .byte 4
512; CHECK-NEXT: .byte 6
513; CHECK-NEXT: .long 14
514; CHECK-NEXT: .ascii "test_type_qual"
515; CHECK-NEXT: .byte 7
516; CHECK-NEXT: .byte 9
517; CHECK-NEXT: .long 8
518; CHECK-NEXT: .byte 10
519; CHECK-NEXT: .long 8
Yaxun Liuadd05a82016-09-01 18:46:49 +0000520; CHECK-NEXT: .byte 32
521; CHECK-NEXT: .long 4
Yaxun Liua711cc72016-07-16 05:09:21 +0000522; CHECK-NEXT: .byte 11
523; CHECK-NEXT: .long 5
524; CHECK-NEXT: .ascii "int *"
525; CHECK-NEXT: .byte 19
526; CHECK-NEXT: .byte 13
527; CHECK-NEXT: .byte 1
528; CHECK-NEXT: .byte 14
529; CHECK-NEXT: .short 6
530; CHECK-NEXT: .byte 16
531; CHECK-NEXT: .byte 0
532; CHECK-NEXT: .byte 15
533; CHECK-NEXT: .byte 1
534; CHECK-NEXT: .byte 8
535; CHECK-NEXT: .byte 7
536; CHECK-NEXT: .byte 9
537; CHECK-NEXT: .long 8
538; CHECK-NEXT: .byte 10
539; CHECK-NEXT: .long 8
Yaxun Liuadd05a82016-09-01 18:46:49 +0000540; CHECK-NEXT: .byte 32
541; CHECK-NEXT: .long 4
Yaxun Liua711cc72016-07-16 05:09:21 +0000542; CHECK-NEXT: .byte 11
543; CHECK-NEXT: .long 5
544; CHECK-NEXT: .ascii "int *"
545; CHECK-NEXT: .byte 17
546; CHECK-NEXT: .byte 18
547; CHECK-NEXT: .byte 13
548; CHECK-NEXT: .byte 1
549; CHECK-NEXT: .byte 14
550; CHECK-NEXT: .short 6
551; CHECK-NEXT: .byte 16
552; CHECK-NEXT: .byte 0
553; CHECK-NEXT: .byte 15
554; CHECK-NEXT: .byte 1
555; CHECK-NEXT: .byte 8
556; CHECK-NEXT: .byte 7
557; CHECK-NEXT: .byte 9
558; CHECK-NEXT: .long 8
559; CHECK-NEXT: .byte 10
560; CHECK-NEXT: .long 8
561; CHECK-NEXT: .byte 11
562; CHECK-NEXT: .long 5
563; CHECK-NEXT: .ascii "int *"
564; CHECK-NEXT: .byte 20
565; CHECK-NEXT: .byte 13
566; CHECK-NEXT: .byte 1
567; CHECK-NEXT: .byte 14
568; CHECK-NEXT: .short 0
569; CHECK-NEXT: .byte 16
570; CHECK-NEXT: .byte 0
571; CHECK-NEXT: .byte 15
572; CHECK-NEXT: .byte 1
573; CHECK-NEXT: .byte 8
574; CHECK-NEXT: .byte 5
575
576define amdgpu_kernel void @test_type_qual(i32 addrspace(1)* %a, i32 addrspace(1)* %b, %opencl.pipe_t addrspace(1)* %c) !kernel_arg_addr_space !22 !kernel_arg_access_qual !23 !kernel_arg_type !51 !kernel_arg_base_type !51 !kernel_arg_type_qual !70 {
577 ret void
578}
579
580; CHECK-LABEL:{{^}}test_access_qual:
581; CHECK: .section .AMDGPU.runtime_metadata
582; CHECK-NEXT: .byte 4
583; CHECK-NEXT: .byte 6
584; CHECK-NEXT: .long 16
585; CHECK-NEXT: .ascii "test_access_qual"
586; CHECK-NEXT: .byte 7
587; CHECK-NEXT: .byte 9
588; CHECK-NEXT: .long 8
589; CHECK-NEXT: .byte 10
590; CHECK-NEXT: .long 8
591; CHECK-NEXT: .byte 11
592; CHECK-NEXT: .long 9
593; CHECK-NEXT: .ascii "image1d_t"
594; CHECK-NEXT: .byte 13
595; CHECK-NEXT: .byte 2
596; CHECK-NEXT: .byte 14
597; CHECK-NEXT: .short 0
598; CHECK-NEXT: .byte 16
599; CHECK-NEXT: .byte 1
600; CHECK-NEXT: .byte 15
601; CHECK-NEXT: .byte 1
602; CHECK-NEXT: .byte 8
603; CHECK-NEXT: .byte 7
604; CHECK-NEXT: .byte 9
605; CHECK-NEXT: .long 8
606; CHECK-NEXT: .byte 10
607; CHECK-NEXT: .long 8
608; CHECK-NEXT: .byte 11
609; CHECK-NEXT: .long 9
610; CHECK-NEXT: .ascii "image2d_t"
611; CHECK-NEXT: .byte 13
612; CHECK-NEXT: .byte 2
613; CHECK-NEXT: .byte 14
614; CHECK-NEXT: .short 0
615; CHECK-NEXT: .byte 16
616; CHECK-NEXT: .byte 2
617; CHECK-NEXT: .byte 15
618; CHECK-NEXT: .byte 1
619; CHECK-NEXT: .byte 8
620; CHECK-NEXT: .byte 7
621; CHECK-NEXT: .byte 9
622; CHECK-NEXT: .long 8
623; CHECK-NEXT: .byte 10
624; CHECK-NEXT: .long 8
625; CHECK-NEXT: .byte 11
626; CHECK-NEXT: .long 9
627; CHECK-NEXT: .ascii "image3d_t"
628; CHECK-NEXT: .byte 13
629; CHECK-NEXT: .byte 2
630; CHECK-NEXT: .byte 14
631; CHECK-NEXT: .short 0
632; CHECK-NEXT: .byte 16
633; CHECK-NEXT: .byte 3
634; CHECK-NEXT: .byte 15
635; CHECK-NEXT: .byte 1
636; CHECK-NEXT: .byte 8
637; CHECK-NEXT: .byte 5
638
639define amdgpu_kernel void @test_access_qual(%opencl.image1d_t addrspace(1)* %ro, %opencl.image2d_t addrspace(1)* %wo, %opencl.image3d_t addrspace(1)* %rw) !kernel_arg_addr_space !60 !kernel_arg_access_qual !61 !kernel_arg_type !62 !kernel_arg_base_type !62 !kernel_arg_type_qual !25 {
640 ret void
641}
642
Yaxun Liu86c052232016-08-04 19:45:00 +0000643; CHECK-LABEL:{{^}}test_vec_type_hint_half:
644; CHECK: .section .AMDGPU.runtime_metadata
645; CHECK-NEXT: .byte 4
646; CHECK-NEXT: .byte 6
647; CHECK-NEXT: .long 23
648; CHECK-NEXT: .ascii "test_vec_type_hint_half"
649; CHECK-NEXT: .byte 7
650; CHECK-NEXT: .byte 9
651; CHECK-NEXT: .long 4
652; CHECK-NEXT: .byte 10
653; CHECK-NEXT: .long 4
654; CHECK-NEXT: .byte 11
655; CHECK-NEXT: .long 3
656; CHECK-NEXT: .ascii "int"
657; CHECK-NEXT: .byte 13
658; CHECK-NEXT: .byte 0
659; CHECK-NEXT: .byte 14
660; CHECK-NEXT: .short 6
661; CHECK-NEXT: .byte 16
662; CHECK-NEXT: .byte 0
663; CHECK-NEXT: .byte 8
664; CHECK-NEXT: .byte 23
665; CHECK-NEXT: .long 4
666; CHECK-NEXT: .ascii "half"
667; CHECK-NEXT: .byte 5
668
669define amdgpu_kernel void @test_vec_type_hint_half(i32 %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !26 {
670 ret void
671}
672
673; CHECK-LABEL:{{^}}test_vec_type_hint_float:
674; CHECK: .section .AMDGPU.runtime_metadata
675; CHECK-NEXT: .byte 4
676; CHECK-NEXT: .byte 6
677; CHECK-NEXT: .long 24
678; CHECK-NEXT: .ascii "test_vec_type_hint_float"
679; CHECK-NEXT: .byte 7
680; CHECK-NEXT: .byte 9
681; CHECK-NEXT: .long 4
682; CHECK-NEXT: .byte 10
683; CHECK-NEXT: .long 4
684; CHECK-NEXT: .byte 11
685; CHECK-NEXT: .long 3
686; CHECK-NEXT: .ascii "int"
687; CHECK-NEXT: .byte 13
688; CHECK-NEXT: .byte 0
689; CHECK-NEXT: .byte 14
690; CHECK-NEXT: .short 6
691; CHECK-NEXT: .byte 16
692; CHECK-NEXT: .byte 0
693; CHECK-NEXT: .byte 8
694; CHECK-NEXT: .byte 23
695; CHECK-NEXT: .long 5
696; CHECK-NEXT: .ascii "float"
697; CHECK-NEXT: .byte 5
698
699define amdgpu_kernel void @test_vec_type_hint_float(i32 %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !27 {
700 ret void
701}
702
703; CHECK-LABEL:{{^}}test_vec_type_hint_double:
704; CHECK: .section .AMDGPU.runtime_metadata
705; CHECK-NEXT: .byte 4
706; CHECK-NEXT: .byte 6
707; CHECK-NEXT: .long 25
708; CHECK-NEXT: .ascii "test_vec_type_hint_double"
709; CHECK-NEXT: .byte 7
710; CHECK-NEXT: .byte 9
711; CHECK-NEXT: .long 4
712; CHECK-NEXT: .byte 10
713; CHECK-NEXT: .long 4
714; CHECK-NEXT: .byte 11
715; CHECK-NEXT: .long 3
716; CHECK-NEXT: .ascii "int"
717; CHECK-NEXT: .byte 13
718; CHECK-NEXT: .byte 0
719; CHECK-NEXT: .byte 14
720; CHECK-NEXT: .short 6
721; CHECK-NEXT: .byte 16
722; CHECK-NEXT: .byte 0
723; CHECK-NEXT: .byte 8
724; CHECK-NEXT: .byte 23
725; CHECK-NEXT: .long 6
726; CHECK-NEXT: .ascii "double"
727; CHECK-NEXT: .byte 5
728
729define amdgpu_kernel void @test_vec_type_hint_double(i32 %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !28 {
730 ret void
731}
732
733; CHECK-LABEL:{{^}}test_vec_type_hint_char:
734; CHECK: .section .AMDGPU.runtime_metadata
735; CHECK-NEXT: .byte 4
736; CHECK-NEXT: .byte 6
737; CHECK-NEXT: .long 23
738; CHECK-NEXT: .ascii "test_vec_type_hint_char"
739; CHECK-NEXT: .byte 7
740; CHECK-NEXT: .byte 9
741; CHECK-NEXT: .long 4
742; CHECK-NEXT: .byte 10
743; CHECK-NEXT: .long 4
744; CHECK-NEXT: .byte 11
745; CHECK-NEXT: .long 3
746; CHECK-NEXT: .ascii "int"
747; CHECK-NEXT: .byte 13
748; CHECK-NEXT: .byte 0
749; CHECK-NEXT: .byte 14
750; CHECK-NEXT: .short 6
751; CHECK-NEXT: .byte 16
752; CHECK-NEXT: .byte 0
753; CHECK-NEXT: .byte 8
754; CHECK-NEXT: .byte 23
755; CHECK-NEXT: .long 4
756; CHECK-NEXT: .ascii "char"
757; CHECK-NEXT: .byte 5
758
759define amdgpu_kernel void @test_vec_type_hint_char(i32 %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !29 {
760 ret void
761}
762
763; CHECK-LABEL:{{^}}test_vec_type_hint_short:
764; CHECK: .section .AMDGPU.runtime_metadata
765; CHECK-NEXT: .byte 4
766; CHECK-NEXT: .byte 6
767; CHECK-NEXT: .long 24
768; CHECK-NEXT: .ascii "test_vec_type_hint_short"
769; CHECK-NEXT: .byte 7
770; CHECK-NEXT: .byte 9
771; CHECK-NEXT: .long 4
772; CHECK-NEXT: .byte 10
773; CHECK-NEXT: .long 4
774; CHECK-NEXT: .byte 11
775; CHECK-NEXT: .long 3
776; CHECK-NEXT: .ascii "int"
777; CHECK-NEXT: .byte 13
778; CHECK-NEXT: .byte 0
779; CHECK-NEXT: .byte 14
780; CHECK-NEXT: .short 6
781; CHECK-NEXT: .byte 16
782; CHECK-NEXT: .byte 0
783; CHECK-NEXT: .byte 8
784; CHECK-NEXT: .byte 23
785; CHECK-NEXT: .long 5
786; CHECK-NEXT: .ascii "short"
787; CHECK-NEXT: .byte 5
788
789define amdgpu_kernel void @test_vec_type_hint_short(i32 %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !30 {
790 ret void
791}
792
793; CHECK-LABEL:{{^}}test_vec_type_hint_long:
794; CHECK: .section .AMDGPU.runtime_metadata
795; CHECK-NEXT: .byte 4
796; CHECK-NEXT: .byte 6
797; CHECK-NEXT: .long 23
798; CHECK-NEXT: .ascii "test_vec_type_hint_long"
799; CHECK-NEXT: .byte 7
800; CHECK-NEXT: .byte 9
801; CHECK-NEXT: .long 4
802; CHECK-NEXT: .byte 10
803; CHECK-NEXT: .long 4
804; CHECK-NEXT: .byte 11
805; CHECK-NEXT: .long 3
806; CHECK-NEXT: .ascii "int"
807; CHECK-NEXT: .byte 13
808; CHECK-NEXT: .byte 0
809; CHECK-NEXT: .byte 14
810; CHECK-NEXT: .short 6
811; CHECK-NEXT: .byte 16
812; CHECK-NEXT: .byte 0
813; CHECK-NEXT: .byte 8
814; CHECK-NEXT: .byte 23
815; CHECK-NEXT: .long 4
816; CHECK-NEXT: .ascii "long"
817; CHECK-NEXT: .byte 5
818
819define amdgpu_kernel void @test_vec_type_hint_long(i32 %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !31 {
820 ret void
821}
822
823; CHECK-LABEL:{{^}}test_vec_type_hint_unknown:
824; CHECK: .section .AMDGPU.runtime_metadata
825; CHECK-NEXT: .byte 4
826; CHECK-NEXT: .byte 6
827; CHECK-NEXT: .long 26
828; CHECK-NEXT: .ascii "test_vec_type_hint_unknown"
829; CHECK-NEXT: .byte 7
830; CHECK-NEXT: .byte 9
831; CHECK-NEXT: .long 4
832; CHECK-NEXT: .byte 10
833; CHECK-NEXT: .long 4
834; CHECK-NEXT: .byte 11
835; CHECK-NEXT: .long 3
836; CHECK-NEXT: .ascii "int"
837; CHECK-NEXT: .byte 13
838; CHECK-NEXT: .byte 0
839; CHECK-NEXT: .byte 14
840; CHECK-NEXT: .short 6
841; CHECK-NEXT: .byte 16
842; CHECK-NEXT: .byte 0
843; CHECK-NEXT: .byte 8
844; CHECK-NEXT: .byte 23
845; CHECK-NEXT: .long 7
846; CHECK-NEXT: .ascii "unknown"
847; CHECK-NEXT: .byte 5
848
849define amdgpu_kernel void @test_vec_type_hint_unknown(i32 %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !32 {
850 ret void
851}
852
Yaxun Liua711cc72016-07-16 05:09:21 +0000853; CHECK-LABEL:{{^}}test_reqd_wgs_vec_type_hint:
854; CHECK: .section .AMDGPU.runtime_metadata
855; CHECK-NEXT: .byte 4
856; CHECK-NEXT: .byte 6
857; CHECK-NEXT: .long 27
858; CHECK-NEXT: .ascii "test_reqd_wgs_vec_type_hint"
859; CHECK-NEXT: .byte 7
860; CHECK-NEXT: .byte 9
861; CHECK-NEXT: .long 4
862; CHECK-NEXT: .byte 10
863; CHECK-NEXT: .long 4
864; CHECK-NEXT: .byte 11
865; CHECK-NEXT: .long 3
866; CHECK-NEXT: .ascii "int"
867; CHECK-NEXT: .byte 13
868; CHECK-NEXT: .byte 0
869; CHECK-NEXT: .byte 14
870; CHECK-NEXT: .short 6
871; CHECK-NEXT: .byte 16
872; CHECK-NEXT: .byte 0
873; CHECK-NEXT: .byte 8
874; CHECK-NEXT: .byte 21
875; CHECK-NEXT: .long 1
876; CHECK-NEXT: .long 2
877; CHECK-NEXT: .long 4
878; CHECK-NEXT: .byte 23
879; CHECK-NEXT: .long 3
880; CHECK-NEXT: .ascii "int"
881; CHECK-NEXT: .byte 5
882
883define amdgpu_kernel void @test_reqd_wgs_vec_type_hint(i32 %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !5 !reqd_work_group_size !6 {
884 ret void
885}
886
887; CHECK-LABEL:{{^}}test_wgs_hint_vec_type_hint:
888; CHECK: .section .AMDGPU.runtime_metadata
889; CHECK-NEXT: .byte 4
890; CHECK-NEXT: .byte 6
891; CHECK-NEXT: .long 27
892; CHECK-NEXT: .ascii "test_wgs_hint_vec_type_hint"
893; CHECK-NEXT: .byte 7
894; CHECK-NEXT: .byte 9
895; CHECK-NEXT: .long 4
896; CHECK-NEXT: .byte 10
897; CHECK-NEXT: .long 4
898; CHECK-NEXT: .byte 11
899; CHECK-NEXT: .long 3
900; CHECK-NEXT: .ascii "int"
901; CHECK-NEXT: .byte 13
902; CHECK-NEXT: .byte 0
903; CHECK-NEXT: .byte 14
904; CHECK-NEXT: .short 6
905; CHECK-NEXT: .byte 16
906; CHECK-NEXT: .byte 0
907; CHECK-NEXT: .byte 8
908; CHECK-NEXT: .byte 22
909; CHECK-NEXT: .long 8
910; CHECK-NEXT: .long 16
911; CHECK-NEXT: .long 32
912; CHECK-NEXT: .byte 23
913; CHECK-NEXT: .long 5
914; CHECK-NEXT: .ascii "uint4"
915; CHECK-NEXT: .byte 5
916
917define amdgpu_kernel void @test_wgs_hint_vec_type_hint(i32 %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !7 !work_group_size_hint !8 {
918 ret void
919}
920
921; CHECK-LABEL:{{^}}test_arg_ptr_to_ptr:
922; CHECK: .section .AMDGPU.runtime_metadata
923; CHECK-NEXT: .byte 4
924; CHECK-NEXT: .byte 6
925; CHECK-NEXT: .long 19
926; CHECK-NEXT: .ascii "test_arg_ptr_to_ptr"
927; CHECK-NEXT: .byte 7
928; CHECK-NEXT: .byte 9
929; CHECK-NEXT: .long 8
930; CHECK-NEXT: .byte 10
931; CHECK-NEXT: .long 8
Yaxun Liuadd05a82016-09-01 18:46:49 +0000932; CHECK-NEXT: .byte 32
933; CHECK-NEXT: .long 4
Yaxun Liua711cc72016-07-16 05:09:21 +0000934; CHECK-NEXT: .byte 11
935; CHECK-NEXT: .long 6
936; CHECK-NEXT: .ascii "int **"
937; CHECK-NEXT: .byte 13
938; CHECK-NEXT: .byte 1
939; CHECK-NEXT: .byte 14
940; CHECK-NEXT: .short 6
941; CHECK-NEXT: .byte 16
942; CHECK-NEXT: .byte 0
943; CHECK-NEXT: .byte 15
944; CHECK-NEXT: .byte 1
945; CHECK-NEXT: .byte 8
946; CHECK-NEXT: .byte 5
947
948define amdgpu_kernel void @test_arg_ptr_to_ptr(i32 * addrspace(1)* %a) !kernel_arg_addr_space !81 !kernel_arg_access_qual !2 !kernel_arg_type !80 !kernel_arg_base_type !80 !kernel_arg_type_qual !4 {
949 ret void
950}
951
952; CHECK-LABEL:{{^}}test_arg_struct_contains_ptr:
953; CHECK: .section .AMDGPU.runtime_metadata
954; CHECK-NEXT: .byte 4
955; CHECK-NEXT: .byte 6
956; CHECK-NEXT: .long 28
957; CHECK-NEXT: .ascii "test_arg_struct_contains_ptr"
958; CHECK-NEXT: .byte 7
959; CHECK-NEXT: .byte 9
960; CHECK-NEXT: .long 4
961; CHECK-NEXT: .byte 10
962; CHECK-NEXT: .long 4
Yaxun Liuadd05a82016-09-01 18:46:49 +0000963; CHECK-NEXT: .byte 32
964; CHECK-NEXT: .long 8
Yaxun Liua711cc72016-07-16 05:09:21 +0000965; CHECK-NEXT: .byte 11
966; CHECK-NEXT: .long 8
967; CHECK-NEXT: .ascii "struct B"
968; CHECK-NEXT: .byte 13
969; CHECK-NEXT: .byte 1
970; CHECK-NEXT: .byte 14
971; CHECK-NEXT: .short 0
972; CHECK-NEXT: .byte 16
973; CHECK-NEXT: .byte 0
974; CHECK-NEXT: .byte 15
975; CHECK-NEXT: .byte 0
976; CHECK-NEXT: .byte 8
977; CHECK-NEXT: .byte 5
978
979define amdgpu_kernel void @test_arg_struct_contains_ptr(%struct.B * byval %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !82 !kernel_arg_base_type !82 !kernel_arg_type_qual !4 {
980 ret void
981}
982
983; CHECK-LABEL:{{^}}test_arg_vector_of_ptr:
984; CHECK: .section .AMDGPU.runtime_metadata
985; CHECK-NEXT: .byte 4
986; CHECK-NEXT: .byte 6
987; CHECK-NEXT: .long 22
988; CHECK-NEXT: .ascii "test_arg_vector_of_ptr"
989; CHECK-NEXT: .byte 7
990; CHECK-NEXT: .byte 9
991; CHECK-NEXT: .long 16
992; CHECK-NEXT: .byte 10
993; CHECK-NEXT: .long 16
994; CHECK-NEXT: .byte 11
995; CHECK-NEXT: .long 47
996; CHECK-NEXT: .ascii "global int* __attribute__((ext_vector_type(2)))"
997; CHECK-NEXT: .byte 13
998; CHECK-NEXT: .byte 0
999; CHECK-NEXT: .byte 14
1000; CHECK-NEXT: .short 6
1001; CHECK-NEXT: .byte 16
1002; CHECK-NEXT: .byte 0
1003; CHECK-NEXT: .byte 8
1004; CHECK-NEXT: .byte 5
1005
1006define amdgpu_kernel void @test_arg_vector_of_ptr(<2 x i32 addrspace(1)*> %a) !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !83 !kernel_arg_base_type !83 !kernel_arg_type_qual !4 {
1007 ret void
1008}
1009
1010; CHECK-LABEL:{{^}}test_arg_unknown_builtin_type:
1011; CHECK: .section .AMDGPU.runtime_metadata
1012; CHECK-NEXT: .byte 4
1013; CHECK-NEXT: .byte 6
1014; CHECK-NEXT: .long 29
1015; CHECK-NEXT: .ascii "test_arg_unknown_builtin_type"
1016; CHECK-NEXT: .byte 7
1017; CHECK-NEXT: .byte 9
1018; CHECK-NEXT: .long 8
1019; CHECK-NEXT: .byte 10
1020; CHECK-NEXT: .long 8
1021; CHECK-NEXT: .byte 11
1022; CHECK-NEXT: .long 11
1023; CHECK-NEXT: .ascii "clk_event_t"
1024; CHECK-NEXT: .byte 13
1025; CHECK-NEXT: .byte 1
1026; CHECK-NEXT: .byte 14
1027; CHECK-NEXT: .short 0
1028; CHECK-NEXT: .byte 16
1029; CHECK-NEXT: .byte 0
1030; CHECK-NEXT: .byte 15
1031; CHECK-NEXT: .byte 1
1032; CHECK-NEXT: .byte 8
1033; CHECK-NEXT: .byte 5
1034
1035define amdgpu_kernel void @test_arg_unknown_builtin_type(%opencl.clk_event_t addrspace(1)* %a) !kernel_arg_addr_space !81 !kernel_arg_access_qual !2 !kernel_arg_type !84 !kernel_arg_base_type !84 !kernel_arg_type_qual !4 {
1036 ret void
1037}
1038
Yaxun Liuadd05a82016-09-01 18:46:49 +00001039; CHECK-LABEL:{{^}}test_pointee_align:
1040; CHECK: .section .AMDGPU.runtime_metadata
1041; CHECK-NEXT: .byte 4
1042; CHECK-NEXT: .byte 6
1043; CHECK-NEXT: .long 18
1044; CHECK-NEXT: .ascii "test_pointee_align"
1045; CHECK-NEXT: .byte 7
1046; CHECK-NEXT: .byte 9
1047; CHECK-NEXT: .long 8
1048; CHECK-NEXT: .byte 10
1049; CHECK-NEXT: .long 8
1050; CHECK-NEXT: .byte 32
1051; CHECK-NEXT: .long 8
1052; CHECK-NEXT: .byte 11
1053; CHECK-NEXT: .long 6
1054; CHECK-NEXT: .ascii "long *"
1055; CHECK-NEXT: .byte 13
1056; CHECK-NEXT: .byte 1
1057; CHECK-NEXT: .byte 14
1058; CHECK-NEXT: .short 9
1059; CHECK-NEXT: .byte 16
1060; CHECK-NEXT: .byte 0
1061; CHECK-NEXT: .byte 15
1062; CHECK-NEXT: .byte 1
1063; CHECK-NEXT: .byte 8
1064; CHECK-NEXT: .byte 7
1065; CHECK-NEXT: .byte 9
1066; CHECK-NEXT: .long 4
1067; CHECK-NEXT: .byte 10
1068; CHECK-NEXT: .long 4
1069; CHECK-NEXT: .byte 32
1070; CHECK-NEXT: .long 1
1071; CHECK-NEXT: .byte 11
1072; CHECK-NEXT: .long 6
1073; CHECK-NEXT: .ascii "char *"
1074; CHECK-NEXT: .byte 13
1075; CHECK-NEXT: .byte 1
1076; CHECK-NEXT: .byte 14
1077; CHECK-NEXT: .short 1
1078; CHECK-NEXT: .byte 16
1079; CHECK-NEXT: .byte 0
1080; CHECK-NEXT: .byte 15
1081; CHECK-NEXT: .byte 3
1082; CHECK-NEXT: .byte 8
1083; CHECK-NEXT: .byte 7
1084; CHECK-NEXT: .byte 9
1085; CHECK-NEXT: .long 4
1086; CHECK-NEXT: .byte 10
1087; CHECK-NEXT: .long 4
1088; CHECK-NEXT: .byte 32
1089; CHECK-NEXT: .long 2
1090; CHECK-NEXT: .byte 11
1091; CHECK-NEXT: .long 7
1092; CHECK-NEXT: .ascii "char2 *"
1093; CHECK-NEXT: .byte 13
1094; CHECK-NEXT: .byte 1
1095; CHECK-NEXT: .byte 14
1096; CHECK-NEXT: .short 1
1097; CHECK-NEXT: .byte 16
1098; CHECK-NEXT: .byte 0
1099; CHECK-NEXT: .byte 15
1100; CHECK-NEXT: .byte 3
1101; CHECK-NEXT: .byte 8
1102; CHECK-NEXT: .byte 7
1103; CHECK-NEXT: .byte 9
1104; CHECK-NEXT: .long 4
1105; CHECK-NEXT: .byte 10
1106; CHECK-NEXT: .long 4
1107; CHECK-NEXT: .byte 32
1108; CHECK-NEXT: .long 4
1109; CHECK-NEXT: .byte 11
1110; CHECK-NEXT: .long 7
1111; CHECK-NEXT: .ascii "char3 *"
1112; CHECK-NEXT: .byte 13
1113; CHECK-NEXT: .byte 1
1114; CHECK-NEXT: .byte 14
1115; CHECK-NEXT: .short 1
1116; CHECK-NEXT: .byte 16
1117; CHECK-NEXT: .byte 0
1118; CHECK-NEXT: .byte 15
1119; CHECK-NEXT: .byte 3
1120; CHECK-NEXT: .byte 8
1121; CHECK-NEXT: .byte 7
1122; CHECK-NEXT: .byte 9
1123; CHECK-NEXT: .long 4
1124; CHECK-NEXT: .byte 10
1125; CHECK-NEXT: .long 4
1126; CHECK-NEXT: .byte 32
1127; CHECK-NEXT: .long 4
1128; CHECK-NEXT: .byte 11
1129; CHECK-NEXT: .long 7
1130; CHECK-NEXT: .ascii "char4 *"
1131; CHECK-NEXT: .byte 13
1132; CHECK-NEXT: .byte 1
1133; CHECK-NEXT: .byte 14
1134; CHECK-NEXT: .short 1
1135; CHECK-NEXT: .byte 16
1136; CHECK-NEXT: .byte 0
1137; CHECK-NEXT: .byte 15
1138; CHECK-NEXT: .byte 3
1139; CHECK-NEXT: .byte 8
1140; CHECK-NEXT: .byte 7
1141; CHECK-NEXT: .byte 9
1142; CHECK-NEXT: .long 4
1143; CHECK-NEXT: .byte 10
1144; CHECK-NEXT: .long 4
1145; CHECK-NEXT: .byte 32
1146; CHECK-NEXT: .long 8
1147; CHECK-NEXT: .byte 11
1148; CHECK-NEXT: .long 7
1149; CHECK-NEXT: .ascii "char8 *"
1150; CHECK-NEXT: .byte 13
1151; CHECK-NEXT: .byte 1
1152; CHECK-NEXT: .byte 14
1153; CHECK-NEXT: .short 1
1154; CHECK-NEXT: .byte 16
1155; CHECK-NEXT: .byte 0
1156; CHECK-NEXT: .byte 15
1157; CHECK-NEXT: .byte 3
1158; CHECK-NEXT: .byte 8
1159; CHECK-NEXT: .byte 7
1160; CHECK-NEXT: .byte 9
1161; CHECK-NEXT: .long 4
1162; CHECK-NEXT: .byte 10
1163; CHECK-NEXT: .long 4
1164; CHECK-NEXT: .byte 32
1165; CHECK-NEXT: .long 16
1166; CHECK-NEXT: .byte 11
1167; CHECK-NEXT: .long 8
1168; CHECK-NEXT: .ascii "char16 *"
1169; CHECK-NEXT: .byte 13
1170; CHECK-NEXT: .byte 1
1171; CHECK-NEXT: .byte 14
1172; CHECK-NEXT: .short 1
1173; CHECK-NEXT: .byte 16
1174; CHECK-NEXT: .byte 0
1175; CHECK-NEXT: .byte 15
1176; CHECK-NEXT: .byte 3
1177; CHECK-NEXT: .byte 8
1178; CHECK-NEXT: .byte 5
1179
1180define amdgpu_kernel void @test_pointee_align(i64 addrspace(1)* %a, i8 addrspace(3)* %b, <2 x i8> addrspace(3)* %c, <3 x i8> addrspace(3)* %d, <4 x i8> addrspace(3)* %e, <8 x i8> addrspace(3)* %f, <16 x i8> addrspace(3)* %g) !kernel_arg_addr_space !91 !kernel_arg_access_qual !92 !kernel_arg_type !93 !kernel_arg_base_type !93 !kernel_arg_type_qual !94 {
1181 ret void
1182}
1183
Yaxun Liua711cc72016-07-16 05:09:21 +00001184!1 = !{i32 0}
1185!2 = !{!"none"}
1186!3 = !{!"int"}
1187!4 = !{!""}
1188!5 = !{i32 undef, i32 1}
1189!6 = !{i32 1, i32 2, i32 4}
1190!7 = !{<4 x i32> undef, i32 0}
1191!8 = !{i32 8, i32 16, i32 32}
1192!9 = !{!"char"}
1193!10 = !{!"ushort2"}
1194!11 = !{!"int3"}
1195!12 = !{!"ulong4"}
1196!13 = !{!"half8"}
1197!14 = !{!"float16"}
1198!15 = !{!"double16"}
1199!16 = !{!"int *"}
1200!17 = !{!"image2d_t"}
1201!18 = !{!"sampler_t"}
1202!19 = !{!"queue_t"}
1203!20 = !{!"struct A"}
1204!21 = !{!"i128"}
1205!22 = !{i32 0, i32 0, i32 0}
1206!23 = !{!"none", !"none", !"none"}
1207!24 = !{!"int", !"short2", !"char3"}
1208!25 = !{!"", !"", !""}
Yaxun Liu86c052232016-08-04 19:45:00 +00001209!26 = !{half undef, i32 1}
1210!27 = !{float undef, i32 1}
1211!28 = !{double undef, i32 1}
1212!29 = !{i8 undef, i32 1}
1213!30 = !{i16 undef, i32 1}
1214!31 = !{i64 undef, i32 1}
1215!32 = !{i32 *undef, i32 1}
Yaxun Liua711cc72016-07-16 05:09:21 +00001216!50 = !{i32 1, i32 2, i32 3}
1217!51 = !{!"int *", !"int *", !"int *"}
1218!60 = !{i32 1, i32 1, i32 1}
1219!61 = !{!"read_only", !"write_only", !"read_write"}
1220!62 = !{!"image1d_t", !"image2d_t", !"image3d_t"}
1221!70 = !{!"volatile", !"const restrict", !"pipe"}
1222!80 = !{!"int **"}
1223!81 = !{i32 1}
1224!82 = !{!"struct B"}
1225!83 = !{!"global int* __attribute__((ext_vector_type(2)))"}
1226!84 = !{!"clk_event_t"}
1227!opencl.ocl.version = !{!90}
1228!90 = !{i32 2, i32 0}
Yaxun Liuadd05a82016-09-01 18:46:49 +00001229!91 = !{i32 0, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3}
1230!92 = !{!"none", !"none", !"none", !"none", !"none", !"none", !"none"}
1231!93 = !{!"long *", !"char *", !"char2 *", !"char3 *", !"char4 *", !"char8 *", !"char16 *"}
1232!94 = !{!"", !"", !"", !"", !"", !"", !""}