[MIPS GlobalISel] Select MSA vector generic and builtin add
[llvm-complete.git] / test / MC / ELF / type.s
blobb43ec1cd1104dbdc72e214780ada0d646703fbc9
1 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj --symbols | FileCheck %s
3 // Test that both % and @ are accepted.
4 .global foo
5 .type foo,%function
6 foo:
8 .global bar
9 .type bar,@object
10 bar:
12 .type zed,@gnu_unique_object
13 zed:
15 obj:
16 .global obj
17 .type obj,@object
18 .type obj,@notype
20 func:
21 .global func
22 .type func,@function
23 .type func,@object
25 ifunc:
26 .global ifunc
27 .type ifunc,@gnu_indirect_function
29 tls:
30 .global tls
31 .type tls,@tls_object
32 .type tls,@gnu_indirect_function
34 // Test that "<type>" is accepted.
35 tls_quoted:
36 .global tls_quoted
37 .type tls_quoted,"tls_object"
39 // Test that "<type>" is accepted.
40 tls_upper_case:
41 .global tls_upper_case
42 .type tls_upper_case,STT_TLS
44 // Test that .set doesnt downgrade the type:
45 // IFUNC > FUNC > OBJECT > NOTYPE
46 // TLS_OBJECT > OBJECT > NOTYPE
47 // also TLS_OBJECT is incompatible with IFUNC and FUNC
49 .global sym1
50 .type sym1, @gnu_indirect_function
51 alias1:
52 .global alias1
53 .type alias1, @function
54 .set sym1, alias1
56 .global sym2
57 .type sym2, @gnu_indirect_function
58 alias2:
59 .global alias2
60 .type alias2, @object
61 .set sym2, alias2
63 .global sym3
64 .type sym3, @gnu_indirect_function
65 alias3:
66 .global alias3
67 .type alias3, @notype
68 .set sym3, alias3
70 .global sym4
71 .type sym4, @function
72 alias4:
73 .global alias4
74 .type alias4, @object
75 .set sym4, alias4
77 .global sym5
78 .type sym5, @function
79 alias5:
80 .global alias5
81 .type alias5, @notype
82 .set sym5, alias5
84 .global sym6
85 .type sym6, @object
86 alias6:
87 .global alias6
88 .type alias6, @notype
89 .set sym6, alias6
91 .global sym7
92 .type sym7, @gnu_indirect_function
93 alias7:
94 .global alias7
95 .type alias7, @tls_object
96 .set sym7, alias7
98 .global sym8
99 .type sym8, @function
100 .global alias8
101 alias8:
102 .type alias8, @tls_object
103 .set sym8, alias8
105 .global sym9
106 .type sym9, @tls_object
107 alias9:
108 .global alias9
109 .type alias9, @object
110 .set sym9, alias9
112 .global sym10
113 .type sym10, @tls_object
114 alias10:
115 .global alias10
116 .type alias10, @notype
117 .set sym10, alias10
119 .global sym11
120 .type sym11, @tls_object
121 alias11:
122 .global alias11
123 .type alias11, @gnu_indirect_function
124 .set sym11, alias11
126 .global sym12
127 .type sym12, @tls_object
128 alias12:
129 .global alias12
130 .type alias12, @function
131 .set sym12, alias12
133 // CHECK: Symbol {
134 // CHECK: Name: bar
135 // CHECK-NEXT: Value: 0x0
136 // CHECK-NEXT: Size: 0
137 // CHECK-NEXT: Binding: Global
138 // CHECK-NEXT: Type: Object
139 // CHECK-NEXT: Other: 0
140 // CHECK-NEXT: Section: .text
141 // CHECK-NEXT: }
142 // CHECK-NEXT: Symbol {
143 // CHECK-NEXT: Name: foo
144 // CHECK-NEXT: Value: 0x0
145 // CHECK-NEXT: Size: 0
146 // CHECK-NEXT: Binding: Global
147 // CHECK-NEXT: Type: Function
148 // CHECK-NEXT: Other: 0
149 // CHECK-NEXT: Section: .text
150 // CHECK-NEXT: }
151 // CHECK-NEXT: Symbol {
152 // CHECK-NEXT: Name: func
153 // CHECK-NEXT: Value: 0x0
154 // CHECK-NEXT: Size: 0
155 // CHECK-NEXT: Binding: Global
156 // CHECK-NEXT: Type: Function
157 // CHECK-NEXT: Other: 0
158 // CHECK-NEXT: Section: .text
159 // CHECK-NEXT: }
160 // CHECK-NEXT: Symbol {
161 // CHECK-NEXT: Name: ifunc
162 // CHECK-NEXT: Value: 0x0
163 // CHECK-NEXT: Size: 0
164 // CHECK-NEXT: Binding: Global
165 // CHECK-NEXT: Type: GNU_IFunc
166 // CHECK-NEXT: Other: 0
167 // CHECK-NEXT: Section: .text
168 // CHECK-NEXT: }
169 // CHECK-NEXT: Symbol {
170 // CHECK-NEXT: Name: obj
171 // CHECK-NEXT: Value: 0x0
172 // CHECK-NEXT: Size: 0
173 // CHECK-NEXT: Binding: Global
174 // CHECK-NEXT: Type: Object
175 // CHECK-NEXT: Other: 0
176 // CHECK-NEXT: Section: .text
177 // CHECK-NEXT: }
178 // CHECK-NEXT: Symbol {
179 // CHECK-NEXT: Name: sym1
180 // CHECK-NEXT: Value: 0x0
181 // CHECK-NEXT: Size: 0
182 // CHECK-NEXT: Binding: Global (0x1)
183 // CHECK-NEXT: Type: GNU_IFunc (0xA)
184 // CHECK-NEXT: Other: 0
185 // CHECK-NEXT: Section: .text
186 // CHECK-NEXT: }
187 // CHECK-NEXT: Symbol {
188 // CHECK-NEXT: Name: sym10
189 // CHECK-NEXT: Value: 0x0
190 // CHECK-NEXT: Size: 0
191 // CHECK-NEXT: Binding: Global (0x1)
192 // CHECK-NEXT: Type: TLS (0x6)
193 // CHECK-NEXT: Other: 0
194 // CHECK-NEXT: Section: .text
195 // CHECK-NEXT: }
196 // CHECK-NEXT: Symbol {
197 // CHECK-NEXT: Name: sym11
198 // CHECK-NEXT: Value: 0x0
199 // CHECK-NEXT: Size: 0
200 // CHECK-NEXT: Binding: Global (0x1)
201 // CHECK-NEXT: Type: TLS (0x6)
202 // CHECK-NEXT: Other: 0
203 // CHECK-NEXT: Section: .text
204 // CHECK-NEXT: }
205 // CHECK-NEXT: Symbol {
206 // CHECK-NEXT: Name: sym12
207 // CHECK-NEXT: Value: 0x0
208 // CHECK-NEXT: Size: 0
209 // CHECK-NEXT: Binding: Global (0x1)
210 // CHECK-NEXT: Type: TLS (0x6)
211 // CHECK-NEXT: Other: 0
212 // CHECK-NEXT: Section: .text
213 // CHECK-NEXT: }
214 // CHECK-NEXT: Symbol {
215 // CHECK-NEXT: Name: sym2
216 // CHECK-NEXT: Value: 0x0
217 // CHECK-NEXT: Size: 0
218 // CHECK-NEXT: Binding: Global (0x1)
219 // CHECK-NEXT: Type: GNU_IFunc (0xA)
220 // CHECK-NEXT: Other: 0
221 // CHECK-NEXT: Section: .text
222 // CHECK-NEXT: }
223 // CHECK-NEXT: Symbol {
224 // CHECK-NEXT: Name: sym3
225 // CHECK-NEXT: Value: 0x0
226 // CHECK-NEXT: Size: 0
227 // CHECK-NEXT: Binding: Global (0x1)
228 // CHECK-NEXT: Type: GNU_IFunc (0xA)
229 // CHECK-NEXT: Other: 0
230 // CHECK-NEXT: Section: .text
231 // CHECK-NEXT: }
232 // CHECK-NEXT: Symbol {
233 // CHECK-NEXT: Name: sym4
234 // CHECK-NEXT: Value: 0x0
235 // CHECK-NEXT: Size: 0
236 // CHECK-NEXT: Binding: Global (0x1)
237 // CHECK-NEXT: Type: Function (0x2)
238 // CHECK-NEXT: Other: 0
239 // CHECK-NEXT: Section: .text
240 // CHECK-NEXT: }
241 // CHECK-NEXT: Symbol {
242 // CHECK-NEXT: Name: sym5
243 // CHECK-NEXT: Value: 0x0
244 // CHECK-NEXT: Size: 0
245 // CHECK-NEXT: Binding: Global (0x1)
246 // CHECK-NEXT: Type: Function (0x2)
247 // CHECK-NEXT: Other: 0
248 // CHECK-NEXT: Section: .text
249 // CHECK-NEXT: }
250 // CHECK-NEXT: Symbol {
251 // CHECK-NEXT: Name: sym6
252 // CHECK-NEXT: Value: 0x0
253 // CHECK-NEXT: Size: 0
254 // CHECK-NEXT: Binding: Global (0x1)
255 // CHECK-NEXT: Type: Object (0x1)
256 // CHECK-NEXT: Other: 0
257 // CHECK-NEXT: Section: .text
258 // CHECK-NEXT: }
259 // CHECK-NEXT: Symbol {
260 // CHECK-NEXT: Name: sym7
261 // CHECK-NEXT: Value: 0x0
262 // CHECK-NEXT: Size: 0
263 // CHECK-NEXT: Binding: Global (0x1)
264 // CHECK-NEXT: Type: GNU_IFunc (0xA)
265 // CHECK-NEXT: Other: 0
266 // CHECK-NEXT: Section: .text
267 // CHECK-NEXT: }
268 // CHECK-NEXT: Symbol {
269 // CHECK-NEXT: Name: sym8
270 // CHECK-NEXT: Value: 0x0
271 // CHECK-NEXT: Size: 0
272 // CHECK-NEXT: Binding: Global (0x1)
273 // CHECK-NEXT: Type: Function (0x2)
274 // CHECK-NEXT: Other: 0
275 // CHECK-NEXT: Section: .text
276 // CHECK-NEXT: }
277 // CHECK-NEXT: Symbol {
278 // CHECK-NEXT: Name: sym9
279 // CHECK-NEXT: Value: 0x0
280 // CHECK-NEXT: Size: 0
281 // CHECK-NEXT: Binding: Global (0x1)
282 // CHECK-NEXT: Type: TLS (0x6)
283 // CHECK-NEXT: Other: 0
284 // CHECK-NEXT: Section: .text
285 // CHECK-NEXT: }
286 // CHECK-NEXT: Symbol {
287 // CHECK-NEXT: Name: tls
288 // CHECK-NEXT: Value: 0x0
289 // CHECK-NEXT: Size: 0
290 // CHECK-NEXT: Binding: Global
291 // CHECK-NEXT: Type: TLS
292 // CHECK-NEXT: Other: 0
293 // CHECK-NEXT: Section: .text
294 // CHECK-NEXT: }
295 // CHECK-NEXT: Symbol {
296 // CHECK-NEXT: Name: tls_quoted
297 // CHECK-NEXT: Value: 0x0
298 // CHECK-NEXT: Size: 0
299 // CHECK-NEXT: Binding: Global
300 // CHECK-NEXT: Type: TLS
301 // CHECK-NEXT: Other: 0
302 // CHECK-NEXT: Section: .text
303 // CHECK-NEXT: }
304 // CHECK-NEXT: Symbol {
305 // CHECK-NEXT: Name: tls_upper_case
306 // CHECK-NEXT: Value: 0x0
307 // CHECK-NEXT: Size: 0
308 // CHECK-NEXT: Binding: Global
309 // CHECK-NEXT: Type: TLS
310 // CHECK-NEXT: Other: 0
311 // CHECK-NEXT: Section: .text
312 // CHECK-NEXT: }
313 // CHECK-NEXT: Symbol {
314 // CHECK-NEXT: Name: zed
315 // CHECK-NEXT: Value: 0x0
316 // CHECK-NEXT: Size: 0
317 // CHECK-NEXT: Binding: Unique (0xA)
318 // CHECK-NEXT: Type: Object (0x1)
319 // CHECK-NEXT: Other: 0
320 // CHECK-NEXT: Section: .text
321 // CHECK-NEXT: }
322 // CHECK-NEXT: ]