Parallel Shift Right Instructionpshr
Instruction Type I
Format
(qp) pshr2 r1 = r3, r2 signed_form, two_byte_form, variable_form
(qp) pshr2 r1 = r3, count5 signed_form, two_byte_form, fixed_form
(qp) pshr2.u r1 = r3, r2 unsigned_form, two_byte_form, variable_form
(qp) pshr2.u r1 = r3, count5 unsigned_form, two_byte_form, fixed_form
(qp) pshr4 r1 = r3, r2 signed_form, four_byte_form, variable_form
(qp) pshr4 r1 = r3, count5 signed_form, four_byte_form, fixed_form
(qp) pshr4.u r1 = r3, r2 unsigned_form, four_byte_form, variable_form
(qp) pshr4.u r1 = r3, count5 unsigned_form, four_byte_form, fixed_form
Description
The data elements of GR r3 are each independently shifted to the right by the scalar shift count in GR r2, or in the immediate field count5. The high-order bits of each element are filled with either the initial value of the sign bits of the data elements in GR r3 (arithmetic shift) or zeros (logical shift). The shift count is interpreted as unsigned. Shift counts greater than 15 (for 16-bit quantities) or 31 (for 32-bit quantities) yield all zero or all one results depending on the initial values of the sign bits of the data elements in GR r3 and whether a signed or unsigned shift is done. The results are placed in GR r1.
Bit Field and Shift Instructions
fpabs - Floating-point Parallel Absolute Value Instruction
fpamax - Floating-point Parallel Absolute Value Maximum Instruction
fpamin - Floating-point Parallel Absolute Value Minimum Instruction
fpcmp - Floating-point Parallel Compare Instruction
fpcvt.fx - Convert Parallel Floating-point to Integer Instruction
fpma - Floating-point Parallel Multiply Add Instruction
fpmax - Floating-point Parallel Maximum Instruction
fpmerge - Floating-point Parallel Merge Instructions
fpmin - Floating-point Parallel Minimum Instruction
fpmpy - Floating-point Parallel Multiply Instruction
fpms - Floating-point Parallel Multiply Subtract Instruction
fpneg - Floating-point Parallel Negate Instruction
fpnegabs - Floating-point Parallel Negate Absolute Value Instruction
fpnma - Floating-point Parallel Negative Multiply Add Instruction
fpnmpy - Floating-point Parallel Negative Multiply Instruction
fprcpa - Floating-point Parallel Reciprocal Approximation Instruction
fprsqrta - Floating-point Parallel Reciprocal Square Root Approximation Instruction
padd - Parallel Add Instruction
Parallel Arithmetic Instructions
Parallel Data Arrangement Instructions
pavg - Parallel Average Instruction
pavgsub - Parallel Average Subtract Instruction
pcmp - Parallel Compare Instruction
pmax - Parallel Maximum Instruction
pmin - Parallel Minimum Instruction
pmpy - Parallel Multiply Instruction
pmpyshr - Parallel Multiply and Shift Right Instruction
psad1 - Parallel Sum of Absolute Difference Instruction
pshl - Parallel Shift Left Instruction
pshladd - Parallel Shift Left and Add Instruction
pshradd - Parallel Shift Right and Add Instruction
psub - Parallel Subtract Instruction
shladd - Shift Left and Add Instruction