MSA 011110 |
111 |
df |
wt |
ws |
wd |
3R 010100 |
6 |
3 |
2 |
5 |
5 |
5 |
6 |
ILVOD.df |
Vector Interleave Odd | |
ILVOD.B wd,ws,wt |
MSA |
Vector Interleave Odd |
ILVOD.H wd,ws,wt |
MSA |
Vector Interleave Odd |
ILVOD.W wd,ws,wt |
MSA |
Vector Interleave Odd |
ILVOD.D wd,ws,wt |
MSA |
Vector Interleave Odd |
Vector Interleave Odd
Vector odd elements interleave.
wd[2i] = wt[2i+1]; wd[2i+1] = ws[2i+1]
Odd 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.
ILVOD.B for i in 0 .. WRLEN/16-1 j = 2 * i k = 2 * i + 1 WR[wd]8j+7..8j = WR[wt]8k+7..8k WR[wd]8k+7..8k = WR[ws]8k+7..8k endfor ILVOD.H for i in 0 .. WRLEN/32-1 j = 2 * i k = 2 * i + 1 WR[wd]16j+15..16j = WR[wt]16k+15..16k WR[wd]16k+15..16k = WR[ws]16k+15..16k endfor ILVOD.W for i in 0 .. WRLEN/64-1 j = 2 * i k = 2 * i + 1 WR[wd]32j+31..32j = WR[wt]32k+31..32k WR[wd]32k+31..32k = WR[ws]32k+31..32k endfor ILVOD.D for i in 0 .. WRLEN/128-1 j = 2 * i k = 2 * i + 1 WR[wd]64j+63..64j = WR[wt]64k+63..64k WR[wd]64k+63..64k = WR[ws]64k+63..64k endfor
Reserved Instruction Exception, MSA Disabled Exception.