brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.1 KiB · e740372 Raw
215 lines · plain
1# RUN: llvm-mc  %s -triple=mipsel-unknown-linux -show-encoding -show-inst -mcpu=mips32r2 | FileCheck %s --check-prefixes=CHECK,CHECK-322# RUN: llvm-mc  %s -triple=mips64el-unknown-linux -show-encoding -show-inst -mcpu=mips64r2 | FileCheck %s --check-prefixes=CHECK,CHECK-643# Check that the assembler can handle the documented syntax4# for FPU instructions.5#------------------------------------------------------------------------------6# FP aritmetic  instructions7#------------------------------------------------------------------------------8 9# CHECK:  abs.d      $f12, $f14         # encoding: [0x05,0x73,0x20,0x46]10# CHECK:  abs.s      $f6, $f7           # encoding: [0x85,0x39,0x00,0x46]11# CHECK:  add.d      $f8, $f12, $f14    # encoding: [0x00,0x62,0x2e,0x46]12# CHECK:  add.s      $f9, $f6, $f7      # encoding: [0x40,0x32,0x07,0x46]13# CHECK:  floor.w.d  $f12, $f14         # encoding: [0x0f,0x73,0x20,0x46]14# CHECK:  floor.w.s  $f6, $f7           # encoding: [0x8f,0x39,0x00,0x46]15# CHECK:  ceil.w.d   $f12, $f14         # encoding: [0x0e,0x73,0x20,0x46]16# CHECK:  ceil.w.s   $f6, $f7           # encoding: [0x8e,0x39,0x00,0x46]17# CHECK:  mul.d      $f8, $f12, $f14    # encoding: [0x02,0x62,0x2e,0x46]18# CHECK:  mul.s      $f9, $f6, $f7      # encoding: [0x42,0x32,0x07,0x46]19# CHECK:  neg.d      $f12, $f14         # encoding: [0x07,0x73,0x20,0x46]20# CHECK:  neg.s      $f6, $f7           # encoding: [0x87,0x39,0x00,0x46]21# CHECK:  round.w.d  $f12, $f14         # encoding: [0x0c,0x73,0x20,0x46]22# CHECK:  round.w.s  $f6, $f7           # encoding: [0x8c,0x39,0x00,0x46]23# CHECK:  sqrt.d     $f12, $f14         # encoding: [0x04,0x73,0x20,0x46]24# CHECK:  sqrt.s     $f6, $f7           # encoding: [0x84,0x39,0x00,0x46]25# CHECK:  sub.d      $f8, $f12, $f14    # encoding: [0x01,0x62,0x2e,0x46]26# CHECK:  sub.s      $f9, $f6, $f7      # encoding: [0x41,0x32,0x07,0x46]27# CHECK:  trunc.w.d  $f12, $f14         # encoding: [0x0d,0x73,0x20,0x46]28# CHECK:  trunc.w.s  $f6, $f7           # encoding: [0x8d,0x39,0x00,0x46]29 30    abs.d      $f12,$f1431    abs.s      $f6,$f732    add.d      $f8,$f12,$f1433    add.s      $f9,$f6,$f734    floor.w.d  $f12,$f1435    floor.w.s  $f6,$f736    ceil.w.d   $f12,$f1437    ceil.w.s   $f6,$f738    mul.d      $f8,$f12,$f1439    mul.s      $f9,$f6, $f740    neg.d      $f12,$f1441    neg.s      $f6,$f742    round.w.d  $f12,$f1443    round.w.s  $f6,$f744    sqrt.d     $f12,$f1445    sqrt.s     $f6,$f746    sub.d      $f8,$f12,$f1447    sub.s      $f9,$f6,$f748    trunc.w.d  $f12,$f1449    trunc.w.s  $f6,$f750 51#------------------------------------------------------------------------------52# FP compare instructions53#------------------------------------------------------------------------------54 55# CHECK:  c.eq.d    $f12, $f14        # encoding: [0x32,0x60,0x2e,0x46]56# CHECK:  c.eq.s    $f6, $f7          # encoding: [0x32,0x30,0x07,0x46]57# CHECK:  c.f.d     $f12, $f14        # encoding: [0x30,0x60,0x2e,0x46]58# CHECK:  c.f.s     $f6, $f7          # encoding: [0x30,0x30,0x07,0x46]59# CHECK:  c.le.d    $f12, $f14        # encoding: [0x3e,0x60,0x2e,0x46]60# CHECK:  c.le.s    $f6, $f7          # encoding: [0x3e,0x30,0x07,0x46]61# CHECK:  c.lt.d    $f12, $f14        # encoding: [0x3c,0x60,0x2e,0x46]62# CHECK:  c.lt.s    $f6, $f7          # encoding: [0x3c,0x30,0x07,0x46]63# CHECK:  c.nge.d   $f12, $f14        # encoding: [0x3d,0x60,0x2e,0x46]64# CHECK:  c.nge.s   $f6, $f7          # encoding: [0x3d,0x30,0x07,0x46]65# CHECK:  c.ngl.d   $f12, $f14        # encoding: [0x3b,0x60,0x2e,0x46]66# CHECK:  c.ngl.s   $f6, $f7          # encoding: [0x3b,0x30,0x07,0x46]67# CHECK:  c.ngle.d  $f12, $f14        # encoding: [0x39,0x60,0x2e,0x46]68# CHECK:  c.ngle.s  $f6, $f7          # encoding: [0x39,0x30,0x07,0x46]69# CHECK:  c.ngt.d   $f12, $f14        # encoding: [0x3f,0x60,0x2e,0x46]70# CHECK:  c.ngt.s   $f6, $f7          # encoding: [0x3f,0x30,0x07,0x46]71# CHECK:  c.ole.d   $f12, $f14        # encoding: [0x36,0x60,0x2e,0x46]72# CHECK:  c.ole.s   $f6, $f7          # encoding: [0x36,0x30,0x07,0x46]73# CHECK:  c.olt.d   $f12, $f14        # encoding: [0x34,0x60,0x2e,0x46]74# CHECK:  c.olt.s   $f6, $f7          # encoding: [0x34,0x30,0x07,0x46]75# CHECK:  c.seq.d   $f12, $f14        # encoding: [0x3a,0x60,0x2e,0x46]76# CHECK:  c.seq.s   $f6, $f7          # encoding: [0x3a,0x30,0x07,0x46]77# CHECK:  c.sf.d    $f12, $f14        # encoding: [0x38,0x60,0x2e,0x46]78# CHECK:  c.sf.s    $f6, $f7          # encoding: [0x38,0x30,0x07,0x46]79# CHECK:  c.ueq.d   $f12, $f14        # encoding: [0x33,0x60,0x2e,0x46]80# CHECK:  c.ueq.s   $f28, $f18        # encoding: [0x33,0xe0,0x12,0x46]81# CHECK:  c.ule.d   $f12, $f14        # encoding: [0x37,0x60,0x2e,0x46]82# CHECK:  c.ule.s   $f6, $f7          # encoding: [0x37,0x30,0x07,0x46]83# CHECK:  c.ult.d   $f12, $f14        # encoding: [0x35,0x60,0x2e,0x46]84# CHECK:  c.ult.s   $f6, $f7          # encoding: [0x35,0x30,0x07,0x46]85# CHECK:  c.un.d    $f12, $f14        # encoding: [0x31,0x60,0x2e,0x46]86# CHECK:  c.un.s    $f6, $f7          # encoding: [0x31,0x30,0x07,0x46]87 88     c.eq.d    $f12,$f1489     c.eq.s    $f6,$f790     c.f.d     $f12,$f1491     c.f.s     $f6,$f792     c.le.d    $f12,$f1493     c.le.s    $f6,$f794     c.lt.d    $f12,$f1495     c.lt.s    $f6,$f796     c.nge.d   $f12,$f1497     c.nge.s   $f6,$f798     c.ngl.d   $f12,$f1499     c.ngl.s   $f6,$f7100     c.ngle.d  $f12,$f14101     c.ngle.s  $f6,$f7102     c.ngt.d   $f12,$f14103     c.ngt.s   $f6,$f7104     c.ole.d   $f12,$f14105     c.ole.s   $f6,$f7106     c.olt.d   $f12,$f14107     c.olt.s   $f6,$f7108     c.seq.d   $f12,$f14109     c.seq.s   $f6,$f7110     c.sf.d    $f12,$f14111     c.sf.s    $f6,$f7112     c.ueq.d   $f12,$f14113     c.ueq.s   $f28,$f18114     c.ule.d   $f12,$f14115     c.ule.s   $f6,$f7116     c.ult.d   $f12,$f14117     c.ult.s   $f6,$f7118     c.un.d    $f12,$f14119     c.un.s    $f6,$f7120 121#------------------------------------------------------------------------------122# FP convert instructions123#------------------------------------------------------------------------------124# CHECK:  cvt.d.s   $f6, $f7          # encoding: [0xa1,0x39,0x00,0x46]125# CHECK:  cvt.d.w   $f12, $f14        # encoding: [0x21,0x73,0x80,0x46]126# CHECK-32:                           # <MCInst #{{.*}} CVT_D32_W127# CHECK-64:                           # <MCInst #{{.*}} CVT_D64_W128# CHECK:  cvt.s.d   $f12, $f14        # encoding: [0x20,0x73,0x20,0x46]129# CHECK:  cvt.s.w   $f6, $f7          # encoding: [0xa0,0x39,0x80,0x46]130# CHECK:  cvt.w.d   $f12, $f14        # encoding: [0x24,0x73,0x20,0x46]131# CHECK:  cvt.w.s   $f6, $f7          # encoding: [0xa4,0x39,0x00,0x46]132 133  cvt.d.s   $f6,$f7134  cvt.d.w   $f12,$f14135  cvt.s.d   $f12,$f14136  cvt.s.w   $f6,$f7137  cvt.w.d   $f12,$f14138  cvt.w.s   $f6,$f7139 140#------------------------------------------------------------------------------141# FP move instructions142#------------------------------------------------------------------------------143# CHECK: bc1f    $BB_1                 # encoding: [A,A,0x00,0x45]144# CHECK: #   fixup A - offset: 0, value: $BB_1-4, kind: fixup_Mips_PC16145 146# CHECK:  cfc1    $6, $0               # encoding: [0x00,0x00,0x46,0x44]147# CHECK:  ctc1    $10, $31             # encoding: [0x00,0xf8,0xca,0x44]148# CHECK:  mfc1    $6, $f7              # encoding: [0x00,0x38,0x06,0x44]149# CHECK:  mfhi    $5                   # encoding: [0x10,0x28,0x00,0x00]150# CHECK:  mflo    $5                   # encoding: [0x12,0x28,0x00,0x00]151# CHECK:  mov.d   $f6, $f8             # encoding: [0x86,0x41,0x20,0x46]152# CHECK:  mov.s   $f6, $f7             # encoding: [0x86,0x39,0x00,0x46]153# CHECK:  mtc1    $6, $f7              # encoding: [0x00,0x38,0x86,0x44]154# CHECK:  mthi    $7                   # encoding: [0x11,0x00,0xe0,0x00]155# CHECK:  mtlo    $7                   # encoding: [0x13,0x00,0xe0,0x00]156# CHECK:  swc1    $f9, 9158($7)        # encoding: [0xc6,0x23,0xe9,0xe4]157# CHECK:  mfc0    $6, $7, 0               # encoding: [0x00,0x38,0x06,0x40]158# CHECK:  mtc0    $9, $8, 0               # encoding: [0x00,0x40,0x89,0x40]159# CHECK:  mfc2    $5, $7, 0               # encoding: [0x00,0x38,0x05,0x48]160# CHECK:  mtc2    $9, $4, 0               # encoding: [0x00,0x20,0x89,0x48]161# CHECK:  mfc0    $6, $7, 2               # encoding: [0x02,0x38,0x06,0x40]162# CHECK:  mtc0    $9, $8, 3               # encoding: [0x03,0x40,0x89,0x40]163# CHECK:  mfc2    $5, $7, 4               # encoding: [0x04,0x38,0x05,0x48]164# CHECK:  mtc2    $9, $4, 5               # encoding: [0x05,0x20,0x89,0x48]165# CHECK:  movf    $2, $1, $fcc0           # encoding: [0x01,0x10,0x20,0x00]166# CHECK:  movt    $2, $1, $fcc0           # encoding: [0x01,0x10,0x21,0x00]167# CHECK:  movt    $4, $5, $fcc4           # encoding: [0x01,0x20,0xb1,0x00]168# CHECK:  movf.d  $f4, $f6, $fcc2         # encoding: [0x11,0x31,0x28,0x46]169# CHECK:  movf.s  $f4, $f6, $fcc5         # encoding: [0x11,0x31,0x14,0x46]170# CHECK:  luxc1   $f0, $6($5)             # encoding: [0x05,0x00,0xa6,0x4c]171# CHECK:  suxc1   $f4, $24($5)            # encoding: [0x0d,0x20,0xb8,0x4c]172# CHECK:  lwxc1   $f20, $12($14)          # encoding: [0x00,0x05,0xcc,0x4d]173# CHECK:  swxc1   $f26, $18($22)          # encoding: [0x08,0xd0,0xd2,0x4e]174# CHECK:  mfhc1   $17, $f4                # encoding: [0x00,0x20,0x71,0x44]175# CHECK:  mthc1   $17, $f6                # encoding: [0x00,0x30,0xf1,0x44]176# CHECK:  swc2    $4, 16($sp)             # encoding: [0x10,0x00,0xa4,0xeb]177# CHECK:  sdc2    $4, 16($sp)             # encoding: [0x10,0x00,0xa4,0xfb]178# CHECK:  lwc2    $11, 12($ra)            # encoding: [0x0c,0x00,0xeb,0xcb]179# CHECK:  ldc2    $11, 12($ra)            # encoding: [0x0c,0x00,0xeb,0xdb]180   bc1f    $fcc0, $BB_1181   cfc1    $a2,$0182   ctc1    $10,$31183   mfc1    $a2,$f7184   mfhi    $a1185   mflo    $a1186   mov.d   $f6,$f8187   mov.s   $f6,$f7188   mtc1    $a2,$f7189   mthi    $a3190   mtlo    $a3191   swc1    $f9,9158($a3)192   mfc0    $6, $7193   mtc0    $9, $8194   mfc2    $5, $7195   mtc2    $9, $4196   mfc0    $6, $7, 2197   mtc0    $9, $8, 3198   mfc2    $5, $7, 4199   mtc2    $9, $4, 5200   movf    $2, $1, $fcc0201   movt    $2, $1, $fcc0202   movt    $4, $5, $fcc4203   movf.d  $f4, $f6, $fcc2204   movf.s  $f4, $f6, $fcc5205   luxc1   $f0, $a2($a1)206   suxc1   $f4, $t8($a1)207   lwxc1   $f20, $12($14)208   swxc1   $f26, $s2($s6)209   mfhc1   $17, $f4210   mthc1   $17, $f6211   swc2    $4, 16($sp)212   sdc2    $4, 16($sp)213   lwc2    $11, 12($ra)214   ldc2    $11, 12($ra)215