Home | History | Annotate | Download | only in Mips
      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
    332