Encoding:

SPECIAL3

011111

0

00000

rt

rd

PRECEU.PH.QBL

11100

ABSQ_S.PH

010010

6

5

5

5

5

6

Format:

PRECEU.PH.QBL rd, rt

MIPSDSP

Precision Expand Two Unsigned Bytes to Unsigned Halfword Values

Purpose:

Precision Expand Two Unsigned Bytes to Unsigned Halfword Values

Expand the precision of two unsigned byte values taken from the two left-most elements of a quad byte vector to create two unsigned halfword values.

Description:

rd = sign_extend(expand_prec8u16(rt31..24) || expand_prec8u16(rt23..16))

The two left-most unsigned integer byte values from the four right-most byte elements in register rt are expanded to create two unsigned halfword values that are then written to destination register rd. The precision expansion is achieved by pre-pending eight most-significant zeros to each original value to generate each 16 bit unsigned value.

Bit 31 of the result is extended into the 32 most-significant bits of the destination register.

Restrictions:

No data-dependent exceptions are possible.

The operands must be values in the specified format. If they are not, the results are UNPREDICTABLE and the values of the operand vectors become UNPREDICTABLE.

Operation:

tempB15..0 = 08 || GPR[rt]31..24
tempA15..0 = 08 || GPR[rt]23..16
GPR[rd]63..0 = (tempB15)32 || tempB15..0 || tempA15..0

Exceptions:

Reserved Instruction, DSP Disabled