xscvudqp

VSX Scalar Convert Unsigned Doubleword to Quad-Precision

xscvudqp vD, vB

Converts 64-bit Unsigned Integer to 128-bit Float.

Details

The xscvudqp instruction converts an unsigned doubleword integer value from the VSX register VRB+32 into a quad-precision floating-point format and stores it in the VSX register VRT+32. It also updates the FPSCR.FPRF, FPSCR.FR, and FPSCR.FI fields.

Pseudocode Operation

if MSR.VSX=0 then VSX_Unavailable()
src ← bfp_CONVERT_FROM_UI64(VSR[VRB+32].dword[0])
result ← bfp128_CONVERT_FROM_BFP(src)
VSR[VRT+32] ← result
FPSCR.FPRF ← fprf_CLASS_BFP128(result)
FPSCR.FR ← 0
FPSCR.FI ← 0

Programming Note

This instruction is used to convert an unsigned doubleword integer into a quad-precision floating-point format. Ensure that the VSX (Vector Scalar Extensions) are enabled by checking and setting the MSR.VSX bit. The conversion may alter the FPSCR register fields, so be aware of potential precision flags. This operation does not raise exceptions for normal input ranges.

Example

xscvudqp vd, vb

Encoding

Binary Layout
63
0
vD
6
/
11
vB
16
724
21
/
31
 
Format X-form
Opcode 0xFC0005D4
Extension VSX
Registers Altered FPSCR, MSR

Operands

  • vD
    Target
  • vB
    Source