xsdivdp

VSX Scalar Divide Double-Precision

xsdivdp XT,XA,XB

Divides the double-precision floating-point value in VSR[XA] by the double-precision floating-point value in VSR[XB].

Details

Divides the scalar double-precision floating-point value in VSR[XA] by the scalar double-precision floating-point value in VSR[XB], storing the result in VSR[XT]. The operation follows IEEE 754 semantics; FPSCR is updated with exception flags and the result sign/exponent. This VSX instruction requires the VSX extension.

Pseudocode Operation

XT ← VSR[XA] ÷ VSR[XB]
FPSCR ← updated with exception flags and rounding

Programming Note

The xsdivdp instruction is used for dividing double-precision floating-point numbers. Ensure that the VSX (Vector Scalar Extensions) are enabled in the MSR register to avoid exceptions. Handle special cases like NaNs and infinities by checking the FPSCR flags after execution. The result is rounded according to the rounding mode set in FPSCR.RN.

Example

xsdivdp vs1, vs2, vs3

Encoding

Binary Layout
111100
0
XA
1
XB
2
000000
3
000000
8
000000
11
000000
14
000000
000000
000000
000000
000000
000000
000000
000000
000000
 
Format XX3-form
Opcode 0xF00001C0
Extension VSX
Registers Altered FPSCR FPRF FR FI FX OX UX ZX XX VXSNAN VXIDI VXZDZ

Operands

  • XT
    Target Vector-Scalar Register
  • XA
    Source Vector-Scalar Register
  • XB
    Source Vector-Scalar Register