summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/ARM/ParallelDSP/exchange.ll
Commit message (Collapse)AuthorAgeFilesLines
* [ARM][ParallelDSP] Change smlad insertion orderSam Parker2019-10-161-6/+6
| | | | | | | | | | Instead of inserting everything after the 'root' of the reduction, insert all instructions as close to their operands as possible. This can help reduce register pressure. Differential Revision: https://reviews.llvm.org/D67392 llvm-svn: 374981
* [ARM][ParallelDSP] SExt mul for accumulationSam Parker2019-09-041-0/+123
| | | | | | | | | | For any unpaired muls, we accumulate them as an input to the reduction. Check the type of the mul and perform a sext if the existing accumlator input type is not the same. Differential Revision: https://reviews.llvm.org/D66993 llvm-svn: 370851
* [ARM][ParallelDSP] Change search for mulsSam Parker2019-08-281-0/+329
| | | | | | | | | | | | | | | | | | | | rL369567 reverted a couple of recent changes made to ARMParallelDSP because of a miscompilation error: PR43073. The issue stemmed from an underlying bug that was caused by adding muls into a reduction before it was proved that they could be executed in parallel with another mul. Most of the changes here are from the previously reverted commits. The additional changes have been made area: 1) The Search function now doesn't insert any muls into the Reduction object. That now happens once the search has successfully finished. 2) For any muls added into the reduction but that weren't paired, we accumulate their values as an input into the smlad. Differential Revision: https://reviews.llvm.org/D66660 llvm-svn: 370171
* Revert r367389 (and follow-up r368404); it caused PR43073.Nico Weber2019-08-211-329/+0
| | | | llvm-svn: 369567
* [ARM][ParallelDSP] Replace SExt usesSam Parker2019-08-091-0/+329
As loads are combined and widened, we replaced their sext users operands whereas we should have been replacing the uses of the sext. I've added a load of tests, with only a few of them originally causing assertion failures, the rest improve pattern coverage. Differential Revision: https://reviews.llvm.org/D65740 llvm-svn: 368404
OpenPOWER on IntegriCloud