[mips][ias] Range check uimm10 operands
[oota-llvm.git] / test / MC / Mips / target-soft-float.s
1 # RUN: not llvm-mc %s -triple=mips-unknown-linux -mcpu=mips32 -mattr=+soft-float 2>&1 |\
2 # RUN:   FileCheck %s --check-prefix=32
3 # RUN: not llvm-mc %s -triple=mips-unknown-linux -mcpu=mips64 -mattr=+soft-float 2>&1 |\
4 # RUN:   FileCheck %s --check-prefix=64
5 # RUN: not llvm-mc %s -triple=mips-unknown-linux -mcpu=mips32r2 -mattr=+soft-float 2>&1 |\
6 # RUN:   FileCheck %s --check-prefix=R2
7 # RUN: not llvm-mc %s -triple=mips-unknown-linux -mcpu=mips32r6 -mattr=+soft-float 2>&1 |\
8 # RUN:   FileCheck %s --check-prefix=R6
9
10 foo:
11   dmfc1      $7, $f2
12   # 64: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
13   dmtc1      $6, $f2
14   # 64: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
15
16   ceil.l.d   $f2, $f2
17   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
18   ceil.l.s   $f2, $f2
19   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
20   cvt.d.l    $f2, $f2
21   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
22   cvt.l.d    $f2, $f2
23   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
24   cvt.l.s    $f2, $f2
25   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
26   cvt.s.l    $f2, $f2
27   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
28   floor.l.d  $f2, $f2
29   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
30   floor.l.s  $f2, $f2
31   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
32   ldxc1      $f2, $4($6)
33   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
34   luxc1      $f2, $4($6)
35   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
36   lwxc1      $f2, $4($6)
37   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
38   mfhc1      $7, $f2
39   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
40   msub.s     $f2, $f2, $f2, $f2
41   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
42   mthc1      $7, $f2
43   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
44   nmadd.s    $f2, $f2, $f2, $f2
45   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
46   nmsub.s    $f2, $f2, $f2, $f2
47   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
48   round.l.s  $f2, $f2
49   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
50   sdxc1      $f2, $4($6)
51   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
52   suxc1      $f2, $4($6)
53   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
54   swxc1      $f2, $4($6)
55   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
56   trunc.l.d  $f2, $f2
57   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
58   trunc.l.s  $f2, $f2
59   # R2: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
60
61   bc1eqz     $f2, 123
62   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
63   bc1nez     $f2, 456
64   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
65   class.d    $f2, $f2
66   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
67   class.s    $f2, $f2
68   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
69   cmp.af.d   $f2, $f2, $f2
70   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
71   cmp.af.s   $f2, $f2, $f2
72   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
73   cmp.eq.d   $f2, $f2, $f2
74   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
75   cmp.eq.s   $f2, $f2, $f2
76   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
77   cmp.le.d   $f2, $f2, $f2
78   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
79   cmp.le.s   $f2, $f2, $f2
80   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
81   cmp.lt.d   $f2, $f2, $f2
82   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
83   cmp.lt.s   $f2, $f2, $f2
84   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
85   cmp.saf.d  $f2, $f2, $f2
86   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
87   cmp.saf.s  $f2, $f2, $f2
88   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
89   cmp.seq.d  $f2, $f2, $f2
90   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
91   cmp.seq.s  $f2, $f2, $f2
92   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
93   cmp.sle.d  $f2, $f2, $f2
94   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
95   cmp.sle.s  $f2, $f2, $f2
96   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
97   cmp.slt.d  $f2, $f2, $f2
98   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
99   cmp.slt.s  $f2, $f2, $f2
100   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
101   cmp.sueq.d $f2, $f2, $f2
102   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
103   cmp.sueq.s $f2, $f2, $f2
104   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
105   cmp.sule.d $f2, $f2, $f2
106   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
107   cmp.sule.s $f2, $f2, $f2
108   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
109   cmp.sult.d $f2, $f2, $f2
110   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
111   cmp.sult.s $f2, $f2, $f2
112   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
113   cmp.sun.d  $f2, $f2, $f2
114   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
115   cmp.sun.s  $f2, $f2, $f2
116   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
117   cmp.ueq.d  $f2, $f2, $f2
118   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
119   cmp.ueq.s  $f2, $f2, $f2
120   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
121   cmp.ule.d  $f2, $f2, $f2
122   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
123   cmp.ule.s  $f2, $f2, $f2
124   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
125   cmp.ult.d  $f2, $f2, $f2
126   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
127   cmp.ult.s  $f2, $f2, $f2
128   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
129   cmp.un.d   $f2, $f2, $f2
130   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
131   cmp.un.s   $f2, $f2, $f2
132   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
133   maddf.d    $f2, $f2, $f2
134   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
135   maddf.s    $f2, $f2, $f2
136   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
137   max.d      $f2, $f2, $f2
138   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
139   max.s      $f2, $f2, $f2
140   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
141   maxa.d     $f2, $f2, $f2
142   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
143   maxa.s     $f2, $f2, $f2
144   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
145   min.d      $f2, $f2, $f2
146   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
147   min.s      $f2, $f2, $f2
148   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
149   mina.d     $f2, $f2, $f2
150   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
151   mina.s     $f2, $f2, $f2
152   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
153   msubf.d    $f2, $f2, $f2
154   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
155   msubf.s    $f2, $f2, $f2
156   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
157   rint.d     $f2, $f2
158   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
159   rint.s     $f2, $f2
160   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
161   sel.d      $f2, $f2, $f2
162   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
163   sel.s      $f2, $f2, $f2
164   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
165   seleqz.d   $f2, $f2, $f2
166   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
167   seleqz.s   $f2, $f2, $f2
168   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
169   selnez.d   $f2, $f2, $f2
170   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
171   selnez.s   $f2, $f2, $f2
172   # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
173
174   abs.d      $f2, $f2
175   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
176   abs.s      $f2, $f2
177   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
178   add.d      $f2, $f2, $f2
179   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
180   add.s      $f2, $f2, $f2
181   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
182   c.eq.d     $f2, $f2
183   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
184   c.eq.s     $f2, $f2
185   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
186   c.f.d      $f2, $f2
187   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
188   c.f.s      $f2, $f2
189   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
190   c.le.d     $f2, $f2
191   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
192   c.le.s     $f2, $f2
193   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
194   c.lt.d     $f2, $f2
195   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
196   c.lt.s     $f2, $f2
197   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
198   c.nge.d    $f2, $f2
199   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
200   c.nge.s    $f2, $f2
201   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
202   c.ngl.d    $f2, $f2
203   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
204   c.ngl.s    $f2, $f2
205   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
206   c.ngle.d   $f2, $f2
207   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
208   c.ngle.s   $f2, $f2
209   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
210   c.ngt.d    $f2, $f2
211   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
212   c.ngt.s    $f2, $f2
213   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
214   c.ole.d    $f2, $f2
215   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
216   c.ole.s    $f2, $f2
217   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
218   c.olt.d    $f2, $f2
219   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
220   c.olt.s    $f2, $f2
221   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
222   c.seq.d    $f2, $f2
223   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
224   c.seq.s    $f2, $f2
225   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
226   c.sf.d     $f2, $f2
227   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
228   c.sf.s     $f2, $f2
229   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
230   c.ueq.d    $f2, $f2
231   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
232   c.ueq.s    $f2, $f2
233   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
234   c.ule.d    $f2, $f2
235   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
236   c.ule.s    $f2, $f2
237   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
238   c.ult.d    $f2, $f2
239   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
240   c.ult.s    $f2, $f2
241   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
242   c.un.d     $f2, $f2
243   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
244   c.un.s     $f2, $f2
245   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
246   ceil.w.d   $f2, $f2
247   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
248   ceil.w.s   $f2, $f2
249   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
250   cvt.d.s    $f2, $f2
251   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
252   cvt.d.w    $f2, $f2
253   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
254   cvt.s.d    $f2, $f2
255   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
256   cvt.s.w    $f2, $f2
257   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
258   cvt.w.d    $f2, $f2
259   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
260   cvt.w.s    $f2, $f2
261   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
262   div.d      $f2, $f2, $f2
263   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
264   div.s      $f2, $f2, $f2
265   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
266   floor.w.d  $f2, $f2
267   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
268   floor.w.s  $f2, $f2
269   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
270   ldc1       $f2, 16($7)
271   # FIXME: LDC1 is correctly rejected but the wrong error message is emitted.
272   # 32: :[[@LINE-2]]:19: error: invalid operand for instruction
273   lwc1       $f2, 16($7)
274   # FIXME: LWC1 is correctly rejected but the wrong error message is emitted.
275   # 32: :[[@LINE-2]]:19: error: invalid operand for instruction
276   madd.s     $f2, $f2, $f2, $f2
277   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
278   mfc1       $7, $f2
279   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
280   mov.d      $f2, $f2
281   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
282   mov.s      $f2, $f2
283   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
284   movf.d     $f2, $f2, $fcc2
285   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
286   movf.s     $f2, $f2, $fcc5
287   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
288   movn.d     $f2, $f2, $6
289   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
290   movn.s     $f2, $f2, $6
291   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
292   movt.d     $f2, $f2, $fcc0
293   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
294   movt.s     $f2, $f2, $fcc1
295   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
296   movz.d     $f2, $f2, $6
297   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
298   movz.s     $f2, $f2, $6
299   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
300   mtc1       $7, $f2
301   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
302   mul.d      $f2, $f2, $f2
303   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
304   mul.s      $f2, $f2, $f2
305   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
306   neg.d      $f2, $f2
307   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
308   neg.s      $f2, $f2
309   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
310   round.w.d  $f2, $f2
311   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
312   round.w.s  $f2, $f2
313   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
314   sdc1       $f2, 16($7)
315   # FIXME: SDC1 is correctly rejected but the wrong error message is emitted.
316   # 32: :[[@LINE-2]]:19: error: invalid operand for instruction
317   sqrt.d     $f2, $f2
318   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
319   sqrt.s     $f2, $f2
320   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
321   sub.d      $f2, $f2, $f2
322   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
323   sub.s      $f2, $f2, $f2
324   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
325   swc1       $f2, 16($7)
326   # FIXME: SWC1 is correctly rejected but the wrong error message is emitted.
327   # 32: :[[@LINE-2]]:19: error: invalid operand for instruction
328   trunc.w.d  $f2, $f2
329   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
330   trunc.w.s  $f2, $f2
331   # 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled