|
MSA 011110 |
010 |
df |
s5 |
ws |
wd |
I5 000110 |
|
6 |
3 |
2 |
5 |
5 |
5 |
6 |
MAXI_S.df |
Immediate Signed Maximum | |
MAXI_S.B wd,ws,s5 |
MSA |
Immediate Signed Maximum |
MAXI_S.H wd,ws,s5 |
MSA |
Immediate Signed Maximum |
MAXI_S.W wd,ws,s5 |
MSA |
Immediate Signed Maximum |
MAXI_S.D wd,ws,s5 |
MSA |
Immediate Signed Maximum |
Immediate Signed Maximum
Immediate and vector signed maximum.
wd[i] = max(ws[i], s5)
Maximum values between signed elements in vector ws and the 5-bit signed immediate s5 are written to vector wd.
The operands and results are values in integer data format df.
No data-dependent exceptions are possible.
MAXI_S.B
t = (s54)3 || s54..0
for i in 0 .. WRLEN/8-1
WR[wd]8i+7..8i = max_s(WR[ws]8i+7..8i, t, 8)
endfor
MAXI_S.H
t = (s54)11 || s54..0
for i in 0 .. WRLEN/16-1
WR[wd]16i+15..16i = max_s(WR[ws]16i+15..16i, t, 16)
endfor
MAXI_S.W
t = (s54)27 || s54..0
for i in 0 .. WRLEN/32-1
WR[wd]32i+31..32i = max_s(WR[ws]32i+31..32i, t, 32)
endfor
MAXI_S.D
t = (s54)59 || s54..0
for i in 0 .. WRLEN/64-1
WR[wd]64i+63..64i = max_s(WR[ws]64i+63..64i, t, 64)
endfor
function max_s(ts, tt, n)
t = ttn-1 || tt
s = tsn-1 || ts
if t < s then
return ts
else
return tt
endif
endfunction max_s
Reserved Instruction Exception, MSA Disabled Exception.