Encoding:

MSA

011110

010

df

wt

ws

wd

3R

001110

6

3

2

5

5

5

6

Format:

MAX_S.df 

Vector Signed Maximum

MAX_S.B wd,ws,wt

MSA

Vector Signed Maximum

MAX_S.H wd,ws,wt

MSA

Vector Signed Maximum

MAX_S.W wd,ws,wt

MSA

Vector Signed Maximum

MAX_S.D wd,ws,wt

MSA

Vector Signed Maximum

Purpose:

Vector Signed Maximum

Vector and vector signed maximum.

Description:

wd[i] = max(ws[i], wt[i])

Maximum values between signed elements in vector wt and signed elements in vector ws are written to vector wd.

The operands and results are values in integer data format df.

Restrictions:

No data-dependent exceptions are possible.

Operation:

MAX_S.B
   for i in 0 .. WRLEN/8-1
      WR[wd]8i+7..8i = max_s(WR[ws]8i+7..8i, WR[wt]8i+7..8i, 8)
   endfor
MAX_S.H
   for i in 0 .. WRLEN/16-1
      WR[wd]16i+15..16i = max_s(WR[ws]16i+15..16i, WR[wt]16i+15..16i, 16)
   endfor
MAX_S.W
   for i in 0 .. WRLEN/32-1
      WR[wd]32i+31..32i = max_s(WR[ws]32i+31..32i, WR[wt]32i+31..32i, 32)
   endfor
MAX_S.D
   for i in 0 .. WRLEN/64-1
      WR[wd]64i+63..64i = max_s(WR[ws]64i+63..64i, WR[wt]64i+63..64i, 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

Exceptions:

Reserved Instruction Exception, MSA Disabled Exception.