diff options
author | Craig Topper <craig.topper@intel.com> | 2018-08-22 23:19:01 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2018-08-22 23:19:01 +0000 |
commit | cf9df99d79a83e9d32e4807a6bf86ba7099952c2 (patch) | |
tree | 9836a27fe96fba6600c56bbfd4f44da8f8161de8 /lldb/packages/Python/lldbsuite/test/functionalities/command_source/TestCommandSource.py | |
parent | 903ef6a03fab1ff759d540cd216c41a26a6e9a41 (diff) | |
download | bcm5719-llvm-cf9df99d79a83e9d32e4807a6bf86ba7099952c2.tar.gz bcm5719-llvm-cf9df99d79a83e9d32e4807a6bf86ba7099952c2.zip |
[X86] Teach combineLoopSADPattern to handle cases where there is no loop and the add has two absolute difference inputs
Previously we asumed a vector reduction add is part of a loop and one of the input is a phi. But the code in SelectionDAGBuilder that sets vector reduction flag handles more cases than that. It just requires that the use chain ends in a horizontal reduction. And there are no other uses. This means it can handle unrolled reduction loops.
If the initial value of the reduction was 0, an unrolled loop would begin with a vector reduction add that has two sad inputs. Previously we would only transform one side of the add, but for this case we need to transform both sides.
I've created a lambda to reuse some of the code for both sides. And fixed the variables names to remove reference to "phi".
Differential Revision: https://reviews.llvm.org/D50817
llvm-svn: 340478
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/functionalities/command_source/TestCommandSource.py')
0 files changed, 0 insertions, 0 deletions