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

Loads a single-precision floating-point value from memory at address (RA) + (RB), converts it to double-precision format, and places the result into the right doubleword of VSX register XT. The left doubleword is cleared. This is a VSX instruction and does not affect condition registers or status fields.

Pseudocode Operation

ea ← (RA) + (RB)
sp_value ← [ea] (single-precision)
dp_value ← convert_sp_to_dp(sp_value)
XT.doubleword[1] ← dp_value
XT.doubleword[0] ← 0

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)