# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s # Floating-point facility # Floating-point load instructions # CHECK: lfs 2, 128(4) # encoding: [0xc0,0x44,0x00,0x80] lfs 2, 128(4) # CHECK: lfsx 2, 3, 4 # encoding: [0x7c,0x43,0x24,0x2e] lfsx 2, 3, 4 # CHECK: lfsu 2, 128(4) # encoding: [0xc4,0x44,0x00,0x80] lfsu 2, 128(4) # CHECK: lfsux 2, 3, 4 # encoding: [0x7c,0x43,0x24,0x6e] lfsux 2, 3, 4 # CHECK: lfd 2, 128(4) # encoding: [0xc8,0x44,0x00,0x80] lfd 2, 128(4) # CHECK: lfdx 2, 3, 4 # encoding: [0x7c,0x43,0x24,0xae] lfdx 2, 3, 4 # CHECK: lfdu 2, 128(4) # encoding: [0xcc,0x44,0x00,0x80] lfdu 2, 128(4) # CHECK: lfdux 2, 3, 4 # encoding: [0x7c,0x43,0x24,0xee] lfdux 2, 3, 4 # CHECK: lfiwax 2, 3, 4 # encoding: [0x7c,0x43,0x26,0xae] lfiwax 2, 3, 4 # CHECK: lfiwzx 2, 3, 4 # encoding: [0x7c,0x43,0x26,0xee] lfiwzx 2, 3, 4 # Floating-point store instructions # CHECK: stfs 2, 128(4) # encoding: [0xd0,0x44,0x00,0x80] stfs 2, 128(4) # CHECK: stfsx 2, 3, 4 # encoding: [0x7c,0x43,0x25,0x2e] stfsx 2, 3, 4 # CHECK: stfsu 2, 128(4) # encoding: [0xd4,0x44,0x00,0x80] stfsu 2, 128(4) # CHECK: stfsux 2, 3, 4 # encoding: [0x7c,0x43,0x25,0x6e] stfsux 2, 3, 4 # CHECK: stfd 2, 128(4) # encoding: [0xd8,0x44,0x00,0x80] stfd 2, 128(4) # CHECK: stfdx 2, 3, 4 # encoding: [0x7c,0x43,0x25,0xae] stfdx 2, 3, 4 # CHECK: stfdu 2, 128(4) # encoding: [0xdc,0x44,0x00,0x80] stfdu 2, 128(4) # CHECK: stfdux 2, 3, 4 # encoding: [0x7c,0x43,0x25,0xee] stfdux 2, 3, 4 # CHECK: stfiwx 2, 3, 4 # encoding: [0x7c,0x43,0x27,0xae] stfiwx 2, 3, 4 # Floating-point move instructions # CHECK: fmr 2, 3 # encoding: [0xfc,0x40,0x18,0x90] fmr 2, 3 # CHECK: fmr. 2, 3 # encoding: [0xfc,0x40,0x18,0x91] fmr. 2, 3 # CHECK: fneg 2, 3 # encoding: [0xfc,0x40,0x18,0x50] fneg 2, 3 # CHECK: fneg. 2, 3 # encoding: [0xfc,0x40,0x18,0x51] fneg. 2, 3 # CHECK: fabs 2, 3 # encoding: [0xfc,0x40,0x1a,0x10] fabs 2, 3 # CHECK: fabs. 2, 3 # encoding: [0xfc,0x40,0x1a,0x11] fabs. 2, 3 # CHECK: fnabs 2, 3 # encoding: [0xfc,0x40,0x19,0x10] fnabs 2, 3 # CHECK: fnabs. 2, 3 # encoding: [0xfc,0x40,0x19,0x11] fnabs. 2, 3 # FIXME: fcpsgn 2, 3 # FIXME: fcpsgn. 2, 3 # Floating-point arithmetic instructions # CHECK: fadd 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x2a] fadd 2, 3, 4 # CHECK: fadd. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x2b] fadd. 2, 3, 4 # CHECK: fadds 2, 3, 4 # encoding: [0xec,0x43,0x20,0x2a] fadds 2, 3, 4 # CHECK: fadds. 2, 3, 4 # encoding: [0xec,0x43,0x20,0x2b] fadds. 2, 3, 4 # CHECK: fsub 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x28] fsub 2, 3, 4 # CHECK: fsub. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x29] fsub. 2, 3, 4 # CHECK: fsubs 2, 3, 4 # encoding: [0xec,0x43,0x20,0x28] fsubs 2, 3, 4 # CHECK: fsubs. 2, 3, 4 # encoding: [0xec,0x43,0x20,0x29] fsubs. 2, 3, 4 # CHECK: fmul 2, 3, 4 # encoding: [0xfc,0x43,0x01,0x32] fmul 2, 3, 4 # CHECK: fmul. 2, 3, 4 # encoding: [0xfc,0x43,0x01,0x33] fmul. 2, 3, 4 # CHECK: fmuls 2, 3, 4 # encoding: [0xec,0x43,0x01,0x32] fmuls 2, 3, 4 # CHECK: fmuls. 2, 3, 4 # encoding: [0xec,0x43,0x01,0x33] fmuls. 2, 3, 4 # CHECK: fdiv 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x24] fdiv 2, 3, 4 # CHECK: fdiv. 2, 3, 4 # encoding: [0xfc,0x43,0x20,0x25] fdiv. 2, 3, 4 # CHECK: fdivs 2, 3, 4 # encoding: [0xec,0x43,0x20,0x24] fdivs 2, 3, 4 # CHECK: fdivs. 2, 3, 4 # encoding: [0xec,0x43,0x20,0x25] fdivs. 2, 3, 4 # CHECK: fsqrt 2, 3 # encoding: [0xfc,0x40,0x18,0x2c] fsqrt 2, 3 # CHECK: fsqrt. 2, 3 # encoding: [0xfc,0x40,0x18,0x2d] fsqrt. 2, 3 # CHECK: fsqrts 2, 3 # encoding: [0xec,0x40,0x18,0x2c] fsqrts 2, 3 # CHECK: fsqrts. 2, 3 # encoding: [0xec,0x40,0x18,0x2d] fsqrts. 2, 3 # CHECK: fre 2, 3 # encoding: [0xfc,0x40,0x18,0x30] fre 2, 3 # CHECK: fre. 2, 3 # encoding: [0xfc,0x40,0x18,0x31] fre. 2, 3 # CHECK: fres 2, 3 # encoding: [0xec,0x40,0x18,0x30] fres 2, 3 # CHECK: fres. 2, 3 # encoding: [0xec,0x40,0x18,0x31] fres. 2, 3 # CHECK: frsqrte 2, 3 # encoding: [0xfc,0x40,0x18,0x34] frsqrte 2, 3 # CHECK: frsqrte. 2, 3 # encoding: [0xfc,0x40,0x18,0x35] frsqrte. 2, 3 # CHECK: frsqrtes 2, 3 # encoding: [0xec,0x40,0x18,0x34] frsqrtes 2, 3 # CHECK: frsqrtes. 2, 3 # encoding: [0xec,0x40,0x18,0x35] frsqrtes. 2, 3 # FIXME: ftdiv 2, 3, 4 # FIXME: ftsqrt 2, 3, 4 # CHECK: fmadd 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3a] fmadd 2, 3, 4, 5 # CHECK: fmadd. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3b] fmadd. 2, 3, 4, 5 # CHECK: fmadds 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3a] fmadds 2, 3, 4, 5 # CHECK: fmadds. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3b] fmadds. 2, 3, 4, 5 # CHECK: fmsub 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x38] fmsub 2, 3, 4, 5 # CHECK: fmsub. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x39] fmsub. 2, 3, 4, 5 # CHECK: fmsubs 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x38] fmsubs 2, 3, 4, 5 # CHECK: fmsubs. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x39] fmsubs. 2, 3, 4, 5 # CHECK: fnmadd 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3e] fnmadd 2, 3, 4, 5 # CHECK: fnmadd. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3f] fnmadd. 2, 3, 4, 5 # CHECK: fnmadds 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3e] fnmadds 2, 3, 4, 5 # CHECK: fnmadds. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3f] fnmadds. 2, 3, 4, 5 # CHECK: fnmsub 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3c] fnmsub 2, 3, 4, 5 # CHECK: fnmsub. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x3d] fnmsub. 2, 3, 4, 5 # CHECK: fnmsubs 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3c] fnmsubs 2, 3, 4, 5 # CHECK: fnmsubs. 2, 3, 4, 5 # encoding: [0xec,0x43,0x29,0x3d] fnmsubs. 2, 3, 4, 5 # Floating-point rounding and conversion instructions # CHECK: frsp 2, 3 # encoding: [0xfc,0x40,0x18,0x18] frsp 2, 3 # CHECK: frsp. 2, 3 # encoding: [0xfc,0x40,0x18,0x19] frsp. 2, 3 # FIXME: fctid 2, 3 # FIXME: fctid. 2, 3 # CHECK: fctidz 2, 3 # encoding: [0xfc,0x40,0x1e,0x5e] fctidz 2, 3 # CHECK: fctidz. 2, 3 # encoding: [0xfc,0x40,0x1e,0x5f] fctidz. 2, 3 # FIXME: fctidu 2, 3 # FIXME: fctidu. 2, 3 # CHECK: fctiduz 2, 3 # encoding: [0xfc,0x40,0x1f,0x5e] fctiduz 2, 3 # CHECK: fctiduz. 2, 3 # encoding: [0xfc,0x40,0x1f,0x5f] fctiduz. 2, 3 # FIXME: fctiw 2, 3 # FIXME: fctiw. 2, 3 # CHECK: fctiwz 2, 3 # encoding: [0xfc,0x40,0x18,0x1e] fctiwz 2, 3 # CHECK: fctiwz. 2, 3 # encoding: [0xfc,0x40,0x18,0x1f] fctiwz. 2, 3 # FIXME: fctiwu 2, 3 # FIXME: fctiwu. 2, 3 # CHECK: fctiwuz 2, 3 # encoding: [0xfc,0x40,0x19,0x1e] fctiwuz 2, 3 # CHECK: fctiwuz. 2, 3 # encoding: [0xfc,0x40,0x19,0x1f] fctiwuz. 2, 3 # CHECK: fcfid 2, 3 # encoding: [0xfc,0x40,0x1e,0x9c] fcfid 2, 3 # CHECK: fcfid. 2, 3 # encoding: [0xfc,0x40,0x1e,0x9d] fcfid. 2, 3 # CHECK: fcfidu 2, 3 # encoding: [0xfc,0x40,0x1f,0x9c] fcfidu 2, 3 # CHECK: fcfidu. 2, 3 # encoding: [0xfc,0x40,0x1f,0x9d] fcfidu. 2, 3 # CHECK: fcfids 2, 3 # encoding: [0xec,0x40,0x1e,0x9c] fcfids 2, 3 # CHECK: fcfids. 2, 3 # encoding: [0xec,0x40,0x1e,0x9d] fcfids. 2, 3 # CHECK: fcfidus 2, 3 # encoding: [0xec,0x40,0x1f,0x9c] fcfidus 2, 3 # CHECK: fcfidus. 2, 3 # encoding: [0xec,0x40,0x1f,0x9d] fcfidus. 2, 3 # CHECK: frin 2, 3 # encoding: [0xfc,0x40,0x1b,0x10] frin 2, 3 # CHECK: frin. 2, 3 # encoding: [0xfc,0x40,0x1b,0x11] frin. 2, 3 # CHECK: frip 2, 3 # encoding: [0xfc,0x40,0x1b,0x90] frip 2, 3 # CHECK: frip. 2, 3 # encoding: [0xfc,0x40,0x1b,0x91] frip. 2, 3 # CHECK: friz 2, 3 # encoding: [0xfc,0x40,0x1b,0x50] friz 2, 3 # CHECK: friz. 2, 3 # encoding: [0xfc,0x40,0x1b,0x51] friz. 2, 3 # CHECK: frim 2, 3 # encoding: [0xfc,0x40,0x1b,0xd0] frim 2, 3 # CHECK: frim. 2, 3 # encoding: [0xfc,0x40,0x1b,0xd1] frim. 2, 3 # Floating-point compare instructions # CHECK: fcmpu 2, 3, 4 # encoding: [0xfd,0x03,0x20,0x00] fcmpu 2, 3, 4 # FIXME: fcmpo 2, 3, 4 # Floating-point select instruction # CHECK: fsel 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x2e] fsel 2, 3, 4, 5 # CHECK: fsel. 2, 3, 4, 5 # encoding: [0xfc,0x43,0x29,0x2f] fsel. 2, 3, 4, 5 # Floating-point status and control register instructions # CHECK: mffs 2 # encoding: [0xfc,0x40,0x04,0x8e] mffs 2 # FIXME: mffs. 2 # FIXME: mcrfs 2, 3 # FIXME: mtfsfi 2, 3, 1 # FIXME: mtfsfi. 2, 3, 1 # FIXME: mtfsf 2, 3, 1, 1 # FIXME: mtfsf. 2, 3, 1, 1 # CHECK: mtfsb0 31 # encoding: [0xff,0xe0,0x00,0x8c] mtfsb0 31 # FIXME: mtfsb0. 31 # CHECK: mtfsb1 31 # encoding: [0xff,0xe0,0x00,0x4c] mtfsb1 31 # FIXME: mtfsb1. 31