The following operators can be used to better focus your queries.
( ) , AND, OR, NOT, W/#
? single char wildcard, not at start
* multi char wildcard, not at start
(Cat? OR feline) AND NOT dog?
Cat? W/5 behavior
(Cat? OR feline) AND traits
Cat AND charact*
This guide provides a more detailed description of the syntax that is supported along with examples.
This search box also supports the look-up of an IP.com Digital Signature (also referred to as Fingerprint); enter the 72-, 48-, or 32-character code to retrieve details of the associated file or submission.
Concept Search - What can I type?
For a concept search, you can enter phrases, sentences, or full paragraphs in English. For example, copy and paste the abstract of a patent application or paragraphs from an article.
Concept search eliminates the need for complex Boolean syntax to inform retrieval. Our Semantic Gist engine uses advanced cognitive semantic analysis to extract the meaning of data. This reduces the chances of missing valuable information, that may result from traditional keyword searching.
Disclosed is a builtin to improve compiler generated Single
Instruction Multiple Data (SIMD) instructions. This is an enhancement to
the Superword Level Parallelism (SLP) algorithm for generating SIMD
English (United States)
This text was extracted from a PDF file.
This is the abbreviated version, containing approximately
52% of the total text.
Page 1 of 2
A builtin to improve compiler generated SIMD code
Larsen/Amarasinghe [*] documents an algorithm Superword Level Parallelism for generation of SIMD instructions within a basic block of a program. The algorithm begins with:
Find aligned loads/stores in a basic block and pair them up
Follow use/def chains to find pairs of instructions that can be parallelised, using a estimated benefit
This works nicely for small basic blocks, but for large basic blocks involving many computations, following use/def chains to find pairs of instructions can lead an explosion of possible pairs. The compiler might decide to pair up two instructions that seem to pair nicely, but selection of this pair may prevent longer chains of parallel computations from being generated. This is due to the fact that each instruction may only belong to one such pair of instructions.
The problem is to correctly pair up instructions to extract maximal parallelization in the block. At the point of running the SLP algorithm, enough optimization has already been done that stores to local variables and loads from them have been eliminated. This hinders the SLP algorithm from finding maximal parellelization in the block.
This invention allows a user to specify at a given point in the program that two or more computations should be grouped together to be computed in parallel. These computations are used along with the aligned load/stores as input for step 2 above.
A new builtin is added to the language: void __compute_parallel (T, T, ....); where T is a computation type (i.e. double) or a generic type...