1; RUN: llc -march=amdgcn -mcpu=gfx1010 -asm-verbose=0 < %s | FileCheck -check-prefixes=GCN,GCN-ASM,GFX10,GFX10-ASM %s
2; RUN: llc -march=amdgcn -mcpu=gfx1010 -filetype=obj < %s | llvm-objdump -arch=amdgcn -mcpu=gfx1010 -disassemble - | FileCheck -check-prefixes=GCN,GCN-OBJ,GFX10,GFX10-OBJ %s
3
4; GCN:            a_kernel1:
5; GCN-NEXT:               s_endpgm
6; GCN-ASM-NEXT:   [[END_LABEL1:\.Lfunc_end.*]]:
7; GCN-ASM-NEXT:           .size   a_kernel1, [[END_LABEL1]]-a_kernel1
8; GCN-ASM:                .section        .AMDGPU.config
9
10; GCN-OBJ-NEXT:           s_nop 0
11
12define amdgpu_kernel void @a_kernel1() {
13  ret void
14}
15
16; GCN:            a_kernel2:
17; GCN-NEXT:               s_endpgm
18; GCN-ASM-NEXT:   [[END_LABEL2:\.Lfunc_end.*]]:
19; GCN-ASM-NEXT:           .size   a_kernel2, [[END_LABEL2]]-a_kernel2
20; GCN-ASM:                .section        .AMDGPU.config
21
22; GCN-OBJ-NEXT:   {{^$}}
23
24define amdgpu_kernel void @a_kernel2() {
25  ret void
26}
27
28; GCN-ASM:                .text
29; GCN-ASM-NEXT:           .globl  a_function
30; GCN-ASM-NEXT:           .p2align        2
31; GCN-ASM-NEXT:           .type   a_function,@function
32
33; GCN-NEXT:       a_function:
34; GCN:                    s_setpc_b64
35; GCN-ASM-NEXT:   [[END_LABEL3:\.Lfunc_end.*]]:
36; GCN-ASM-NEXT:           .size   a_function, [[END_LABEL3]]-a_function
37; GFX10-ASM:              .p2alignl 6, 3214868480
38; GFX10-ASM-NEXT:         .fill 32, 4, 3214868480
39
40; GFX10-OBJ-NEXT:         s_code_end
41
42; GFX10-OBJ:              s_code_end // 000000000140:
43; GFX10-OBJ-NEXT:         s_code_end
44; GFX10-OBJ-NEXT:         s_code_end
45; GFX10-OBJ-NEXT:         s_code_end
46; GFX10-OBJ-NEXT:         s_code_end
47; GFX10-OBJ-NEXT:         s_code_end
48; GFX10-OBJ-NEXT:         s_code_end
49; GFX10-OBJ-NEXT:         s_code_end
50
51; GFX10-OBJ-NEXT:         s_code_end
52; GFX10-OBJ-NEXT:         s_code_end
53; GFX10-OBJ-NEXT:         s_code_end
54; GFX10-OBJ-NEXT:         s_code_end
55; GFX10-OBJ-NEXT:         s_code_end
56; GFX10-OBJ-NEXT:         s_code_end
57; GFX10-OBJ-NEXT:         s_code_end
58; GFX10-OBJ-NEXT:         s_code_end
59
60; GFX10-OBJ-NEXT:         s_code_end
61; GFX10-OBJ-NEXT:         s_code_end
62; GFX10-OBJ-NEXT:         s_code_end
63; GFX10-OBJ-NEXT:         s_code_end
64; GFX10-OBJ-NEXT:         s_code_end
65; GFX10-OBJ-NEXT:         s_code_end
66; GFX10-OBJ-NEXT:         s_code_end
67; GFX10-OBJ-NEXT:         s_code_end
68
69; GFX10-OBJ-NEXT:         s_code_end
70; GFX10-OBJ-NEXT:         s_code_end
71; GFX10-OBJ-NEXT:         s_code_end
72; GFX10-OBJ-NEXT:         s_code_end
73; GFX10-OBJ-NEXT:         s_code_end
74; GFX10-OBJ-NEXT:         s_code_end
75; GFX10-OBJ-NEXT:         s_code_end
76; GFX10-OBJ-NEXT:         s_code_end
77
78define void @a_function() {
79  ret void
80}
81