Encoding:

MSA

011110

111

df

wt

ws

wd

3R

001110

6

3

2

5

5

5

6

Format:

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

Purpose:

Vector Minimum Based on Absolute Value

Vector and vector minimum based on the absolute values.

Description:

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.

Restrictions:

No data-dependent exceptions are possible.

Operation:

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

Exceptions:

Reserved Instruction Exception, MSA Disabled Exception.