Dual function system and method for shuffling packed data elements
AssigneeIntel Corporation
InventorsPatrice Roussel, Srinivas Chennupaty, Mike Cranford, Mohammad Abdallah, Jim Coke, Katherine Kong
Life of this patent
Estimating the term…
Abstract
An apparatus and method for performing a shuffle operation on packed data using computer-implemented steps is described. In one embodiment, a first packed data operand having at least two data elements is accessed. A second packed data operand having at least two data elements is accessed. One of the data elements in the first packed data operand is shuffled into a lower destination field of a destination register, and one of the data elements in the second packed data operand is shuffled into an upper destination field of the destination register.
Claims24
A computer system comprising:
- a hardware unit to transmit data representing graphics to another computer or a display;
- a processor coupled to the hardware unit;
- and
- a storage device coupled to the processor and having stored therein an instruction, which when executed by the processor, causes the processor to at least,
- access a first packed data operand having at least two data elements;
- access a second packed data operand having at least two data elements;
- select a first set of data elements from the first packed data operand;
- copy each of the data elements in the first set to specified data fields located in the lower half of a destination operand;
- select a second set of data elements from the second packed data operand;
- and
- copy each of the data elements in the second set to specified data fields located in the upper half of the destination operand.
A method comprising the computer-implemented steps of:
- decoding a single instruction;
- in response to the step of decoding the single instruction,
- accessing a first packed data operand having at least two data elements;
- accessing a second packed data operand having at least two data elements;
- selecting a first set of data elements from the first packed data operand;
- copying each of the data elements in the first set to specified data fields located in the lower half of a destination operand;
- selecting a second set of data elements from the second packed data operand;
- and
- copying each of the data elements in the second set to specified data fields located in the upper half of the destination operand.
A method comprising the computer implemented steps of:
- accessing data representative of a first three-dimensional image;
- altering the data using three-dimensional geometry to generate a second
- three-dimensional image, the step of altering at least including,
- accessing a first packed data operand having at least two data elements;
- accessing a second packed data operand having at least two data elements;
- selecting a first set of data elements from the first packed data operand;
- copying each of the data elements in the first set to specified data fields located in the lower half of a destination operand;
- selecting a second set of data elements from the second packed data operand;
- copying each of the data elements in the second set to specified data fields located in the upper half of the destination operand;
- and
- displaying the second three-dimensional image.
A method comprising the computer implemented steps of:
- accessing data representative of a first three-dimensional image;
- altering the data using three-dimensional geometry to generate a second three-dimensional image, the step of altering at least including,
- accessing a first packed data operand having at least two data elements;
- accessing a second packed data operand having at least two data elements;
- selecting a first set of data elements from the first packed data operand;
- copying each of the data elements in the first set to specified data fields located in the lower half of a destination operand;
- selecting a second set of data elements from the second packed data operand;
- copying each of the data elements in the second set to specified data fields located in the upper half of the destination operand;
- and
- displaying the second three-dimensional image.
A processor-implemented method for reducing the number of control bits required to shuffle packed data elements from first and second source operands, comprising the steps of:
- decoding a single instruction specifying first and second source operands and a field of control bits;
- and
- responsive to the field of control bits, generating a resultant packed data operand comprised of packed data elements from the first and second source operands,
- wherein the control bits are limited to specifying for the upper and lower halves of the resultant packed data operand, data elements from the first and second source operands, respectively.
A processor for performing a shuffle operation in response to a shuffle instruction comprising:
- a decoder which decodes a single instruction specifying first and second source operands and a field of control bits;
- and
- an execution unit which, responsive to the field of control bits, generates a resultant packed data operand comprised of packed data elements from the first and second source operands,
- wherein the control bits are limited to specifying for the upper and lower halves of the resultant packed data operand, data elements from the first and second source operands, respectively.
Dependencies are inferred from the claim text.