vmulosw

Vector Multiply Odd Signed Word

vmulosw vD, vA, vB

Multiplies odd words (1,3) to 64-bit signed result.

Details

Multiplies the signed 32-bit words at positions 1 and 3 of vA by the corresponding words in vB, producing two signed 64-bit results stored in vD. This is a VMX (AltiVec) instruction that does not affect condition or status flags.

Pseudocode Operation

vD[0:63] ← (vA[32:63] signed) × (vB[32:63] signed)
vD[64:127] ← (vA[96:127] signed) × (vB[96:127] signed)

Programming Note

The vmulosw instruction is used for multiplying signed integers located in the odd word elements of two vector registers. Ensure that the Vector Facility (MSR.VEC) is enabled before using this instruction; otherwise, a Vector_Unavailable exception will be raised. The result is stored in doubleword elements of the destination register, and developers should handle potential overflow by checking the sign extension of the products.

Example

vmulosw vd, va, vb

Encoding

Binary Layout
4
0
vD
6
vA
11
vB
16
392
21
 
Format VX-form
Opcode 0x10000188
Extension VMX (AltiVec)
Registers Altered MSR

Operands

  • vD
    Target
  • vA
    Src A
  • vB
    Src B