METHOD USING SLP PACKING WITH STATEMENTS HAVING BOTH ISOMORPHIC AND NON-ISOMORPHIC EXPRESSIONS
First Claim
1. A computer implemented method for using Superword-Level Parallelism (SLP) in processing a plurality of statements, wherein the statements are associated with an array having a number of array positions, and each statement includes one or more expressions, said method comprising the steps of:
- gathering the expressions for each of said statements into a structure comprising at least a single merge stream, said single merge stream being furnished with a location for each gathered expression, wherein the location for a given expression is associated with one of said positions of said array;
selectively identifying a plurality of said expressions in said single merge stream, and applying SLP packing operations to said identified expressions, in order to merge respective identified expressions into one or more isomorphic sub-streams;
selectively combining the expressions of said isomorphic sub-streams, and other expressions of said single merge stream, into a number of input vectors that are substantially equal in length to one another;
generating a location vector containing the respective locations for all of the expressions in said single merge stream; and
generating an output stream comprising the expressions of said input vectors, wherein said expressions are arranged in an order in said output stream that is determined by the respective locations contained in said location vector.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer implemented method is provided for using SLP in processing a plurality of statements, wherein the statements are associated with an array having a number of array positions, and each statement includes one or more expressions. The method includes the step of gathering expressions for each of the statements into a structure comprising a single merge stream, the merge streams being furnished with a location for each expression, wherein the location for a given expression is associated with one of the array positions. The method further comprises selectively identifying a plurality of expressions, and applying SLP packing operations to the identified expressions, in order to merge respective identified expressions into one or more isomorphic sub-streams. The method further comprises selectively combining the expressions of the isomorphic sub-streams, and other expressions of the single merge stream, into a number of input vectors that are substantially equal in length to one another. A location vector is generated that contains the respective locations for all of the expressions in the single merge stream. The method further comprises generating an output stream that comprises the expressions of the input vectors, wherein the expressions are arranged in the output stream an order determined by the respective locations contained in the location vector.
15 Citations
20 Claims
-
1. A computer implemented method for using Superword-Level Parallelism (SLP) in processing a plurality of statements, wherein the statements are associated with an array having a number of array positions, and each statement includes one or more expressions, said method comprising the steps of:
-
gathering the expressions for each of said statements into a structure comprising at least a single merge stream, said single merge stream being furnished with a location for each gathered expression, wherein the location for a given expression is associated with one of said positions of said array; selectively identifying a plurality of said expressions in said single merge stream, and applying SLP packing operations to said identified expressions, in order to merge respective identified expressions into one or more isomorphic sub-streams; selectively combining the expressions of said isomorphic sub-streams, and other expressions of said single merge stream, into a number of input vectors that are substantially equal in length to one another; generating a location vector containing the respective locations for all of the expressions in said single merge stream; and generating an output stream comprising the expressions of said input vectors, wherein said expressions are arranged in an order in said output stream that is determined by the respective locations contained in said location vector. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer program product executable in a computer readable medium for using Superword-Level Parallelism (SLP) in processing a plurality of statements, wherein the statements are associated with an array having a number of array positions, and each statement includes one or more expressions, said computer program product comprising:
-
instructions for gathering the expressions for each of said statements into a structure comprising a single merge stream, said single merge stream being furnished with a location for each expression, wherein the location for a given expression is associated with one of said positions of said array; instructions for selectively identifying a plurality of said expressions in said single merge stream, and applying SLP packing operations to said identified expressions, in order to merge respective identified expressions into one or more isomorphic sub-streams; instructions for selectively combining the expressions of said isomorphic sub-streams, and other expressions of said single merge stream, into a number of input vectors that are substantially equal in length to one another; instructions for generating a location vector containing the respective locations for all of the expressions in said single merge stream; and instructions for generating an output stream comprising the expressions of said input vectors, wherein said expressions are arranged in said output stream in an order that is determined by the respective locations contained in said location vector. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer system adapted to use Superword-Level Parallelism (SLP) in processing a plurality of statements, wherein the statements are associated with an array having a number of array positions, and each statement includes one or more expressions, said system comprising the steps of:
-
a first component for gathering the expressions for each of said statements into a structure comprising a single merge stream, said single merge stream being furnished with a location for each expression, wherein the location for a given expression is associated with one of said positions of said array; a second component for selectively identifying a plurality of said expressions in said single merge stream, and applying SLP packing operations to said identified expressions, in order to merge respective identified expressions into one or more isomorphic sub-streams; a third component for selectively combining the expressions of said isomorphic sub-streams, and other expressions of said single merge stream, into a number of input vectors that are substantially equal in length to one another; a fourth component for generating a location vector containing the respective locations for all of the expressions in said single merge stream; and a fifth component for generating an output stream comprising the expressions of said input vectors, wherein said expressions are arranged in said output stream in an order in said output stream that is determined by the respective locations contained in said location vector. - View Dependent Claims (17, 18, 19, 20)
-
Specification