diff options
author | Arnold Schwaighofer <aschwaighofer@apple.com> | 2013-09-20 21:18:20 +0000 |
---|---|---|
committer | Arnold Schwaighofer <aschwaighofer@apple.com> | 2013-09-20 21:18:20 +0000 |
commit | 074e489dbc0779465cd71a2e10643c156ae5d6d7 (patch) | |
tree | e7a05f205bdbd49df3e420b7b69d923313224648 /test/Transforms/SLPVectorizer/X86/crash_flop7.ll | |
parent | 2938e975626e4328215dbba333ee03352dbdaf6a (diff) | |
download | external_llvm-074e489dbc0779465cd71a2e10643c156ae5d6d7.zip external_llvm-074e489dbc0779465cd71a2e10643c156ae5d6d7.tar.gz external_llvm-074e489dbc0779465cd71a2e10643c156ae5d6d7.tar.bz2 |
SLPVectorizer: Handle more horizontal reductions (disabled)
Match reductions starting at binary operation feeding into a phi. The code
handles trees like
r += v1 + v2 + v3 ...
and
r += v1
r += v2
...
and
r *= v1 + v2 + ...
We currently only handle associative operations (add, fadd fast).
The code can now also handle reductions feeding into stores.
a[i] = v1 + v2 + v3 + ...
The code is currently disabled behind the flag "-slp-vectorize-hor". The cost
model for most architectures is not there yet.
I found one opportunity of a horizontal reduction feeding a phi in TSVC
(LoopRerolling-flt) and there are several opportunities where reductions feed
into stores.
radar://14607682
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191108 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/SLPVectorizer/X86/crash_flop7.ll')
0 files changed, 0 insertions, 0 deletions