vmulosw
Vector Multiply Odd Signed Word
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
Encoding
Operands
-
vD
Target -
vA
Src A -
vB
Src B