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