[DRAFT] Floating ATAN2 Single

X-Form

  • fatan2s FRT,FRA,FRB (Rc=0)
  • fatan2s. FRT,FRA,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_ATAN2(SINGLE(FRA), SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ATAN2

X-Form

  • fatan2 FRT,FRA,FRB (Rc=0)
  • fatan2. FRT,FRA,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_ATAN2(FRA, FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ATAN2PI Single

X-Form

  • fatan2pis FRT,FRA,FRB (Rc=0)
  • fatan2pis. FRT,FRA,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_ATAN2PI(SINGLE(FRA), SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ATAN2PI

X-Form

  • fatan2pi FRT,FRA,FRB (Rc=0)
  • fatan2pi. FRT,FRA,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_ATAN2PI(FRA, FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating POW Single

X-Form

  • fpows FRT,FRA,FRB (Rc=0)
  • fpows. FRT,FRA,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_POW(SINGLE(FRA), SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating POW

X-Form

  • fpow FRT,FRA,FRB (Rc=0)
  • fpow. FRT,FRA,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_POW(FRA, FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating POWN Single

X-Form

  • fpowns FRT,FRA,RB (Rc=0)
  • fpowns. FRT,FRA,RB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_POWN(SINGLE(FRA), RB))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating POWN

X-Form

  • fpown FRT,FRA,RB (Rc=0)
  • fpown. FRT,FRA,RB (Rc=1)

Pseudo-code:

FRT <- bfp64_POWN(FRA, RB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating POWR Single

X-Form

  • fpowrs FRT,FRA,FRB (Rc=0)
  • fpowrs. FRT,FRA,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_POWR(SINGLE(FRA), SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating POWR

X-Form

  • fpowr FRT,FRA,FRB (Rc=0)
  • fpowr. FRT,FRA,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_POWR(FRA, FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ROOTN Single

X-Form

  • frootns FRT,FRA,RB (Rc=0)
  • frootns. FRT,FRA,RB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_ROOTN(SINGLE(FRA), RB))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ROOTN

X-Form

  • frootn FRT,FRA,RB (Rc=0)
  • frootn. FRT,FRA,RB (Rc=1)

Pseudo-code:

FRT <- bfp64_ROOTN(FRA, RB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating HYPOT Single

X-Form

  • fhypots FRT,FRA,FRB (Rc=0)
  • fhypots. FRT,FRA,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_HYPOT(SINGLE(FRA), SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating HYPOT

X-Form

  • fhypot FRT,FRA,FRB (Rc=0)
  • fhypot. FRT,FRA,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_HYPOT(FRA, FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating RSQRT Single

X-Form

  • frsqrts FRT,FRB (Rc=0)
  • frsqrts. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_RSQRT(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating RSQRT

X-Form

  • frsqrt FRT,FRB (Rc=0)
  • frsqrt. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_RSQRT(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating CBRT Single

X-Form

  • fcbrts FRT,FRB (Rc=0)
  • fcbrts. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_CBRT(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating CBRT

X-Form

  • fcbrt FRT,FRB (Rc=0)
  • fcbrt. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_CBRT(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating RECIP Single

X-Form

  • frecips FRT,FRB (Rc=0)
  • frecips. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_RECIP(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating RECIP

X-Form

  • frecip FRT,FRB (Rc=0)
  • frecip. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_RECIP(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating EXP2M1 Single

X-Form

  • fexp2m1s FRT,FRB (Rc=0)
  • fexp2m1s. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_EXP2M1(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating EXP2M1

X-Form

  • fexp2m1 FRT,FRB (Rc=0)
  • fexp2m1. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_EXP2M1(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating LOG2P1 Single

X-Form

  • flog2p1s FRT,FRB (Rc=0)
  • flog2p1s. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_LOG2P1(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating LOG2P1

X-Form

  • flog2p1 FRT,FRB (Rc=0)
  • flog2p1. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_LOG2P1(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating EXP2 Single

X-Form

  • fexp2s FRT,FRB (Rc=0)
  • fexp2s. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_EXP2(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating EXP2

X-Form

  • fexp2 FRT,FRB (Rc=0)
  • fexp2. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_EXP2(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating LOG2 Single

X-Form

  • flog2s FRT,FRB (Rc=0)
  • flog2s. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_LOG2(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating LOG2

X-Form

  • flog2 FRT,FRB (Rc=0)
  • flog2. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_LOG2(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating EXPM1 Single

X-Form

  • fexpm1s FRT,FRB (Rc=0)
  • fexpm1s. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_EXPM1(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating EXPM1

X-Form

  • fexpm1 FRT,FRB (Rc=0)
  • fexpm1. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_EXPM1(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating LOGP1 Single

X-Form

  • flogp1s FRT,FRB (Rc=0)
  • flogp1s. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_LOGP1(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating LOGP1

X-Form

  • flogp1 FRT,FRB (Rc=0)
  • flogp1. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_LOGP1(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating EXP Single

X-Form

  • fexps FRT,FRB (Rc=0)
  • fexps. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_EXP(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating EXP

X-Form

  • fexp FRT,FRB (Rc=0)
  • fexp. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_EXP(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating LOG Single

X-Form

  • flogs FRT,FRB (Rc=0)
  • flogs. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_LOG(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating LOG

X-Form

  • flog FRT,FRB (Rc=0)
  • flog. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_LOG(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating EXP10M1 Single

X-Form

  • fexp10m1s FRT,FRB (Rc=0)
  • fexp10m1s. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_EXP10M1(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating EXP10M1

X-Form

  • fexp10m1 FRT,FRB (Rc=0)
  • fexp10m1. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_EXP10M1(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating LOG10P1 Single

X-Form

  • flog10p1s FRT,FRB (Rc=0)
  • flog10p1s. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_LOG10P1(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating LOG10P1

X-Form

  • flog10p1 FRT,FRB (Rc=0)
  • flog10p1. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_LOG10P1(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating EXP10 Single

X-Form

  • fexp10s FRT,FRB (Rc=0)
  • fexp10s. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_EXP10(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating EXP10

X-Form

  • fexp10 FRT,FRB (Rc=0)
  • fexp10. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_EXP10(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating LOG10 Single

X-Form

  • flog10s FRT,FRB (Rc=0)
  • flog10s. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_LOG10(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating LOG10

X-Form

  • flog10 FRT,FRB (Rc=0)
  • flog10. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_LOG10(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating SIN Single

X-Form

  • fsins FRT,FRB (Rc=0)
  • fsins. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_SIN(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating SIN

X-Form

  • fsin FRT,FRB (Rc=0)
  • fsin. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_SIN(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating COS Single

X-Form

  • fcoss FRT,FRB (Rc=0)
  • fcoss. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_COS(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating COS

X-Form

  • fcos FRT,FRB (Rc=0)
  • fcos. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_COS(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating TAN Single

X-Form

  • ftans FRT,FRB (Rc=0)
  • ftans. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_TAN(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating TAN

X-Form

  • ftan FRT,FRB (Rc=0)
  • ftan. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_TAN(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ASIN Single

X-Form

  • fasins FRT,FRB (Rc=0)
  • fasins. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_ASIN(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ASIN

X-Form

  • fasin FRT,FRB (Rc=0)
  • fasin. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_ASIN(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ACOS Single

X-Form

  • facoss FRT,FRB (Rc=0)
  • facoss. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_ACOS(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ACOS

X-Form

  • facos FRT,FRB (Rc=0)
  • facos. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_ACOS(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ATAN Single

X-Form

  • fatans FRT,FRB (Rc=0)
  • fatans. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_ATAN(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ATAN

X-Form

  • fatan FRT,FRB (Rc=0)
  • fatan. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_ATAN(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating SINPI Single

X-Form

  • fsinpis FRT,FRB (Rc=0)
  • fsinpis. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_SINPI(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating SINPI

X-Form

  • fsinpi FRT,FRB (Rc=0)
  • fsinpi. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_SINPI(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating COSPI Single

X-Form

  • fcospis FRT,FRB (Rc=0)
  • fcospis. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_COSPI(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating COSPI

X-Form

  • fcospi FRT,FRB (Rc=0)
  • fcospi. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_COSPI(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating TANPI Single

X-Form

  • ftanpis FRT,FRB (Rc=0)
  • ftanpis. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_TANPI(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating TANPI

X-Form

  • ftanpi FRT,FRB (Rc=0)
  • ftanpi. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_TANPI(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ASINPI Single

X-Form

  • fasinpis FRT,FRB (Rc=0)
  • fasinpis. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_ASINPI(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ASINPI

X-Form

  • fasinpi FRT,FRB (Rc=0)
  • fasinpi. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_ASINPI(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ACOSPI Single

X-Form

  • facospis FRT,FRB (Rc=0)
  • facospis. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_ACOSPI(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ACOSPI

X-Form

  • facospi FRT,FRB (Rc=0)
  • facospi. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_ACOSPI(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ATANPI Single

X-Form

  • fatanpis FRT,FRB (Rc=0)
  • fatanpis. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_ATANPI(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ATANPI

X-Form

  • fatanpi FRT,FRB (Rc=0)
  • fatanpi. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_ATANPI(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating SINH Single

X-Form

  • fsinhs FRT,FRB (Rc=0)
  • fsinhs. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_SINH(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating SINH

X-Form

  • fsinh FRT,FRB (Rc=0)
  • fsinh. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_SINH(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating COSH Single

X-Form

  • fcoshs FRT,FRB (Rc=0)
  • fcoshs. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_COSH(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating COSH

X-Form

  • fcosh FRT,FRB (Rc=0)
  • fcosh. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_COSH(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating TANH Single

X-Form

  • ftanhs FRT,FRB (Rc=0)
  • ftanhs. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_TANH(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating TANH

X-Form

  • ftanh FRT,FRB (Rc=0)
  • ftanh. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_TANH(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ASINH Single

X-Form

  • fasinhs FRT,FRB (Rc=0)
  • fasinhs. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_ASINH(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ASINH

X-Form

  • fasinh FRT,FRB (Rc=0)
  • fasinh. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_ASINH(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ACOSH Single

X-Form

  • facoshs FRT,FRB (Rc=0)
  • facoshs. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_ACOSH(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ACOSH

X-Form

  • facosh FRT,FRB (Rc=0)
  • facosh. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_ACOSH(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ATANH Single

X-Form

  • fatanhs FRT,FRB (Rc=0)
  • fatanhs. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_ATANH(SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating ATANH

X-Form

  • fatanh FRT,FRB (Rc=0)
  • fatanh. FRT,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_ATANH(FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating Minimum/Maximum

MM-Form

  • fminmax FRT,FRA,FRB,FMM (Rc=0)
  • fminmax. FRT,FRA,FRB,FMM (Rc=1)

Pseudo-code:

result <- [0] * 64
a <- (FRA)
b <- (FRB)
abs_a <- 0b0 || a[1:63]
abs_b <- 0b0 || b[1:63]
a_is_nan <- abs_a >u 0x7FF0_0000_0000_0000
a_is_snan <- a_is_nan & (a[12] = 0)
b_is_nan <- abs_b >u 0x7FF0_0000_0000_0000
b_is_snan <- b_is_nan & (b[12] = 0)
any_snan <- a_is_snan | b_is_snan
a_quieted <- a
a_quieted[12] <- 1
b_quieted <- b
b_quieted[12] <- 1
if a_is_nan | b_is_nan then
    if FMM[2:3] = 0b00 then  # min/maxnum08
        if a_is_snan then result <- a_quieted
        else if b_is_snan then result <- b_quieted
        else if a_is_nan & b_is_nan then result <- a_quieted
        else if a_is_nan then result <- b
        else result <- a
    if FMM[2:3] = 0b01 then  # min/max19
        if a_is_nan then result <- a_quieted
        else result <- b_quieted
    if FMM[2:3] = 0b10 then  # min/maxnum19
        if a_is_nan & b_is_nan then result <- a_quieted
        else if a_is_nan then result <- b
        else result <- a
    if FMM[2:3] = 0b11 then  # min/maxc
        result <- b
else
    cmp_l <- a
    cmp_r <- b
    if FMM[1] then  # min/maxmag
        if abs_a != abs_b then
            cmp_l <- abs_a
            cmp_r <- abs_b
    if FMM[2:3] = 0b11 then  # min/maxc
        if abs_a = 0 then cmp_l[0:63] <- 0
        if abs_b = 0 then cmp_r[0:63] <- 0
    if FMM[0] then  # max
        # swap cmp_* so comparison goes the other way
        cmp_l, cmp_r <- cmp_r, cmp_l
    if cmp_l[0] = 1 then
        if cmp_r[0] = 0 then result <- a
        else if cmp_l >u cmp_r then
            # IEEE 754 is sign-magnitude,
            # so bigger magnitude negative is smaller
            result <- a
        else result <- b
    else if cmp_r[0] = 1 then result <- b
    else if cmp_l <u cmp_r then result <- a
    else result <- b
if any_snan then SetFX(FPSCR.VXSNAN)
if (FPSCR.VE = 0) | ¬any_snan then FRT <- result

Special Registers Altered:

FX VXSNAN
CR1     (if Rc=1)

[DRAFT] Floating MOD Single

X-Form

  • fmods FRT,FRA,FRB (Rc=0)
  • fmods. FRT,FRA,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_MOD(SINGLE(FRA), SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating MOD

X-Form

  • fmod FRT,FRA,FRB (Rc=0)
  • fmod. FRT,FRA,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_MOD(FRA, FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating REMAINDER Single

X-Form

  • fremainders FRT,FRA,FRB (Rc=0)
  • fremainders. FRT,FRA,FRB (Rc=1)

Pseudo-code:

FRT <- DOUBLE(bfp32_REMAINDER(SINGLE(FRA), SINGLE(FRB)))

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)

[DRAFT] Floating REMAINDER

X-Form

  • fremainder FRT,FRA,FRB (Rc=0)
  • fremainder. FRT,FRA,FRB (Rc=1)

Pseudo-code:

FRT <- bfp64_REMAINDER(FRA, FRB)

Special Registers Altered:

FPRF FR FI
FX OX UX XX
VXSNAN VXISI VXIMZ
CR1          (if Rc=1)