Systems, apparatuses, and methods for performing delta decoding on packed data elements
First Claim
1. A method comprising:
- decoding a single instruction into a decoded single instruction with a decoder of a processor; and
executing, by an execution unit of the processor, the decoded single instruction that identifies a source operand having a plurality of packed data elements and a destination operand to;
input a first packed data element from a first packed data element position of the source operand and a second packed data element from a second packed data element position of the source operand to a first adder, and generate a first value that is a sum of the first packed data element and the second packed data element,input the first value from the first adder and a third packed data element from a third packed data element position of the source operand to a second adder, and produce a second value that is a sum of the first value and the third packed data element,input a fourth packed data element from a fourth packed data element position of the source operand to a third adder, and produce a third value that is a sum of the fourth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance,input a fifth packed data element from a fifth packed data element position of the source operand to a fourth adder, and produce a fourth value that is a sum of the fifth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance,input a sixth packed data element from a sixth packed data element position of the source operand to a fifth adder, and produce a fifth value that is a sum of the sixth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance,input a seventh packed data element from a seventh packed data element position of the source operand to a sixth adder, and produce a sixth value that is a sum of the seventh packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance,input an eighth packed data element from an eighth packed data element position of the source operand to a seventh adder, and produce a seventh value that is a sum of the eighth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, andstore the first packed data element from the first packed data element position of the source operand into a first packed data element position of the destination operand, the first value into a second packed data element position of the destination operand, the second value into a third packed data element position of the destination operand, the third value into a fourth packed data element position of the destination operand, the fourth value into a fifth packed data element position of the destination operand, the fifth value into a sixth packed data element position of the destination operand, the sixth value into a seventh packed data element position of the destination operand, and the seventh value into an eighth packed data element position of the destination operand.
0 Assignments
0 Petitions
Accused Products
Abstract
Systems, apparatuses, and methods for performing delta decoding on packed data elements of a source and storing the results in packed data elements of a destination using a single packed delta decode instruction are described. A processor may include a decoder to decode an instruction, and execution unit to execute the decoded instruction to calculate for each packed data element position of a source operand, other than a first packed data element position, a value that comprises a packed data element of that packed data element position and all packed data elements of packed data element positions that are of lesser significance, store a first packed data element from the first packed data element position of the source operand into a corresponding first packed data element position of a destination operand, and for each calculated value, store the value into a corresponding packed data element position of the destination operand.
25 Citations
21 Claims
-
1. A method comprising:
-
decoding a single instruction into a decoded single instruction with a decoder of a processor; and executing, by an execution unit of the processor, the decoded single instruction that identifies a source operand having a plurality of packed data elements and a destination operand to; input a first packed data element from a first packed data element position of the source operand and a second packed data element from a second packed data element position of the source operand to a first adder, and generate a first value that is a sum of the first packed data element and the second packed data element, input the first value from the first adder and a third packed data element from a third packed data element position of the source operand to a second adder, and produce a second value that is a sum of the first value and the third packed data element, input a fourth packed data element from a fourth packed data element position of the source operand to a third adder, and produce a third value that is a sum of the fourth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, input a fifth packed data element from a fifth packed data element position of the source operand to a fourth adder, and produce a fourth value that is a sum of the fifth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, input a sixth packed data element from a sixth packed data element position of the source operand to a fifth adder, and produce a fifth value that is a sum of the sixth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, input a seventh packed data element from a seventh packed data element position of the source operand to a sixth adder, and produce a sixth value that is a sum of the seventh packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, input an eighth packed data element from an eighth packed data element position of the source operand to a seventh adder, and produce a seventh value that is a sum of the eighth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, and store the first packed data element from the first packed data element position of the source operand into a first packed data element position of the destination operand, the first value into a second packed data element position of the destination operand, the second value into a third packed data element position of the destination operand, the third value into a fourth packed data element position of the destination operand, the fourth value into a fifth packed data element position of the destination operand, the fifth value into a sixth packed data element position of the destination operand, the sixth value into a seventh packed data element position of the destination operand, and the seventh value into an eighth packed data element position of the destination operand. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A processor comprising:
-
a decoder to decode a single instruction that includes a source operand having a plurality of packed data elements and a destination operand into a decoded single instruction; and an execution unit to execute the decoded single instruction to; input a first packed data element from a first packed data element position of the source operand and a second packed data element from a second packed data element position of the source operand to a first adder, and generate a first value that is a sum of the first packed data element and the second packed data element, input the first value from the first adder and a third packed data element from a third packed data element position of the source operand to a second adder, and produce a second value that is a sum of the first value and the third packed data element, input a fourth packed data element from a fourth packed data element position of the source operand to a third adder, and produce a third value that is a sum of the fourth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, input a fifth packed data element from a fifth packed data element position of the source operand to a fourth adder, and produce a fourth value that is a sum of the fifth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, input a sixth packed data element from a sixth packed data element position of the source operand to a fifth adder, and produce a fifth value that is a sum of the sixth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, input a seventh packed data element from a seventh packed data element position of the source operand to a sixth adder, and produce a sixth value that is a sum of the seventh packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, input an eighth packed data element from an eighth packed data element position of the source operand to a seventh adder, and produce a seventh value that is a sum of the eighth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, and store the first packed data element from the first packed data element position of the source operand into a first packed data element position of the destination operand, the first value into a second packed data element position of the destination operand, the second value into a third packed data element position of the destination operand, the third value into a fourth packed data element position of the destination operand, the fourth value into a fifth packed data element position of the destination operand, the fifth value into a sixth packed data element position of the destination operand, the sixth value into a seventh packed data element position of the destination operand, and the seventh value into an eighth packed data element position of the destination operand. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory machine readable medium that stores code that when executed by a machine causes the machine to perform a method comprising:
-
decoding a single instruction into a decoded single instruction with a decoder of a processor; and executing, by an execution unit of the processor, the decoded single instruction that identifies a source operand having a plurality of packed data elements and a destination operand to; input a first packed data element from a first packed data element position of the source operand and a second packed data element from a second packed data element position of the source operand to a first adder, and generate a first value that is a sum of the first packed data element and the second packed data element, input the first value from the first adder and a third packed data element from a third packed data element position of the source operand to a second adder, and produce a second value that is a sum of the first value and the third packed data element, input a fourth packed data element from a fourth packed data element position of the source operand to a third adder, and produce a third value that is a sum of the fourth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, input a fifth packed data element from a fifth packed data element position of the source operand to a fourth adder, and produce a fourth value that is a sum of the fifth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, input a sixth packed data element from a sixth packed data element position of the source operand to a fifth adder, and produce a fifth value that is a sum of the sixth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, input a seventh packed data element from a seventh packed data element position of the source operand to a sixth adder, and produce a sixth value that is a sum of the seventh packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, input an eighth packed data element from an eighth packed data element position of the source operand to a seventh adder, and produce a seventh value that is a sum of the eighth packed data element and all packed data elements of packed data element positions of the source operand that are of lesser significance, and store the first packed data element from the first packed data element position of the source operand into a first packed data element position of the destination operand, the first value into a second packed data element position of the destination operand, the second value into a third packed data element position of the destination operand, the third value into a fourth packed data element position of the destination operand, the fourth value into a fifth packed data element position of the destination operand, the fifth value into a sixth packed data element position of the destination operand, the sixth value into a seventh packed data element position of the destination operand, and the seventh value into an eighth packed data element position of the destination operand. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification