lxsiwzx

Load VSX Scalar as Integer Word Zero Indexed

lxsiwzx XT, RA, RB

Loads a word from memory and places it into the specified VSX register, zero-extending it.

Details

Loads a 32-bit unsigned integer word from memory at address RA+RB into the left-most doubleword element of VSX register XT, with the value zero-extended to 64 bits. The effective address is computed by adding RA (or 0 if RA=0) and RB. The loaded and zero-extended value occupies bits 0-63 of the VSX register. This VSX extension instruction does not affect condition registers.

Pseudocode Operation

EA ← (RA = 0) ? RB : RA + RB
word ← [EA:EA+3]
XT[0:63] ← zero_extend(word, 64)
XT[64:127] ← undefined

Programming Note

The lxsiwzx instruction is commonly used to load a word from memory into a VSX register, ensuring zero-extension. Ensure that the VSX facility is enabled in the MSR register; otherwise, a VSX_Unavailable exception will be raised. The address calculation respects the base and offset registers, with RA being optional (use 0 if not needed). This instruction does not require any specific alignment but must be executed at a privilege level where VSX operations are permitted.

Example

lxsiwzx vs1, r4, r5

Encoding

Binary Layout
0
0
T
6
RA
11
RB
16
12
21
TX
31
 
Format XX1-form
Opcode 0x7C000018
Extension VSX
Registers Altered MSR

Operands

  • XT
    Target
  • RA
    Base
  • RB
    Index