AMDGPU/SI: Emit constant arrays in the .hsrodata_readonly_agent section
[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 @internal_readonly = internal unnamed_addr addrspace(2) constant i32 0
13 @external_readonly = unnamed_addr addrspace(2) constant i32 0
14
15 define void @test() {
16   ret void
17 }
18
19 ; ASM: .amdgpu_hsa_module_global internal_global
20 ; ASM: .hsadata_global_program
21 ; ASM: internal_global_program:
22 ; ASM: .long 0
23
24 ; ASM: .amdgpu_hsa_module_global common_global
25 ; ASM: .hsadata_global_program
26 ; ASM: common_global_program:
27 ; ASM: .long 0
28
29 ; ASM: .amdgpu_hsa_program_global external_global
30 ; ASM: .hsadata_global_program
31 ; ASM: external_global_program:
32 ; ASM: .long 0
33
34 ; ASM: .amdgpu_hsa_module_global internal_global
35 ; ASM: .hsadata_global_agent
36 ; ASM: internal_global_agent:
37 ; ASM: .long 0
38
39 ; ASM: .amdgpu_hsa_module_global common_global
40 ; ASM: .hsadata_global_agent
41 ; ASM: common_global_agent:
42 ; ASM: .long 0
43
44 ; ASM: .amdgpu_hsa_program_global external_global
45 ; ASM: .hsadata_global_agent
46 ; ASM: external_global_agent:
47 ; ASM: .long 0
48
49 ; ASM: .amdgpu_hsa_module_global internal_readonly
50 ; ASM: .hsarodata_readonly_agent
51 ; ASM: internal_readonly:
52 ; ASM: .long 0
53
54 ; ASM: .amdgpu_hsa_program_global external_readonly
55 ; ASM: .hsarodata_readonly_agent
56 ; ASM: external_readonly:
57 ; ASM: .long 0
58
59 ; ELF: Section {
60 ; ELF: Name: .hsadata_global_program
61 ; ELF: Type: SHT_PROGBITS (0x1)
62 ; ELF: Flags [ (0x100003)
63 ; ELF: SHF_ALLOC (0x2)
64 ; ELF: SHF_AMDGPU_HSA_GLOBAL (0x100000)
65 ; ELF: SHF_WRITE (0x1)
66 ; ELF: ]
67 ; ELF: }
68
69 ; ELF: Section {
70 ; ELF: Name: .hsadata_global_agent
71 ; ELF: Type: SHT_PROGBITS (0x1)
72 ; ELF: Flags [ (0x900003)
73 ; ELF: SHF_ALLOC (0x2)
74 ; ELF: SHF_AMDGPU_HSA_AGENT (0x800000)
75 ; ELF: SHF_AMDGPU_HSA_GLOBAL (0x100000)
76 ; ELF: SHF_WRITE (0x1)
77 ; ELF: ]
78 ; ELF: }
79
80 ; ELF: Section {
81 ; ELF: Name: .hsarodata_readonly_agent
82 ; ELF: Type: SHT_PROGBITS (0x1)
83 ; ELF: Flags [ (0xA00002)
84 ; ELF: SHF_ALLOC (0x2)
85 ; ELF: SHF_AMDGPU_HSA_AGENT (0x800000)
86 ; ELF: SHF_AMDGPU_HSA_READONLY (0x200000)
87 ; ELF: ]
88
89 ; ELF: Symbol {
90 ; ELF: Name: common_global_agent
91 ; ELF: Binding: Local
92 ; ELF: Section: .hsadata_global_agent
93 ; ELF: }
94
95 ; ELF: Symbol {
96 ; ELF: Name: common_global_program
97 ; ELF: Binding: Local
98 ; ELF: Section: .hsadata_global_program
99 ; ELF: }
100
101 ; ELF: Symbol {
102 ; ELF: Name: internal_global_agent
103 ; ELF: Binding: Local
104 ; ELF: Type: Object
105 ; ELF: Section: .hsadata_global_agent
106 ; ELF: }
107
108 ; ELF: Symbol {
109 ; ELF: Name: internal_global_program
110 ; ELF: Binding: Local
111 ; ELF: Type: Object
112 ; ELF: Section: .hsadata_global_program
113 ; ELF: }
114
115 ; ELF: Symbol {
116 ; ELF: Name: internal_readonly
117 ; ELF: Binding: Local
118 ; ELF: Type: Object
119 ; ELF: Section: .hsarodata_readonly_agent
120 ; ELF: }
121
122 ; ELF: Symbol {
123 ; ELF: Name: external_global_agent
124 ; ELF: Binding: Global
125 ; ELF: Type: Object
126 ; ELF: Section: .hsadata_global_agent
127 ; ELF: }
128
129 ; ELF: Symbol {
130 ; ELF: Name: external_global_program
131 ; ELF: Binding: Global
132 ; ELF: Type: Object
133 ; ELF: Section: .hsadata_global_program
134 ; ELF: }
135
136 ; ELF: Symbol {
137 ; ELF: Name: external_readonly
138 ; ELF: Binding: Global
139 ; ELF: Type: Object
140 ; ELF: Section: .hsarodata_readonly_agent
141 ; ELF: }