Encoding:

MSA

011110

110

df

wt

ws

wd

3R

010100

6

3

2

5

5

5

6

Format:

ILVEV.df 

Vector Interleave Even

ILVEV.B wd,ws,wt

MSA

Vector Interleave Even

ILVEV.H wd,ws,wt

MSA

Vector Interleave Even

ILVEV.W wd,ws,wt

MSA

Vector Interleave Even

ILVEV.D wd,ws,wt

MSA

Vector Interleave Even

Purpose:

Vector Interleave Even

Vector even elements interleave.

Description:

wd[2i] = wt[2i]; wd[2i+1] = ws[2i]

Even elements in v ectors ws and wt are copied to vector wd alternating one element from ws with one element from wt.

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

Restrictions:

No data-dependent exceptions are possible.

Operation:

ILVEV.B
   for i in 0 .. WRLEN/16-1
      j = 2 * i
      k = 2 * i + 1
      WR[wd]8j+7..8j = WR[wt]8j+7..8j
      WR[wd]8k+7..8k = WR[ws]8j+7..8j
   endfor
ILVEV.H
   for i in 0 .. WRLEN/32-1
      j = 2 * i
      k = 2 * i + 1
      WR[wd]16j+15..16j = WR[wt]16j+15..16j
      WR[wd]16k+15..16k = WR[ws]16j+15..16j
   endfor
ILVEV.W
   for i in 0 .. WRLEN/64-1
      j = 2 * i
      k = 2 * i + 1
      WR[wd]32j+31..32j = WR[wt]32j+31..32j
      WR[wd]32k+31..32k = WR[ws]32j+31..32j
   endfor
ILVEV.D
   for i in 0 .. WRLEN/128-1
      j = 2 * i
      k = 2 * i + 1
      WR[wd]64j+63..64j = WR[wt]64j+63..64j
      WR[wd]64k+63..64k = WR[ws]64j+63..64j
   endfor

Exceptions:

Reserved Instruction Exception, MSA Disabled Exception.