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.

Encoding

Binary Layout
0
0:5
T
6:10
RA
11:15
RB
16:20
12
21:30
TX
31
 
Format XX1-form
Opcode 0x7C000018
Extension VSX

Operands

  • XT
    Target
  • RA
    Base
  • RB
    Index

Example

lxsiwzx vs1, r4, r5

Registers Altered

MSR

Related

More in VSX

Reference

Description

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.

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.