- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Am I incorrect in thinking that optimizers can avoid re-evaluating inner conditionals, or are the vectorized optimizations just not as robust? Or, maybe it actually depends on the conditional, and not vectorization; I haven't done a lot of testing. Is there documentation on what the optimizer can/cannot do for loops with conditionals?
Thanks!
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Joe,
Due to historical reasons, some but not all loop-oriented optimizations have been applied by the time the vectorizer runs. As a result, often one would see that only loops with simple loop invariant conditionals are vectorized using bit-masking, followed by invariant code hoisting on the vector instructions. Clearly, this is open for improvement and you are hopefully happy to hear that we are currently doing major rewrite of the vectorizer/threadizer to addresses this and related phase-ordering issues.
As for documentation, the Software Vectorization Handbook (http://www.intel.com/intelpress/sum_vmmx.htm) provides in in-depth presentation of Intels vectorization methodology, including conditional vectorization.
Hope this helps.
Aart Bik
http://www.aartbik.com/

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page