b6caa4f27f7a9cf91051020026935ee32a6517ce
[oota-llvm.git] / test / CodeGen / X86 / global-sections.ll
1 ; RUN: llc < %s -mtriple=i386-unknown-linux-gnu | FileCheck %s -check-prefix=LINUX
2 ; RUN: llc < %s -mtriple=i386-apple-darwin9.7 | FileCheck %s -check-prefix=DARWIN
3
4
5 ; int G1;
6 @G1 = common global i32 0
7
8 ; LINUX: .type   G1,@object
9 ; LINUX: .comm  G1,4,4
10
11 ; DARWIN: .comm _G1,4,2
12
13
14
15
16 ; const int G2 __attribute__((weak)) = 42;
17 @G2 = weak_odr constant i32 42  
18
19
20 ; TODO: linux drops this into .rodata, we drop it into ".gnu.linkonce.r.G2"
21
22 ; DARWIN: .section __TEXT,__const_coal,coalesced
23 ; DARWIN: _G2:
24 ; DARWIN:    .long 42
25
26
27 ; int * const G3 = &G1;
28 @G3 = constant i32* @G1
29
30 ; DARWIN: .section        __DATA,__const
31 ; DARWIN: .globl _G3
32 ; DARWIN: _G3:
33 ; DARWIN:     .long _G1
34
35
36 ; _Complex long long const G4 = 34;
37 @G4 = constant {i64,i64} { i64 34, i64 0 }
38
39 ; DARWIN: .section        __TEXT,__const
40 ; DARWIN: _G4:
41 ; DARWIN:     .long 34
42
43
44 ; int G5 = 47;
45 @G5 = global i32 47
46
47 ; LINUX: .data
48 ; LINUX: .globl G5
49 ; LINUX: G5:
50 ; LINUX:    .long 47
51
52 ; DARWIN: .section        __DATA,__data
53 ; DARWIN: .globl _G5
54 ; DARWIN: _G5:
55 ; DARWIN:    .long 47
56
57
58 ; PR4584
59 @"foo bar" = linkonce global i32 42
60
61 ; LINUX: .type  foo_20_bar,@object
62 ; LINUX:.section        .gnu.linkonce.d.foo_20_bar,"aw",@progbits
63 ; LINUX: .weak  foo_20_bar
64 ; LINUX: foo_20_bar:
65
66 ; DARWIN: .section              __DATA,__datacoal_nt,coalesced
67 ; DARWIN: .globl        "_foo bar"
68 ; DARWIN:       .weak_definition "_foo bar"
69 ; DARWIN: "_foo bar":
70
71 ; PR4650
72 @G6 = weak_odr constant [1 x i8] c"\01"
73
74 ; LINUX:   .type        G6,@object
75 ; LINUX:   .section     .gnu.linkonce.r.G6,"a",@progbits
76 ; LINUX:   .weak        G6
77 ; LINUX: G6:
78 ; LINUX:   .ascii       "\001"
79 ; LINUX:   .size        G6, 1
80
81 ; DARWIN:  .section __TEXT,__const_coal,coalesced
82 ; DARWIN:  .globl _G6
83 ; DARWIN:  .weak_definition _G6
84 ; DARWIN:_G6:
85 ; DARWIN:  .ascii "\001"
86
87
88 @G7 = constant [10 x i8] c"abcdefghi\00"
89
90 ; DARWIN:       __TEXT,__cstring,cstring_literals
91 ; DARWIN:       .globl _G7
92 ; DARWIN: _G7:
93 ; DARWIN:       .asciz  "abcdefghi"
94
95 ; LINUX:        .section                .rodata.str1.1,"aMS",@progbits,1
96 ; LINUX:        .globl G7
97 ; LINUX: G7:
98 ; LINUX:        .asciz  "abcdefghi"
99
100
101 @G8 = constant [4 x i16] [ i16 1, i16 2, i16 3, i16 0 ]
102
103 ; DARWIN:       .section        __TEXT,__ustring
104 ; DARWIN:       .globl _G8
105 ; DARWIN: _G8:
106
107 ; LINUX:        .section                .rodata.str2.2,"aMS",@progbits,2
108 ; LINUX:        .globl G8
109 ; LINUX:G8:
110
111 @G9 = constant [4 x i32] [ i32 1, i32 2, i32 3, i32 0 ]
112
113 ; DARWIN:       .section        __TEXT,__const
114 ; DARWIN:       .globl _G9
115 ; DARWIN: _G9:
116
117 ; LINUX:        .section                .rodata.str4.4,"aMS",@progbits,4
118 ; LINUX:        .globl G9
119 ; LINUX:G9
120
121
122 @G10 = weak global [100 x i32] zeroinitializer, align 32 ; <[100 x i32]*> [#uses=0]
123
124
125 ; DARWIN:       .section        __DATA,__datacoal_nt,coalesced
126 ; DARWIN: .globl _G10
127 ; DARWIN:       .weak_definition _G10
128 ; DARWIN:       .align  5
129 ; DARWIN: _G10:
130 ; DARWIN:       .space  400
131
132 ; LINUX:        .bss
133 ; LINUX:        .weak   G10
134 ; LINUX:        .align  32
135 ; LINUX: G10:
136 ; LINUX:        .zero   400
137