MSA 011110 |
101 |
df |
wt |
ws |
wd |
3R 010001 |
6 |
3 |
2 |
5 |
5 |
5 |
6 |
ASUB_U.df |
Vector Absolute Values of Unsigned Subtract | |
ASUB_U.B wd,ws,wt |
MSA |
Vector Absolute Values of Unsigned Subtract |
ASUB_U.H wd,ws,wt |
MSA |
Vector Absolute Values of Unsigned Subtract |
ASUB_U.W wd,ws,wt |
MSA |
Vector Absolute Values of Unsigned Subtract |
ASUB_U.D wd,ws,wt |
MSA |
Vector Absolute Values of Unsigned Subtract |
Vector Absolute Values of Unsigned Subtract
Vector subtraction from vector of unsigned values taking the absolute value of the results.
wd[i] = absolute_value(unsigned(ws[i]) - unsigned(wt[i]))
The unsigned elements in vector wt are subtracted from the unsigned elements in vector ws. The absolute value of the signed result is written to vector wd.
The operands and results are values in integer data format df.
No data-dependent exceptions are possible.
ASUB_U.B: for i in 0 .. WRLEN/8-1 WR[wd]8i+7..8i = asub_u(WR[ws]8i+7..8i, WR[wt]8i+7..8i, 8) endfor ASUB_U.H: for i in 0 .. WRLEN/16-1 WR[wd]16i+15..16i = asub_u(WR[ws]16i+15..16i, WR[wt]16i+15..16i, 16) endfor ASUB_U.W: for i in 0 .. WRLEN/32-1 WR[wd]32i+31..32i = asub_u(WR[ws]32i+31..32i, WR[wt]32i+31..32i, 32) endfor ASUB_U.D: for i in 0 .. WRLEN/64-1 WR[wd]64i+63..64i = asub_u(WR[ws]64i+63..64i, WR[wt]64i+63..64i, 64) endfor function asub_u(ts, tt, n) t = (0 || ts) - (0 || tt) if tn = 0 then return tn-1..0 else return (-t)n-1..0 endfunction asub_s
Reserved Instruction Exception, MSA Disabled Exception.