Skip to content

Latest commit

 

History

History
49 lines (39 loc) · 1.74 KB

vmaqasu_vx.adoc

File metadata and controls

49 lines (39 loc) · 1.74 KB

th.vmaqasu.vx

Synopsis

Four signed-unsigned 8-bit multiply with 32-bit add.

Mnemonic

th.vmaqasu.vx vd, rs1, vs2

Encoding
{reg:[
    { bits:  7, name: 0xb, attr: ['custom-0, 32 bit'] },
    { bits:  5, name: 'vd' },
    { bits:  3, name: 0x6, attr: ['vmaqa'] },
    { bits:  5, name: 'rs1' },
    { bits:  5, name: 'vs2' },
    { bits:  1, name: 'vm' },
    { bits:  6, name: '0x25' },
]}
Description

The four signed 8-bit elements of the lower 32-bit of rs1 are multiplied with the four unsigned 8-bit elements of each 32-bit of vs2 and then the four results are added together with the corresponding 32-bit element of Vd. This instruction is based on vector extension.The vector masking operates at source operands with 8-bit element size. If vm=1, the instruction is unmasked and the instruction is vmaqasu.vx vd, rs1, vs2. If vm=0, the instruction is masked and the instruction is vmaqasu.vx vd, rs1, vs2, v0.t. When v0.mask[i] is 1, the multiplication result of rs1[(i+1)*8:i*8] and vs2[(i+1)*8:i*8] is added with vd.The vector length(vl) operates at destination operands with 32-bit element size.

Operation
vd[i] = vd[i] + rs1[7:0]   * vs2[i][7:0]
              + rs1[15:8]  * vs2[i][15:8]
              + rs1[23:16] * vs2[i][23:16]
              + rs1[31:24] * vs2[i][31:24]
Permission

This instruction can be executed in all privilege levels.

Exceptions

This instruction triggers the same exceptions that a vmacc.vv instructions would trigger except that the value of vsew[2:0] must be 3’b010.

Included in
Extension

XTheadvdot ([xtheadvdot])