blob: ae557875959d0d8e8394b4b15058998ba86d2db8 [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
Yaxun Liude4b88d2017-10-10 19:39:48 +000017@__test_block_invoke_kernel_runtime_handle = external addrspace(1) externally_initialized constant i8 addrspace(1)*
18
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000019; CHECK: ---
20; CHECK: Version: [ 1, 0 ]
Richard Smithd0c0c132017-06-30 20:56:57 +000021; CHECK: Printf:
22; CHECK: - '1:1:4:%d\n'
23; CHECK: - '2:1:8:%g\n'
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000024; CHECK: Kernels:
25
26; CHECK: - Name: test_char
27; CHECK-NEXT: Language: OpenCL C
28; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
29; CHECK-NEXT: Args:
30; CHECK-NEXT: - Size: 1
31; CHECK-NEXT: Align: 1
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000032; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000033; CHECK-NEXT: ValueType: I8
34; CHECK-NEXT: AccQual: Default
35; CHECK-NEXT: TypeName: char
36; CHECK-NEXT: - Size: 8
37; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000038; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000039; CHECK-NEXT: ValueType: I64
40; CHECK-NEXT: - Size: 8
41; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000042; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000043; CHECK-NEXT: ValueType: I64
44; CHECK-NEXT: - Size: 8
45; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000046; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000047; CHECK-NEXT: ValueType: I64
48; CHECK-NEXT: - Size: 8
49; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000050; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000051; CHECK-NEXT: ValueType: I8
52; CHECK-NEXT: AddrSpaceQual: Global
53define amdgpu_kernel void @test_char(i8 %a)
54 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !9
55 !kernel_arg_base_type !9 !kernel_arg_type_qual !4 {
56 ret void
57}
58
59; CHECK: - Name: test_ushort2
60; CHECK-NEXT: Language: OpenCL C
61; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
62; CHECK-NEXT: Args:
63; CHECK-NEXT: - Size: 4
64; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000065; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000066; CHECK-NEXT: ValueType: U16
67; CHECK-NEXT: AccQual: Default
68; CHECK-NEXT: TypeName: ushort2
69; CHECK-NEXT: - Size: 8
70; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000071; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000072; CHECK-NEXT: ValueType: I64
73; CHECK-NEXT: - Size: 8
74; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000075; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000076; CHECK-NEXT: ValueType: I64
77; CHECK-NEXT: - Size: 8
78; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000079; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000080; CHECK-NEXT: ValueType: I64
81; CHECK-NEXT: - Size: 8
82; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000083; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000084; CHECK-NEXT: ValueType: I8
85; CHECK-NEXT: AddrSpaceQual: Global
86define amdgpu_kernel void @test_ushort2(<2 x i16> %a)
87 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !10
88 !kernel_arg_base_type !10 !kernel_arg_type_qual !4 {
89 ret void
90}
91
92; CHECK: - Name: test_int3
93; CHECK-NEXT: Language: OpenCL C
94; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
95; CHECK-NEXT: Args:
96; CHECK-NEXT: - Size: 16
97; CHECK-NEXT: Align: 16
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000098; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000099; CHECK-NEXT: ValueType: I32
100; CHECK-NEXT: AccQual: Default
101; CHECK-NEXT: TypeName: int3
102; CHECK-NEXT: - Size: 8
103; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000104; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000105; CHECK-NEXT: ValueType: I64
106; CHECK-NEXT: - Size: 8
107; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000108; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000109; CHECK-NEXT: ValueType: I64
110; CHECK-NEXT: - Size: 8
111; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000112; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000113; CHECK-NEXT: ValueType: I64
114; CHECK-NEXT: - Size: 8
115; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000116; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000117; CHECK-NEXT: ValueType: I8
118; CHECK-NEXT: AddrSpaceQual: Global
119define amdgpu_kernel void @test_int3(<3 x i32> %a)
120 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !11
121 !kernel_arg_base_type !11 !kernel_arg_type_qual !4 {
122 ret void
123}
124
125; CHECK: - Name: test_ulong4
126; CHECK-NEXT: Language: OpenCL C
127; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
128; CHECK-NEXT: Args:
129; CHECK-NEXT: - Size: 32
130; CHECK-NEXT: Align: 32
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000131; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000132; CHECK-NEXT: ValueType: U64
133; CHECK-NEXT: AccQual: Default
134; CHECK-NEXT: TypeName: ulong4
135; CHECK-NEXT: - Size: 8
136; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000137; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000138; CHECK-NEXT: ValueType: I64
139; CHECK-NEXT: - Size: 8
140; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000141; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000142; CHECK-NEXT: ValueType: I64
143; CHECK-NEXT: - Size: 8
144; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000145; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000146; CHECK-NEXT: ValueType: I64
147; CHECK-NEXT: - Size: 8
148; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000149; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000150; CHECK-NEXT: ValueType: I8
151; CHECK-NEXT: AddrSpaceQual: Global
152define amdgpu_kernel void @test_ulong4(<4 x i64> %a)
153 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !12
154 !kernel_arg_base_type !12 !kernel_arg_type_qual !4 {
155 ret void
156}
157
158; CHECK: - Name: test_half8
159; CHECK-NEXT: Language: OpenCL C
160; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
161; CHECK-NEXT: Args:
162; CHECK-NEXT: - Size: 16
163; CHECK-NEXT: Align: 16
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000164; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000165; CHECK-NEXT: ValueType: F16
166; CHECK-NEXT: AccQual: Default
167; CHECK-NEXT: TypeName: half8
168; CHECK-NEXT: - Size: 8
169; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000170; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000171; CHECK-NEXT: ValueType: I64
172; CHECK-NEXT: - Size: 8
173; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000174; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000175; CHECK-NEXT: ValueType: I64
176; CHECK-NEXT: - Size: 8
177; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000178; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000179; CHECK-NEXT: ValueType: I64
180; CHECK-NEXT: - Size: 8
181; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000182; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000183; CHECK-NEXT: ValueType: I8
184; CHECK-NEXT: AddrSpaceQual: Global
185define amdgpu_kernel void @test_half8(<8 x half> %a)
186 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !13
187 !kernel_arg_base_type !13 !kernel_arg_type_qual !4 {
188 ret void
189}
190
191; CHECK: - Name: test_float16
192; CHECK-NEXT: Language: OpenCL C
193; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
194; CHECK-NEXT: Args:
195; CHECK-NEXT: - Size: 64
196; CHECK-NEXT: Align: 64
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000197; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000198; CHECK-NEXT: ValueType: F32
199; CHECK-NEXT: AccQual: Default
200; CHECK-NEXT: TypeName: float16
201; CHECK-NEXT: - Size: 8
202; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000203; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000204; CHECK-NEXT: ValueType: I64
205; CHECK-NEXT: - Size: 8
206; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000207; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000208; CHECK-NEXT: ValueType: I64
209; CHECK-NEXT: - Size: 8
210; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000211; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000212; CHECK-NEXT: ValueType: I64
213; CHECK-NEXT: - Size: 8
214; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000215; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000216; CHECK-NEXT: ValueType: I8
217; CHECK-NEXT: AddrSpaceQual: Global
218define amdgpu_kernel void @test_float16(<16 x float> %a)
219 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !14
220 !kernel_arg_base_type !14 !kernel_arg_type_qual !4 {
221 ret void
222}
223
224; CHECK: - Name: test_double16
225; CHECK-NEXT: Language: OpenCL C
226; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
227; CHECK-NEXT: Args:
228; CHECK-NEXT: - Size: 128
229; CHECK-NEXT: Align: 128
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000230; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000231; CHECK-NEXT: ValueType: F64
232; CHECK-NEXT: AccQual: Default
233; CHECK-NEXT: TypeName: double16
234; CHECK-NEXT: - Size: 8
235; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000236; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000237; CHECK-NEXT: ValueType: I64
238; CHECK-NEXT: - Size: 8
239; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000240; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000241; CHECK-NEXT: ValueType: I64
242; CHECK-NEXT: - Size: 8
243; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000244; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000245; CHECK-NEXT: ValueType: I64
246; CHECK-NEXT: - Size: 8
247; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000248; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000249; CHECK-NEXT: ValueType: I8
250; CHECK-NEXT: AddrSpaceQual: Global
251define amdgpu_kernel void @test_double16(<16 x double> %a)
252 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !15
253 !kernel_arg_base_type !15 !kernel_arg_type_qual !4 {
254 ret void
255}
256
257; CHECK: - Name: test_pointer
258; CHECK-NEXT: Language: OpenCL C
259; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
260; CHECK-NEXT: Args:
261; CHECK-NEXT: - Size: 8
262; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000263; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000264; CHECK-NEXT: ValueType: I32
265; CHECK-NEXT: AccQual: Default
266; CHECK-NEXT: AddrSpaceQual: Global
267; CHECK-NEXT: TypeName: 'int *'
268; CHECK-NEXT: - Size: 8
269; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000270; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000271; CHECK-NEXT: ValueType: I64
272; CHECK-NEXT: - Size: 8
273; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000274; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000275; CHECK-NEXT: ValueType: I64
276; CHECK-NEXT: - Size: 8
277; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000278; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000279; CHECK-NEXT: ValueType: I64
280; CHECK-NEXT: - Size: 8
281; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000282; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000283; CHECK-NEXT: ValueType: I8
284; CHECK-NEXT: AddrSpaceQual: Global
285define amdgpu_kernel void @test_pointer(i32 addrspace(1)* %a)
286 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !16
287 !kernel_arg_base_type !16 !kernel_arg_type_qual !4 {
288 ret void
289}
290
291; CHECK: - Name: test_image
292; CHECK-NEXT: Language: OpenCL C
293; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
294; CHECK-NEXT: Args:
295; CHECK-NEXT: - Size: 8
296; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000297; CHECK-NEXT: ValueKind: Image
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000298; CHECK-NEXT: ValueType: Struct
299; CHECK-NEXT: AccQual: Default
300; CHECK-NEXT: AddrSpaceQual: Global
301; CHECK-NEXT: TypeName: image2d_t
302; CHECK-NEXT: - Size: 8
303; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000304; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000305; CHECK-NEXT: ValueType: I64
306; CHECK-NEXT: - Size: 8
307; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000308; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000309; CHECK-NEXT: ValueType: I64
310; CHECK-NEXT: - Size: 8
311; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000312; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000313; CHECK-NEXT: ValueType: I64
314; CHECK-NEXT: - Size: 8
315; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000316; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000317; CHECK-NEXT: ValueType: I8
318; CHECK-NEXT: AddrSpaceQual: Global
319define amdgpu_kernel void @test_image(%opencl.image2d_t addrspace(1)* %a)
320 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !17
321 !kernel_arg_base_type !17 !kernel_arg_type_qual !4 {
322 ret void
323}
324
325; CHECK: - Name: test_sampler
326; CHECK-NEXT: Language: OpenCL C
327; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
328; CHECK-NEXT: Args:
329; CHECK-NEXT: - Size: 4
330; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000331; CHECK-NEXT: ValueKind: Sampler
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000332; CHECK-NEXT: ValueType: I32
333; CHECK-NEXT: AccQual: Default
334; CHECK-NEXT: TypeName: sampler_t
335; CHECK-NEXT: - Size: 8
336; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000337; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000338; CHECK-NEXT: ValueType: I64
339; CHECK-NEXT: - Size: 8
340; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000341; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000342; CHECK-NEXT: ValueType: I64
343; CHECK-NEXT: - Size: 8
344; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000345; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000346; CHECK-NEXT: ValueType: I64
347; CHECK-NEXT: - Size: 8
348; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000349; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000350; CHECK-NEXT: ValueType: I8
351; CHECK-NEXT: AddrSpaceQual: Global
352define amdgpu_kernel void @test_sampler(i32 %a)
353 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !18
354 !kernel_arg_base_type !18 !kernel_arg_type_qual !4 {
355 ret void
356}
357
358; CHECK: - Name: test_queue
359; CHECK-NEXT: Language: OpenCL C
360; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
361; CHECK-NEXT: Args:
362; CHECK-NEXT: - Size: 8
363; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000364; CHECK-NEXT: ValueKind: Queue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000365; CHECK-NEXT: ValueType: Struct
366; CHECK-NEXT: AccQual: Default
367; CHECK-NEXT: AddrSpaceQual: Global
368; CHECK-NEXT: TypeName: queue_t
369; CHECK-NEXT: - Size: 8
370; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000371; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000372; CHECK-NEXT: ValueType: I64
373; CHECK-NEXT: - Size: 8
374; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000375; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000376; CHECK-NEXT: ValueType: I64
377; CHECK-NEXT: - Size: 8
378; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000379; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000380; CHECK-NEXT: ValueType: I64
381; CHECK-NEXT: - Size: 8
382; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000383; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000384; CHECK-NEXT: ValueType: I8
385; CHECK-NEXT: AddrSpaceQual: Global
386define amdgpu_kernel void @test_queue(%opencl.queue_t addrspace(1)* %a)
387 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !19
388 !kernel_arg_base_type !19 !kernel_arg_type_qual !4 {
389 ret void
390}
391
392; CHECK: - Name: test_struct
393; CHECK-NEXT: Language: OpenCL C
394; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
395; CHECK-NEXT: Args:
396; CHECK-NEXT: - Size: 4
397; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000398; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000399; CHECK-NEXT: ValueType: Struct
400; CHECK-NEXT: AccQual: Default
401; CHECK-NEXT: AddrSpaceQual: Private
402; CHECK-NEXT: TypeName: struct A
403; CHECK-NEXT: - Size: 8
404; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000405; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000406; CHECK-NEXT: ValueType: I64
407; CHECK-NEXT: - Size: 8
408; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000409; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000410; CHECK-NEXT: ValueType: I64
411; CHECK-NEXT: - Size: 8
412; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000413; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000414; CHECK-NEXT: ValueType: I64
415; CHECK-NEXT: - Size: 8
416; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000417; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000418; CHECK-NEXT: ValueType: I8
419; CHECK-NEXT: AddrSpaceQual: Global
420define amdgpu_kernel void @test_struct(%struct.A* byval %a)
421 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !20
422 !kernel_arg_base_type !20 !kernel_arg_type_qual !4 {
423 ret void
424}
425
426; CHECK: - Name: test_i128
427; CHECK-NEXT: Language: OpenCL C
428; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
429; CHECK-NEXT: Args:
430; CHECK-NEXT: - Size: 16
431; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000432; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000433; CHECK-NEXT: ValueType: Struct
434; CHECK-NEXT: AccQual: Default
435; CHECK-NEXT: TypeName: i128
436; CHECK-NEXT: - Size: 8
437; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000438; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000439; CHECK-NEXT: ValueType: I64
440; CHECK-NEXT: - Size: 8
441; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000442; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000443; CHECK-NEXT: ValueType: I64
444; CHECK-NEXT: - Size: 8
445; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000446; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000447; CHECK-NEXT: ValueType: I64
448; CHECK-NEXT: - Size: 8
449; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000450; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000451; CHECK-NEXT: ValueType: I8
452; CHECK-NEXT: AddrSpaceQual: Global
453define amdgpu_kernel void @test_i128(i128 %a)
454 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !21
455 !kernel_arg_base_type !21 !kernel_arg_type_qual !4 {
456 ret void
457}
458
459; CHECK: - Name: test_multi_arg
460; CHECK-NEXT: Language: OpenCL C
461; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
462; CHECK-NEXT: Args:
463; CHECK-NEXT: - Size: 4
464; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000465; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000466; CHECK-NEXT: ValueType: I32
467; CHECK-NEXT: AccQual: Default
468; CHECK-NEXT: TypeName: int
469; CHECK-NEXT: - Size: 4
470; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000471; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000472; CHECK-NEXT: ValueType: I16
473; CHECK-NEXT: AccQual: Default
474; CHECK-NEXT: TypeName: short2
475; CHECK-NEXT: - Size: 4
476; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000477; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000478; CHECK-NEXT: ValueType: I8
479; CHECK-NEXT: AccQual: Default
480; CHECK-NEXT: TypeName: char3
481; CHECK-NEXT: - Size: 8
482; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000483; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000484; CHECK-NEXT: ValueType: I64
485; CHECK-NEXT: - Size: 8
486; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000487; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000488; CHECK-NEXT: ValueType: I64
489; CHECK-NEXT: - Size: 8
490; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000491; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000492; CHECK-NEXT: ValueType: I64
493; CHECK-NEXT: - Size: 8
494; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000495; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000496; CHECK-NEXT: ValueType: I8
497; CHECK-NEXT: AddrSpaceQual: Global
498define amdgpu_kernel void @test_multi_arg(i32 %a, <2 x i16> %b, <3 x i8> %c)
499 !kernel_arg_addr_space !22 !kernel_arg_access_qual !23 !kernel_arg_type !24
500 !kernel_arg_base_type !24 !kernel_arg_type_qual !25 {
501 ret void
502}
503
504; CHECK: - Name: test_addr_space
505; CHECK-NEXT: Language: OpenCL C
506; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
507; CHECK-NEXT: Args:
508; CHECK-NEXT: - Size: 8
509; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000510; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000511; CHECK-NEXT: ValueType: I32
512; CHECK-NEXT: AccQual: Default
513; CHECK-NEXT: AddrSpaceQual: Global
514; CHECK-NEXT: TypeName: 'int *'
515; CHECK-NEXT: - Size: 8
516; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000517; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000518; CHECK-NEXT: ValueType: I32
519; CHECK-NEXT: AccQual: Default
520; CHECK-NEXT: AddrSpaceQual: Constant
521; CHECK-NEXT: TypeName: 'int *'
522; CHECK-NEXT: - Size: 4
523; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000524; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000525; CHECK-NEXT: ValueType: I32
526; CHECK-NEXT: PointeeAlign: 4
527; CHECK-NEXT: AccQual: Default
528; CHECK-NEXT: AddrSpaceQual: Local
529; CHECK-NEXT: TypeName: 'int *'
530; CHECK-NEXT: - Size: 8
531; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000532; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000533; CHECK-NEXT: ValueType: I64
534; CHECK-NEXT: - Size: 8
535; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000536; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000537; CHECK-NEXT: ValueType: I64
538; CHECK-NEXT: - Size: 8
539; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000540; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000541; CHECK-NEXT: ValueType: I64
542; CHECK-NEXT: - Size: 8
543; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000544; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000545; CHECK-NEXT: ValueType: I8
546; CHECK-NEXT: AddrSpaceQual: Global
547define amdgpu_kernel void @test_addr_space(i32 addrspace(1)* %g,
548 i32 addrspace(2)* %c,
549 i32 addrspace(3)* %l)
550 !kernel_arg_addr_space !50 !kernel_arg_access_qual !23 !kernel_arg_type !51
551 !kernel_arg_base_type !51 !kernel_arg_type_qual !25 {
552 ret void
553}
554
555; CHECK: - Name: test_type_qual
556; CHECK-NEXT: Language: OpenCL C
557; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
558; CHECK-NEXT: Args:
559; CHECK-NEXT: - Size: 8
560; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000561; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000562; CHECK-NEXT: ValueType: I32
563; CHECK-NEXT: AccQual: Default
564; CHECK-NEXT: AddrSpaceQual: Global
565; CHECK-NEXT: IsVolatile: true
566; CHECK-NEXT: TypeName: 'int *'
567; CHECK-NEXT: - Size: 8
568; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000569; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000570; CHECK-NEXT: ValueType: I32
571; CHECK-NEXT: AccQual: Default
572; CHECK-NEXT: AddrSpaceQual: Global
573; CHECK-NEXT: IsConst: true
574; CHECK-NEXT: IsRestrict: true
575; CHECK-NEXT: TypeName: 'int *'
576; CHECK-NEXT: - Size: 8
577; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000578; CHECK-NEXT: ValueKind: Pipe
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000579; CHECK-NEXT: ValueType: Struct
580; CHECK-NEXT: AccQual: Default
581; CHECK-NEXT: AddrSpaceQual: Global
582; CHECK-NEXT: IsPipe: true
583; CHECK-NEXT: TypeName: 'int *'
584; CHECK-NEXT: - Size: 8
585; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000586; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000587; CHECK-NEXT: ValueType: I64
588; CHECK-NEXT: - Size: 8
589; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000590; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000591; CHECK-NEXT: ValueType: I64
592; CHECK-NEXT: - Size: 8
593; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000594; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000595; CHECK-NEXT: ValueType: I64
596; CHECK-NEXT: - Size: 8
597; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000598; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000599; CHECK-NEXT: ValueType: I8
600; CHECK-NEXT: AddrSpaceQual: Global
601define amdgpu_kernel void @test_type_qual(i32 addrspace(1)* %a,
602 i32 addrspace(1)* %b,
603 %opencl.pipe_t addrspace(1)* %c)
604 !kernel_arg_addr_space !22 !kernel_arg_access_qual !23 !kernel_arg_type !51
605 !kernel_arg_base_type !51 !kernel_arg_type_qual !70 {
606 ret void
607}
608
609; CHECK: - Name: test_access_qual
610; CHECK-NEXT: Language: OpenCL C
611; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
612; CHECK-NEXT: Args:
613; CHECK-NEXT: - Size: 8
614; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000615; CHECK-NEXT: ValueKind: Image
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000616; CHECK-NEXT: ValueType: Struct
617; CHECK-NEXT: AccQual: ReadOnly
618; CHECK-NEXT: AddrSpaceQual: Global
619; CHECK-NEXT: TypeName: image1d_t
620; CHECK-NEXT: - Size: 8
621; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000622; CHECK-NEXT: ValueKind: Image
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000623; CHECK-NEXT: ValueType: Struct
624; CHECK-NEXT: AccQual: WriteOnly
625; CHECK-NEXT: AddrSpaceQual: Global
626; CHECK-NEXT: TypeName: image2d_t
627; CHECK-NEXT: - Size: 8
628; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000629; CHECK-NEXT: ValueKind: Image
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000630; CHECK-NEXT: ValueType: Struct
631; CHECK-NEXT: AccQual: ReadWrite
632; CHECK-NEXT: AddrSpaceQual: Global
633; CHECK-NEXT: TypeName: image3d_t
634; CHECK-NEXT: - Size: 8
635; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000636; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000637; CHECK-NEXT: ValueType: I64
638; CHECK-NEXT: - Size: 8
639; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000640; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000641; CHECK-NEXT: ValueType: I64
642; CHECK-NEXT: - Size: 8
643; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000644; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000645; CHECK-NEXT: ValueType: I64
646; CHECK-NEXT: - Size: 8
647; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000648; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000649; CHECK-NEXT: ValueType: I8
650; CHECK-NEXT: AddrSpaceQual: Global
651define amdgpu_kernel void @test_access_qual(%opencl.image1d_t addrspace(1)* %ro,
652 %opencl.image2d_t addrspace(1)* %wo,
653 %opencl.image3d_t addrspace(1)* %rw)
654 !kernel_arg_addr_space !60 !kernel_arg_access_qual !61 !kernel_arg_type !62
655 !kernel_arg_base_type !62 !kernel_arg_type_qual !25 {
656 ret void
657}
658
659; CHECK: - Name: test_vec_type_hint_half
660; CHECK-NEXT: Language: OpenCL C
661; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
662; CHECK-NEXT: Attrs:
663; CHECK-NEXT: VecTypeHint: half
664; CHECK-NEXT: Args:
665; CHECK-NEXT: - Size: 4
666; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000667; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000668; CHECK-NEXT: ValueType: I32
669; CHECK-NEXT: AccQual: Default
670; CHECK-NEXT: TypeName: int
671; CHECK-NEXT: - Size: 8
672; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000673; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000674; CHECK-NEXT: ValueType: I64
675; CHECK-NEXT: - Size: 8
676; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000677; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000678; CHECK-NEXT: ValueType: I64
679; CHECK-NEXT: - Size: 8
680; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000681; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000682; CHECK-NEXT: ValueType: I64
683; CHECK-NEXT: - Size: 8
684; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000685; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000686; CHECK-NEXT: ValueType: I8
687; CHECK-NEXT: AddrSpaceQual: Global
688define amdgpu_kernel void @test_vec_type_hint_half(i32 %a)
689 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
690 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !26 {
691 ret void
692}
693
694; CHECK: - Name: test_vec_type_hint_float
695; CHECK-NEXT: Language: OpenCL C
696; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
697; CHECK-NEXT: Attrs:
698; CHECK-NEXT: VecTypeHint: float
699; CHECK-NEXT: Args:
700; CHECK-NEXT: - Size: 4
701; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000702; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000703; CHECK-NEXT: ValueType: I32
704; CHECK-NEXT: AccQual: Default
705; CHECK-NEXT: TypeName: int
706; CHECK-NEXT: - Size: 8
707; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000708; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000709; CHECK-NEXT: ValueType: I64
710; CHECK-NEXT: - Size: 8
711; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000712; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000713; CHECK-NEXT: ValueType: I64
714; CHECK-NEXT: - Size: 8
715; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000716; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000717; CHECK-NEXT: ValueType: I64
718; CHECK-NEXT: - Size: 8
719; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000720; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000721; CHECK-NEXT: ValueType: I8
722; CHECK-NEXT: AddrSpaceQual: Global
723define amdgpu_kernel void @test_vec_type_hint_float(i32 %a)
724 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
725 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !27 {
726 ret void
727}
728
729; CHECK: - Name: test_vec_type_hint_double
730; CHECK-NEXT: Language: OpenCL C
731; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
732; CHECK-NEXT: Attrs:
733; CHECK-NEXT: VecTypeHint: double
734; CHECK-NEXT: Args:
735; CHECK-NEXT: - Size: 4
736; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000737; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000738; CHECK-NEXT: ValueType: I32
739; CHECK-NEXT: AccQual: Default
740; CHECK-NEXT: TypeName: int
741; CHECK-NEXT: - Size: 8
742; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000743; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000744; CHECK-NEXT: ValueType: I64
745; CHECK-NEXT: - Size: 8
746; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000747; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000748; CHECK-NEXT: ValueType: I64
749; CHECK-NEXT: - Size: 8
750; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000751; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000752; CHECK-NEXT: ValueType: I64
753; CHECK-NEXT: - Size: 8
754; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000755; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000756; CHECK-NEXT: ValueType: I8
757; CHECK-NEXT: AddrSpaceQual: Global
758define amdgpu_kernel void @test_vec_type_hint_double(i32 %a)
759 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
760 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !28 {
761 ret void
762}
763
764; CHECK: - Name: test_vec_type_hint_char
765; CHECK-NEXT: Language: OpenCL C
766; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
767; CHECK-NEXT: Attrs:
768; CHECK-NEXT: VecTypeHint: char
769; CHECK-NEXT: Args:
770; CHECK-NEXT: - Size: 4
771; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000772; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000773; CHECK-NEXT: ValueType: I32
774; CHECK-NEXT: AccQual: Default
775; CHECK-NEXT: TypeName: int
776; CHECK-NEXT: - Size: 8
777; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000778; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000779; CHECK-NEXT: ValueType: I64
780; CHECK-NEXT: - Size: 8
781; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000782; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000783; CHECK-NEXT: ValueType: I64
784; CHECK-NEXT: - Size: 8
785; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000786; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000787; CHECK-NEXT: ValueType: I64
788; CHECK-NEXT: - Size: 8
789; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000790; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000791; CHECK-NEXT: ValueType: I8
792; CHECK-NEXT: AddrSpaceQual: Global
793define amdgpu_kernel void @test_vec_type_hint_char(i32 %a)
794 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
795 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !29 {
796 ret void
797}
798
799; CHECK: - Name: test_vec_type_hint_short
800; CHECK-NEXT: Language: OpenCL C
801; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
802; CHECK-NEXT: Attrs:
803; CHECK-NEXT: VecTypeHint: short
804; CHECK-NEXT: Args:
805; CHECK-NEXT: - Size: 4
806; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000807; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000808; CHECK-NEXT: ValueType: I32
809; CHECK-NEXT: AccQual: Default
810; CHECK-NEXT: TypeName: int
811; CHECK-NEXT: - Size: 8
812; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000813; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000814; CHECK-NEXT: ValueType: I64
815; CHECK-NEXT: - Size: 8
816; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000817; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000818; CHECK-NEXT: ValueType: I64
819; CHECK-NEXT: - Size: 8
820; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000821; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000822; CHECK-NEXT: ValueType: I64
823; CHECK-NEXT: - Size: 8
824; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000825; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000826; CHECK-NEXT: ValueType: I8
827; CHECK-NEXT: AddrSpaceQual: Global
828define amdgpu_kernel void @test_vec_type_hint_short(i32 %a)
829 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
830 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !30 {
831 ret void
832}
833
834; CHECK: - Name: test_vec_type_hint_long
835; CHECK-NEXT: Language: OpenCL C
836; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
837; CHECK-NEXT: Attrs:
838; CHECK-NEXT: VecTypeHint: long
839; CHECK-NEXT: Args:
840; CHECK-NEXT: - Size: 4
841; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000842; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000843; CHECK-NEXT: ValueType: I32
844; CHECK-NEXT: AccQual: Default
845; CHECK-NEXT: TypeName: int
846; CHECK-NEXT: - Size: 8
847; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000848; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000849; CHECK-NEXT: ValueType: I64
850; CHECK-NEXT: - Size: 8
851; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000852; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000853; CHECK-NEXT: ValueType: I64
854; CHECK-NEXT: - Size: 8
855; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000856; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000857; CHECK-NEXT: ValueType: I64
858; CHECK-NEXT: - Size: 8
859; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000860; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000861; CHECK-NEXT: ValueType: I8
862; CHECK-NEXT: AddrSpaceQual: Global
863define amdgpu_kernel void @test_vec_type_hint_long(i32 %a)
864 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
865 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !31 {
866 ret void
867}
868
869; CHECK: - Name: test_vec_type_hint_unknown
870; CHECK-NEXT: Language: OpenCL C
871; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
872; CHECK-NEXT: Attrs:
873; CHECK-NEXT: VecTypeHint: unknown
874; CHECK-NEXT: Args:
875; CHECK-NEXT: - Size: 4
876; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000877; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000878; CHECK-NEXT: ValueType: I32
879; CHECK-NEXT: AccQual: Default
880; CHECK-NEXT: TypeName: int
881; CHECK-NEXT: - Size: 8
882; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000883; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000884; CHECK-NEXT: ValueType: I64
885; CHECK-NEXT: - Size: 8
886; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000887; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000888; CHECK-NEXT: ValueType: I64
889; CHECK-NEXT: - Size: 8
890; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000891; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000892; CHECK-NEXT: ValueType: I64
893; CHECK-NEXT: - Size: 8
894; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000895; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000896; CHECK-NEXT: ValueType: I8
897; CHECK-NEXT: AddrSpaceQual: Global
898define amdgpu_kernel void @test_vec_type_hint_unknown(i32 %a)
899 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
900 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !32 {
901 ret void
902}
903
904; CHECK: - Name: test_reqd_wgs_vec_type_hint
905; CHECK-NEXT: Language: OpenCL C
906; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
907; CHECK-NEXT: Attrs:
908; CHECK-NEXT: ReqdWorkGroupSize: [ 1, 2, 4 ]
909; CHECK-NEXT: VecTypeHint: int
910; CHECK-NEXT: Args:
911; CHECK-NEXT: - Size: 4
912; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000913; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000914; CHECK-NEXT: ValueType: I32
915; CHECK-NEXT: AccQual: Default
916; CHECK-NEXT: TypeName: int
917; CHECK-NEXT: - Size: 8
918; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000919; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000920; CHECK-NEXT: ValueType: I64
921; CHECK-NEXT: - Size: 8
922; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000923; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000924; CHECK-NEXT: ValueType: I64
925; CHECK-NEXT: - Size: 8
926; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000927; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000928; CHECK-NEXT: ValueType: I64
929; CHECK-NEXT: - Size: 8
930; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000931; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000932; CHECK-NEXT: ValueType: I8
933; CHECK-NEXT: AddrSpaceQual: Global
934define amdgpu_kernel void @test_reqd_wgs_vec_type_hint(i32 %a)
935 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
936 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !5
937 !reqd_work_group_size !6 {
938 ret void
939}
940
941; CHECK: - Name: test_wgs_hint_vec_type_hint
942; CHECK-NEXT: Language: OpenCL C
943; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
944; CHECK-NEXT: Attrs:
945; CHECK-NEXT: WorkGroupSizeHint: [ 8, 16, 32 ]
946; CHECK-NEXT: VecTypeHint: uint4
947; CHECK-NEXT: Args:
948; CHECK-NEXT: - Size: 4
949; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000950; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000951; CHECK-NEXT: ValueType: I32
952; CHECK-NEXT: AccQual: Default
953; CHECK-NEXT: TypeName: int
954; CHECK-NEXT: - Size: 8
955; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000956; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000957; CHECK-NEXT: ValueType: I64
958; CHECK-NEXT: - Size: 8
959; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000960; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000961; CHECK-NEXT: ValueType: I64
962; CHECK-NEXT: - Size: 8
963; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000964; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000965; CHECK-NEXT: ValueType: I64
966; CHECK-NEXT: - Size: 8
967; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000968; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000969; CHECK-NEXT: ValueType: I8
970; CHECK-NEXT: AddrSpaceQual: Global
971define amdgpu_kernel void @test_wgs_hint_vec_type_hint(i32 %a)
972 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
973 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !7
974 !work_group_size_hint !8 {
975 ret void
976}
977
978; CHECK: - Name: test_arg_ptr_to_ptr
979; CHECK-NEXT: Language: OpenCL C
980; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
981; CHECK-NEXT: Args:
982; CHECK-NEXT: - Size: 8
983; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000984; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000985; CHECK-NEXT: ValueType: I32
986; CHECK-NEXT: AccQual: Default
987; CHECK-NEXT: AddrSpaceQual: Global
988; CHECK-NEXT: TypeName: 'int **'
989; CHECK-NEXT: - Size: 8
990; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000991; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000992; CHECK-NEXT: ValueType: I64
993; CHECK-NEXT: - Size: 8
994; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000995; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000996; CHECK-NEXT: ValueType: I64
997; CHECK-NEXT: - Size: 8
998; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000999; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001000; CHECK-NEXT: ValueType: I64
1001; CHECK-NEXT: - Size: 8
1002; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001003; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001004; CHECK-NEXT: ValueType: I8
1005; CHECK-NEXT: AddrSpaceQual: Global
1006define amdgpu_kernel void @test_arg_ptr_to_ptr(i32* addrspace(1)* %a)
1007 !kernel_arg_addr_space !81 !kernel_arg_access_qual !2 !kernel_arg_type !80
1008 !kernel_arg_base_type !80 !kernel_arg_type_qual !4 {
1009 ret void
1010}
1011
1012; CHECK: - Name: test_arg_struct_contains_ptr
1013; CHECK-NEXT: Language: OpenCL C
1014; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1015; CHECK-NEXT: Args:
1016; CHECK-NEXT: - Size: 4
1017; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001018; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001019; CHECK-NEXT: ValueType: Struct
1020; CHECK-NEXT: AccQual: Default
1021; CHECK-NEXT: AddrSpaceQual: Private
1022; CHECK-NEXT: TypeName: struct B
1023; CHECK-NEXT: - Size: 8
1024; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001025; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001026; CHECK-NEXT: ValueType: I64
1027; CHECK-NEXT: - Size: 8
1028; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001029; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001030; CHECK-NEXT: ValueType: I64
1031; CHECK-NEXT: - Size: 8
1032; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001033; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001034; CHECK-NEXT: ValueType: I64
1035; CHECK-NEXT: - Size: 8
1036; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001037; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001038; CHECK-NEXT: ValueType: I8
1039; CHECK-NEXT: AddrSpaceQual: Global
1040define amdgpu_kernel void @test_arg_struct_contains_ptr(%struct.B* byval %a)
1041 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !82
1042 !kernel_arg_base_type !82 !kernel_arg_type_qual !4 {
1043 ret void
1044}
1045
1046; CHECK: - Name: test_arg_vector_of_ptr
1047; CHECK-NEXT: Language: OpenCL C
1048; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1049; CHECK-NEXT: Args:
1050; CHECK-NEXT: - Size: 16
1051; CHECK-NEXT: Align: 16
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001052; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001053; CHECK-NEXT: ValueType: I32
1054; CHECK-NEXT: AccQual: Default
1055; CHECK-NEXT: TypeName: 'global int* __attribute__((ext_vector_type(2)))'
1056; CHECK-NEXT: - Size: 8
1057; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001058; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001059; CHECK-NEXT: ValueType: I64
1060; CHECK-NEXT: - Size: 8
1061; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001062; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001063; CHECK-NEXT: ValueType: I64
1064; CHECK-NEXT: - Size: 8
1065; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001066; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001067; CHECK-NEXT: ValueType: I64
1068; CHECK-NEXT: - Size: 8
1069; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001070; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001071; CHECK-NEXT: ValueType: I8
1072; CHECK-NEXT: AddrSpaceQual: Global
1073define amdgpu_kernel void @test_arg_vector_of_ptr(<2 x i32 addrspace(1)*> %a)
1074 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !83
1075 !kernel_arg_base_type !83 !kernel_arg_type_qual !4 {
1076 ret void
1077}
1078
1079; CHECK: - Name: test_arg_unknown_builtin_type
1080; CHECK-NEXT: Language: OpenCL C
1081; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1082; CHECK-NEXT: Args:
1083; CHECK-NEXT: - Size: 8
1084; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001085; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001086; CHECK-NEXT: ValueType: Struct
1087; CHECK-NEXT: AccQual: Default
1088; CHECK-NEXT: AddrSpaceQual: Global
1089; CHECK-NEXT: TypeName: clk_event_t
1090; CHECK-NEXT: - Size: 8
1091; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001092; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001093; CHECK-NEXT: ValueType: I64
1094; CHECK-NEXT: - Size: 8
1095; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001096; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001097; CHECK-NEXT: ValueType: I64
1098; CHECK-NEXT: - Size: 8
1099; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001100; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001101; CHECK-NEXT: ValueType: I64
1102; CHECK-NEXT: - Size: 8
1103; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001104; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001105; CHECK-NEXT: ValueType: I8
1106; CHECK-NEXT: AddrSpaceQual: Global
1107define amdgpu_kernel void @test_arg_unknown_builtin_type(
1108 %opencl.clk_event_t addrspace(1)* %a)
1109 !kernel_arg_addr_space !81 !kernel_arg_access_qual !2 !kernel_arg_type !84
1110 !kernel_arg_base_type !84 !kernel_arg_type_qual !4 {
1111 ret void
1112}
1113
1114; CHECK: - Name: test_pointee_align
1115; CHECK-NEXT: Language: OpenCL C
1116; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1117; CHECK-NEXT: Args:
1118; CHECK-NEXT: - Size: 8
1119; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001120; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001121; CHECK-NEXT: ValueType: I64
1122; CHECK-NEXT: AccQual: Default
1123; CHECK-NEXT: AddrSpaceQual: Global
1124; CHECK-NEXT: TypeName: 'long *'
1125; CHECK-NEXT: - Size: 4
1126; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001127; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001128; CHECK-NEXT: ValueType: I8
1129; CHECK-NEXT: PointeeAlign: 1
1130; CHECK-NEXT: AccQual: Default
1131; CHECK-NEXT: AddrSpaceQual: Local
1132; CHECK-NEXT: TypeName: 'char *'
1133; CHECK-NEXT: - Size: 4
1134; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001135; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001136; CHECK-NEXT: ValueType: I8
1137; CHECK-NEXT: PointeeAlign: 2
1138; CHECK-NEXT: AccQual: Default
1139; CHECK-NEXT: AddrSpaceQual: Local
1140; CHECK-NEXT: TypeName: 'char2 *'
1141; CHECK-NEXT: - Size: 4
1142; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001143; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001144; CHECK-NEXT: ValueType: I8
1145; CHECK-NEXT: PointeeAlign: 4
1146; CHECK-NEXT: AccQual: Default
1147; CHECK-NEXT: AddrSpaceQual: Local
1148; CHECK-NEXT: TypeName: 'char3 *'
1149; CHECK-NEXT: - Size: 4
1150; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001151; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001152; CHECK-NEXT: ValueType: I8
1153; CHECK-NEXT: PointeeAlign: 4
1154; CHECK-NEXT: AccQual: Default
1155; CHECK-NEXT: AddrSpaceQual: Local
1156; CHECK-NEXT: TypeName: 'char4 *'
1157; CHECK-NEXT: - Size: 4
1158; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001159; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001160; CHECK-NEXT: ValueType: I8
1161; CHECK-NEXT: PointeeAlign: 8
1162; CHECK-NEXT: AccQual: Default
1163; CHECK-NEXT: AddrSpaceQual: Local
1164; CHECK-NEXT: TypeName: 'char8 *'
1165; CHECK-NEXT: - Size: 4
1166; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001167; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001168; CHECK-NEXT: ValueType: I8
1169; CHECK-NEXT: PointeeAlign: 16
1170; CHECK-NEXT: AccQual: Default
1171; CHECK-NEXT: AddrSpaceQual: Local
1172; CHECK-NEXT: TypeName: 'char16 *'
1173; CHECK-NEXT: - Size: 8
1174; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001175; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001176; CHECK-NEXT: ValueType: I64
1177; CHECK-NEXT: - Size: 8
1178; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001179; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001180; CHECK-NEXT: ValueType: I64
1181; CHECK-NEXT: - Size: 8
1182; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001183; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001184; CHECK-NEXT: ValueType: I64
1185; CHECK-NEXT: - Size: 8
1186; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001187; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001188; CHECK-NEXT: ValueType: I8
1189; CHECK-NEXT: AddrSpaceQual: Global
1190define amdgpu_kernel void @test_pointee_align(i64 addrspace(1)* %a,
1191 i8 addrspace(3)* %b,
1192 <2 x i8> addrspace(3)* %c,
1193 <3 x i8> addrspace(3)* %d,
1194 <4 x i8> addrspace(3)* %e,
1195 <8 x i8> addrspace(3)* %f,
1196 <16 x i8> addrspace(3)* %g)
1197 !kernel_arg_addr_space !91 !kernel_arg_access_qual !92 !kernel_arg_type !93
1198 !kernel_arg_base_type !93 !kernel_arg_type_qual !94 {
1199 ret void
1200}
1201
Yaxun Liude4b88d2017-10-10 19:39:48 +00001202; CHECK: - Name: __test_block_invoke_kernel
1203; CHECK-NEXT: Language: OpenCL C
1204; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1205; CHECK-NEXT: Attrs:
1206; CHECK-NEXT: RuntimeHandle: __test_block_invoke_kernel_runtime_handle
1207; CHECK-NEXT: Args:
1208; CHECK-NEXT: - Size: 25
1209; CHECK-NEXT: Align: 1
1210; CHECK-NEXT: ValueKind: ByValue
1211; CHECK-NEXT: ValueType: Struct
1212; CHECK-NEXT: AccQual: Default
1213; CHECK-NEXT: TypeName: __block_literal
1214; CHECK-NEXT: - Size: 8
1215; CHECK-NEXT: Align: 8
1216; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
1217; CHECK-NEXT: ValueType: I64
1218; CHECK-NEXT: - Size: 8
1219; CHECK-NEXT: Align: 8
1220; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
1221; CHECK-NEXT: ValueType: I64
1222; CHECK-NEXT: - Size: 8
1223; CHECK-NEXT: Align: 8
1224; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
1225; CHECK-NEXT: ValueType: I64
1226; CHECK-NEXT: - Size: 8
1227; CHECK-NEXT: Align: 8
1228; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
1229; CHECK-NEXT: ValueType: I8
1230; CHECK-NEXT: AddrSpaceQual: Global
1231define amdgpu_kernel void @__test_block_invoke_kernel(
1232 <{ i32, i32, i8 addrspace(4)*, i8 addrspace(1)*, i8 }> %arg) #1
1233 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !110
1234 !kernel_arg_base_type !110 !kernel_arg_type_qual !4 {
1235 ret void
1236}
1237
1238attributes #1 = { "runtime-handle"="__test_block_invoke_kernel_runtime_handle" }
1239
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001240!llvm.printf.fmts = !{!100, !101}
1241
1242!1 = !{i32 0}
1243!2 = !{!"none"}
1244!3 = !{!"int"}
1245!4 = !{!""}
1246!5 = !{i32 undef, i32 1}
1247!6 = !{i32 1, i32 2, i32 4}
1248!7 = !{<4 x i32> undef, i32 0}
1249!8 = !{i32 8, i32 16, i32 32}
1250!9 = !{!"char"}
1251!10 = !{!"ushort2"}
1252!11 = !{!"int3"}
1253!12 = !{!"ulong4"}
1254!13 = !{!"half8"}
1255!14 = !{!"float16"}
1256!15 = !{!"double16"}
1257!16 = !{!"int *"}
1258!17 = !{!"image2d_t"}
1259!18 = !{!"sampler_t"}
1260!19 = !{!"queue_t"}
1261!20 = !{!"struct A"}
1262!21 = !{!"i128"}
1263!22 = !{i32 0, i32 0, i32 0}
1264!23 = !{!"none", !"none", !"none"}
1265!24 = !{!"int", !"short2", !"char3"}
1266!25 = !{!"", !"", !""}
1267!26 = !{half undef, i32 1}
1268!27 = !{float undef, i32 1}
1269!28 = !{double undef, i32 1}
1270!29 = !{i8 undef, i32 1}
1271!30 = !{i16 undef, i32 1}
1272!31 = !{i64 undef, i32 1}
1273!32 = !{i32 *undef, i32 1}
1274!50 = !{i32 1, i32 2, i32 3}
1275!51 = !{!"int *", !"int *", !"int *"}
1276!60 = !{i32 1, i32 1, i32 1}
1277!61 = !{!"read_only", !"write_only", !"read_write"}
1278!62 = !{!"image1d_t", !"image2d_t", !"image3d_t"}
1279!70 = !{!"volatile", !"const restrict", !"pipe"}
1280!80 = !{!"int **"}
1281!81 = !{i32 1}
1282!82 = !{!"struct B"}
1283!83 = !{!"global int* __attribute__((ext_vector_type(2)))"}
1284!84 = !{!"clk_event_t"}
1285!opencl.ocl.version = !{!90}
1286!90 = !{i32 2, i32 0}
1287!91 = !{i32 0, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3}
1288!92 = !{!"none", !"none", !"none", !"none", !"none", !"none", !"none"}
1289!93 = !{!"long *", !"char *", !"char2 *", !"char3 *", !"char4 *", !"char8 *", !"char16 *"}
1290!94 = !{!"", !"", !"", !"", !"", !"", !""}
1291!100 = !{!"1:1:4:%d\5Cn"}
1292!101 = !{!"2:1:8:%g\5Cn"}
Yaxun Liude4b88d2017-10-10 19:39:48 +00001293!110 = !{!"__block_literal"}
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001294
1295; NOTES: Displaying notes found at file offset 0x{{[0-9]+}}
1296; NOTES-NEXT: Owner Data size Description
1297; NOTES-NEXT: AMD 0x00000008 Unknown note type: (0x00000001)
1298; NOTES-NEXT: AMD 0x0000001b Unknown note type: (0x00000003)
Yaxun Liude4b88d2017-10-10 19:39:48 +00001299; GFX700: AMD 0x00008f64 Unknown note type: (0x0000000a)
1300; GFX800: AMD 0x000092e4 Unknown note type: (0x0000000a)
1301; GFX900: AMD 0x00008f64 Unknown note type: (0x0000000a)
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001302
1303; PARSER: AMDGPU Code Object Metadata Parser Test: PASS