|
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.