|
MSA 011110 |
001 |
df |
wt |
ws |
wd |
3R 010010 |
|
6 |
3 |
2 |
5 |
5 |
5 |
6 |
MADDV.df |
Vector Multiply and Add | |
MADDV.B wd,ws,wt |
MSA |
Vector Multiply and Add |
MADDV.H wd,ws,wt |
MSA |
Vector Multiply and Add |
MADDV.W wd,ws,wt |
MSA |
Vector Multiply and Add |
MADDV.D wd,ws,wt |
MSA |
Vector Multiply and Add |
Vector Multiply and Add
Vector multiply and add.
wd[i] = wd[i] + ws[i] * wt[i]
The integer elements in vector wt are multiplied by integer elements in vector ws and added to the integer elements in vector wd. The most significant half of the multiplication result is discarded.
The operands and results are values in integer data format df.
No data-dependent exceptions are possible.
MADDV.B
for i in 0 .. WRLEN/8-1
WR[wd]8i+7..8i =
WR[wd]8i+7..8i + WR[ws]8i+7..8i * WR[wt]8i+7..8i
endfor
MADDV.H
for i in 0 .. WRLEN/16-1
WR[wd]16i+15..16i =
WR[wd]16i+15..16i + WR[ws]16i+15..16i * WR[wt]16i+15..16i
endfor
MADDV.W
for i in 0 .. WRLEN/32-1
WR[wd]32i+31..32i =
WR[wd]32i+31..32i + WR[ws]32i+31..32i * WR[wt]32i+31..32i
endfor
MADDV.D
for i in 0 .. WRLEN/64-1
WR[wd]64i+63..64i =
WR[wd]64i+63..64i + WR[ws]64i+63..64i * WR[wt]64i+63..64i
endfor
Reserved Instruction Exception, MSA Disabled Exception.