MSA 011110 |
110 |
df |
wt |
ws |
wd |
3R 010100 |
6 |
3 |
2 |
5 |
5 |
5 |
6 |
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 |
Vector Interleave Even
Vector even elements interleave.
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.
No data-dependent exceptions are possible.
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
Reserved Instruction Exception, MSA Disabled Exception.