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# CHECK: fcpsgn 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x10] 69 fcpsgn 2, 3, 4 70# CHECK: fcpsgn. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x11] 71 fcpsgn. 2, 3, 4 72 73# Floating-point arithmetic instructions 74 75# CHECK: fadd 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x2a] 76 fadd 2, 3, 4 77# CHECK: fadd. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x2b] 78 fadd. 2, 3, 4 79# CHECK: fadds 2, 3, 4 # encoding: [0xec,0x43,0x20,0x2a] 80 fadds 2, 3, 4 81# CHECK: fadds. 2, 3, 4 # encoding: [0xec,0x43,0x20,0x2b] 82 fadds. 2, 3, 4 83# CHECK: fsub 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x28] 84 fsub 2, 3, 4 85# CHECK: fsub. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x29] 86 fsub. 2, 3, 4 87# CHECK: fsubs 2, 3, 4 # encoding: [0xec,0x43,0x20,0x28] 88 fsubs 2, 3, 4 89# CHECK: fsubs. 2, 3, 4 # encoding: [0xec,0x43,0x20,0x29] 90 fsubs. 2, 3, 4 91 92# CHECK: fmul 2, 3, 4 # encoding: [0xfc,0x43,0x01,0x32] 93 fmul 2, 3, 4 94# CHECK: fmul. 2, 3, 4 # encoding: [0xfc,0x43,0x01,0x33] 95 fmul. 2, 3, 4 96# CHECK: fmuls 2, 3, 4 # encoding: [0xec,0x43,0x01,0x32] 97 fmuls 2, 3, 4 98# CHECK: fmuls. 2, 3, 4 # encoding: [0xec,0x43,0x01,0x33] 99 fmuls. 2, 3, 4 100# CHECK: fdiv 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x24] 101 fdiv 2, 3, 4 102# CHECK: fdiv. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x25] 103 fdiv. 2, 3, 4 104# CHECK: fdivs 2, 3, 4 # encoding: [0xec,0x43,0x20,0x24] 105 fdivs 2, 3, 4 106# CHECK: fdivs. 2, 3, 4 # encoding: [0xec,0x43,0x20,0x25] 107 fdivs. 2, 3, 4 108# CHECK: fsqrt 2, 3 # encoding: [0xfc,0x40,0x18,0x2c] 109 fsqrt 2, 3 110# CHECK: fsqrt. 2, 3 # encoding: [0xfc,0x40,0x18,0x2d] 111 fsqrt. 2, 3 112# CHECK: fsqrts 2, 3 # encoding: [0xec,0x40,0x18,0x2c] 113 fsqrts 2, 3 114# CHECK: fsqrts. 2, 3 # encoding: [0xec,0x40,0x18,0x2d] 115 fsqrts. 2, 3 116 117# CHECK: fre 2, 3 # encoding: [0xfc,0x40,0x18,0x30] 118 fre 2, 3 119# CHECK: fre. 2, 3 # encoding: [0xfc,0x40,0x18,0x31] 120 fre. 2, 3 121# CHECK: fres 2, 3 # encoding: [0xec,0x40,0x18,0x30] 122 fres 2, 3 123# CHECK: fres. 2, 3 # encoding: [0xec,0x40,0x18,0x31] 124 fres. 2, 3 125# CHECK: frsqrte 2, 3 # encoding: [0xfc,0x40,0x18,0x34] 126 frsqrte 2, 3 127# CHECK: frsqrte. 2, 3 # encoding: [0xfc,0x40,0x18,0x35] 128 frsqrte. 2, 3 129# CHECK: frsqrtes 2, 3 # encoding: [0xec,0x40,0x18,0x34] 130 frsqrtes 2, 3 131# CHECK: frsqrtes. 2, 3 # encoding: [0xec,0x40,0x18,0x35] 132 frsqrtes. 2, 3 133# FIXME: ftdiv 2, 3, 4 134# FIXME: ftsqrt 2, 3, 4 135 136# CHECK: fmadd 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3a] 137 fmadd 2, 3, 4, 5 138# CHECK: fmadd. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3b] 139 fmadd. 2, 3, 4, 5 140# CHECK: fmadds 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3a] 141 fmadds 2, 3, 4, 5 142# CHECK: fmadds. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3b] 143 fmadds. 2, 3, 4, 5 144# CHECK: fmsub 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x38] 145 fmsub 2, 3, 4, 5 146# CHECK: fmsub. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x39] 147 fmsub. 2, 3, 4, 5 148# CHECK: fmsubs 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x38] 149 fmsubs 2, 3, 4, 5 150# CHECK: fmsubs. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x39] 151 fmsubs. 2, 3, 4, 5 152# CHECK: fnmadd 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3e] 153 fnmadd 2, 3, 4, 5 154# CHECK: fnmadd. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3f] 155 fnmadd. 2, 3, 4, 5 156# CHECK: fnmadds 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3e] 157 fnmadds 2, 3, 4, 5 158# CHECK: fnmadds. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3f] 159 fnmadds. 2, 3, 4, 5 160# CHECK: fnmsub 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3c] 161 fnmsub 2, 3, 4, 5 162# CHECK: fnmsub. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3d] 163 fnmsub. 2, 3, 4, 5 164# CHECK: fnmsubs 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3c] 165 fnmsubs 2, 3, 4, 5 166# CHECK: fnmsubs. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3d] 167 fnmsubs. 2, 3, 4, 5 168 169# Floating-point rounding and conversion instructions 170 171# CHECK: frsp 2, 3 # encoding: [0xfc,0x40,0x18,0x18] 172 frsp 2, 3 173# CHECK: frsp. 2, 3 # encoding: [0xfc,0x40,0x18,0x19] 174 frsp. 2, 3 175 176# CHECK: fctid 2, 3 # encoding: [0xfc,0x40,0x1e,0x5c] 177 fctid 2, 3 178# CHECK: fctid. 2, 3 # encoding: [0xfc,0x40,0x1e,0x5d] 179 fctid. 2, 3 180# CHECK: fctidz 2, 3 # encoding: [0xfc,0x40,0x1e,0x5e] 181 fctidz 2, 3 182# CHECK: fctidz. 2, 3 # encoding: [0xfc,0x40,0x1e,0x5f] 183 fctidz. 2, 3 184# FIXME: fctidu 2, 3 185# FIXME: fctidu. 2, 3 186# CHECK: fctiduz 2, 3 # encoding: [0xfc,0x40,0x1f,0x5e] 187 fctiduz 2, 3 188# CHECK: fctiduz. 2, 3 # encoding: [0xfc,0x40,0x1f,0x5f] 189 fctiduz. 2, 3 190# CHECK: fctiw 2, 3 # encoding: [0xfc,0x40,0x18,0x1c] 191 fctiw 2, 3 192# CHECK: fctiw. 2, 3 # encoding: [0xfc,0x40,0x18,0x1d] 193 fctiw. 2, 3 194# CHECK: fctiwz 2, 3 # encoding: [0xfc,0x40,0x18,0x1e] 195 fctiwz 2, 3 196# CHECK: fctiwz. 2, 3 # encoding: [0xfc,0x40,0x18,0x1f] 197 fctiwz. 2, 3 198# FIXME: fctiwu 2, 3 199# FIXME: fctiwu. 2, 3 200# CHECK: fctiwuz 2, 3 # encoding: [0xfc,0x40,0x19,0x1e] 201 fctiwuz 2, 3 202# CHECK: fctiwuz. 2, 3 # encoding: [0xfc,0x40,0x19,0x1f] 203 fctiwuz. 2, 3 204# CHECK: fcfid 2, 3 # encoding: [0xfc,0x40,0x1e,0x9c] 205 fcfid 2, 3 206# CHECK: fcfid. 2, 3 # encoding: [0xfc,0x40,0x1e,0x9d] 207 fcfid. 2, 3 208# CHECK: fcfidu 2, 3 # encoding: [0xfc,0x40,0x1f,0x9c] 209 fcfidu 2, 3 210# CHECK: fcfidu. 2, 3 # encoding: [0xfc,0x40,0x1f,0x9d] 211 fcfidu. 2, 3 212# CHECK: fcfids 2, 3 # encoding: [0xec,0x40,0x1e,0x9c] 213 fcfids 2, 3 214# CHECK: fcfids. 2, 3 # encoding: [0xec,0x40,0x1e,0x9d] 215 fcfids. 2, 3 216# CHECK: fcfidus 2, 3 # encoding: [0xec,0x40,0x1f,0x9c] 217 fcfidus 2, 3 218# CHECK: fcfidus. 2, 3 # encoding: [0xec,0x40,0x1f,0x9d] 219 fcfidus. 2, 3 220# CHECK: frin 2, 3 # encoding: [0xfc,0x40,0x1b,0x10] 221 frin 2, 3 222# CHECK: frin. 2, 3 # encoding: [0xfc,0x40,0x1b,0x11] 223 frin. 2, 3 224# CHECK: frip 2, 3 # encoding: [0xfc,0x40,0x1b,0x90] 225 frip 2, 3 226# CHECK: frip. 2, 3 # encoding: [0xfc,0x40,0x1b,0x91] 227 frip. 2, 3 228# CHECK: friz 2, 3 # encoding: [0xfc,0x40,0x1b,0x50] 229 friz 2, 3 230# CHECK: friz. 2, 3 # encoding: [0xfc,0x40,0x1b,0x51] 231 friz. 2, 3 232# CHECK: frim 2, 3 # encoding: [0xfc,0x40,0x1b,0xd0] 233 frim 2, 3 234# CHECK: frim. 2, 3 # encoding: [0xfc,0x40,0x1b,0xd1] 235 frim. 2, 3 236 237# Floating-point compare instructions 238 239# CHECK: fcmpu 2, 3, 4 # encoding: [0xfd,0x03,0x20,0x00] 240 fcmpu 2, 3, 4 241# FIXME: fcmpo 2, 3, 4 242 243# Floating-point select instruction 244 245# CHECK: fsel 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x2e] 246 fsel 2, 3, 4, 5 247# CHECK: fsel. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x2f] 248 fsel. 2, 3, 4, 5 249 250# Floating-point status and control register instructions 251 252# CHECK: mffs 2 # encoding: [0xfc,0x40,0x04,0x8e] 253 mffs 2 254# FIXME: mffs. 2 255 256# FIXME: mcrfs 2, 3 257 258# FIXME: mtfsfi 2, 3, 1 259# FIXME: mtfsfi. 2, 3, 1 260# FIXME: mtfsf 2, 3, 1, 1 261# FIXME: mtfsf. 2, 3, 1, 1 262 263# CHECK: mtfsb0 31 # encoding: [0xff,0xe0,0x00,0x8c] 264 mtfsb0 31 265# FIXME: mtfsb0. 31 266# CHECK: mtfsb1 31 # encoding: [0xff,0xe0,0x00,0x4c] 267 mtfsb1 31 268# FIXME: mtfsb1. 31 269 270