|
MSA 011110 |
010 |
df |
wt |
ws |
wd |
3R 010100 |
|
6 |
3 |
2 |
5 |
5 |
5 |
6 |
PCKEV.df |
Vector Pack Even | |
PCKEV.B wd,ws,wt |
MSA |
Vector Pack Even |
PCKEV.H wd,ws,wt |
MSA |
Vector Pack Even |
PCKEV.W wd,ws,wt |
MSA |
Vector Pack Even |
PCKEV.D wd,ws,wt |
MSA |
Vector Pack Even |
Vector Pack Even
Vector even elements copy.
left_half(wd)[i] = ws[2i]; right_half(wd)[i] = wt[2i]
Even elements in vector ws are copied to the left half of vector wd and even elements in vector wt are copied to the right half of vector wd.
The operands and results are values in integer data format df.
No data-dependent exceptions are possible.
PCKEV.B
for i in 0 .. WRLEN/16-1
j = 2 * i
WR[wd]8i+7+WRLEN/2..8i+WRLEN/2 = WR[ws]8j+7..8j
WR[wd]8i+7..8i = WR[wt]8j+7..8j
endfor
PCKEV.H
for i in 0 .. WRLEN/32-1
j = 2 * i
WR[wd]16i+15+WRLEN/2..16j+WRLEN/2 = WR[ws]16j+15..16j
WR[wd]16i+15..16i = WR[wt]16j+15..16j
endfor
PCKEV.W
for i in 0 .. WRLEN/64-1
j = 2 * i
WR[wd]32i+31+WRLEN/2..32j+WRLEN/2 = WR[ws]32j+31..32j
WR[wd]32i+31..32i = WR[wt]32j+31..32j
endfor
PCKEV.D
for i in 0 .. WRLEN/128-1
j = 2 * i
WR[wd]64i+63+WRLEN/2..64j+WRLEN/2 = WR[ws]64j+63..64j
WR[wd]64i+63..64i = WR[wt]64j+63..64j
endfor
Reserved Instruction Exception, MSA Disabled Exception.