MSA 011110 |
010 |
df |
wt |
ws |
wd |
3R 010010 |
6 |
3 |
2 |
5 |
5 |
5 |
6 |
MSUBV.df |
Vector Multiply and Subtract | |
MSUBV.B wd,ws,wt |
MSA |
Vector Multiply and Subtract |
MSUBV.H wd,ws,wt |
MSA |
Vector Multiply and Subtract |
MSUBV.W wd,ws,wt |
MSA |
Vector Multiply and Subtract |
MSUBV.D wd,ws,wt |
MSA |
Vector Multiply and Subtract |
Vector Multiply and Subtract
Vector multiply and subtract.
wd[i] = wd[i] - ws[i] * wt[i]
The integer elements in vector wt are multiplied by integer elements in vector ws and subtracted from 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.
MSUBV.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 MSUBV.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 MSUBV.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 MSUBV.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.