summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
Commit message (Collapse)AuthorAgeFilesLines
* Remove a duplicate testPhilip Reames2019-09-121-320/+14
| | | | | | Turns out I'd already added exactly the same test under the name non_unit_stride. llvm-svn: 371777
* [LV] Update test case after r371768.Florian Hahn2019-09-121-15/+143
| | | | llvm-svn: 371769
* Precommit tests for generalization of load dereferenceability in loopPhilip Reames2019-09-121-10/+717
| | | | llvm-svn: 371747
* [LV] Support invariant addresses in speculation logicPhilip Reames2019-09-121-153/+57
| | | | | | | | | | Implement a TODO from rL371452, and handle loop invariant addresses in predicated blocks. If we can prove that the load is safe to speculate into the header, then we can avoid using a masked.load in favour of a normal load. This is mostly about vectorization robustness. In the common case, it's generally expected that LICM/LoadStorePromotion would have eliminated such loads entirely. Differential Revision: https://reviews.llvm.org/D67372 llvm-svn: 371745
* [Tests] Fix a typo in a testPhilip Reames2019-09-091-83/+96
| | | | llvm-svn: 371456
* [Tests] Precommit test case for D67372Philip Reames2019-09-091-10/+302
| | | | llvm-svn: 371455
* [LoopVectorize] Leverage speculation safety to avoid masked.loadsPhilip Reames2019-09-091-16/+16
| | | | | | | | | | | | If we're vectorizing a load in a predicated block, check to see if the load can be speculated rather than predicated. This allows us to generate a normal vector load instead of a masked.load. To do so, we must prove that all bytes accessed on any iteration of the original loop are dereferenceable, and that all loads (across all iterations) are properly aligned. This is equivelent to proving that hoisting the load into the loop header in the original scalar loop is safe. Note: There are a couple of code motion todos in the code. My intention is to wait about a day - to be sure this sticks - and then perform the NFC motion without furthe review. Differential Revision: https://reviews.llvm.org/D66688 llvm-svn: 371452
* Preland test cases for D66688 to make diffs clear.Philip Reames2019-08-261-0/+1390
llvm-svn: 369959
OpenPOWER on IntegriCloud