blob: 0e6ce56aa37d1a2e5a778d96a99f9897a6002456 [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
220; CHECK-NEXT: .byte 11
221; CHECK-NEXT: .long 5
222; CHECK-NEXT: .ascii "int *"
223; CHECK-NEXT: .byte 13
224; CHECK-NEXT: .byte 1
225; CHECK-NEXT: .byte 14
226; CHECK-NEXT: .short 6
227; CHECK-NEXT: .byte 16
228; CHECK-NEXT: .byte 0
229; CHECK-NEXT: .byte 15
230; CHECK-NEXT: .byte 1
231; CHECK-NEXT: .byte 8
232; CHECK-NEXT: .byte 5
233
234define 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 {
235 ret void
236}
237
238; CHECK-LABEL:{{^}}test_image:
239; CHECK: .section .AMDGPU.runtime_metadata
240; CHECK-NEXT: .byte 4
241; CHECK-NEXT: .byte 6
242; CHECK-NEXT: .long 10
243; CHECK-NEXT: .ascii "test_image"
244; CHECK-NEXT: .byte 7
245; CHECK-NEXT: .byte 9
246; CHECK-NEXT: .long 8
247; CHECK-NEXT: .byte 10
248; CHECK-NEXT: .long 8
249; CHECK-NEXT: .byte 11
250; CHECK-NEXT: .long 9
251; CHECK-NEXT: .ascii "image2d_t"
252; CHECK-NEXT: .byte 13
253; CHECK-NEXT: .byte 2
254; CHECK-NEXT: .byte 14
255; CHECK-NEXT: .short 0
256; CHECK-NEXT: .byte 16
257; CHECK-NEXT: .byte 0
258; CHECK-NEXT: .byte 15
259; CHECK-NEXT: .byte 1
260; CHECK-NEXT: .byte 8
261; CHECK-NEXT: .byte 5
262
263define 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 {
264 ret void
265}
266
267; CHECK-LABEL:{{^}}test_sampler:
268; CHECK: .section .AMDGPU.runtime_metadata
269; CHECK-NEXT: .byte 4
270; CHECK-NEXT: .byte 6
271; CHECK-NEXT: .long 12
272; CHECK-NEXT: .ascii "test_sampler"
273; CHECK-NEXT: .byte 7
274; CHECK-NEXT: .byte 9
275; CHECK-NEXT: .long 4
276; CHECK-NEXT: .byte 10
277; CHECK-NEXT: .long 4
278; CHECK-NEXT: .byte 11
279; CHECK-NEXT: .long 9
280; CHECK-NEXT: .ascii "sampler_t"
281; CHECK-NEXT: .byte 13
282; CHECK-NEXT: .byte 3
283; CHECK-NEXT: .byte 14
284; CHECK-NEXT: .short 6
285; CHECK-NEXT: .byte 16
286; CHECK-NEXT: .byte 0
287; CHECK-NEXT: .byte 8
288; CHECK-NEXT: .byte 5
289
290define 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 {
291 ret void
292}
293
294; CHECK-LABEL:{{^}}test_queue:
295; CHECK: .section .AMDGPU.runtime_metadata
296; CHECK-NEXT: .byte 4
297; CHECK-NEXT: .byte 6
298; CHECK-NEXT: .long 10
299; CHECK-NEXT: .ascii "test_queue"
300; CHECK-NEXT: .byte 7
301; CHECK-NEXT: .byte 9
302; CHECK-NEXT: .long 8
303; CHECK-NEXT: .byte 10
304; CHECK-NEXT: .long 8
305; CHECK-NEXT: .byte 11
306; CHECK-NEXT: .long 7
307; CHECK-NEXT: .ascii "queue_t"
308; CHECK-NEXT: .byte 13
309; CHECK-NEXT: .byte 4
310; CHECK-NEXT: .byte 14
311; CHECK-NEXT: .short 0
312; CHECK-NEXT: .byte 16
313; CHECK-NEXT: .byte 0
314; CHECK-NEXT: .byte 15
315; CHECK-NEXT: .byte 1
316; CHECK-NEXT: .byte 8
317; CHECK-NEXT: .byte 5
318
319define 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 {
320 ret void
321}
322
323; CHECK-LABEL:{{^}}test_struct:
324; CHECK: .section .AMDGPU.runtime_metadata
325; CHECK-NEXT: .byte 4
326; CHECK-NEXT: .byte 6
327; CHECK-NEXT: .long 11
328; CHECK-NEXT: .ascii "test_struct"
329; CHECK-NEXT: .byte 7
330; CHECK-NEXT: .byte 9
331; CHECK-NEXT: .long 4
332; CHECK-NEXT: .byte 10
333; CHECK-NEXT: .long 4
334; CHECK-NEXT: .byte 11
335; CHECK-NEXT: .long 8
336; CHECK-NEXT: .ascii "struct A"
337; CHECK-NEXT: .byte 13
338; CHECK-NEXT: .byte 1
339; CHECK-NEXT: .byte 14
340; CHECK-NEXT: .short 0
341; CHECK-NEXT: .byte 16
342; CHECK-NEXT: .byte 0
343; CHECK-NEXT: .byte 15
344; CHECK-NEXT: .byte 0
345; CHECK-NEXT: .byte 8
346; CHECK-NEXT: .byte 5
347
348define 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 {
349 ret void
350}
351
352; CHECK-LABEL:{{^}}test_i128:
353; CHECK: .section .AMDGPU.runtime_metadata
354; CHECK-NEXT: .byte 4
355; CHECK-NEXT: .byte 6
356; CHECK-NEXT: .long 9
357; CHECK-NEXT: .ascii "test_i128"
358; CHECK-NEXT: .byte 7
359; CHECK-NEXT: .byte 9
360; CHECK-NEXT: .long 16
361; CHECK-NEXT: .byte 10
362; CHECK-NEXT: .long 8
363; CHECK-NEXT: .byte 11
364; CHECK-NEXT: .long 4
365; CHECK-NEXT: .ascii "i128"
366; CHECK-NEXT: .byte 13
367; CHECK-NEXT: .byte 0
368; CHECK-NEXT: .byte 14
369; CHECK-NEXT: .short 0
370; CHECK-NEXT: .byte 16
371; CHECK-NEXT: .byte 0
372; CHECK-NEXT: .byte 8
373; CHECK-NEXT: .byte 5
374
375define 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 {
376 ret void
377}
378
379; CHECK-LABEL:{{^}}test_multi_arg:
380; CHECK: .section .AMDGPU.runtime_metadata
381; CHECK-NEXT: .byte 4
382; CHECK-NEXT: .byte 6
383; CHECK-NEXT: .long 14
384; CHECK-NEXT: .ascii "test_multi_arg"
385; CHECK-NEXT: .byte 7
386; CHECK-NEXT: .byte 9
387; CHECK-NEXT: .long 4
388; CHECK-NEXT: .byte 10
389; CHECK-NEXT: .long 4
390; CHECK-NEXT: .byte 11
391; CHECK-NEXT: .long 3
392; CHECK-NEXT: .ascii "int"
393; CHECK-NEXT: .byte 13
394; CHECK-NEXT: .byte 0
395; CHECK-NEXT: .byte 14
396; CHECK-NEXT: .short 6
397; CHECK-NEXT: .byte 16
398; CHECK-NEXT: .byte 0
399; CHECK-NEXT: .byte 8
400; CHECK-NEXT: .byte 7
401; CHECK-NEXT: .byte 9
402; CHECK-NEXT: .long 4
403; CHECK-NEXT: .byte 10
404; CHECK-NEXT: .long 4
405; CHECK-NEXT: .byte 11
406; CHECK-NEXT: .long 6
407; CHECK-NEXT: .ascii "short2"
408; CHECK-NEXT: .byte 13
409; CHECK-NEXT: .byte 0
410; CHECK-NEXT: .byte 14
411; CHECK-NEXT: .short 3
412; CHECK-NEXT: .byte 16
413; CHECK-NEXT: .byte 0
414; CHECK-NEXT: .byte 8
415; CHECK-NEXT: .byte 7
416; CHECK-NEXT: .byte 9
417; CHECK-NEXT: .long 4
418; CHECK-NEXT: .byte 10
419; CHECK-NEXT: .long 4
420; CHECK-NEXT: .byte 11
421; CHECK-NEXT: .long 5
422; CHECK-NEXT: .ascii "char3"
423; CHECK-NEXT: .byte 13
424; CHECK-NEXT: .byte 0
425; CHECK-NEXT: .byte 14
426; CHECK-NEXT: .short 1
427; CHECK-NEXT: .byte 16
428; CHECK-NEXT: .byte 0
429; CHECK-NEXT: .byte 8
430; CHECK-NEXT: .byte 5
431
432define 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 {
433 ret void
434}
435
436; CHECK-LABEL:{{^}}test_addr_space:
437; CHECK: .section .AMDGPU.runtime_metadata
438; CHECK-NEXT: .byte 4
439; CHECK-NEXT: .byte 6
440; CHECK-NEXT: .long 15
441; CHECK-NEXT: .ascii "test_addr_space"
442; CHECK-NEXT: .byte 7
443; CHECK-NEXT: .byte 9
444; CHECK-NEXT: .long 8
445; CHECK-NEXT: .byte 10
446; CHECK-NEXT: .long 8
447; CHECK-NEXT: .byte 11
448; CHECK-NEXT: .long 5
449; CHECK-NEXT: .ascii "int *"
450; CHECK-NEXT: .byte 13
451; CHECK-NEXT: .byte 1
452; CHECK-NEXT: .byte 14
453; CHECK-NEXT: .short 6
454; CHECK-NEXT: .byte 16
455; CHECK-NEXT: .byte 0
456; CHECK-NEXT: .byte 15
457; CHECK-NEXT: .byte 1
458; CHECK-NEXT: .byte 8
459; CHECK-NEXT: .byte 7
460; CHECK-NEXT: .byte 9
461; CHECK-NEXT: .long 8
462; CHECK-NEXT: .byte 10
463; CHECK-NEXT: .long 8
464; CHECK-NEXT: .byte 11
465; CHECK-NEXT: .long 5
466; CHECK-NEXT: .ascii "int *"
467; CHECK-NEXT: .byte 13
468; CHECK-NEXT: .byte 1
469; CHECK-NEXT: .byte 14
470; CHECK-NEXT: .short 6
471; CHECK-NEXT: .byte 16
472; CHECK-NEXT: .byte 0
473; CHECK-NEXT: .byte 15
474; CHECK-NEXT: .byte 2
475; CHECK-NEXT: .byte 8
476; CHECK-NEXT: .byte 7
477; CHECK-NEXT: .byte 9
478; CHECK-NEXT: .long 4
479; CHECK-NEXT: .byte 10
480; CHECK-NEXT: .long 4
481; CHECK-NEXT: .byte 11
482; CHECK-NEXT: .long 5
483; CHECK-NEXT: .ascii "int *"
484; CHECK-NEXT: .byte 13
485; CHECK-NEXT: .byte 1
486; CHECK-NEXT: .byte 14
487; CHECK-NEXT: .short 6
488; CHECK-NEXT: .byte 16
489; CHECK-NEXT: .byte 0
490; CHECK-NEXT: .byte 15
491; CHECK-NEXT: .byte 3
492; CHECK-NEXT: .byte 8
493; CHECK-NEXT: .byte 5
494
495define 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 {
496 ret void
497}
498
499; CHECK-LABEL:{{^}}test_type_qual:
500; CHECK: .section .AMDGPU.runtime_metadata
501; CHECK-NEXT: .byte 4
502; CHECK-NEXT: .byte 6
503; CHECK-NEXT: .long 14
504; CHECK-NEXT: .ascii "test_type_qual"
505; CHECK-NEXT: .byte 7
506; CHECK-NEXT: .byte 9
507; CHECK-NEXT: .long 8
508; CHECK-NEXT: .byte 10
509; CHECK-NEXT: .long 8
510; CHECK-NEXT: .byte 11
511; CHECK-NEXT: .long 5
512; CHECK-NEXT: .ascii "int *"
513; CHECK-NEXT: .byte 19
514; CHECK-NEXT: .byte 13
515; CHECK-NEXT: .byte 1
516; CHECK-NEXT: .byte 14
517; CHECK-NEXT: .short 6
518; CHECK-NEXT: .byte 16
519; CHECK-NEXT: .byte 0
520; CHECK-NEXT: .byte 15
521; CHECK-NEXT: .byte 1
522; CHECK-NEXT: .byte 8
523; CHECK-NEXT: .byte 7
524; CHECK-NEXT: .byte 9
525; CHECK-NEXT: .long 8
526; CHECK-NEXT: .byte 10
527; CHECK-NEXT: .long 8
528; CHECK-NEXT: .byte 11
529; CHECK-NEXT: .long 5
530; CHECK-NEXT: .ascii "int *"
531; CHECK-NEXT: .byte 17
532; CHECK-NEXT: .byte 18
533; CHECK-NEXT: .byte 13
534; CHECK-NEXT: .byte 1
535; CHECK-NEXT: .byte 14
536; CHECK-NEXT: .short 6
537; CHECK-NEXT: .byte 16
538; CHECK-NEXT: .byte 0
539; CHECK-NEXT: .byte 15
540; CHECK-NEXT: .byte 1
541; CHECK-NEXT: .byte 8
542; CHECK-NEXT: .byte 7
543; CHECK-NEXT: .byte 9
544; CHECK-NEXT: .long 8
545; CHECK-NEXT: .byte 10
546; CHECK-NEXT: .long 8
547; CHECK-NEXT: .byte 11
548; CHECK-NEXT: .long 5
549; CHECK-NEXT: .ascii "int *"
550; CHECK-NEXT: .byte 20
551; CHECK-NEXT: .byte 13
552; CHECK-NEXT: .byte 1
553; CHECK-NEXT: .byte 14
554; CHECK-NEXT: .short 0
555; CHECK-NEXT: .byte 16
556; CHECK-NEXT: .byte 0
557; CHECK-NEXT: .byte 15
558; CHECK-NEXT: .byte 1
559; CHECK-NEXT: .byte 8
560; CHECK-NEXT: .byte 5
561
562define 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 {
563 ret void
564}
565
566; CHECK-LABEL:{{^}}test_access_qual:
567; CHECK: .section .AMDGPU.runtime_metadata
568; CHECK-NEXT: .byte 4
569; CHECK-NEXT: .byte 6
570; CHECK-NEXT: .long 16
571; CHECK-NEXT: .ascii "test_access_qual"
572; CHECK-NEXT: .byte 7
573; CHECK-NEXT: .byte 9
574; CHECK-NEXT: .long 8
575; CHECK-NEXT: .byte 10
576; CHECK-NEXT: .long 8
577; CHECK-NEXT: .byte 11
578; CHECK-NEXT: .long 9
579; CHECK-NEXT: .ascii "image1d_t"
580; CHECK-NEXT: .byte 13
581; CHECK-NEXT: .byte 2
582; CHECK-NEXT: .byte 14
583; CHECK-NEXT: .short 0
584; CHECK-NEXT: .byte 16
585; CHECK-NEXT: .byte 1
586; CHECK-NEXT: .byte 15
587; CHECK-NEXT: .byte 1
588; CHECK-NEXT: .byte 8
589; CHECK-NEXT: .byte 7
590; CHECK-NEXT: .byte 9
591; CHECK-NEXT: .long 8
592; CHECK-NEXT: .byte 10
593; CHECK-NEXT: .long 8
594; CHECK-NEXT: .byte 11
595; CHECK-NEXT: .long 9
596; CHECK-NEXT: .ascii "image2d_t"
597; CHECK-NEXT: .byte 13
598; CHECK-NEXT: .byte 2
599; CHECK-NEXT: .byte 14
600; CHECK-NEXT: .short 0
601; CHECK-NEXT: .byte 16
602; CHECK-NEXT: .byte 2
603; CHECK-NEXT: .byte 15
604; CHECK-NEXT: .byte 1
605; CHECK-NEXT: .byte 8
606; CHECK-NEXT: .byte 7
607; CHECK-NEXT: .byte 9
608; CHECK-NEXT: .long 8
609; CHECK-NEXT: .byte 10
610; CHECK-NEXT: .long 8
611; CHECK-NEXT: .byte 11
612; CHECK-NEXT: .long 9
613; CHECK-NEXT: .ascii "image3d_t"
614; CHECK-NEXT: .byte 13
615; CHECK-NEXT: .byte 2
616; CHECK-NEXT: .byte 14
617; CHECK-NEXT: .short 0
618; CHECK-NEXT: .byte 16
619; CHECK-NEXT: .byte 3
620; CHECK-NEXT: .byte 15
621; CHECK-NEXT: .byte 1
622; CHECK-NEXT: .byte 8
623; CHECK-NEXT: .byte 5
624
625define 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 {
626 ret void
627}
628
Yaxun Liu86c052232016-08-04 19:45:00 +0000629; CHECK-LABEL:{{^}}test_vec_type_hint_half:
630; CHECK: .section .AMDGPU.runtime_metadata
631; CHECK-NEXT: .byte 4
632; CHECK-NEXT: .byte 6
633; CHECK-NEXT: .long 23
634; CHECK-NEXT: .ascii "test_vec_type_hint_half"
635; CHECK-NEXT: .byte 7
636; CHECK-NEXT: .byte 9
637; CHECK-NEXT: .long 4
638; CHECK-NEXT: .byte 10
639; CHECK-NEXT: .long 4
640; CHECK-NEXT: .byte 11
641; CHECK-NEXT: .long 3
642; CHECK-NEXT: .ascii "int"
643; CHECK-NEXT: .byte 13
644; CHECK-NEXT: .byte 0
645; CHECK-NEXT: .byte 14
646; CHECK-NEXT: .short 6
647; CHECK-NEXT: .byte 16
648; CHECK-NEXT: .byte 0
649; CHECK-NEXT: .byte 8
650; CHECK-NEXT: .byte 23
651; CHECK-NEXT: .long 4
652; CHECK-NEXT: .ascii "half"
653; CHECK-NEXT: .byte 5
654
655define 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 {
656 ret void
657}
658
659; CHECK-LABEL:{{^}}test_vec_type_hint_float:
660; CHECK: .section .AMDGPU.runtime_metadata
661; CHECK-NEXT: .byte 4
662; CHECK-NEXT: .byte 6
663; CHECK-NEXT: .long 24
664; CHECK-NEXT: .ascii "test_vec_type_hint_float"
665; CHECK-NEXT: .byte 7
666; CHECK-NEXT: .byte 9
667; CHECK-NEXT: .long 4
668; CHECK-NEXT: .byte 10
669; CHECK-NEXT: .long 4
670; CHECK-NEXT: .byte 11
671; CHECK-NEXT: .long 3
672; CHECK-NEXT: .ascii "int"
673; CHECK-NEXT: .byte 13
674; CHECK-NEXT: .byte 0
675; CHECK-NEXT: .byte 14
676; CHECK-NEXT: .short 6
677; CHECK-NEXT: .byte 16
678; CHECK-NEXT: .byte 0
679; CHECK-NEXT: .byte 8
680; CHECK-NEXT: .byte 23
681; CHECK-NEXT: .long 5
682; CHECK-NEXT: .ascii "float"
683; CHECK-NEXT: .byte 5
684
685define 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 {
686 ret void
687}
688
689; CHECK-LABEL:{{^}}test_vec_type_hint_double:
690; CHECK: .section .AMDGPU.runtime_metadata
691; CHECK-NEXT: .byte 4
692; CHECK-NEXT: .byte 6
693; CHECK-NEXT: .long 25
694; CHECK-NEXT: .ascii "test_vec_type_hint_double"
695; CHECK-NEXT: .byte 7
696; CHECK-NEXT: .byte 9
697; CHECK-NEXT: .long 4
698; CHECK-NEXT: .byte 10
699; CHECK-NEXT: .long 4
700; CHECK-NEXT: .byte 11
701; CHECK-NEXT: .long 3
702; CHECK-NEXT: .ascii "int"
703; CHECK-NEXT: .byte 13
704; CHECK-NEXT: .byte 0
705; CHECK-NEXT: .byte 14
706; CHECK-NEXT: .short 6
707; CHECK-NEXT: .byte 16
708; CHECK-NEXT: .byte 0
709; CHECK-NEXT: .byte 8
710; CHECK-NEXT: .byte 23
711; CHECK-NEXT: .long 6
712; CHECK-NEXT: .ascii "double"
713; CHECK-NEXT: .byte 5
714
715define 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 {
716 ret void
717}
718
719; CHECK-LABEL:{{^}}test_vec_type_hint_char:
720; CHECK: .section .AMDGPU.runtime_metadata
721; CHECK-NEXT: .byte 4
722; CHECK-NEXT: .byte 6
723; CHECK-NEXT: .long 23
724; CHECK-NEXT: .ascii "test_vec_type_hint_char"
725; CHECK-NEXT: .byte 7
726; CHECK-NEXT: .byte 9
727; CHECK-NEXT: .long 4
728; CHECK-NEXT: .byte 10
729; CHECK-NEXT: .long 4
730; CHECK-NEXT: .byte 11
731; CHECK-NEXT: .long 3
732; CHECK-NEXT: .ascii "int"
733; CHECK-NEXT: .byte 13
734; CHECK-NEXT: .byte 0
735; CHECK-NEXT: .byte 14
736; CHECK-NEXT: .short 6
737; CHECK-NEXT: .byte 16
738; CHECK-NEXT: .byte 0
739; CHECK-NEXT: .byte 8
740; CHECK-NEXT: .byte 23
741; CHECK-NEXT: .long 4
742; CHECK-NEXT: .ascii "char"
743; CHECK-NEXT: .byte 5
744
745define 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 {
746 ret void
747}
748
749; CHECK-LABEL:{{^}}test_vec_type_hint_short:
750; CHECK: .section .AMDGPU.runtime_metadata
751; CHECK-NEXT: .byte 4
752; CHECK-NEXT: .byte 6
753; CHECK-NEXT: .long 24
754; CHECK-NEXT: .ascii "test_vec_type_hint_short"
755; CHECK-NEXT: .byte 7
756; CHECK-NEXT: .byte 9
757; CHECK-NEXT: .long 4
758; CHECK-NEXT: .byte 10
759; CHECK-NEXT: .long 4
760; CHECK-NEXT: .byte 11
761; CHECK-NEXT: .long 3
762; CHECK-NEXT: .ascii "int"
763; CHECK-NEXT: .byte 13
764; CHECK-NEXT: .byte 0
765; CHECK-NEXT: .byte 14
766; CHECK-NEXT: .short 6
767; CHECK-NEXT: .byte 16
768; CHECK-NEXT: .byte 0
769; CHECK-NEXT: .byte 8
770; CHECK-NEXT: .byte 23
771; CHECK-NEXT: .long 5
772; CHECK-NEXT: .ascii "short"
773; CHECK-NEXT: .byte 5
774
775define 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 {
776 ret void
777}
778
779; CHECK-LABEL:{{^}}test_vec_type_hint_long:
780; CHECK: .section .AMDGPU.runtime_metadata
781; CHECK-NEXT: .byte 4
782; CHECK-NEXT: .byte 6
783; CHECK-NEXT: .long 23
784; CHECK-NEXT: .ascii "test_vec_type_hint_long"
785; CHECK-NEXT: .byte 7
786; CHECK-NEXT: .byte 9
787; CHECK-NEXT: .long 4
788; CHECK-NEXT: .byte 10
789; CHECK-NEXT: .long 4
790; CHECK-NEXT: .byte 11
791; CHECK-NEXT: .long 3
792; CHECK-NEXT: .ascii "int"
793; CHECK-NEXT: .byte 13
794; CHECK-NEXT: .byte 0
795; CHECK-NEXT: .byte 14
796; CHECK-NEXT: .short 6
797; CHECK-NEXT: .byte 16
798; CHECK-NEXT: .byte 0
799; CHECK-NEXT: .byte 8
800; CHECK-NEXT: .byte 23
801; CHECK-NEXT: .long 4
802; CHECK-NEXT: .ascii "long"
803; CHECK-NEXT: .byte 5
804
805define 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 {
806 ret void
807}
808
809; CHECK-LABEL:{{^}}test_vec_type_hint_unknown:
810; CHECK: .section .AMDGPU.runtime_metadata
811; CHECK-NEXT: .byte 4
812; CHECK-NEXT: .byte 6
813; CHECK-NEXT: .long 26
814; CHECK-NEXT: .ascii "test_vec_type_hint_unknown"
815; CHECK-NEXT: .byte 7
816; CHECK-NEXT: .byte 9
817; CHECK-NEXT: .long 4
818; CHECK-NEXT: .byte 10
819; CHECK-NEXT: .long 4
820; CHECK-NEXT: .byte 11
821; CHECK-NEXT: .long 3
822; CHECK-NEXT: .ascii "int"
823; CHECK-NEXT: .byte 13
824; CHECK-NEXT: .byte 0
825; CHECK-NEXT: .byte 14
826; CHECK-NEXT: .short 6
827; CHECK-NEXT: .byte 16
828; CHECK-NEXT: .byte 0
829; CHECK-NEXT: .byte 8
830; CHECK-NEXT: .byte 23
831; CHECK-NEXT: .long 7
832; CHECK-NEXT: .ascii "unknown"
833; CHECK-NEXT: .byte 5
834
835define 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 {
836 ret void
837}
838
Yaxun Liua711cc72016-07-16 05:09:21 +0000839; CHECK-LABEL:{{^}}test_reqd_wgs_vec_type_hint:
840; CHECK: .section .AMDGPU.runtime_metadata
841; CHECK-NEXT: .byte 4
842; CHECK-NEXT: .byte 6
843; CHECK-NEXT: .long 27
844; CHECK-NEXT: .ascii "test_reqd_wgs_vec_type_hint"
845; CHECK-NEXT: .byte 7
846; CHECK-NEXT: .byte 9
847; CHECK-NEXT: .long 4
848; CHECK-NEXT: .byte 10
849; CHECK-NEXT: .long 4
850; CHECK-NEXT: .byte 11
851; CHECK-NEXT: .long 3
852; CHECK-NEXT: .ascii "int"
853; CHECK-NEXT: .byte 13
854; CHECK-NEXT: .byte 0
855; CHECK-NEXT: .byte 14
856; CHECK-NEXT: .short 6
857; CHECK-NEXT: .byte 16
858; CHECK-NEXT: .byte 0
859; CHECK-NEXT: .byte 8
860; CHECK-NEXT: .byte 21
861; CHECK-NEXT: .long 1
862; CHECK-NEXT: .long 2
863; CHECK-NEXT: .long 4
864; CHECK-NEXT: .byte 23
865; CHECK-NEXT: .long 3
866; CHECK-NEXT: .ascii "int"
867; CHECK-NEXT: .byte 5
868
869define 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 {
870 ret void
871}
872
873; CHECK-LABEL:{{^}}test_wgs_hint_vec_type_hint:
874; CHECK: .section .AMDGPU.runtime_metadata
875; CHECK-NEXT: .byte 4
876; CHECK-NEXT: .byte 6
877; CHECK-NEXT: .long 27
878; CHECK-NEXT: .ascii "test_wgs_hint_vec_type_hint"
879; CHECK-NEXT: .byte 7
880; CHECK-NEXT: .byte 9
881; CHECK-NEXT: .long 4
882; CHECK-NEXT: .byte 10
883; CHECK-NEXT: .long 4
884; CHECK-NEXT: .byte 11
885; CHECK-NEXT: .long 3
886; CHECK-NEXT: .ascii "int"
887; CHECK-NEXT: .byte 13
888; CHECK-NEXT: .byte 0
889; CHECK-NEXT: .byte 14
890; CHECK-NEXT: .short 6
891; CHECK-NEXT: .byte 16
892; CHECK-NEXT: .byte 0
893; CHECK-NEXT: .byte 8
894; CHECK-NEXT: .byte 22
895; CHECK-NEXT: .long 8
896; CHECK-NEXT: .long 16
897; CHECK-NEXT: .long 32
898; CHECK-NEXT: .byte 23
899; CHECK-NEXT: .long 5
900; CHECK-NEXT: .ascii "uint4"
901; CHECK-NEXT: .byte 5
902
903define 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 {
904 ret void
905}
906
907; CHECK-LABEL:{{^}}test_arg_ptr_to_ptr:
908; CHECK: .section .AMDGPU.runtime_metadata
909; CHECK-NEXT: .byte 4
910; CHECK-NEXT: .byte 6
911; CHECK-NEXT: .long 19
912; CHECK-NEXT: .ascii "test_arg_ptr_to_ptr"
913; CHECK-NEXT: .byte 7
914; CHECK-NEXT: .byte 9
915; CHECK-NEXT: .long 8
916; CHECK-NEXT: .byte 10
917; CHECK-NEXT: .long 8
918; CHECK-NEXT: .byte 11
919; CHECK-NEXT: .long 6
920; CHECK-NEXT: .ascii "int **"
921; CHECK-NEXT: .byte 13
922; CHECK-NEXT: .byte 1
923; CHECK-NEXT: .byte 14
924; CHECK-NEXT: .short 6
925; CHECK-NEXT: .byte 16
926; CHECK-NEXT: .byte 0
927; CHECK-NEXT: .byte 15
928; CHECK-NEXT: .byte 1
929; CHECK-NEXT: .byte 8
930; CHECK-NEXT: .byte 5
931
932define 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 {
933 ret void
934}
935
936; CHECK-LABEL:{{^}}test_arg_struct_contains_ptr:
937; CHECK: .section .AMDGPU.runtime_metadata
938; CHECK-NEXT: .byte 4
939; CHECK-NEXT: .byte 6
940; CHECK-NEXT: .long 28
941; CHECK-NEXT: .ascii "test_arg_struct_contains_ptr"
942; CHECK-NEXT: .byte 7
943; CHECK-NEXT: .byte 9
944; CHECK-NEXT: .long 4
945; CHECK-NEXT: .byte 10
946; CHECK-NEXT: .long 4
947; CHECK-NEXT: .byte 11
948; CHECK-NEXT: .long 8
949; CHECK-NEXT: .ascii "struct B"
950; CHECK-NEXT: .byte 13
951; CHECK-NEXT: .byte 1
952; CHECK-NEXT: .byte 14
953; CHECK-NEXT: .short 0
954; CHECK-NEXT: .byte 16
955; CHECK-NEXT: .byte 0
956; CHECK-NEXT: .byte 15
957; CHECK-NEXT: .byte 0
958; CHECK-NEXT: .byte 8
959; CHECK-NEXT: .byte 5
960
961define 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 {
962 ret void
963}
964
965; CHECK-LABEL:{{^}}test_arg_vector_of_ptr:
966; CHECK: .section .AMDGPU.runtime_metadata
967; CHECK-NEXT: .byte 4
968; CHECK-NEXT: .byte 6
969; CHECK-NEXT: .long 22
970; CHECK-NEXT: .ascii "test_arg_vector_of_ptr"
971; CHECK-NEXT: .byte 7
972; CHECK-NEXT: .byte 9
973; CHECK-NEXT: .long 16
974; CHECK-NEXT: .byte 10
975; CHECK-NEXT: .long 16
976; CHECK-NEXT: .byte 11
977; CHECK-NEXT: .long 47
978; CHECK-NEXT: .ascii "global int* __attribute__((ext_vector_type(2)))"
979; CHECK-NEXT: .byte 13
980; CHECK-NEXT: .byte 0
981; CHECK-NEXT: .byte 14
982; CHECK-NEXT: .short 6
983; CHECK-NEXT: .byte 16
984; CHECK-NEXT: .byte 0
985; CHECK-NEXT: .byte 8
986; CHECK-NEXT: .byte 5
987
988define 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 {
989 ret void
990}
991
992; CHECK-LABEL:{{^}}test_arg_unknown_builtin_type:
993; CHECK: .section .AMDGPU.runtime_metadata
994; CHECK-NEXT: .byte 4
995; CHECK-NEXT: .byte 6
996; CHECK-NEXT: .long 29
997; CHECK-NEXT: .ascii "test_arg_unknown_builtin_type"
998; CHECK-NEXT: .byte 7
999; CHECK-NEXT: .byte 9
1000; CHECK-NEXT: .long 8
1001; CHECK-NEXT: .byte 10
1002; CHECK-NEXT: .long 8
1003; CHECK-NEXT: .byte 11
1004; CHECK-NEXT: .long 11
1005; CHECK-NEXT: .ascii "clk_event_t"
1006; CHECK-NEXT: .byte 13
1007; CHECK-NEXT: .byte 1
1008; CHECK-NEXT: .byte 14
1009; CHECK-NEXT: .short 0
1010; CHECK-NEXT: .byte 16
1011; CHECK-NEXT: .byte 0
1012; CHECK-NEXT: .byte 15
1013; CHECK-NEXT: .byte 1
1014; CHECK-NEXT: .byte 8
1015; CHECK-NEXT: .byte 5
1016
1017define 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 {
1018 ret void
1019}
1020
1021!1 = !{i32 0}
1022!2 = !{!"none"}
1023!3 = !{!"int"}
1024!4 = !{!""}
1025!5 = !{i32 undef, i32 1}
1026!6 = !{i32 1, i32 2, i32 4}
1027!7 = !{<4 x i32> undef, i32 0}
1028!8 = !{i32 8, i32 16, i32 32}
1029!9 = !{!"char"}
1030!10 = !{!"ushort2"}
1031!11 = !{!"int3"}
1032!12 = !{!"ulong4"}
1033!13 = !{!"half8"}
1034!14 = !{!"float16"}
1035!15 = !{!"double16"}
1036!16 = !{!"int *"}
1037!17 = !{!"image2d_t"}
1038!18 = !{!"sampler_t"}
1039!19 = !{!"queue_t"}
1040!20 = !{!"struct A"}
1041!21 = !{!"i128"}
1042!22 = !{i32 0, i32 0, i32 0}
1043!23 = !{!"none", !"none", !"none"}
1044!24 = !{!"int", !"short2", !"char3"}
1045!25 = !{!"", !"", !""}
Yaxun Liu86c052232016-08-04 19:45:00 +00001046!26 = !{half undef, i32 1}
1047!27 = !{float undef, i32 1}
1048!28 = !{double undef, i32 1}
1049!29 = !{i8 undef, i32 1}
1050!30 = !{i16 undef, i32 1}
1051!31 = !{i64 undef, i32 1}
1052!32 = !{i32 *undef, i32 1}
Yaxun Liua711cc72016-07-16 05:09:21 +00001053!50 = !{i32 1, i32 2, i32 3}
1054!51 = !{!"int *", !"int *", !"int *"}
1055!60 = !{i32 1, i32 1, i32 1}
1056!61 = !{!"read_only", !"write_only", !"read_write"}
1057!62 = !{!"image1d_t", !"image2d_t", !"image3d_t"}
1058!70 = !{!"volatile", !"const restrict", !"pipe"}
1059!80 = !{!"int **"}
1060!81 = !{i32 1}
1061!82 = !{!"struct B"}
1062!83 = !{!"global int* __attribute__((ext_vector_type(2)))"}
1063!84 = !{!"clk_event_t"}
1064!opencl.ocl.version = !{!90}
1065!90 = !{i32 2, i32 0}