AMDGPU/SI: Correctly emit agent global segment variables when targeting HSA
[oota-llvm.git] / test / CodeGen / AMDGPU / hsa-globals.ll
1 ; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=kaveri | FileCheck --check-prefix=ASM %s
2 ; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=kaveri | llvm-mc -filetype=obj -triple amdgcn--amdhsa -mcpu=kaveri | llvm-readobj -symbols -s | FileCheck %s --check-prefix=ELF
3
4 @internal_global_program = internal addrspace(1) global i32 0
5 @common_global_program = common addrspace(1) global i32 0
6 @external_global_program = addrspace(1) global i32 0
7
8 @internal_global_agent = internal addrspace(1) global i32 0, section ".hsadata_global_agent"
9 @common_global_agent = common addrspace(1) global i32 0, section ".hsadata_global_agent"
10 @external_global_agent = addrspace(1) global i32 0, section ".hsadata_global_agent"
11
12 define void @test() {
13   ret void
14 }
15
16 ; ASM: .amdgpu_hsa_module_global internal_global
17 ; ASM: .hsadata_global_program
18 ; ASM: internal_global_program:
19 ; ASM: .long 0
20
21 ; ASM: .amdgpu_hsa_module_global common_global
22 ; ASM: .hsadata_global_program
23 ; ASM: common_global_program:
24 ; ASM: .long 0
25
26 ; ASM: .amdgpu_hsa_program_global external_global
27 ; ASM: .hsadata_global_program
28 ; ASM: external_global_program:
29 ; ASM: .long 0
30
31 ; ASM: .amdgpu_hsa_module_global internal_global
32 ; ASM: .hsadata_global_agent
33 ; ASM: internal_global_agent:
34 ; ASM: .long 0
35
36 ; ASM: .amdgpu_hsa_module_global common_global
37 ; ASM: .hsadata_global_agent
38 ; ASM: common_global_agent:
39 ; ASM: .long 0
40
41 ; ASM: .amdgpu_hsa_program_global external_global
42 ; ASM: .hsadata_global_agent
43 ; ASM: external_global_agent:
44 ; ASM: .long 0
45
46 ; ELF: Section {
47 ; ELF: Name: .hsadata_global_program
48 ; ELF: Type: SHT_PROGBITS (0x1)
49 ; ELF: Flags [ (0x100003)
50 ; ELF: SHF_ALLOC (0x2)
51 ; ELF: SHF_AMDGPU_HSA_GLOBAL (0x100000)
52 ; ELF: SHF_WRITE (0x1)
53 ; ELF: ]
54 ; ELF: }
55
56 ; ELF: Section {
57 ; ELF: Name: .hsadata_global_agent
58 ; ELF: Type: SHT_PROGBITS (0x1)
59 ; ELF: Flags [ (0x900003)
60 ; ELF: SHF_ALLOC (0x2)
61 ; ELF: SHF_AMDGPU_HSA_AGENT (0x800000)
62 ; ELF: SHF_AMDGPU_HSA_GLOBAL (0x100000)
63 ; ELF: SHF_WRITE (0x1)
64 ; ELF: ]
65 ; ELF: }
66
67 ; ELF: Symbol {
68 ; ELF: Name: common_global_agent
69 ; ELF: Binding: Local
70 ; ELF: Section: .hsadata_global_agent
71 ; ELF: }
72
73 ; ELF: Symbol {
74 ; ELF: Name: common_global_program
75 ; ELF: Binding: Local
76 ; ELF: Section: .hsadata_global_program
77 ; ELF: }
78
79 ; ELF: Symbol {
80 ; ELF: Name: internal_global_agent
81 ; ELF: Binding: Local
82 ; ELF: Type: Object
83 ; ELF: Section: .hsadata_global_agent
84 ; ELF: }
85
86 ; ELF: Symbol {
87 ; ELF: Name: internal_global_program
88 ; ELF: Binding: Local
89 ; ELF: Type: Object
90 ; ELF: Section: .hsadata_global_program
91 ; ELF: }
92
93 ; ELF: Symbol {
94 ; ELF: Name: external_global_agent
95 ; ELF: Binding: Global
96 ; ELF: Type: Object
97 ; ELF: Section: .hsadata_global_agent
98 ; ELF: }
99
100 ; ELF: Symbol {
101 ; ELF: Name: external_global_program
102 ; ELF: Binding: Global
103 ; ELF: Type: Object
104 ; ELF: Section: .hsadata_global_program
105 ; ELF: }