|
MSA 011110 |
111 |
df |
wt |
ws |
wd |
3R 001110 |
|
6 |
3 |
2 |
5 |
5 |
5 |
6 |
MIN_A.df |
Vector Minimum Based on Absolute Value | |
MIN_A.B wd,ws,wt |
MSA |
Vector Minimum Based on Absolute Value |
MIN_A.H wd,ws,wt |
MSA |
Vector Minimum Based on Absolute Value |
MIN_A.W wd,ws,wt |
MSA |
Vector Minimum Based on Absolute Value |
MIN_A.D wd,ws,wt |
MSA |
Vector Minimum Based on Absolute Value |
Vector Minimum Based on Absolute Value
Vector and vector minimum based on the absolute values.
wd[i] = absolute_value(ws[i]) < absolute_value(wt[i])? ws[i]: wt[i]
The value with the smallest magnitude, i.e. absolute value, between corresponding signed elements in vector ws and vector wt are written to vector wd.
The minimum negative value representable has the largest absolute value.
The operands and results are values in integer data format df.
No data-dependent exceptions are possible.
MIN_A.B
for i in 0 .. WRLEN/8-1
WR[wd]8i+7..8i = min_a(WR[ws]8i+7..8i, WR[wt]8i+7..8i, 8)
endfor
MIN_A.H
for i in 0 .. WRLEN/16-1
WR[wd]16i+15..16i = min_a(WR[ws]16i+15..16i, WR[wt]16i+15..16i, 16)
endfor
MIN_A.W
for i in 0 .. WRLEN/32-1
WR[wd]32i+31..32i = min_a(WR[ws]32i+31..32i, WR[wt]32i+31..32i, 32)
endfor
MIN_A.D
for i in 0 .. WRLEN/64-1
WR[wd]64i+63..64i = min_a(WR[ws]64i+63..64i, WR[wt]64i+63..64i, 64)
endfor
function min_a(ts, tt, n)
t = 0 || abs(tt, n)
s = 0 || abs(ts, n)
if t > s then
return ts
else
return tt
endif
endfunction min_a
Reserved Instruction Exception, MSA Disabled Exception.