blob: 88ba310a92caef8b7d4addc768149c07a3f75852 [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 ]
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000019; CHECK: Printf: [ '1:1:4:%d\n', '2:1:8:%g\n' ]
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000020; CHECK: Kernels:
21
22; CHECK: - Name: test_char
23; CHECK-NEXT: Language: OpenCL C
24; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
25; CHECK-NEXT: Args:
26; CHECK-NEXT: - Size: 1
27; CHECK-NEXT: Align: 1
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000028; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000029; CHECK-NEXT: ValueType: I8
30; CHECK-NEXT: AccQual: Default
31; CHECK-NEXT: TypeName: char
32; CHECK-NEXT: - Size: 8
33; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000034; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000035; CHECK-NEXT: ValueType: I64
36; CHECK-NEXT: - Size: 8
37; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000038; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000047; CHECK-NEXT: ValueType: I8
48; CHECK-NEXT: AddrSpaceQual: Global
49define amdgpu_kernel void @test_char(i8 %a)
50 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !9
51 !kernel_arg_base_type !9 !kernel_arg_type_qual !4 {
52 ret void
53}
54
55; CHECK: - Name: test_ushort2
56; CHECK-NEXT: Language: OpenCL C
57; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
58; CHECK-NEXT: Args:
59; CHECK-NEXT: - Size: 4
60; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000061; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000062; CHECK-NEXT: ValueType: U16
63; CHECK-NEXT: AccQual: Default
64; CHECK-NEXT: TypeName: ushort2
65; CHECK-NEXT: - Size: 8
66; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000067; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000068; CHECK-NEXT: ValueType: I64
69; CHECK-NEXT: - Size: 8
70; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000071; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000080; CHECK-NEXT: ValueType: I8
81; CHECK-NEXT: AddrSpaceQual: Global
82define amdgpu_kernel void @test_ushort2(<2 x i16> %a)
83 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !10
84 !kernel_arg_base_type !10 !kernel_arg_type_qual !4 {
85 ret void
86}
87
88; CHECK: - Name: test_int3
89; CHECK-NEXT: Language: OpenCL C
90; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
91; CHECK-NEXT: Args:
92; CHECK-NEXT: - Size: 16
93; CHECK-NEXT: Align: 16
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +000094; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +000095; CHECK-NEXT: ValueType: I32
96; CHECK-NEXT: AccQual: Default
97; CHECK-NEXT: TypeName: int3
98; CHECK-NEXT: - Size: 8
99; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000100; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000101; CHECK-NEXT: ValueType: I64
102; CHECK-NEXT: - Size: 8
103; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000104; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000113; CHECK-NEXT: ValueType: I8
114; CHECK-NEXT: AddrSpaceQual: Global
115define amdgpu_kernel void @test_int3(<3 x i32> %a)
116 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !11
117 !kernel_arg_base_type !11 !kernel_arg_type_qual !4 {
118 ret void
119}
120
121; CHECK: - Name: test_ulong4
122; CHECK-NEXT: Language: OpenCL C
123; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
124; CHECK-NEXT: Args:
125; CHECK-NEXT: - Size: 32
126; CHECK-NEXT: Align: 32
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000127; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000128; CHECK-NEXT: ValueType: U64
129; CHECK-NEXT: AccQual: Default
130; CHECK-NEXT: TypeName: ulong4
131; CHECK-NEXT: - Size: 8
132; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000133; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000134; CHECK-NEXT: ValueType: I64
135; CHECK-NEXT: - Size: 8
136; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000137; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000146; CHECK-NEXT: ValueType: I8
147; CHECK-NEXT: AddrSpaceQual: Global
148define amdgpu_kernel void @test_ulong4(<4 x i64> %a)
149 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !12
150 !kernel_arg_base_type !12 !kernel_arg_type_qual !4 {
151 ret void
152}
153
154; CHECK: - Name: test_half8
155; CHECK-NEXT: Language: OpenCL C
156; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
157; CHECK-NEXT: Args:
158; CHECK-NEXT: - Size: 16
159; CHECK-NEXT: Align: 16
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000160; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000161; CHECK-NEXT: ValueType: F16
162; CHECK-NEXT: AccQual: Default
163; CHECK-NEXT: TypeName: half8
164; CHECK-NEXT: - Size: 8
165; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000166; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000167; CHECK-NEXT: ValueType: I64
168; CHECK-NEXT: - Size: 8
169; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000170; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000179; CHECK-NEXT: ValueType: I8
180; CHECK-NEXT: AddrSpaceQual: Global
181define amdgpu_kernel void @test_half8(<8 x half> %a)
182 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !13
183 !kernel_arg_base_type !13 !kernel_arg_type_qual !4 {
184 ret void
185}
186
187; CHECK: - Name: test_float16
188; CHECK-NEXT: Language: OpenCL C
189; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
190; CHECK-NEXT: Args:
191; CHECK-NEXT: - Size: 64
192; CHECK-NEXT: Align: 64
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000193; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000194; CHECK-NEXT: ValueType: F32
195; CHECK-NEXT: AccQual: Default
196; CHECK-NEXT: TypeName: float16
197; CHECK-NEXT: - Size: 8
198; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000199; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000200; CHECK-NEXT: ValueType: I64
201; CHECK-NEXT: - Size: 8
202; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000203; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000212; CHECK-NEXT: ValueType: I8
213; CHECK-NEXT: AddrSpaceQual: Global
214define amdgpu_kernel void @test_float16(<16 x float> %a)
215 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !14
216 !kernel_arg_base_type !14 !kernel_arg_type_qual !4 {
217 ret void
218}
219
220; CHECK: - Name: test_double16
221; CHECK-NEXT: Language: OpenCL C
222; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
223; CHECK-NEXT: Args:
224; CHECK-NEXT: - Size: 128
225; CHECK-NEXT: Align: 128
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000226; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000227; CHECK-NEXT: ValueType: F64
228; CHECK-NEXT: AccQual: Default
229; CHECK-NEXT: TypeName: double16
230; CHECK-NEXT: - Size: 8
231; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000232; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000233; CHECK-NEXT: ValueType: I64
234; CHECK-NEXT: - Size: 8
235; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000236; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000245; CHECK-NEXT: ValueType: I8
246; CHECK-NEXT: AddrSpaceQual: Global
247define amdgpu_kernel void @test_double16(<16 x double> %a)
248 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !15
249 !kernel_arg_base_type !15 !kernel_arg_type_qual !4 {
250 ret void
251}
252
253; CHECK: - Name: test_pointer
254; CHECK-NEXT: Language: OpenCL C
255; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
256; CHECK-NEXT: Args:
257; CHECK-NEXT: - Size: 8
258; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000259; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000260; CHECK-NEXT: ValueType: I32
261; CHECK-NEXT: AccQual: Default
262; CHECK-NEXT: AddrSpaceQual: Global
263; CHECK-NEXT: TypeName: 'int *'
264; CHECK-NEXT: - Size: 8
265; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000266; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000267; CHECK-NEXT: ValueType: I64
268; CHECK-NEXT: - Size: 8
269; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000270; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000279; CHECK-NEXT: ValueType: I8
280; CHECK-NEXT: AddrSpaceQual: Global
281define amdgpu_kernel void @test_pointer(i32 addrspace(1)* %a)
282 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !16
283 !kernel_arg_base_type !16 !kernel_arg_type_qual !4 {
284 ret void
285}
286
287; CHECK: - Name: test_image
288; CHECK-NEXT: Language: OpenCL C
289; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
290; CHECK-NEXT: Args:
291; CHECK-NEXT: - Size: 8
292; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000293; CHECK-NEXT: ValueKind: Image
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000294; CHECK-NEXT: ValueType: Struct
295; CHECK-NEXT: AccQual: Default
296; CHECK-NEXT: AddrSpaceQual: Global
297; CHECK-NEXT: TypeName: image2d_t
298; CHECK-NEXT: - Size: 8
299; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000300; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000301; CHECK-NEXT: ValueType: I64
302; CHECK-NEXT: - Size: 8
303; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000304; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000313; CHECK-NEXT: ValueType: I8
314; CHECK-NEXT: AddrSpaceQual: Global
315define amdgpu_kernel void @test_image(%opencl.image2d_t addrspace(1)* %a)
316 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !17
317 !kernel_arg_base_type !17 !kernel_arg_type_qual !4 {
318 ret void
319}
320
321; CHECK: - Name: test_sampler
322; CHECK-NEXT: Language: OpenCL C
323; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
324; CHECK-NEXT: Args:
325; CHECK-NEXT: - Size: 4
326; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000327; CHECK-NEXT: ValueKind: Sampler
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000328; CHECK-NEXT: ValueType: I32
329; CHECK-NEXT: AccQual: Default
330; CHECK-NEXT: TypeName: sampler_t
331; CHECK-NEXT: - Size: 8
332; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000333; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000334; CHECK-NEXT: ValueType: I64
335; CHECK-NEXT: - Size: 8
336; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000337; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000346; CHECK-NEXT: ValueType: I8
347; CHECK-NEXT: AddrSpaceQual: Global
348define amdgpu_kernel void @test_sampler(i32 %a)
349 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !18
350 !kernel_arg_base_type !18 !kernel_arg_type_qual !4 {
351 ret void
352}
353
354; CHECK: - Name: test_queue
355; CHECK-NEXT: Language: OpenCL C
356; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
357; CHECK-NEXT: Args:
358; CHECK-NEXT: - Size: 8
359; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000360; CHECK-NEXT: ValueKind: Queue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000361; CHECK-NEXT: ValueType: Struct
362; CHECK-NEXT: AccQual: Default
363; CHECK-NEXT: AddrSpaceQual: Global
364; CHECK-NEXT: TypeName: queue_t
365; CHECK-NEXT: - Size: 8
366; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000367; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000368; CHECK-NEXT: ValueType: I64
369; CHECK-NEXT: - Size: 8
370; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000371; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000380; CHECK-NEXT: ValueType: I8
381; CHECK-NEXT: AddrSpaceQual: Global
382define amdgpu_kernel void @test_queue(%opencl.queue_t addrspace(1)* %a)
383 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !19
384 !kernel_arg_base_type !19 !kernel_arg_type_qual !4 {
385 ret void
386}
387
388; CHECK: - Name: test_struct
389; CHECK-NEXT: Language: OpenCL C
390; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
391; CHECK-NEXT: Args:
392; CHECK-NEXT: - Size: 4
393; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000394; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000395; CHECK-NEXT: ValueType: Struct
396; CHECK-NEXT: AccQual: Default
397; CHECK-NEXT: AddrSpaceQual: Private
398; CHECK-NEXT: TypeName: struct A
399; CHECK-NEXT: - Size: 8
400; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000401; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000402; CHECK-NEXT: ValueType: I64
403; CHECK-NEXT: - Size: 8
404; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000405; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000414; CHECK-NEXT: ValueType: I8
415; CHECK-NEXT: AddrSpaceQual: Global
416define amdgpu_kernel void @test_struct(%struct.A* byval %a)
417 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !20
418 !kernel_arg_base_type !20 !kernel_arg_type_qual !4 {
419 ret void
420}
421
422; CHECK: - Name: test_i128
423; CHECK-NEXT: Language: OpenCL C
424; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
425; CHECK-NEXT: Args:
426; CHECK-NEXT: - Size: 16
427; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000428; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000429; CHECK-NEXT: ValueType: Struct
430; CHECK-NEXT: AccQual: Default
431; CHECK-NEXT: TypeName: i128
432; CHECK-NEXT: - Size: 8
433; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000434; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000435; CHECK-NEXT: ValueType: I64
436; CHECK-NEXT: - Size: 8
437; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000438; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000447; CHECK-NEXT: ValueType: I8
448; CHECK-NEXT: AddrSpaceQual: Global
449define amdgpu_kernel void @test_i128(i128 %a)
450 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !21
451 !kernel_arg_base_type !21 !kernel_arg_type_qual !4 {
452 ret void
453}
454
455; CHECK: - Name: test_multi_arg
456; CHECK-NEXT: Language: OpenCL C
457; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
458; CHECK-NEXT: Args:
459; CHECK-NEXT: - Size: 4
460; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000461; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000462; CHECK-NEXT: ValueType: I32
463; CHECK-NEXT: AccQual: Default
464; CHECK-NEXT: TypeName: int
465; CHECK-NEXT: - Size: 4
466; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000467; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000468; CHECK-NEXT: ValueType: I16
469; CHECK-NEXT: AccQual: Default
470; CHECK-NEXT: TypeName: short2
471; CHECK-NEXT: - Size: 4
472; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000473; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000474; CHECK-NEXT: ValueType: I8
475; CHECK-NEXT: AccQual: Default
476; CHECK-NEXT: TypeName: char3
477; CHECK-NEXT: - Size: 8
478; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000479; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000480; CHECK-NEXT: ValueType: I64
481; CHECK-NEXT: - Size: 8
482; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000483; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000492; CHECK-NEXT: ValueType: I8
493; CHECK-NEXT: AddrSpaceQual: Global
494define amdgpu_kernel void @test_multi_arg(i32 %a, <2 x i16> %b, <3 x i8> %c)
495 !kernel_arg_addr_space !22 !kernel_arg_access_qual !23 !kernel_arg_type !24
496 !kernel_arg_base_type !24 !kernel_arg_type_qual !25 {
497 ret void
498}
499
500; CHECK: - Name: test_addr_space
501; CHECK-NEXT: Language: OpenCL C
502; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
503; CHECK-NEXT: Args:
504; CHECK-NEXT: - Size: 8
505; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000506; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000507; CHECK-NEXT: ValueType: I32
508; CHECK-NEXT: AccQual: Default
509; CHECK-NEXT: AddrSpaceQual: Global
510; CHECK-NEXT: TypeName: 'int *'
511; CHECK-NEXT: - Size: 8
512; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000513; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000514; CHECK-NEXT: ValueType: I32
515; CHECK-NEXT: AccQual: Default
516; CHECK-NEXT: AddrSpaceQual: Constant
517; CHECK-NEXT: TypeName: 'int *'
518; CHECK-NEXT: - Size: 4
519; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000520; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000521; CHECK-NEXT: ValueType: I32
522; CHECK-NEXT: PointeeAlign: 4
523; CHECK-NEXT: AccQual: Default
524; CHECK-NEXT: AddrSpaceQual: Local
525; CHECK-NEXT: TypeName: 'int *'
526; CHECK-NEXT: - Size: 8
527; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000528; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000529; CHECK-NEXT: ValueType: I64
530; CHECK-NEXT: - Size: 8
531; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000532; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000541; CHECK-NEXT: ValueType: I8
542; CHECK-NEXT: AddrSpaceQual: Global
543define amdgpu_kernel void @test_addr_space(i32 addrspace(1)* %g,
544 i32 addrspace(2)* %c,
545 i32 addrspace(3)* %l)
546 !kernel_arg_addr_space !50 !kernel_arg_access_qual !23 !kernel_arg_type !51
547 !kernel_arg_base_type !51 !kernel_arg_type_qual !25 {
548 ret void
549}
550
551; CHECK: - Name: test_type_qual
552; CHECK-NEXT: Language: OpenCL C
553; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
554; CHECK-NEXT: Args:
555; CHECK-NEXT: - Size: 8
556; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000557; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000558; CHECK-NEXT: ValueType: I32
559; CHECK-NEXT: AccQual: Default
560; CHECK-NEXT: AddrSpaceQual: Global
561; CHECK-NEXT: IsVolatile: true
562; CHECK-NEXT: TypeName: 'int *'
563; CHECK-NEXT: - Size: 8
564; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000565; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000566; CHECK-NEXT: ValueType: I32
567; CHECK-NEXT: AccQual: Default
568; CHECK-NEXT: AddrSpaceQual: Global
569; CHECK-NEXT: IsConst: true
570; CHECK-NEXT: IsRestrict: true
571; CHECK-NEXT: TypeName: 'int *'
572; CHECK-NEXT: - Size: 8
573; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000574; CHECK-NEXT: ValueKind: Pipe
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000575; CHECK-NEXT: ValueType: Struct
576; CHECK-NEXT: AccQual: Default
577; CHECK-NEXT: AddrSpaceQual: Global
578; CHECK-NEXT: IsPipe: true
579; CHECK-NEXT: TypeName: 'int *'
580; CHECK-NEXT: - Size: 8
581; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000582; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000583; CHECK-NEXT: ValueType: I64
584; CHECK-NEXT: - Size: 8
585; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000586; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000595; CHECK-NEXT: ValueType: I8
596; CHECK-NEXT: AddrSpaceQual: Global
597define amdgpu_kernel void @test_type_qual(i32 addrspace(1)* %a,
598 i32 addrspace(1)* %b,
599 %opencl.pipe_t addrspace(1)* %c)
600 !kernel_arg_addr_space !22 !kernel_arg_access_qual !23 !kernel_arg_type !51
601 !kernel_arg_base_type !51 !kernel_arg_type_qual !70 {
602 ret void
603}
604
605; CHECK: - Name: test_access_qual
606; CHECK-NEXT: Language: OpenCL C
607; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
608; CHECK-NEXT: Args:
609; CHECK-NEXT: - Size: 8
610; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000611; CHECK-NEXT: ValueKind: Image
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000612; CHECK-NEXT: ValueType: Struct
613; CHECK-NEXT: AccQual: ReadOnly
614; CHECK-NEXT: AddrSpaceQual: Global
615; CHECK-NEXT: TypeName: image1d_t
616; CHECK-NEXT: - Size: 8
617; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000618; CHECK-NEXT: ValueKind: Image
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000619; CHECK-NEXT: ValueType: Struct
620; CHECK-NEXT: AccQual: WriteOnly
621; CHECK-NEXT: AddrSpaceQual: Global
622; CHECK-NEXT: TypeName: image2d_t
623; CHECK-NEXT: - Size: 8
624; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000625; CHECK-NEXT: ValueKind: Image
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000626; CHECK-NEXT: ValueType: Struct
627; CHECK-NEXT: AccQual: ReadWrite
628; CHECK-NEXT: AddrSpaceQual: Global
629; CHECK-NEXT: TypeName: image3d_t
630; CHECK-NEXT: - Size: 8
631; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000632; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000633; CHECK-NEXT: ValueType: I64
634; CHECK-NEXT: - Size: 8
635; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000636; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000645; CHECK-NEXT: ValueType: I8
646; CHECK-NEXT: AddrSpaceQual: Global
647define amdgpu_kernel void @test_access_qual(%opencl.image1d_t addrspace(1)* %ro,
648 %opencl.image2d_t addrspace(1)* %wo,
649 %opencl.image3d_t addrspace(1)* %rw)
650 !kernel_arg_addr_space !60 !kernel_arg_access_qual !61 !kernel_arg_type !62
651 !kernel_arg_base_type !62 !kernel_arg_type_qual !25 {
652 ret void
653}
654
655; CHECK: - Name: test_vec_type_hint_half
656; CHECK-NEXT: Language: OpenCL C
657; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
658; CHECK-NEXT: Attrs:
659; CHECK-NEXT: VecTypeHint: half
660; CHECK-NEXT: Args:
661; CHECK-NEXT: - Size: 4
662; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000663; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000664; CHECK-NEXT: ValueType: I32
665; CHECK-NEXT: AccQual: Default
666; CHECK-NEXT: TypeName: int
667; CHECK-NEXT: - Size: 8
668; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000669; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000670; CHECK-NEXT: ValueType: I64
671; CHECK-NEXT: - Size: 8
672; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000673; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000682; CHECK-NEXT: ValueType: I8
683; CHECK-NEXT: AddrSpaceQual: Global
684define amdgpu_kernel void @test_vec_type_hint_half(i32 %a)
685 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
686 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !26 {
687 ret void
688}
689
690; CHECK: - Name: test_vec_type_hint_float
691; CHECK-NEXT: Language: OpenCL C
692; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
693; CHECK-NEXT: Attrs:
694; CHECK-NEXT: VecTypeHint: float
695; CHECK-NEXT: Args:
696; CHECK-NEXT: - Size: 4
697; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000698; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000699; CHECK-NEXT: ValueType: I32
700; CHECK-NEXT: AccQual: Default
701; CHECK-NEXT: TypeName: int
702; CHECK-NEXT: - Size: 8
703; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000704; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000705; CHECK-NEXT: ValueType: I64
706; CHECK-NEXT: - Size: 8
707; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000708; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000717; CHECK-NEXT: ValueType: I8
718; CHECK-NEXT: AddrSpaceQual: Global
719define amdgpu_kernel void @test_vec_type_hint_float(i32 %a)
720 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
721 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !27 {
722 ret void
723}
724
725; CHECK: - Name: test_vec_type_hint_double
726; CHECK-NEXT: Language: OpenCL C
727; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
728; CHECK-NEXT: Attrs:
729; CHECK-NEXT: VecTypeHint: double
730; CHECK-NEXT: Args:
731; CHECK-NEXT: - Size: 4
732; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000733; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000734; CHECK-NEXT: ValueType: I32
735; CHECK-NEXT: AccQual: Default
736; CHECK-NEXT: TypeName: int
737; CHECK-NEXT: - Size: 8
738; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000739; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000740; CHECK-NEXT: ValueType: I64
741; CHECK-NEXT: - Size: 8
742; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000743; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000752; CHECK-NEXT: ValueType: I8
753; CHECK-NEXT: AddrSpaceQual: Global
754define amdgpu_kernel void @test_vec_type_hint_double(i32 %a)
755 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
756 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !28 {
757 ret void
758}
759
760; CHECK: - Name: test_vec_type_hint_char
761; CHECK-NEXT: Language: OpenCL C
762; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
763; CHECK-NEXT: Attrs:
764; CHECK-NEXT: VecTypeHint: char
765; CHECK-NEXT: Args:
766; CHECK-NEXT: - Size: 4
767; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000768; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000769; CHECK-NEXT: ValueType: I32
770; CHECK-NEXT: AccQual: Default
771; CHECK-NEXT: TypeName: int
772; CHECK-NEXT: - Size: 8
773; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000774; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000775; CHECK-NEXT: ValueType: I64
776; CHECK-NEXT: - Size: 8
777; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000778; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000787; CHECK-NEXT: ValueType: I8
788; CHECK-NEXT: AddrSpaceQual: Global
789define amdgpu_kernel void @test_vec_type_hint_char(i32 %a)
790 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
791 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !29 {
792 ret void
793}
794
795; CHECK: - Name: test_vec_type_hint_short
796; CHECK-NEXT: Language: OpenCL C
797; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
798; CHECK-NEXT: Attrs:
799; CHECK-NEXT: VecTypeHint: short
800; CHECK-NEXT: Args:
801; CHECK-NEXT: - Size: 4
802; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000803; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000804; CHECK-NEXT: ValueType: I32
805; CHECK-NEXT: AccQual: Default
806; CHECK-NEXT: TypeName: int
807; CHECK-NEXT: - Size: 8
808; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000809; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000810; CHECK-NEXT: ValueType: I64
811; CHECK-NEXT: - Size: 8
812; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000813; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000822; CHECK-NEXT: ValueType: I8
823; CHECK-NEXT: AddrSpaceQual: Global
824define amdgpu_kernel void @test_vec_type_hint_short(i32 %a)
825 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
826 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !30 {
827 ret void
828}
829
830; CHECK: - Name: test_vec_type_hint_long
831; CHECK-NEXT: Language: OpenCL C
832; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
833; CHECK-NEXT: Attrs:
834; CHECK-NEXT: VecTypeHint: long
835; CHECK-NEXT: Args:
836; CHECK-NEXT: - Size: 4
837; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000838; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000839; CHECK-NEXT: ValueType: I32
840; CHECK-NEXT: AccQual: Default
841; CHECK-NEXT: TypeName: int
842; CHECK-NEXT: - Size: 8
843; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000844; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000845; CHECK-NEXT: ValueType: I64
846; CHECK-NEXT: - Size: 8
847; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000848; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000857; CHECK-NEXT: ValueType: I8
858; CHECK-NEXT: AddrSpaceQual: Global
859define amdgpu_kernel void @test_vec_type_hint_long(i32 %a)
860 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
861 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !31 {
862 ret void
863}
864
865; CHECK: - Name: test_vec_type_hint_unknown
866; CHECK-NEXT: Language: OpenCL C
867; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
868; CHECK-NEXT: Attrs:
869; CHECK-NEXT: VecTypeHint: unknown
870; CHECK-NEXT: Args:
871; CHECK-NEXT: - Size: 4
872; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000873; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000874; CHECK-NEXT: ValueType: I32
875; CHECK-NEXT: AccQual: Default
876; CHECK-NEXT: TypeName: int
877; CHECK-NEXT: - Size: 8
878; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000879; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000880; CHECK-NEXT: ValueType: I64
881; CHECK-NEXT: - Size: 8
882; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000883; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000892; CHECK-NEXT: ValueType: I8
893; CHECK-NEXT: AddrSpaceQual: Global
894define amdgpu_kernel void @test_vec_type_hint_unknown(i32 %a)
895 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
896 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !32 {
897 ret void
898}
899
900; CHECK: - Name: test_reqd_wgs_vec_type_hint
901; CHECK-NEXT: Language: OpenCL C
902; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
903; CHECK-NEXT: Attrs:
904; CHECK-NEXT: ReqdWorkGroupSize: [ 1, 2, 4 ]
905; CHECK-NEXT: VecTypeHint: int
906; CHECK-NEXT: Args:
907; CHECK-NEXT: - Size: 4
908; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000909; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000910; CHECK-NEXT: ValueType: I32
911; CHECK-NEXT: AccQual: Default
912; CHECK-NEXT: TypeName: int
913; CHECK-NEXT: - Size: 8
914; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000915; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000916; CHECK-NEXT: ValueType: I64
917; CHECK-NEXT: - Size: 8
918; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000919; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000928; CHECK-NEXT: ValueType: I8
929; CHECK-NEXT: AddrSpaceQual: Global
930define amdgpu_kernel void @test_reqd_wgs_vec_type_hint(i32 %a)
931 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
932 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !5
933 !reqd_work_group_size !6 {
934 ret void
935}
936
937; CHECK: - Name: test_wgs_hint_vec_type_hint
938; CHECK-NEXT: Language: OpenCL C
939; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
940; CHECK-NEXT: Attrs:
941; CHECK-NEXT: WorkGroupSizeHint: [ 8, 16, 32 ]
942; CHECK-NEXT: VecTypeHint: uint4
943; CHECK-NEXT: Args:
944; CHECK-NEXT: - Size: 4
945; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000946; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000947; CHECK-NEXT: ValueType: I32
948; CHECK-NEXT: AccQual: Default
949; CHECK-NEXT: TypeName: int
950; CHECK-NEXT: - Size: 8
951; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000952; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000953; CHECK-NEXT: ValueType: I64
954; CHECK-NEXT: - Size: 8
955; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000956; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000965; CHECK-NEXT: ValueType: I8
966; CHECK-NEXT: AddrSpaceQual: Global
967define amdgpu_kernel void @test_wgs_hint_vec_type_hint(i32 %a)
968 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !3
969 !kernel_arg_base_type !3 !kernel_arg_type_qual !4 !vec_type_hint !7
970 !work_group_size_hint !8 {
971 ret void
972}
973
974; CHECK: - Name: test_arg_ptr_to_ptr
975; CHECK-NEXT: Language: OpenCL C
976; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
977; CHECK-NEXT: Args:
978; CHECK-NEXT: - Size: 8
979; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000980; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000981; CHECK-NEXT: ValueType: I32
982; CHECK-NEXT: AccQual: Default
983; CHECK-NEXT: AddrSpaceQual: Global
984; CHECK-NEXT: TypeName: 'int **'
985; CHECK-NEXT: - Size: 8
986; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000987; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +0000988; CHECK-NEXT: ValueType: I64
989; CHECK-NEXT: - Size: 8
990; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +0000991; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001000; CHECK-NEXT: ValueType: I8
1001; CHECK-NEXT: AddrSpaceQual: Global
1002define amdgpu_kernel void @test_arg_ptr_to_ptr(i32* addrspace(1)* %a)
1003 !kernel_arg_addr_space !81 !kernel_arg_access_qual !2 !kernel_arg_type !80
1004 !kernel_arg_base_type !80 !kernel_arg_type_qual !4 {
1005 ret void
1006}
1007
1008; CHECK: - Name: test_arg_struct_contains_ptr
1009; CHECK-NEXT: Language: OpenCL C
1010; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1011; CHECK-NEXT: Args:
1012; CHECK-NEXT: - Size: 4
1013; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001014; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001015; CHECK-NEXT: ValueType: Struct
1016; CHECK-NEXT: AccQual: Default
1017; CHECK-NEXT: AddrSpaceQual: Private
1018; CHECK-NEXT: TypeName: struct B
1019; CHECK-NEXT: - Size: 8
1020; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001021; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001022; CHECK-NEXT: ValueType: I64
1023; CHECK-NEXT: - Size: 8
1024; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001025; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001034; CHECK-NEXT: ValueType: I8
1035; CHECK-NEXT: AddrSpaceQual: Global
1036define amdgpu_kernel void @test_arg_struct_contains_ptr(%struct.B* byval %a)
1037 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !82
1038 !kernel_arg_base_type !82 !kernel_arg_type_qual !4 {
1039 ret void
1040}
1041
1042; CHECK: - Name: test_arg_vector_of_ptr
1043; CHECK-NEXT: Language: OpenCL C
1044; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1045; CHECK-NEXT: Args:
1046; CHECK-NEXT: - Size: 16
1047; CHECK-NEXT: Align: 16
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001048; CHECK-NEXT: ValueKind: ByValue
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001049; CHECK-NEXT: ValueType: I32
1050; CHECK-NEXT: AccQual: Default
1051; CHECK-NEXT: TypeName: 'global int* __attribute__((ext_vector_type(2)))'
1052; CHECK-NEXT: - Size: 8
1053; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001054; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001055; CHECK-NEXT: ValueType: I64
1056; CHECK-NEXT: - Size: 8
1057; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001058; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001067; CHECK-NEXT: ValueType: I8
1068; CHECK-NEXT: AddrSpaceQual: Global
1069define amdgpu_kernel void @test_arg_vector_of_ptr(<2 x i32 addrspace(1)*> %a)
1070 !kernel_arg_addr_space !1 !kernel_arg_access_qual !2 !kernel_arg_type !83
1071 !kernel_arg_base_type !83 !kernel_arg_type_qual !4 {
1072 ret void
1073}
1074
1075; CHECK: - Name: test_arg_unknown_builtin_type
1076; CHECK-NEXT: Language: OpenCL C
1077; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1078; CHECK-NEXT: Args:
1079; CHECK-NEXT: - Size: 8
1080; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001081; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001082; CHECK-NEXT: ValueType: Struct
1083; CHECK-NEXT: AccQual: Default
1084; CHECK-NEXT: AddrSpaceQual: Global
1085; CHECK-NEXT: TypeName: clk_event_t
1086; CHECK-NEXT: - Size: 8
1087; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001088; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001089; CHECK-NEXT: ValueType: I64
1090; CHECK-NEXT: - Size: 8
1091; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001092; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001101; CHECK-NEXT: ValueType: I8
1102; CHECK-NEXT: AddrSpaceQual: Global
1103define amdgpu_kernel void @test_arg_unknown_builtin_type(
1104 %opencl.clk_event_t addrspace(1)* %a)
1105 !kernel_arg_addr_space !81 !kernel_arg_access_qual !2 !kernel_arg_type !84
1106 !kernel_arg_base_type !84 !kernel_arg_type_qual !4 {
1107 ret void
1108}
1109
1110; CHECK: - Name: test_pointee_align
1111; CHECK-NEXT: Language: OpenCL C
1112; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
1113; CHECK-NEXT: Args:
1114; CHECK-NEXT: - Size: 8
1115; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001116; CHECK-NEXT: ValueKind: GlobalBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001117; CHECK-NEXT: ValueType: I64
1118; CHECK-NEXT: AccQual: Default
1119; CHECK-NEXT: AddrSpaceQual: Global
1120; CHECK-NEXT: TypeName: 'long *'
1121; CHECK-NEXT: - Size: 4
1122; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001123; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001124; CHECK-NEXT: ValueType: I8
1125; CHECK-NEXT: PointeeAlign: 1
1126; CHECK-NEXT: AccQual: Default
1127; CHECK-NEXT: AddrSpaceQual: Local
1128; CHECK-NEXT: TypeName: 'char *'
1129; CHECK-NEXT: - Size: 4
1130; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001131; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001132; CHECK-NEXT: ValueType: I8
1133; CHECK-NEXT: PointeeAlign: 2
1134; CHECK-NEXT: AccQual: Default
1135; CHECK-NEXT: AddrSpaceQual: Local
1136; CHECK-NEXT: TypeName: 'char2 *'
1137; CHECK-NEXT: - Size: 4
1138; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001139; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001140; CHECK-NEXT: ValueType: I8
1141; CHECK-NEXT: PointeeAlign: 4
1142; CHECK-NEXT: AccQual: Default
1143; CHECK-NEXT: AddrSpaceQual: Local
1144; CHECK-NEXT: TypeName: 'char3 *'
1145; CHECK-NEXT: - Size: 4
1146; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001147; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001148; CHECK-NEXT: ValueType: I8
1149; CHECK-NEXT: PointeeAlign: 4
1150; CHECK-NEXT: AccQual: Default
1151; CHECK-NEXT: AddrSpaceQual: Local
1152; CHECK-NEXT: TypeName: 'char4 *'
1153; CHECK-NEXT: - Size: 4
1154; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001155; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001156; CHECK-NEXT: ValueType: I8
1157; CHECK-NEXT: PointeeAlign: 8
1158; CHECK-NEXT: AccQual: Default
1159; CHECK-NEXT: AddrSpaceQual: Local
1160; CHECK-NEXT: TypeName: 'char8 *'
1161; CHECK-NEXT: - Size: 4
1162; CHECK-NEXT: Align: 4
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001163; CHECK-NEXT: ValueKind: DynamicSharedPointer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001164; CHECK-NEXT: ValueType: I8
1165; CHECK-NEXT: PointeeAlign: 16
1166; CHECK-NEXT: AccQual: Default
1167; CHECK-NEXT: AddrSpaceQual: Local
1168; CHECK-NEXT: TypeName: 'char16 *'
1169; CHECK-NEXT: - Size: 8
1170; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001171; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001172; CHECK-NEXT: ValueType: I64
1173; CHECK-NEXT: - Size: 8
1174; CHECK-NEXT: Align: 8
Konstantin Zhuravlyov4986d9f2017-03-24 18:43:15 +00001175; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
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: HiddenGlobalOffsetZ
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: HiddenPrintfBuffer
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001184; CHECK-NEXT: ValueType: I8
1185; CHECK-NEXT: AddrSpaceQual: Global
1186define amdgpu_kernel void @test_pointee_align(i64 addrspace(1)* %a,
1187 i8 addrspace(3)* %b,
1188 <2 x i8> addrspace(3)* %c,
1189 <3 x i8> addrspace(3)* %d,
1190 <4 x i8> addrspace(3)* %e,
1191 <8 x i8> addrspace(3)* %f,
1192 <16 x i8> addrspace(3)* %g)
1193 !kernel_arg_addr_space !91 !kernel_arg_access_qual !92 !kernel_arg_type !93
1194 !kernel_arg_base_type !93 !kernel_arg_type_qual !94 {
1195 ret void
1196}
1197
1198!llvm.printf.fmts = !{!100, !101}
1199
1200!1 = !{i32 0}
1201!2 = !{!"none"}
1202!3 = !{!"int"}
1203!4 = !{!""}
1204!5 = !{i32 undef, i32 1}
1205!6 = !{i32 1, i32 2, i32 4}
1206!7 = !{<4 x i32> undef, i32 0}
1207!8 = !{i32 8, i32 16, i32 32}
1208!9 = !{!"char"}
1209!10 = !{!"ushort2"}
1210!11 = !{!"int3"}
1211!12 = !{!"ulong4"}
1212!13 = !{!"half8"}
1213!14 = !{!"float16"}
1214!15 = !{!"double16"}
1215!16 = !{!"int *"}
1216!17 = !{!"image2d_t"}
1217!18 = !{!"sampler_t"}
1218!19 = !{!"queue_t"}
1219!20 = !{!"struct A"}
1220!21 = !{!"i128"}
1221!22 = !{i32 0, i32 0, i32 0}
1222!23 = !{!"none", !"none", !"none"}
1223!24 = !{!"int", !"short2", !"char3"}
1224!25 = !{!"", !"", !""}
1225!26 = !{half undef, i32 1}
1226!27 = !{float undef, i32 1}
1227!28 = !{double undef, i32 1}
1228!29 = !{i8 undef, i32 1}
1229!30 = !{i16 undef, i32 1}
1230!31 = !{i64 undef, i32 1}
1231!32 = !{i32 *undef, i32 1}
1232!50 = !{i32 1, i32 2, i32 3}
1233!51 = !{!"int *", !"int *", !"int *"}
1234!60 = !{i32 1, i32 1, i32 1}
1235!61 = !{!"read_only", !"write_only", !"read_write"}
1236!62 = !{!"image1d_t", !"image2d_t", !"image3d_t"}
1237!70 = !{!"volatile", !"const restrict", !"pipe"}
1238!80 = !{!"int **"}
1239!81 = !{i32 1}
1240!82 = !{!"struct B"}
1241!83 = !{!"global int* __attribute__((ext_vector_type(2)))"}
1242!84 = !{!"clk_event_t"}
1243!opencl.ocl.version = !{!90}
1244!90 = !{i32 2, i32 0}
1245!91 = !{i32 0, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3}
1246!92 = !{!"none", !"none", !"none", !"none", !"none", !"none", !"none"}
1247!93 = !{!"long *", !"char *", !"char2 *", !"char3 *", !"char4 *", !"char8 *", !"char16 *"}
1248!94 = !{!"", !"", !"", !"", !"", !"", !""}
1249!100 = !{!"1:1:4:%d\5Cn"}
1250!101 = !{!"2:1:8:%g\5Cn"}
1251
1252; NOTES: Displaying notes found at file offset 0x{{[0-9]+}}
1253; NOTES-NEXT: Owner Data size Description
1254; NOTES-NEXT: AMD 0x00000008 Unknown note type: (0x00000001)
1255; NOTES-NEXT: AMD 0x0000001b Unknown note type: (0x00000003)
Konstantin Zhuravlyov4cbb6892017-03-22 23:27:09 +00001256; GFX700: AMD 0x00009171 Unknown note type: (0x0000000a)
1257; GFX800: AMD 0x00009190 Unknown note type: (0x0000000a)
1258; GFX900: AMD 0x00009171 Unknown note type: (0x0000000a)
Konstantin Zhuravlyov7498cd62017-03-22 22:32:22 +00001259
1260; PARSER: AMDGPU Code Object Metadata Parser Test: PASS