diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2017-02-13 08:01:26 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2017-02-13 08:01:26 +0000 |
commit | e8b1536e21944ddca7b439c16b977af843137996 (patch) | |
tree | b05bfd93e89a34c6ee16a2e285e078dbc321c819 /llvm/lib/CodeGen/MachineCombiner.cpp | |
parent | bbe1c073873e7934809be14494c1988450c962b3 (diff) | |
download | llvm-e8b1536e21944ddca7b439c16b977af843137996.zip llvm-e8b1536e21944ddca7b439c16b977af843137996.tar.gz llvm-e8b1536e21944ddca7b439c16b977af843137996.tar.bz2 |
[SLP] Fix for PR31690: Allow using of extra values in horizontal
reductions.
Currently, LLVM supports vectorization of horizontal reduction
instructions with initial value set to 0. Patch supports vectorization
of reduction with non-zero initial values. Also, it supports a
vectorization of instructions with some extra arguments, like:
```
float f(float x[], int a, int b) {
float p = a % b;
p += x[0] + 3;
for (int i = 1; i < 32; i++)
p += x[i];
return p;
}
```
Patch allows vectorization of this kind of horizontal reductions.
Differential Revision: https://reviews.llvm.org/D29727
llvm-svn: 294934
Diffstat (limited to 'llvm/lib/CodeGen/MachineCombiner.cpp')
0 files changed, 0 insertions, 0 deletions