Encoding:

MSA

011110

011

df

wt

ws

wd

3R

010100

6

3

2

5

5

5

6

Format:

PCKOD.df 

Vector Pack Odd

PCKOD.B wd,ws,wt

MSA

Vector Pack Odd

PCKOD.H wd,ws,wt

MSA

Vector Pack Odd

PCKOD.W wd,ws,wt

MSA

Vector Pack Odd

PCKOD.D wd,ws,wt

MSA

Vector Pack Odd

Purpose:

Vector Pack Odd

Vector odd elements copy.

Description:

left_half(wd)[i] = ws[2i+1]; right_half(wd)[i] = wt[2i+1]

Odd elements in vector ws are copied to the left half of vector wd and odd elements in vector wt are copied to the right half of vector wd.

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

Restrictions:

No data-dependent exceptions are possible.

Operation:

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

Exceptions:

Reserved Instruction Exception, MSA Disabled Exception.