Home | History | Annotate | Download | only in PowerPC
      1 
      2 # RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
      3 
      4 # Floating-point facility
      5 
      6 # Floating-point load instructions
      7 
      8 # CHECK: lfs 2, 128(4)                   # encoding: [0xc0,0x44,0x00,0x80]
      9          lfs 2, 128(4)
     10 # CHECK: lfsx 2, 3, 4                    # encoding: [0x7c,0x43,0x24,0x2e]
     11          lfsx 2, 3, 4
     12 # CHECK: lfsu 2, 128(4)                  # encoding: [0xc4,0x44,0x00,0x80]
     13          lfsu 2, 128(4)
     14 # CHECK: lfsux 2, 3, 4                   # encoding: [0x7c,0x43,0x24,0x6e]
     15          lfsux 2, 3, 4
     16 # CHECK: lfd 2, 128(4)                   # encoding: [0xc8,0x44,0x00,0x80]
     17          lfd 2, 128(4)
     18 # CHECK: lfdx 2, 3, 4                    # encoding: [0x7c,0x43,0x24,0xae]
     19          lfdx 2, 3, 4
     20 # CHECK: lfdu 2, 128(4)                  # encoding: [0xcc,0x44,0x00,0x80]
     21          lfdu 2, 128(4)
     22 # CHECK: lfdux 2, 3, 4                   # encoding: [0x7c,0x43,0x24,0xee]
     23          lfdux 2, 3, 4
     24 # CHECK: lfiwax 2, 3, 4                  # encoding: [0x7c,0x43,0x26,0xae]
     25          lfiwax 2, 3, 4
     26 # CHECK: lfiwzx 2, 3, 4                  # encoding: [0x7c,0x43,0x26,0xee]
     27          lfiwzx 2, 3, 4
     28 
     29 # Floating-point store instructions
     30 
     31 # CHECK: stfs 2, 128(4)                  # encoding: [0xd0,0x44,0x00,0x80]
     32          stfs 2, 128(4)
     33 # CHECK: stfsx 2, 3, 4                   # encoding: [0x7c,0x43,0x25,0x2e]
     34          stfsx 2, 3, 4
     35 # CHECK: stfsu 2, 128(4)                 # encoding: [0xd4,0x44,0x00,0x80]
     36          stfsu 2, 128(4)
     37 # CHECK: stfsux 2, 3, 4                  # encoding: [0x7c,0x43,0x25,0x6e]
     38          stfsux 2, 3, 4
     39 # CHECK: stfd 2, 128(4)                  # encoding: [0xd8,0x44,0x00,0x80]
     40          stfd 2, 128(4)
     41 # CHECK: stfdx 2, 3, 4                   # encoding: [0x7c,0x43,0x25,0xae]
     42          stfdx 2, 3, 4
     43 # CHECK: stfdu 2, 128(4)                 # encoding: [0xdc,0x44,0x00,0x80]
     44          stfdu 2, 128(4)
     45 # CHECK: stfdux 2, 3, 4                  # encoding: [0x7c,0x43,0x25,0xee]
     46          stfdux 2, 3, 4
     47 # CHECK: stfiwx 2, 3, 4                  # encoding: [0x7c,0x43,0x27,0xae]
     48          stfiwx 2, 3, 4
     49 
     50 # Floating-point move instructions
     51 
     52 # CHECK: fmr 2, 3                        # encoding: [0xfc,0x40,0x18,0x90]
     53          fmr 2, 3
     54 # CHECK: fmr. 2, 3                       # encoding: [0xfc,0x40,0x18,0x91]
     55          fmr. 2, 3
     56 # CHECK: fneg 2, 3                       # encoding: [0xfc,0x40,0x18,0x50]
     57          fneg 2, 3
     58 # CHECK: fneg. 2, 3                      # encoding: [0xfc,0x40,0x18,0x51]
     59          fneg. 2, 3
     60 # CHECK: fabs 2, 3                       # encoding: [0xfc,0x40,0x1a,0x10]
     61          fabs 2, 3
     62 # CHECK: fabs. 2, 3                      # encoding: [0xfc,0x40,0x1a,0x11]
     63          fabs. 2, 3
     64 # CHECK: fnabs 2, 3                      # encoding: [0xfc,0x40,0x19,0x10]
     65          fnabs 2, 3
     66 # CHECK: fnabs. 2, 3                     # encoding: [0xfc,0x40,0x19,0x11]
     67          fnabs. 2, 3
     68 # FIXME: fcpsgn 2, 3
     69 # FIXME: fcpsgn. 2, 3
     70 
     71 # Floating-point arithmetic instructions
     72 
     73 # CHECK: fadd 2, 3, 4                    # encoding: [0xfc,0x43,0x20,0x2a]
     74          fadd 2, 3, 4
     75 # CHECK: fadd. 2, 3, 4                   # encoding: [0xfc,0x43,0x20,0x2b]
     76          fadd. 2, 3, 4
     77 # CHECK: fadds 2, 3, 4                   # encoding: [0xec,0x43,0x20,0x2a]
     78          fadds 2, 3, 4
     79 # CHECK: fadds. 2, 3, 4                  # encoding: [0xec,0x43,0x20,0x2b]
     80          fadds. 2, 3, 4
     81 # CHECK: fsub 2, 3, 4                    # encoding: [0xfc,0x43,0x20,0x28]
     82          fsub 2, 3, 4
     83 # CHECK: fsub. 2, 3, 4                   # encoding: [0xfc,0x43,0x20,0x29]
     84          fsub. 2, 3, 4
     85 # CHECK: fsubs 2, 3, 4                   # encoding: [0xec,0x43,0x20,0x28]
     86          fsubs 2, 3, 4
     87 # CHECK: fsubs. 2, 3, 4                  # encoding: [0xec,0x43,0x20,0x29]
     88          fsubs. 2, 3, 4
     89 
     90 # CHECK: fmul 2, 3, 4                    # encoding: [0xfc,0x43,0x01,0x32]
     91          fmul 2, 3, 4
     92 # CHECK: fmul. 2, 3, 4                   # encoding: [0xfc,0x43,0x01,0x33]
     93          fmul. 2, 3, 4
     94 # CHECK: fmuls 2, 3, 4                   # encoding: [0xec,0x43,0x01,0x32]
     95          fmuls 2, 3, 4
     96 # CHECK: fmuls. 2, 3, 4                  # encoding: [0xec,0x43,0x01,0x33]
     97          fmuls. 2, 3, 4
     98 # CHECK: fdiv 2, 3, 4                    # encoding: [0xfc,0x43,0x20,0x24]
     99          fdiv 2, 3, 4
    100 # CHECK: fdiv. 2, 3, 4                   # encoding: [0xfc,0x43,0x20,0x25]
    101          fdiv. 2, 3, 4
    102 # CHECK: fdivs 2, 3, 4                   # encoding: [0xec,0x43,0x20,0x24]
    103          fdivs 2, 3, 4
    104 # CHECK: fdivs. 2, 3, 4                  # encoding: [0xec,0x43,0x20,0x25]
    105          fdivs. 2, 3, 4
    106 # CHECK: fsqrt 2, 3                      # encoding: [0xfc,0x40,0x18,0x2c]
    107          fsqrt 2, 3
    108 # CHECK: fsqrt. 2, 3                     # encoding: [0xfc,0x40,0x18,0x2d]
    109          fsqrt. 2, 3
    110 # CHECK: fsqrts 2, 3                     # encoding: [0xec,0x40,0x18,0x2c]
    111          fsqrts 2, 3
    112 # CHECK: fsqrts. 2, 3                    # encoding: [0xec,0x40,0x18,0x2d]
    113          fsqrts. 2, 3
    114 
    115 # CHECK: fre 2, 3                        # encoding: [0xfc,0x40,0x18,0x30]
    116          fre 2, 3
    117 # CHECK: fre. 2, 3                       # encoding: [0xfc,0x40,0x18,0x31]
    118          fre. 2, 3
    119 # CHECK: fres 2, 3                       # encoding: [0xec,0x40,0x18,0x30]
    120          fres 2, 3
    121 # CHECK: fres. 2, 3                      # encoding: [0xec,0x40,0x18,0x31]
    122          fres. 2, 3
    123 # CHECK: frsqrte 2, 3                    # encoding: [0xfc,0x40,0x18,0x34]
    124          frsqrte 2, 3
    125 # CHECK: frsqrte. 2, 3                   # encoding: [0xfc,0x40,0x18,0x35]
    126          frsqrte. 2, 3
    127 # CHECK: frsqrtes 2, 3                   # encoding: [0xec,0x40,0x18,0x34]
    128          frsqrtes 2, 3
    129 # CHECK: frsqrtes. 2, 3                  # encoding: [0xec,0x40,0x18,0x35]
    130          frsqrtes. 2, 3
    131 # FIXME: ftdiv 2, 3, 4
    132 # FIXME: ftsqrt 2, 3, 4
    133 
    134 # CHECK: fmadd 2, 3, 4, 5                # encoding: [0xfc,0x43,0x29,0x3a]
    135          fmadd 2, 3, 4, 5
    136 # CHECK: fmadd. 2, 3, 4, 5               # encoding: [0xfc,0x43,0x29,0x3b]
    137          fmadd. 2, 3, 4, 5
    138 # CHECK: fmadds 2, 3, 4, 5               # encoding: [0xec,0x43,0x29,0x3a]
    139          fmadds 2, 3, 4, 5
    140 # CHECK: fmadds. 2, 3, 4, 5              # encoding: [0xec,0x43,0x29,0x3b]
    141          fmadds. 2, 3, 4, 5
    142 # CHECK: fmsub 2, 3, 4, 5                # encoding: [0xfc,0x43,0x29,0x38]
    143          fmsub 2, 3, 4, 5
    144 # CHECK: fmsub. 2, 3, 4, 5               # encoding: [0xfc,0x43,0x29,0x39]
    145          fmsub. 2, 3, 4, 5
    146 # CHECK: fmsubs 2, 3, 4, 5               # encoding: [0xec,0x43,0x29,0x38]
    147          fmsubs 2, 3, 4, 5
    148 # CHECK: fmsubs. 2, 3, 4, 5              # encoding: [0xec,0x43,0x29,0x39]
    149          fmsubs. 2, 3, 4, 5
    150 # CHECK: fnmadd 2, 3, 4, 5               # encoding: [0xfc,0x43,0x29,0x3e]
    151          fnmadd 2, 3, 4, 5
    152 # CHECK: fnmadd. 2, 3, 4, 5              # encoding: [0xfc,0x43,0x29,0x3f]
    153          fnmadd. 2, 3, 4, 5
    154 # CHECK: fnmadds 2, 3, 4, 5              # encoding: [0xec,0x43,0x29,0x3e]
    155          fnmadds 2, 3, 4, 5
    156 # CHECK: fnmadds. 2, 3, 4, 5             # encoding: [0xec,0x43,0x29,0x3f]
    157          fnmadds. 2, 3, 4, 5
    158 # CHECK: fnmsub 2, 3, 4, 5               # encoding: [0xfc,0x43,0x29,0x3c]
    159          fnmsub 2, 3, 4, 5
    160 # CHECK: fnmsub. 2, 3, 4, 5              # encoding: [0xfc,0x43,0x29,0x3d]
    161          fnmsub. 2, 3, 4, 5
    162 # CHECK: fnmsubs 2, 3, 4, 5              # encoding: [0xec,0x43,0x29,0x3c]
    163          fnmsubs 2, 3, 4, 5
    164 # CHECK: fnmsubs. 2, 3, 4, 5             # encoding: [0xec,0x43,0x29,0x3d]
    165          fnmsubs. 2, 3, 4, 5
    166 
    167 # Floating-point rounding and conversion instructions
    168 
    169 # CHECK: frsp 2, 3                       # encoding: [0xfc,0x40,0x18,0x18]
    170          frsp 2, 3
    171 # CHECK: frsp. 2, 3                      # encoding: [0xfc,0x40,0x18,0x19]
    172          frsp. 2, 3
    173 
    174 # FIXME: fctid 2, 3
    175 # FIXME: fctid. 2, 3
    176 # CHECK: fctidz 2, 3                     # encoding: [0xfc,0x40,0x1e,0x5e]
    177          fctidz 2, 3
    178 # CHECK: fctidz. 2, 3                    # encoding: [0xfc,0x40,0x1e,0x5f]
    179          fctidz. 2, 3
    180 # FIXME: fctidu 2, 3
    181 # FIXME: fctidu. 2, 3
    182 # CHECK: fctiduz 2, 3                    # encoding: [0xfc,0x40,0x1f,0x5e]
    183          fctiduz 2, 3
    184 # CHECK: fctiduz. 2, 3                   # encoding: [0xfc,0x40,0x1f,0x5f]
    185          fctiduz. 2, 3
    186 # FIXME: fctiw 2, 3
    187 # FIXME: fctiw. 2, 3
    188 # CHECK: fctiwz 2, 3                     # encoding: [0xfc,0x40,0x18,0x1e]
    189          fctiwz 2, 3
    190 # CHECK: fctiwz. 2, 3                    # encoding: [0xfc,0x40,0x18,0x1f]
    191          fctiwz. 2, 3
    192 # FIXME: fctiwu 2, 3
    193 # FIXME: fctiwu. 2, 3
    194 # CHECK: fctiwuz 2, 3                    # encoding: [0xfc,0x40,0x19,0x1e]
    195          fctiwuz 2, 3
    196 # CHECK: fctiwuz. 2, 3                   # encoding: [0xfc,0x40,0x19,0x1f]
    197          fctiwuz. 2, 3
    198 # CHECK: fcfid 2, 3                      # encoding: [0xfc,0x40,0x1e,0x9c]
    199          fcfid 2, 3
    200 # CHECK: fcfid. 2, 3                     # encoding: [0xfc,0x40,0x1e,0x9d]
    201          fcfid. 2, 3
    202 # CHECK: fcfidu 2, 3                     # encoding: [0xfc,0x40,0x1f,0x9c]
    203          fcfidu 2, 3
    204 # CHECK: fcfidu. 2, 3                    # encoding: [0xfc,0x40,0x1f,0x9d]
    205          fcfidu. 2, 3
    206 # CHECK: fcfids 2, 3                     # encoding: [0xec,0x40,0x1e,0x9c]
    207          fcfids 2, 3
    208 # CHECK: fcfids. 2, 3                    # encoding: [0xec,0x40,0x1e,0x9d]
    209          fcfids. 2, 3
    210 # CHECK: fcfidus 2, 3                    # encoding: [0xec,0x40,0x1f,0x9c]
    211          fcfidus 2, 3
    212 # CHECK: fcfidus. 2, 3                   # encoding: [0xec,0x40,0x1f,0x9d]
    213          fcfidus. 2, 3
    214 # CHECK: frin 2, 3                       # encoding: [0xfc,0x40,0x1b,0x10]
    215          frin 2, 3
    216 # CHECK: frin. 2, 3                      # encoding: [0xfc,0x40,0x1b,0x11]
    217          frin. 2, 3
    218 # CHECK: frip 2, 3                       # encoding: [0xfc,0x40,0x1b,0x90]
    219          frip 2, 3
    220 # CHECK: frip. 2, 3                      # encoding: [0xfc,0x40,0x1b,0x91]
    221          frip. 2, 3
    222 # CHECK: friz 2, 3                       # encoding: [0xfc,0x40,0x1b,0x50]
    223          friz 2, 3
    224 # CHECK: friz. 2, 3                      # encoding: [0xfc,0x40,0x1b,0x51]
    225          friz. 2, 3
    226 # CHECK: frim 2, 3                       # encoding: [0xfc,0x40,0x1b,0xd0]
    227          frim 2, 3
    228 # CHECK: frim. 2, 3                      # encoding: [0xfc,0x40,0x1b,0xd1]
    229          frim. 2, 3
    230 
    231 # Floating-point compare instructions
    232 
    233 # CHECK: fcmpu 2, 3, 4                   # encoding: [0xfd,0x03,0x20,0x00]
    234          fcmpu 2, 3, 4
    235 # FIXME: fcmpo 2, 3, 4
    236 
    237 # Floating-point select instruction
    238 
    239 # CHECK: fsel 2, 3, 4, 5                 # encoding: [0xfc,0x43,0x29,0x2e]
    240          fsel 2, 3, 4, 5
    241 # CHECK: fsel. 2, 3, 4, 5                # encoding: [0xfc,0x43,0x29,0x2f]
    242          fsel. 2, 3, 4, 5
    243 
    244 # Floating-point status and control register instructions
    245 
    246 # CHECK: mffs 2                          # encoding: [0xfc,0x40,0x04,0x8e]
    247          mffs 2
    248 # FIXME: mffs. 2
    249 
    250 # FIXME: mcrfs 2, 3
    251 
    252 # FIXME: mtfsfi 2, 3, 1
    253 # FIXME: mtfsfi. 2, 3, 1
    254 # FIXME: mtfsf 2, 3, 1, 1
    255 # FIXME: mtfsf. 2, 3, 1, 1
    256 
    257 # CHECK: mtfsb0 31                       # encoding: [0xff,0xe0,0x00,0x8c]
    258          mtfsb0 31
    259 # FIXME: mtfsb0. 31
    260 # CHECK: mtfsb1 31                       # encoding: [0xff,0xe0,0x00,0x4c]
    261          mtfsb1 31
    262 # FIXME: mtfsb1. 31
    263 
    264