blob: 37fd08242fbaa305fef6e1dd20a9a277c5055138 [file] [log] [blame]
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 -filetype=obj -o - < %s | llvm-readobj -amdgpu-code-object-metadata -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX700 --check-prefix=NOTES %s
2; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx800 -filetype=obj -o - < %s | llvm-readobj -amdgpu-code-object-metadata -elf-output-style=GNU -notes | FileCheck --check-prefix=CHECK --check-prefix=GFX800 --check-prefix=NOTES %s
3; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -filetype=obj -o - < %s | llvm-readobj -amdgpu-code-object-metadata -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 -amdgpu-dump-comd -amdgpu-verify-comd -filetype=obj -o - < %s 2>&1 | FileCheck --check-prefix=PARSER %s
5; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx800 -amdgpu-dump-comd -amdgpu-verify-comd -filetype=obj -o - < %s 2>&1 | FileCheck --check-prefix=PARSER %s
6; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -amdgpu-dump-comd -amdgpu-verify-comd -filetype=obj -o - < %s 2>&1 | FileCheck --check-prefix=PARSER %s
7
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
16
17; CHECK: ---
18; CHECK: Version: [ 1, 0 ]
Richard Smithd0c0c132017-06-30 20:56:57 +000019; CHECK: Printf:
20; CHECK: - '1:1:4:%d\n'
21; CHECK: - '2:1:8:%g\n'
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000022; CHECK: Kernels:
23
24; CHECK: - Name: test_char
25; CHECK-NEXT: Language: OpenCL C
26; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
27; CHECK-NEXT: Args:
28; CHECK-NEXT: - Size: 1
29; CHECK-NEXT: Align: 1
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000030; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000031; CHECK-NEXT: ValueType: I8
32; CHECK-NEXT: AccQual: Default
33; CHECK-NEXT: TypeName: char
34; CHECK-NEXT: - Size: 8
35; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000036; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000037; CHECK-NEXT: ValueType: I64
38; CHECK-NEXT: - Size: 8
39; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000040; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000041; CHECK-NEXT: ValueType: I64
42; CHECK-NEXT: - Size: 8
43; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000044; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000045; CHECK-NEXT: ValueType: I64
46; CHECK-NEXT: - Size: 8
47; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000048; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000049; CHECK-NEXT: ValueType: I8
50; CHECK-NEXT: AddrSpaceQual: Global
51define amdgpu_kernel void @test_char(i8 %a)
52 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !9
53 !kernel_arg_base_type !9 !kernel_arg_type_qual !4 {
54 ret void
55}
56
57; CHECK: - Name: test_ushort2
58; CHECK-NEXT: Language: OpenCL C
59; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
60; CHECK-NEXT: Args:
61; CHECK-NEXT: - Size: 4
62; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000063; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000064; CHECK-NEXT: ValueType: U16
65; CHECK-NEXT: AccQual: Default
66; CHECK-NEXT: TypeName: ushort2
67; CHECK-NEXT: - Size: 8
68; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000069; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000070; CHECK-NEXT: ValueType: I64
71; CHECK-NEXT: - Size: 8
72; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000073; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000074; CHECK-NEXT: ValueType: I64
75; CHECK-NEXT: - Size: 8
76; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000077; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000078; CHECK-NEXT: ValueType: I64
79; CHECK-NEXT: - Size: 8
80; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000081; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000082; CHECK-NEXT: ValueType: I8
83; CHECK-NEXT: AddrSpaceQual: Global
84define amdgpu_kernel void @test_ushort2(<2 x i16> %a)
85 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !10
86 !kernel_arg_base_type !10 !kernel_arg_type_qual !4 {
87 ret void
88}
89
90; CHECK: - Name: test_int3
91; CHECK-NEXT: Language: OpenCL C
92; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
93; CHECK-NEXT: Args:
94; CHECK-NEXT: - Size: 16
95; CHECK-NEXT: Align: 16
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000096; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000097; CHECK-NEXT: ValueType: I32
98; CHECK-NEXT: AccQual: Default
99; CHECK-NEXT: TypeName: int3
100; CHECK-NEXT: - Size: 8
101; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000102; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000103; CHECK-NEXT: ValueType: I64
104; CHECK-NEXT: - Size: 8
105; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000106; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000107; CHECK-NEXT: ValueType: I64
108; CHECK-NEXT: - Size: 8
109; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000110; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000111; CHECK-NEXT: ValueType: I64
112; CHECK-NEXT: - Size: 8
113; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000114; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000115; CHECK-NEXT: ValueType: I8
116; CHECK-NEXT: AddrSpaceQual: Global
117define amdgpu_kernel void @test_int3(<3 x i32> %a)
118 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !11
119 !kernel_arg_base_type !11 !kernel_arg_type_qual !4 {
120 ret void
121}
122
123; CHECK: - Name: test_ulong4
124; CHECK-NEXT: Language: OpenCL C
125; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
126; CHECK-NEXT: Args:
127; CHECK-NEXT: - Size: 32
128; CHECK-NEXT: Align: 32
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000129; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000130; CHECK-NEXT: ValueType: U64
131; CHECK-NEXT: AccQual: Default
132; CHECK-NEXT: TypeName: ulong4
133; CHECK-NEXT: - Size: 8
134; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000135; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000136; CHECK-NEXT: ValueType: I64
137; CHECK-NEXT: - Size: 8
138; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000139; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000140; CHECK-NEXT: ValueType: I64
141; CHECK-NEXT: - Size: 8
142; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000143; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000144; CHECK-NEXT: ValueType: I64
145; CHECK-NEXT: - Size: 8
146; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000147; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000148; CHECK-NEXT: ValueType: I8
149; CHECK-NEXT: AddrSpaceQual: Global
150define amdgpu_kernel void @test_ulong4(<4 x i64> %a)
151 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !12
152 !kernel_arg_base_type !12 !kernel_arg_type_qual !4 {
153 ret void
154}
155
156; CHECK: - Name: test_half8
157; CHECK-NEXT: Language: OpenCL C
158; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
159; CHECK-NEXT: Args:
160; CHECK-NEXT: - Size: 16
161; CHECK-NEXT: Align: 16
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000162; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000163; CHECK-NEXT: ValueType: F16
164; CHECK-NEXT: AccQual: Default
165; CHECK-NEXT: TypeName: half8
166; CHECK-NEXT: - Size: 8
167; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000168; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000169; CHECK-NEXT: ValueType: I64
170; CHECK-NEXT: - Size: 8
171; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000172; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000173; CHECK-NEXT: ValueType: I64
174; CHECK-NEXT: - Size: 8
175; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000176; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000177; CHECK-NEXT: ValueType: I64
178; CHECK-NEXT: - Size: 8
179; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000180; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000181; CHECK-NEXT: ValueType: I8
182; CHECK-NEXT: AddrSpaceQual: Global
183define amdgpu_kernel void @test_half8(<8 x half> %a)
184 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !13
185 !kernel_arg_base_type !13 !kernel_arg_type_qual !4 {
186 ret void
187}
188
189; CHECK: - Name: test_float16
190; CHECK-NEXT: Language: OpenCL C
191; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
192; CHECK-NEXT: Args:
193; CHECK-NEXT: - Size: 64
194; CHECK-NEXT: Align: 64
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000195; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000196; CHECK-NEXT: ValueType: F32
197; CHECK-NEXT: AccQual: Default
198; CHECK-NEXT: TypeName: float16
199; CHECK-NEXT: - Size: 8
200; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000201; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000202; CHECK-NEXT: ValueType: I64
203; CHECK-NEXT: - Size: 8
204; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000205; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000206; CHECK-NEXT: ValueType: I64
207; CHECK-NEXT: - Size: 8
208; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000209; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000210; CHECK-NEXT: ValueType: I64
211; CHECK-NEXT: - Size: 8
212; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000213; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000214; CHECK-NEXT: ValueType: I8
215; CHECK-NEXT: AddrSpaceQual: Global
216define amdgpu_kernel void @test_float16(<16 x float> %a)
217 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !14
218 !kernel_arg_base_type !14 !kernel_arg_type_qual !4 {
219 ret void
220}
221
222; CHECK: - Name: test_double16
223; CHECK-NEXT: Language: OpenCL C
224; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
225; CHECK-NEXT: Args:
226; CHECK-NEXT: - Size: 128
227; CHECK-NEXT: Align: 128
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000228; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000229; CHECK-NEXT: ValueType: F64
230; CHECK-NEXT: AccQual: Default
231; CHECK-NEXT: TypeName: double16
232; CHECK-NEXT: - Size: 8
233; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000234; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000235; CHECK-NEXT: ValueType: I64
236; CHECK-NEXT: - Size: 8
237; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000238; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000239; CHECK-NEXT: ValueType: I64
240; CHECK-NEXT: - Size: 8
241; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000242; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000243; CHECK-NEXT: ValueType: I64
244; CHECK-NEXT: - Size: 8
245; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000246; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000247; CHECK-NEXT: ValueType: I8
248; CHECK-NEXT: AddrSpaceQual: Global
249define amdgpu_kernel void @test_double16(<16 x double> %a)
250 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !15
251 !kernel_arg_base_type !15 !kernel_arg_type_qual !4 {
252 ret void
253}
254
255; CHECK: - Name: test_pointer
256; CHECK-NEXT: Language: OpenCL C
257; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
258; CHECK-NEXT: Args:
259; CHECK-NEXT: - Size: 8
260; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000261; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000262; CHECK-NEXT: ValueType: I32
263; CHECK-NEXT: AccQual: Default
264; CHECK-NEXT: AddrSpaceQual: Global
265; CHECK-NEXT: TypeName: 'int *'
266; CHECK-NEXT: - Size: 8
267; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000268; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000269; CHECK-NEXT: ValueType: I64
270; CHECK-NEXT: - Size: 8
271; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000272; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000273; CHECK-NEXT: ValueType: I64
274; CHECK-NEXT: - Size: 8
275; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000276; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000277; CHECK-NEXT: ValueType: I64
278; CHECK-NEXT: - Size: 8
279; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000280; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000281; CHECK-NEXT: ValueType: I8
282; CHECK-NEXT: AddrSpaceQual: Global
283define amdgpu_kernel void @test_pointer(i32 addrspace(1)* %a)
284 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !16
285 !kernel_arg_base_type !16 !kernel_arg_type_qual !4 {
286 ret void
287}
288
289; CHECK: - Name: test_image
290; CHECK-NEXT: Language: OpenCL C
291; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
292; CHECK-NEXT: Args:
293; CHECK-NEXT: - Size: 8
294; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000295; CHECK-NEXT: ValueKind: Image
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000296; CHECK-NEXT: ValueType: Struct
297; CHECK-NEXT: AccQual: Default
298; CHECK-NEXT: AddrSpaceQual: Global
299; CHECK-NEXT: TypeName: image2d_t
300; CHECK-NEXT: - Size: 8
301; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000302; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000303; CHECK-NEXT: ValueType: I64
304; CHECK-NEXT: - Size: 8
305; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000306; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000307; CHECK-NEXT: ValueType: I64
308; CHECK-NEXT: - Size: 8
309; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000310; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000311; CHECK-NEXT: ValueType: I64
312; CHECK-NEXT: - Size: 8
313; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000314; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000315; CHECK-NEXT: ValueType: I8
316; CHECK-NEXT: AddrSpaceQual: Global
317define amdgpu_kernel void @test_image(%opencl.image2d_t addrspace(1)* %a)
318 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !17
319 !kernel_arg_base_type !17 !kernel_arg_type_qual !4 {
320 ret void
321}
322
323; CHECK: - Name: test_sampler
324; CHECK-NEXT: Language: OpenCL C
325; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
326; CHECK-NEXT: Args:
327; CHECK-NEXT: - Size: 4
328; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000329; CHECK-NEXT: ValueKind: Sampler
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000330; CHECK-NEXT: ValueType: I32
331; CHECK-NEXT: AccQual: Default
332; CHECK-NEXT: TypeName: sampler_t
333; CHECK-NEXT: - Size: 8
334; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000335; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000336; CHECK-NEXT: ValueType: I64
337; CHECK-NEXT: - Size: 8
338; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000339; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000340; CHECK-NEXT: ValueType: I64
341; CHECK-NEXT: - Size: 8
342; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000343; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000344; CHECK-NEXT: ValueType: I64
345; CHECK-NEXT: - Size: 8
346; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000347; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000348; CHECK-NEXT: ValueType: I8
349; CHECK-NEXT: AddrSpaceQual: Global
350define amdgpu_kernel void @test_sampler(i32 %a)
351 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !18
352 !kernel_arg_base_type !18 !kernel_arg_type_qual !4 {
353 ret void
354}
355
356; CHECK: - Name: test_queue
357; CHECK-NEXT: Language: OpenCL C
358; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
359; CHECK-NEXT: Args:
360; CHECK-NEXT: - Size: 8
361; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000362; CHECK-NEXT: ValueKind: Queue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000363; CHECK-NEXT: ValueType: Struct
364; CHECK-NEXT: AccQual: Default
365; CHECK-NEXT: AddrSpaceQual: Global
366; CHECK-NEXT: TypeName: queue_t
367; CHECK-NEXT: - Size: 8
368; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000369; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000370; CHECK-NEXT: ValueType: I64
371; CHECK-NEXT: - Size: 8
372; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000373; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000374; CHECK-NEXT: ValueType: I64
375; CHECK-NEXT: - Size: 8
376; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000377; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000378; CHECK-NEXT: ValueType: I64
379; CHECK-NEXT: - Size: 8
380; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000381; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000382; CHECK-NEXT: ValueType: I8
383; CHECK-NEXT: AddrSpaceQual: Global
384define amdgpu_kernel void @test_queue(%opencl.queue_t addrspace(1)* %a)
385 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !19
386 !kernel_arg_base_type !19 !kernel_arg_type_qual !4 {
387 ret void
388}
389
390; CHECK: - Name: test_struct
391; CHECK-NEXT: Language: OpenCL C
392; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
393; CHECK-NEXT: Args:
394; CHECK-NEXT: - Size: 4
395; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000396; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000397; CHECK-NEXT: ValueType: Struct
398; CHECK-NEXT: AccQual: Default
399; CHECK-NEXT: AddrSpaceQual: Private
400; CHECK-NEXT: TypeName: struct A
401; CHECK-NEXT: - Size: 8
402; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000403; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000404; CHECK-NEXT: ValueType: I64
405; CHECK-NEXT: - Size: 8
406; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000407; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000408; CHECK-NEXT: ValueType: I64
409; CHECK-NEXT: - Size: 8
410; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000411; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000412; CHECK-NEXT: ValueType: I64
413; CHECK-NEXT: - Size: 8
414; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000415; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000416; CHECK-NEXT: ValueType: I8
417; CHECK-NEXT: AddrSpaceQual: Global
418define amdgpu_kernel void @test_struct(%struct.A* byval %a)
419 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !20
420 !kernel_arg_base_type !20 !kernel_arg_type_qual !4 {
421 ret void
422}
423
424; CHECK: - Name: test_i128
425; CHECK-NEXT: Language: OpenCL C
426; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
427; CHECK-NEXT: Args:
428; CHECK-NEXT: - Size: 16
429; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000430; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000431; CHECK-NEXT: ValueType: Struct
432; CHECK-NEXT: AccQual: Default
433; CHECK-NEXT: TypeName: i128
434; CHECK-NEXT: - Size: 8
435; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000436; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000437; CHECK-NEXT: ValueType: I64
438; CHECK-NEXT: - Size: 8
439; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000440; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000441; CHECK-NEXT: ValueType: I64
442; CHECK-NEXT: - Size: 8
443; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000444; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000445; CHECK-NEXT: ValueType: I64
446; CHECK-NEXT: - Size: 8
447; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000448; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000449; CHECK-NEXT: ValueType: I8
450; CHECK-NEXT: AddrSpaceQual: Global
451define amdgpu_kernel void @test_i128(i128 %a)
452 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !21
453 !kernel_arg_base_type !21 !kernel_arg_type_qual !4 {
454 ret void
455}
456
457; CHECK: - Name: test_multi_arg
458; CHECK-NEXT: Language: OpenCL C
459; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
460; CHECK-NEXT: Args:
461; CHECK-NEXT: - Size: 4
462; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000463; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000464; CHECK-NEXT: ValueType: I32
465; CHECK-NEXT: AccQual: Default
466; CHECK-NEXT: TypeName: int
467; CHECK-NEXT: - Size: 4
468; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000469; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000470; CHECK-NEXT: ValueType: I16
471; CHECK-NEXT: AccQual: Default
472; CHECK-NEXT: TypeName: short2
473; CHECK-NEXT: - Size: 4
474; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000475; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000476; CHECK-NEXT: ValueType: I8
477; CHECK-NEXT: AccQual: Default
478; CHECK-NEXT: TypeName: char3
479; CHECK-NEXT: - Size: 8
480; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000481; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000482; CHECK-NEXT: ValueType: I64
483; CHECK-NEXT: - Size: 8
484; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000485; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000486; CHECK-NEXT: ValueType: I64
487; CHECK-NEXT: - Size: 8
488; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000489; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000490; CHECK-NEXT: ValueType: I64
491; CHECK-NEXT: - Size: 8
492; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000493; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000494; CHECK-NEXT: ValueType: I8
495; CHECK-NEXT: AddrSpaceQual: Global
496define amdgpu_kernel void @test_multi_arg(i32 %a, <2 x i16> %b, <3 x i8> %c)
497 !kernel_arg_addr_space !22 !kernel_arg_access_qual !23 !kernel_arg_type !24
498 !kernel_arg_base_type !24 !kernel_arg_type_qual !25 {
499 ret void
500}
501
502; CHECK: - Name: test_addr_space
503; CHECK-NEXT: Language: OpenCL C
504; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
505; CHECK-NEXT: Args:
506; CHECK-NEXT: - Size: 8
507; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000508; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000509; CHECK-NEXT: ValueType: I32
510; CHECK-NEXT: AccQual: Default
511; CHECK-NEXT: AddrSpaceQual: Global
512; CHECK-NEXT: TypeName: 'int *'
513; CHECK-NEXT: - Size: 8
514; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000515; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000516; CHECK-NEXT: ValueType: I32
517; CHECK-NEXT: AccQual: Default
518; CHECK-NEXT: AddrSpaceQual: Constant
519; CHECK-NEXT: TypeName: 'int *'
520; CHECK-NEXT: - Size: 4
521; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000522; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000523; CHECK-NEXT: ValueType: I32
524; CHECK-NEXT: PointeeAlign: 4
525; CHECK-NEXT: AccQual: Default
526; CHECK-NEXT: AddrSpaceQual: Local
527; CHECK-NEXT: TypeName: 'int *'
528; CHECK-NEXT: - Size: 8
529; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000530; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000531; CHECK-NEXT: ValueType: I64
532; CHECK-NEXT: - Size: 8
533; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000534; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000535; CHECK-NEXT: ValueType: I64
536; CHECK-NEXT: - Size: 8
537; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000538; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000539; CHECK-NEXT: ValueType: I64
540; CHECK-NEXT: - Size: 8
541; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000542; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000543; CHECK-NEXT: ValueType: I8
544; CHECK-NEXT: AddrSpaceQual: Global
545define amdgpu_kernel void @test_addr_space(i32 addrspace(1)* %g,
546 i32 addrspace(2)* %c,
547 i32 addrspace(3)* %l)
548 !kernel_arg_addr_space !50 !kernel_arg_access_qual !23 !kernel_arg_type !51
549 !kernel_arg_base_type !51 !kernel_arg_type_qual !25 {
550 ret void
551}
552
553; CHECK: - Name: test_type_qual
554; CHECK-NEXT: Language: OpenCL C
555; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
556; CHECK-NEXT: Args:
557; CHECK-NEXT: - Size: 8
558; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000559; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000560; CHECK-NEXT: ValueType: I32
561; CHECK-NEXT: AccQual: Default
562; CHECK-NEXT: AddrSpaceQual: Global
563; CHECK-NEXT: IsVolatile: true
564; CHECK-NEXT: TypeName: 'int *'
565; CHECK-NEXT: - Size: 8
566; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000567; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000568; CHECK-NEXT: ValueType: I32
569; CHECK-NEXT: AccQual: Default
570; CHECK-NEXT: AddrSpaceQual: Global
571; CHECK-NEXT: IsConst: true
572; CHECK-NEXT: IsRestrict: true
573; CHECK-NEXT: TypeName: 'int *'
574; CHECK-NEXT: - Size: 8
575; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000576; CHECK-NEXT: ValueKind: Pipe
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000577; CHECK-NEXT: ValueType: Struct
578; CHECK-NEXT: AccQual: Default
579; CHECK-NEXT: AddrSpaceQual: Global
580; CHECK-NEXT: IsPipe: true
581; CHECK-NEXT: TypeName: 'int *'
582; CHECK-NEXT: - Size: 8
583; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000584; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000585; CHECK-NEXT: ValueType: I64
586; CHECK-NEXT: - Size: 8
587; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000588; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000589; CHECK-NEXT: ValueType: I64
590; CHECK-NEXT: - Size: 8
591; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000592; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000593; CHECK-NEXT: ValueType: I64
594; CHECK-NEXT: - Size: 8
595; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000596; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000597; CHECK-NEXT: ValueType: I8
598; CHECK-NEXT: AddrSpaceQual: Global
599define amdgpu_kernel void @test_type_qual(i32 addrspace(1)* %a,
600 i32 addrspace(1)* %b,
601 %opencl.pipe_t addrspace(1)* %c)
602 !kernel_arg_addr_space !22 !kernel_arg_access_qual !23 !kernel_arg_type !51
603 !kernel_arg_base_type !51 !kernel_arg_type_qual !70 {
604 ret void
605}
606
607; CHECK: - Name: test_access_qual
608; CHECK-NEXT: Language: OpenCL C
609; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
610; CHECK-NEXT: Args:
611; CHECK-NEXT: - Size: 8
612; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000613; CHECK-NEXT: ValueKind: Image
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000614; CHECK-NEXT: ValueType: Struct
615; CHECK-NEXT: AccQual: ReadOnly
616; CHECK-NEXT: AddrSpaceQual: Global
617; CHECK-NEXT: TypeName: image1d_t
618; CHECK-NEXT: - Size: 8
619; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000620; CHECK-NEXT: ValueKind: Image
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000621; CHECK-NEXT: ValueType: Struct
622; CHECK-NEXT: AccQual: WriteOnly
623; CHECK-NEXT: AddrSpaceQual: Global
624; CHECK-NEXT: TypeName: image2d_t
625; CHECK-NEXT: - Size: 8
626; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000627; CHECK-NEXT: ValueKind: Image
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000628; CHECK-NEXT: ValueType: Struct
629; CHECK-NEXT: AccQual: ReadWrite
630; CHECK-NEXT: AddrSpaceQual: Global
631; CHECK-NEXT: TypeName: image3d_t
632; CHECK-NEXT: - Size: 8
633; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000634; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000635; CHECK-NEXT: ValueType: I64
636; CHECK-NEXT: - Size: 8
637; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000638; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000639; CHECK-NEXT: ValueType: I64
640; CHECK-NEXT: - Size: 8
641; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000642; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000643; CHECK-NEXT: ValueType: I64
644; CHECK-NEXT: - Size: 8
645; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000646; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000647; CHECK-NEXT: ValueType: I8
648; CHECK-NEXT: AddrSpaceQual: Global
649define amdgpu_kernel void @test_access_qual(%opencl.image1d_t addrspace(1)* %ro,
650 %opencl.image2d_t addrspace(1)* %wo,
651 %opencl.image3d_t addrspace(1)* %rw)
652 !kernel_arg_addr_space !60 !kernel_arg_access_qual !61 !kernel_arg_type !62
653 !kernel_arg_base_type !62 !kernel_arg_type_qual !25 {
654 ret void
655}
656
657; CHECK: - Name: test_vec_type_hint_half
658; CHECK-NEXT: Language: OpenCL C
659; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
660; CHECK-NEXT: Attrs:
661; CHECK-NEXT: VecTypeHint: half
662; CHECK-NEXT: Args:
663; CHECK-NEXT: - Size: 4
664; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000665; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000666; CHECK-NEXT: ValueType: I32
667; CHECK-NEXT: AccQual: Default
668; CHECK-NEXT: TypeName: int
669; CHECK-NEXT: - Size: 8
670; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000671; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000672; CHECK-NEXT: ValueType: I64
673; CHECK-NEXT: - Size: 8
674; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000675; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000676; CHECK-NEXT: ValueType: I64
677; CHECK-NEXT: - Size: 8
678; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000679; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000680; CHECK-NEXT: ValueType: I64
681; CHECK-NEXT: - Size: 8
682; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000683; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000684; CHECK-NEXT: ValueType: I8
685; CHECK-NEXT: AddrSpaceQual: Global
686define amdgpu_kernel void @test_vec_type_hint_half(i32 %a)
687 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
688 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !26 {
689 ret void
690}
691
692; CHECK: - Name: test_vec_type_hint_float
693; CHECK-NEXT: Language: OpenCL C
694; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
695; CHECK-NEXT: Attrs:
696; CHECK-NEXT: VecTypeHint: float
697; CHECK-NEXT: Args:
698; CHECK-NEXT: - Size: 4
699; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000700; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000701; CHECK-NEXT: ValueType: I32
702; CHECK-NEXT: AccQual: Default
703; CHECK-NEXT: TypeName: int
704; CHECK-NEXT: - Size: 8
705; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000706; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000707; CHECK-NEXT: ValueType: I64
708; CHECK-NEXT: - Size: 8
709; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000710; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000711; CHECK-NEXT: ValueType: I64
712; CHECK-NEXT: - Size: 8
713; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000714; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000715; CHECK-NEXT: ValueType: I64
716; CHECK-NEXT: - Size: 8
717; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000718; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000719; CHECK-NEXT: ValueType: I8
720; CHECK-NEXT: AddrSpaceQual: Global
721define amdgpu_kernel void @test_vec_type_hint_float(i32 %a)
722 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
723 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !27 {
724 ret void
725}
726
727; CHECK: - Name: test_vec_type_hint_double
728; CHECK-NEXT: Language: OpenCL C
729; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
730; CHECK-NEXT: Attrs:
731; CHECK-NEXT: VecTypeHint: double
732; CHECK-NEXT: Args:
733; CHECK-NEXT: - Size: 4
734; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000735; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000736; CHECK-NEXT: ValueType: I32
737; CHECK-NEXT: AccQual: Default
738; CHECK-NEXT: TypeName: int
739; CHECK-NEXT: - Size: 8
740; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000741; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000742; CHECK-NEXT: ValueType: I64
743; CHECK-NEXT: - Size: 8
744; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000745; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000746; CHECK-NEXT: ValueType: I64
747; CHECK-NEXT: - Size: 8
748; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000749; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000750; CHECK-NEXT: ValueType: I64
751; CHECK-NEXT: - Size: 8
752; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000753; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000754; CHECK-NEXT: ValueType: I8
755; CHECK-NEXT: AddrSpaceQual: Global
756define amdgpu_kernel void @test_vec_type_hint_double(i32 %a)
757 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
758 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !28 {
759 ret void
760}
761
762; CHECK: - Name: test_vec_type_hint_char
763; CHECK-NEXT: Language: OpenCL C
764; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
765; CHECK-NEXT: Attrs:
766; CHECK-NEXT: VecTypeHint: char
767; CHECK-NEXT: Args:
768; CHECK-NEXT: - Size: 4
769; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000770; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000771; CHECK-NEXT: ValueType: I32
772; CHECK-NEXT: AccQual: Default
773; CHECK-NEXT: TypeName: int
774; CHECK-NEXT: - Size: 8
775; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000776; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000777; CHECK-NEXT: ValueType: I64
778; CHECK-NEXT: - Size: 8
779; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000780; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000781; CHECK-NEXT: ValueType: I64
782; CHECK-NEXT: - Size: 8
783; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000784; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000785; CHECK-NEXT: ValueType: I64
786; CHECK-NEXT: - Size: 8
787; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000788; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000789; CHECK-NEXT: ValueType: I8
790; CHECK-NEXT: AddrSpaceQual: Global
791define amdgpu_kernel void @test_vec_type_hint_char(i32 %a)
792 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
793 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !29 {
794 ret void
795}
796
797; CHECK: - Name: test_vec_type_hint_short
798; CHECK-NEXT: Language: OpenCL C
799; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
800; CHECK-NEXT: Attrs:
801; CHECK-NEXT: VecTypeHint: short
802; CHECK-NEXT: Args:
803; CHECK-NEXT: - Size: 4
804; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000805; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000806; CHECK-NEXT: ValueType: I32
807; CHECK-NEXT: AccQual: Default
808; CHECK-NEXT: TypeName: int
809; CHECK-NEXT: - Size: 8
810; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000811; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000812; CHECK-NEXT: ValueType: I64
813; CHECK-NEXT: - Size: 8
814; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000815; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000816; CHECK-NEXT: ValueType: I64
817; CHECK-NEXT: - Size: 8
818; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000819; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000820; CHECK-NEXT: ValueType: I64
821; CHECK-NEXT: - Size: 8
822; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000823; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000824; CHECK-NEXT: ValueType: I8
825; CHECK-NEXT: AddrSpaceQual: Global
826define amdgpu_kernel void @test_vec_type_hint_short(i32 %a)
827 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
828 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !30 {
829 ret void
830}
831
832; CHECK: - Name: test_vec_type_hint_long
833; CHECK-NEXT: Language: OpenCL C
834; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
835; CHECK-NEXT: Attrs:
836; CHECK-NEXT: VecTypeHint: long
837; CHECK-NEXT: Args:
838; CHECK-NEXT: - Size: 4
839; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000840; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000841; CHECK-NEXT: ValueType: I32
842; CHECK-NEXT: AccQual: Default
843; CHECK-NEXT: TypeName: int
844; CHECK-NEXT: - Size: 8
845; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000846; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000847; CHECK-NEXT: ValueType: I64
848; CHECK-NEXT: - Size: 8
849; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000850; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000851; CHECK-NEXT: ValueType: I64
852; CHECK-NEXT: - Size: 8
853; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000854; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000855; CHECK-NEXT: ValueType: I64
856; CHECK-NEXT: - Size: 8
857; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000858; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000859; CHECK-NEXT: ValueType: I8
860; CHECK-NEXT: AddrSpaceQual: Global
861define amdgpu_kernel void @test_vec_type_hint_long(i32 %a)
862 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
863 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !31 {
864 ret void
865}
866
867; CHECK: - Name: test_vec_type_hint_unknown
868; CHECK-NEXT: Language: OpenCL C
869; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
870; CHECK-NEXT: Attrs:
871; CHECK-NEXT: VecTypeHint: unknown
872; CHECK-NEXT: Args:
873; CHECK-NEXT: - Size: 4
874; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000875; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000876; CHECK-NEXT: ValueType: I32
877; CHECK-NEXT: AccQual: Default
878; CHECK-NEXT: TypeName: int
879; CHECK-NEXT: - Size: 8
880; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000881; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000882; CHECK-NEXT: ValueType: I64
883; CHECK-NEXT: - Size: 8
884; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000885; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000886; CHECK-NEXT: ValueType: I64
887; CHECK-NEXT: - Size: 8
888; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000889; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000890; CHECK-NEXT: ValueType: I64
891; CHECK-NEXT: - Size: 8
892; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000893; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000894; CHECK-NEXT: ValueType: I8
895; CHECK-NEXT: AddrSpaceQual: Global
896define amdgpu_kernel void @test_vec_type_hint_unknown(i32 %a)
897 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
898 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !32 {
899 ret void
900}
901
902; CHECK: - Name: test_reqd_wgs_vec_type_hint
903; CHECK-NEXT: Language: OpenCL C
904; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
905; CHECK-NEXT: Attrs:
906; CHECK-NEXT: ReqdWorkGroupSize: [ 1, 2, 4 ]
907; CHECK-NEXT: VecTypeHint: int
908; CHECK-NEXT: Args:
909; CHECK-NEXT: - Size: 4
910; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000911; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000912; CHECK-NEXT: ValueType: I32
913; CHECK-NEXT: AccQual: Default
914; CHECK-NEXT: TypeName: int
915; CHECK-NEXT: - Size: 8
916; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000917; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000918; CHECK-NEXT: ValueType: I64
919; CHECK-NEXT: - Size: 8
920; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000921; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000922; CHECK-NEXT: ValueType: I64
923; CHECK-NEXT: - Size: 8
924; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000925; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000926; CHECK-NEXT: ValueType: I64
927; CHECK-NEXT: - Size: 8
928; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000929; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000930; CHECK-NEXT: ValueType: I8
931; CHECK-NEXT: AddrSpaceQual: Global
932define amdgpu_kernel void @test_reqd_wgs_vec_type_hint(i32 %a)
933 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
934 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !5
935 !reqd_work_group_size !6 {
936 ret void
937}
938
939; CHECK: - Name: test_wgs_hint_vec_type_hint
940; CHECK-NEXT: Language: OpenCL C
941; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
942; CHECK-NEXT: Attrs:
943; CHECK-NEXT: WorkGroupSizeHint: [ 8, 16, 32 ]
944; CHECK-NEXT: VecTypeHint: uint4
945; CHECK-NEXT: Args:
946; CHECK-NEXT: - Size: 4
947; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000948; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000949; CHECK-NEXT: ValueType: I32
950; CHECK-NEXT: AccQual: Default
951; CHECK-NEXT: TypeName: int
952; CHECK-NEXT: - Size: 8
953; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000954; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000955; CHECK-NEXT: ValueType: I64
956; CHECK-NEXT: - Size: 8
957; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000958; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000959; CHECK-NEXT: ValueType: I64
960; CHECK-NEXT: - Size: 8
961; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000962; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000963; CHECK-NEXT: ValueType: I64
964; CHECK-NEXT: - Size: 8
965; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000966; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000967; CHECK-NEXT: ValueType: I8
968; CHECK-NEXT: AddrSpaceQual: Global
969define amdgpu_kernel void @test_wgs_hint_vec_type_hint(i32 %a)
970 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
971 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !7
972 !work_group_size_hint !8 {
973 ret void
974}
975
976; CHECK: - Name: test_arg_ptr_to_ptr
977; CHECK-NEXT: Language: OpenCL C
978; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
979; CHECK-NEXT: Args:
980; CHECK-NEXT: - Size: 8
981; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000982; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000983; CHECK-NEXT: ValueType: I32
984; CHECK-NEXT: AccQual: Default
985; CHECK-NEXT: AddrSpaceQual: Global
986; CHECK-NEXT: TypeName: 'int **'
987; CHECK-NEXT: - Size: 8
988; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000989; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000990; CHECK-NEXT: ValueType: I64
991; CHECK-NEXT: - Size: 8
992; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000993; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000994; CHECK-NEXT: ValueType: I64
995; CHECK-NEXT: - Size: 8
996; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000997; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000998; CHECK-NEXT: ValueType: I64
999; CHECK-NEXT: - Size: 8
1000; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001001; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001002; CHECK-NEXT: ValueType: I8
1003; CHECK-NEXT: AddrSpaceQual: Global
1004define amdgpu_kernel void @test_arg_ptr_to_ptr(i32* addrspace(1)* %a)
1005 !kernel_arg_addr_space !81 !kernel_arg_access_qual !2 !kernel_arg_type !80
1006 !kernel_arg_base_type !80 !kernel_arg_type_qual !4 {
1007 ret void
1008}
1009
1010; CHECK: - Name: test_arg_struct_contains_ptr
1011; CHECK-NEXT: Language: OpenCL C
1012; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1013; CHECK-NEXT: Args:
1014; CHECK-NEXT: - Size: 4
1015; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001016; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001017; CHECK-NEXT: ValueType: Struct
1018; CHECK-NEXT: AccQual: Default
1019; CHECK-NEXT: AddrSpaceQual: Private
1020; CHECK-NEXT: TypeName: struct B
1021; CHECK-NEXT: - Size: 8
1022; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001023; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001024; CHECK-NEXT: ValueType: I64
1025; CHECK-NEXT: - Size: 8
1026; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001027; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001028; CHECK-NEXT: ValueType: I64
1029; CHECK-NEXT: - Size: 8
1030; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001031; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001032; CHECK-NEXT: ValueType: I64
1033; CHECK-NEXT: - Size: 8
1034; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001035; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001036; CHECK-NEXT: ValueType: I8
1037; CHECK-NEXT: AddrSpaceQual: Global
1038define amdgpu_kernel void @test_arg_struct_contains_ptr(%struct.B* byval %a)
1039 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !82
1040 !kernel_arg_base_type !82 !kernel_arg_type_qual !4 {
1041 ret void
1042}
1043
1044; CHECK: - Name: test_arg_vector_of_ptr
1045; CHECK-NEXT: Language: OpenCL C
1046; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1047; CHECK-NEXT: Args:
1048; CHECK-NEXT: - Size: 16
1049; CHECK-NEXT: Align: 16
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001050; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001051; CHECK-NEXT: ValueType: I32
1052; CHECK-NEXT: AccQual: Default
1053; CHECK-NEXT: TypeName: 'global int* __attribute__((ext_vector_type(2)))'
1054; CHECK-NEXT: - Size: 8
1055; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001056; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001057; CHECK-NEXT: ValueType: I64
1058; CHECK-NEXT: - Size: 8
1059; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001060; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001061; CHECK-NEXT: ValueType: I64
1062; CHECK-NEXT: - Size: 8
1063; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001064; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001065; CHECK-NEXT: ValueType: I64
1066; CHECK-NEXT: - Size: 8
1067; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001068; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001069; CHECK-NEXT: ValueType: I8
1070; CHECK-NEXT: AddrSpaceQual: Global
1071define amdgpu_kernel void @test_arg_vector_of_ptr(<2 x i32 addrspace(1)*> %a)
1072 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !83
1073 !kernel_arg_base_type !83 !kernel_arg_type_qual !4 {
1074 ret void
1075}
1076
1077; CHECK: - Name: test_arg_unknown_builtin_type
1078; CHECK-NEXT: Language: OpenCL C
1079; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1080; CHECK-NEXT: Args:
1081; CHECK-NEXT: - Size: 8
1082; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001083; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001084; CHECK-NEXT: ValueType: Struct
1085; CHECK-NEXT: AccQual: Default
1086; CHECK-NEXT: AddrSpaceQual: Global
1087; CHECK-NEXT: TypeName: clk_event_t
1088; CHECK-NEXT: - Size: 8
1089; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001090; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001091; CHECK-NEXT: ValueType: I64
1092; CHECK-NEXT: - Size: 8
1093; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001094; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001095; CHECK-NEXT: ValueType: I64
1096; CHECK-NEXT: - Size: 8
1097; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001098; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001099; CHECK-NEXT: ValueType: I64
1100; CHECK-NEXT: - Size: 8
1101; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001102; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001103; CHECK-NEXT: ValueType: I8
1104; CHECK-NEXT: AddrSpaceQual: Global
1105define amdgpu_kernel void @test_arg_unknown_builtin_type(
1106 %opencl.clk_event_t addrspace(1)* %a)
1107 !kernel_arg_addr_space !81 !kernel_arg_access_qual !2 !kernel_arg_type !84
1108 !kernel_arg_base_type !84 !kernel_arg_type_qual !4 {
1109 ret void
1110}
1111
1112; CHECK: - Name: test_pointee_align
1113; CHECK-NEXT: Language: OpenCL C
1114; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1115; CHECK-NEXT: Args:
1116; CHECK-NEXT: - Size: 8
1117; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001118; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001119; CHECK-NEXT: ValueType: I64
1120; CHECK-NEXT: AccQual: Default
1121; CHECK-NEXT: AddrSpaceQual: Global
1122; CHECK-NEXT: TypeName: 'long *'
1123; CHECK-NEXT: - Size: 4
1124; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001125; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001126; CHECK-NEXT: ValueType: I8
1127; CHECK-NEXT: PointeeAlign: 1
1128; CHECK-NEXT: AccQual: Default
1129; CHECK-NEXT: AddrSpaceQual: Local
1130; CHECK-NEXT: TypeName: 'char *'
1131; CHECK-NEXT: - Size: 4
1132; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001133; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001134; CHECK-NEXT: ValueType: I8
1135; CHECK-NEXT: PointeeAlign: 2
1136; CHECK-NEXT: AccQual: Default
1137; CHECK-NEXT: AddrSpaceQual: Local
1138; CHECK-NEXT: TypeName: 'char2 *'
1139; CHECK-NEXT: - Size: 4
1140; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001141; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001142; CHECK-NEXT: ValueType: I8
1143; CHECK-NEXT: PointeeAlign: 4
1144; CHECK-NEXT: AccQual: Default
1145; CHECK-NEXT: AddrSpaceQual: Local
1146; CHECK-NEXT: TypeName: 'char3 *'
1147; CHECK-NEXT: - Size: 4
1148; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001149; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001150; CHECK-NEXT: ValueType: I8
1151; CHECK-NEXT: PointeeAlign: 4
1152; CHECK-NEXT: AccQual: Default
1153; CHECK-NEXT: AddrSpaceQual: Local
1154; CHECK-NEXT: TypeName: 'char4 *'
1155; CHECK-NEXT: - Size: 4
1156; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001157; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001158; CHECK-NEXT: ValueType: I8
1159; CHECK-NEXT: PointeeAlign: 8
1160; CHECK-NEXT: AccQual: Default
1161; CHECK-NEXT: AddrSpaceQual: Local
1162; CHECK-NEXT: TypeName: 'char8 *'
1163; CHECK-NEXT: - Size: 4
1164; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001165; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001166; CHECK-NEXT: ValueType: I8
1167; CHECK-NEXT: PointeeAlign: 16
1168; CHECK-NEXT: AccQual: Default
1169; CHECK-NEXT: AddrSpaceQual: Local
1170; CHECK-NEXT: TypeName: 'char16 *'
1171; CHECK-NEXT: - Size: 8
1172; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001173; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001174; CHECK-NEXT: ValueType: I64
1175; CHECK-NEXT: - Size: 8
1176; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001177; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001178; CHECK-NEXT: ValueType: I64
1179; CHECK-NEXT: - Size: 8
1180; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001181; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001182; CHECK-NEXT: ValueType: I64
1183; CHECK-NEXT: - Size: 8
1184; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001185; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001186; CHECK-NEXT: ValueType: I8
1187; CHECK-NEXT: AddrSpaceQual: Global
1188define amdgpu_kernel void @test_pointee_align(i64 addrspace(1)* %a,
1189 i8 addrspace(3)* %b,
1190 <2 x i8> addrspace(3)* %c,
1191 <3 x i8> addrspace(3)* %d,
1192 <4 x i8> addrspace(3)* %e,
1193 <8 x i8> addrspace(3)* %f,
1194 <16 x i8> addrspace(3)* %g)
1195 !kernel_arg_addr_space !91 !kernel_arg_access_qual !92 !kernel_arg_type !93
1196 !kernel_arg_base_type !93 !kernel_arg_type_qual !94 {
1197 ret void
1198}
1199
1200!llvm.printf.fmts = !{!100, !101}
1201
1202!1 = !{i32 0}
1203!2 = !{!"none"}
1204!3 = !{!"int"}
1205!4 = !{!""}
1206!5 = !{i32 undef, i32 1}
1207!6 = !{i32 1, i32 2, i32 4}
1208!7 = !{<4 x i32> undef, i32 0}
1209!8 = !{i32 8, i32 16, i32 32}
1210!9 = !{!"char"}
1211!10 = !{!"ushort2"}
1212!11 = !{!"int3"}
1213!12 = !{!"ulong4"}
1214!13 = !{!"half8"}
1215!14 = !{!"float16"}
1216!15 = !{!"double16"}
1217!16 = !{!"int *"}
1218!17 = !{!"image2d_t"}
1219!18 = !{!"sampler_t"}
1220!19 = !{!"queue_t"}
1221!20 = !{!"struct A"}
1222!21 = !{!"i128"}
1223!22 = !{i32 0, i32 0, i32 0}
1224!23 = !{!"none", !"none", !"none"}
1225!24 = !{!"int", !"short2", !"char3"}
1226!25 = !{!"", !"", !""}
1227!26 = !{half undef, i32 1}
1228!27 = !{float undef, i32 1}
1229!28 = !{double undef, i32 1}
1230!29 = !{i8 undef, i32 1}
1231!30 = !{i16 undef, i32 1}
1232!31 = !{i64 undef, i32 1}
1233!32 = !{i32 *undef, i32 1}
1234!50 = !{i32 1, i32 2, i32 3}
1235!51 = !{!"int *", !"int *", !"int *"}
1236!60 = !{i32 1, i32 1, i32 1}
1237!61 = !{!"read_only", !"write_only", !"read_write"}
1238!62 = !{!"image1d_t", !"image2d_t", !"image3d_t"}
1239!70 = !{!"volatile", !"const restrict", !"pipe"}
1240!80 = !{!"int **"}
1241!81 = !{i32 1}
1242!82 = !{!"struct B"}
1243!83 = !{!"global int* __attribute__((ext_vector_type(2)))"}
1244!84 = !{!"clk_event_t"}
1245!opencl.ocl.version = !{!90}
1246!90 = !{i32 2, i32 0}
1247!91 = !{i32 0, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3}
1248!92 = !{!"none", !"none", !"none", !"none", !"none", !"none", !"none"}
1249!93 = !{!"long *", !"char *", !"char2 *", !"char3 *", !"char4 *", !"char8 *", !"char16 *"}
1250!94 = !{!"", !"", !"", !"", !"", !"", !""}
1251!100 = !{!"1:1:4:%d\5Cn"}
1252!101 = !{!"2:1:8:%g\5Cn"}
1253
1254; NOTES: Displaying notes found at file offset 0x{{[0-9]+}}
1255; NOTES-NEXT: Owner Data size Description
1256; NOTES-NEXT: AMD 0x00000008 Unknown note type: (0x00000001)
1257; NOTES-NEXT: AMD 0x0000001b Unknown note type: (0x00000003)
Richard Smithd0c0c132017-06-30 20:56:57 +00001258; GFX700: AMD 0x00008b0a Unknown note type: (0x0000000a)
1259; GFX800: AMD 0x00008e6e Unknown note type: (0x0000000a)
1260; GFX900: AMD 0x00008b0a Unknown note type: (0x0000000a)
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001261
1262; PARSER: AMDGPU Code Object Metadata Parser Test: PASS