vinsertd

Vector Insert Doubleword

vinsertd vD, vB, UIM

Inserts a doubleword from a GPR into a vector.

Details

The vinsertd instruction inserts the contents of doubleword element 0 from VSR[VRB+32] into byte elements UIM:UIM+7 of VSR[VRT+32]. The remaining byte elements of VSR[VRT+32] are not modified. If the value of UIM is greater than 8, the results are undefined.

Pseudocode Operation

if MSR.VEC=0 then Vector_Unavailable()
VSR[VRT+32].byte[UIM:UIM+7] ← VSR[VRB+32].dword[0]

Programming Note

The vinsertd instruction is used to insert a doubleword from one vector register into another, with specific byte alignment. Ensure that the UIM value does not exceed 8 to avoid undefined behavior. This instruction requires the VEC bit in the MSR (Machine State Register) to be set; otherwise, it will raise an exception.

Example

vinsertd vd, vb, uim

Encoding

Binary Layout
4
0
vD
6
UIM
11
vB
16
973
21
 
Format VX-form
Opcode 0x100003CD
Extension VMX (AltiVec)
Registers Altered MSR

Operands

  • vD
    Target Vector
  • vB
    Source GPR
  • UIM
    Index