[mips] Expand JAL instructions when PIC is enabled.
[oota-llvm.git] / test / MC / Mips / set-nomacro.s
1 # RUN: llvm-mc %s -arch=mips -mcpu=mips32 2>&1 | FileCheck %s
2
3 # CHECK-NOT: warning: macro instruction expanded into multiple instructions
4   .set macro
5   li  $8, -16
6   li  $8, 16
7   li  $8, 161616
8
9   la  $8, 16
10   la  $8, 161616
11   la  $8, 16($9)
12   la  $8, 161616($9)
13   la  $8, symbol
14
15   jal $25
16   jal $4, $25
17
18   bne $2, 0, 1332
19   bne $2, 1, 1332
20   beq $2, 0, 1332
21   beq $2, 1, 1332
22
23   blt $7, $8, local_label
24   blt $7, $0, local_label
25   blt $0, $8, local_label
26   blt $0, $0, local_label
27
28   bltu $7, $8, local_label
29   bltu $7, $0, local_label
30   bltu $0, $8, local_label
31   bltu $0, $0, local_label
32
33   ble $7, $8, local_label
34   ble $7, $0, local_label
35   ble $0, $8, local_label
36   ble $0, $0, local_label
37
38   bleu $7, $8, local_label
39   bleu $7, $0, local_label
40   bleu $0, $8, local_label
41   bleu $0, $0, local_label
42
43   bge $7, $8, local_label
44   bge $7, $0, local_label
45   bge $0, $8, local_label
46   bge $0, $0, local_label
47
48   bgeu $7, $8, local_label
49   bgeu $7, $0, local_label
50   bgeu $0, $8, local_label
51   bgeu $0, $0, local_label
52
53   bgt $7, $8, local_label
54   bgt $7, $0, local_label
55   bgt $0, $8, local_label
56   bgt $0, $0, local_label
57
58   bgtu $7, $8, local_label
59   bgtu $7, $0, local_label
60   bgtu $0, $8, local_label
61   bgtu $0, $0, local_label
62
63   ulhu $5, 0
64
65   ulw $8, 2
66   ulw $8, 0x8000
67   ulw $8, 2($9)
68   ulw $8, 0x8000($9)
69
70   jal foo
71   .option pic2
72   jal foo
73   .option pic0
74
75   add $4, $5, $6
76
77   .set noreorder
78   .set nomacro
79   li  $8, -16
80 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
81   li  $8, 16
82 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
83   li  $8, 161616
84 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
85
86   la  $8, 16
87 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
88   la  $8, 161616
89 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
90   la  $8, 16($9)
91 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
92   la  $8, 161616($9)
93 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
94   la  $8, symbol
95 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
96
97   jal $25
98 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
99   jal $4, $25
100 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
101
102   bne $2, 0, 1332
103 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
104   bne $2, 1, 1332
105 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
106   beq $2, 0, 1332
107 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
108   beq $2, 1, 1332
109 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
110
111   blt $7, $8, local_label
112 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
113   blt $7, $0, local_label
114 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
115   blt $0, $8, local_label
116 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
117   blt $0, $0, local_label
118 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
119
120   bltu $7, $8, local_label
121 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
122   bltu $7, $0, local_label
123 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
124   bltu $0, $8, local_label
125 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
126   bltu $0, $0, local_label
127 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
128
129   ble $7, $8, local_label
130 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
131   ble $7, $0, local_label
132 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
133   ble $0, $8, local_label
134 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
135   ble $0, $0, local_label
136 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
137
138   bleu $7, $8, local_label
139 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
140   bleu $7, $0, local_label
141 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
142   bleu $0, $8, local_label
143 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
144   bleu $0, $0, local_label
145 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
146
147   bge $7, $8, local_label
148 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
149   bge $7, $0, local_label
150 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
151   bge $0, $8, local_label
152 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
153   bge $0, $0, local_label
154 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
155
156   bgeu $7, $8, local_label
157 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
158   bgeu $7, $0, local_label
159 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
160   bgeu $0, $8, local_label
161 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
162   bgeu $0, $0, local_label
163 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
164
165   bgt $7, $8, local_label
166 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
167   bgt $7, $0, local_label
168 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
169   bgt $0, $8, local_label
170 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
171   bgt $0, $0, local_label
172 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
173
174   bgtu $7, $8, local_label
175 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
176   bgtu $7, $0, local_label
177 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
178   bgtu $0, $8, local_label
179 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
180   bgtu $0, $0, local_label
181 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
182
183   ulhu $5, 0
184 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
185
186   ulw $8, 2
187 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
188   ulw $8, 0x8000
189 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
190   ulw $8, 2($9)
191 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
192   ulw $8, 0x8000($9)
193 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
194
195   jal foo
196 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
197   .option pic2
198   jal foo
199 # CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
200   .option pic0
201
202   add $4, $5, $6
203 # CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions