lxsspx

Load VSX Scalar Single-Precision Indexed X-form

lxsspx XT,RA,RB

Loads a single-precision floating-point value from memory and converts it to double-precision format in a VSX register.

Details

The lxsspx instruction loads a single-precision floating-point value from memory into the specified VSX register, converting it to double-precision format.

Pseudocode Operation

if MSR.VSX=0 then
    VSX_Unavailable()
EA ←((RA=0) ? 0 : GPR[RA]) + GPR[RB]
load_data ←MEM(EA,4)
result ←bfp_CONVERT_FROM_BFP32(MEM(EA,4))
VSR[XT+32].dword[0] ←bfp64_CONVERT_FROM_BFP(result)
VSR[XT+32].dword[1] ←0x0000_0000_0000_0000

Programming Note

The lxsspx instruction is used to load a single-precision floating-point value from memory into a VSX register, converting it to double-precision format. Ensure that the VSX facility is enabled by checking and setting the MSR.VSX bit. The instruction requires 4-byte alignment for the source data in memory to avoid potential exceptions. This instruction operates at user privilege level.

Example

lxsspx vs1, r4, r5

Encoding

Binary Layout
0
0
T
6
RA
11
RB
16
 
Format X-form
Opcode 0x7C000418
Extension VSX
Registers Altered MSR

Operands

  • XT
    Target Vector-Scalar Register
  • RA
    Source General Purpose Register (Base Address)
  • RB
    Source General Purpose Register (Index)