1*7f9868f9SChangpeng Fang; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 --amdhsa-code-object-version=5 < %s | FileCheck --check-prefixes=CHECK %s
2*7f9868f9SChangpeng Fang
3*7f9868f9SChangpeng Fang
4*7f9868f9SChangpeng Fang; CHECK-LABEL: test_unaligned_to_eight:
5*7f9868f9SChangpeng Fang; CHECK: .amdhsa_kernarg_size 264
6*7f9868f9SChangpeng Fangdefine amdgpu_kernel void @test_unaligned_to_eight(i32 %four)  {
7*7f9868f9SChangpeng Fang  %implicitarg.ptr = call i8 addrspace(4)* @llvm.amdgcn.implicitarg.ptr()
8*7f9868f9SChangpeng Fang  store volatile i8 addrspace(4)* %implicitarg.ptr, i8 addrspace(4)* addrspace(1)* undef
9*7f9868f9SChangpeng Fang  ret void
10*7f9868f9SChangpeng Fang}
11*7f9868f9SChangpeng Fang
12*7f9868f9SChangpeng Fang
13*7f9868f9SChangpeng Fang; CHECK-LABEL: test_aligned_to_eight:
14*7f9868f9SChangpeng Fang; CHECK: .amdhsa_kernarg_size 264
15*7f9868f9SChangpeng Fangdefine amdgpu_kernel void @test_aligned_to_eight(i64 %eight)  {
16*7f9868f9SChangpeng Fang  %implicitarg.ptr = call i8 addrspace(4)* @llvm.amdgcn.implicitarg.ptr()
17*7f9868f9SChangpeng Fang  store volatile i8 addrspace(4)* %implicitarg.ptr, i8 addrspace(4)* addrspace(1)* undef
18*7f9868f9SChangpeng Fang  ret void
19*7f9868f9SChangpeng Fang}
20*7f9868f9SChangpeng Fang
21*7f9868f9SChangpeng Fang; CHECK-LABEL: amdhsa.kernels:
22*7f9868f9SChangpeng Fang; CHECK:  - .args:
23*7f9868f9SChangpeng Fang; CHECK-NEXT:      - .name:           four
24*7f9868f9SChangpeng Fang; CHECK-NEXT:         .offset:         0
25*7f9868f9SChangpeng Fang; CHECK-NEXT:         .size:           4
26*7f9868f9SChangpeng Fang; CHECK-NEXT:         .value_kind:     by_value
27*7f9868f9SChangpeng Fang; CHECK-NEXT:       - .offset:         8
28*7f9868f9SChangpeng Fang; CHECK-NEXT:         .size:           4
29*7f9868f9SChangpeng Fang; CHECK-NEXT:         .value_kind:     hidden_block_count_x
30*7f9868f9SChangpeng Fang; CHECK-NEXT:       - .offset:         12
31*7f9868f9SChangpeng Fang; CHECK-NEXT:         .size:           4
32*7f9868f9SChangpeng Fang; CHECK-NEXT:         .value_kind:     hidden_block_count_y
33*7f9868f9SChangpeng Fang; CHECK-NEXT:       - .offset:         16
34*7f9868f9SChangpeng Fang; CHECK-NEXT:         .size:           4
35*7f9868f9SChangpeng Fang; CHECK-NEXT:         .value_kind:     hidden_block_count_z
36*7f9868f9SChangpeng Fang; CHECK:              .kernarg_segment_align: 8
37*7f9868f9SChangpeng Fang; CHECK-NEXT:         .kernarg_segment_size: 264
38*7f9868f9SChangpeng Fang; CHECK-LABEL:        .name:           test_unaligned_to_eight
39*7f9868f9SChangpeng Fang
40*7f9868f9SChangpeng Fang; CHECK:  - .args:
41*7f9868f9SChangpeng Fang; CHECK-NEXT:      - .name:           eight
42*7f9868f9SChangpeng Fang; CHECK-NEXT:         .offset:         0
43*7f9868f9SChangpeng Fang; CHECK-NEXT:         .size:           8
44*7f9868f9SChangpeng Fang; CHECK-NEXT:         .value_kind:     by_value
45*7f9868f9SChangpeng Fang; CHECK-NEXT:       - .offset:         8
46*7f9868f9SChangpeng Fang; CHECK-NEXT:         .size:           4
47*7f9868f9SChangpeng Fang; CHECK-NEXT:         .value_kind:     hidden_block_count_x
48*7f9868f9SChangpeng Fang; CHECK-NEXT:       - .offset:         12
49*7f9868f9SChangpeng Fang; CHECK-NEXT:         .size:           4
50*7f9868f9SChangpeng Fang; CHECK-NEXT:         .value_kind:     hidden_block_count_y
51*7f9868f9SChangpeng Fang; CHECK-NEXT:       - .offset:         16
52*7f9868f9SChangpeng Fang; CHECK-NEXT:         .size:           4
53*7f9868f9SChangpeng Fang; CHECK-NEXT:         .value_kind:     hidden_block_count_z
54*7f9868f9SChangpeng Fang; CHECK:              .kernarg_segment_align: 8
55*7f9868f9SChangpeng Fang; CHECK-NEXT:         .kernarg_segment_size: 264
56*7f9868f9SChangpeng Fang; CHECK-LABEL:        .name:           test_aligned_to_eight
57*7f9868f9SChangpeng Fang
58*7f9868f9SChangpeng Fangdeclare i8 addrspace(4)* @llvm.amdgcn.implicitarg.ptr()
59