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  ulh $5, 0
64  ulhu $5, 0
65
66  ulw $8, 2
67  ulw $8, 0x8000
68  ulw $8, 2($9)
69  ulw $8, 0x8000($9)
70
71  jal foo
72  .option pic2
73  jal foo
74  .option pic0
75
76  add $4, $5, $6
77
78  .set noreorder
79  .set nomacro
80  li  $8, -16
81# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
82  li  $8, 16
83# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
84  li  $8, 161616
85# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
86
87  la  $8, 16
88# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
89  la  $8, 161616
90# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
91  la  $8, 16($9)
92# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
93  la  $8, 161616($9)
94# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
95  la  $8, symbol
96# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
97
98  jal $25
99# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
100  jal $4, $25
101# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
102
103  bne $2, 0, 1332
104# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
105  bne $2, 1, 1332
106# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
107  beq $2, 0, 1332
108# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
109  beq $2, 1, 1332
110# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
111
112  blt $7, $8, local_label
113# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
114  blt $7, $0, local_label
115# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
116  blt $0, $8, local_label
117# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
118  blt $0, $0, local_label
119# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
120
121  bltu $7, $8, local_label
122# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
123  bltu $7, $0, local_label
124# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
125  bltu $0, $8, local_label
126# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
127  bltu $0, $0, local_label
128# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
129
130  ble $7, $8, local_label
131# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
132  ble $7, $0, local_label
133# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
134  ble $0, $8, local_label
135# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
136  ble $0, $0, local_label
137# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
138
139  bleu $7, $8, local_label
140# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
141  bleu $7, $0, local_label
142# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
143  bleu $0, $8, local_label
144# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
145  bleu $0, $0, local_label
146# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
147
148  bge $7, $8, local_label
149# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
150  bge $7, $0, local_label
151# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
152  bge $0, $8, local_label
153# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
154  bge $0, $0, local_label
155# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
156
157  bgeu $7, $8, local_label
158# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
159  bgeu $7, $0, local_label
160# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
161  bgeu $0, $8, local_label
162# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
163  bgeu $0, $0, local_label
164# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
165
166  bgt $7, $8, local_label
167# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
168  bgt $7, $0, local_label
169# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
170  bgt $0, $8, local_label
171# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
172  bgt $0, $0, local_label
173# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
174
175  bgtu $7, $8, local_label
176# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
177  bgtu $7, $0, local_label
178# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
179  bgtu $0, $8, local_label
180# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
181  bgtu $0, $0, local_label
182# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
183
184  bnel $2, 0, local_label
185# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
186  bnel $2, 1, local_label
187# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
188  beql $2, 0, local_label
189# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
190  beql $2, 1, local_label
191# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
192
193  ulh $5, 0
194# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
195  ulhu $5, 0
196# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
197
198  ulw $8, 2
199# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
200  ulw $8, 0x8000
201# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
202  ulw $8, 2($9)
203# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
204  ulw $8, 0x8000($9)
205# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
206
207  jal foo
208# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
209  .option pic2
210  jal foo
211# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
212  .option pic0
213
214  add $4, $5, $6
215# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
216