vmul10ecuq

Vector Multiply-by-10 Extended & write Carry-out Unsigned Quadword

vmul10ecuq VX,VA,VB

Multiplies the unsigned quadword integer in vector register VA by 10, adds the least-significant bit of VB as a carry-in digit, and writes the carry-out of the result to vector register VX.

Details

The vmul10ecuq instruction treats the contents of vector register VA as an unsigned 128-bit (quadword) integer and multiplies it by 10, adding the least-significant bit of vector register VB as an extended carry-in value. The high-order carry-out bit of the multiplication result is written to vector register VX. This instruction is intended for use in multi-precision decimal arithmetic operations, particularly when chaining multiply-by-10 operations across multiple quadwords.

Pseudocode Operation

Not available in specification

Programming Note

This instruction is ideal for high-performance multi-precision decimal arithmetic, especially when performing chained multiply-by-10 operations. Ensure that the input values in VA and VB are correctly aligned as unsigned 128-bit integers to avoid unexpected results. The carry-out written to VX should be used as the extended carry-in for subsequent operations to maintain precision.

Example

vmul10ecuq v1, v2, v2

Encoding

Binary Layout
000100
0
VX
6
VA
11
VB
16
00001
21
000001
26
 
Format VX-form
Opcode 0x10000041
Extension VMX (AltiVec)

Operands

  • VX
    Target Vector Register
  • VA
    Source Vector Register
  • VB
    Source Vector Register