aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineScheduler.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2017-02-23 10:57:15 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2017-02-23 10:57:15 +0000
commit7ae653285d07fb7a40e243adef9b4f9389ea0417 (patch)
tree330a48307c8a857f8e4ba68bad03175f2185022d /llvm/lib/CodeGen/MachineScheduler.cpp
parentc29f7ff33464f14663c21b4d35a038a79189c709 (diff)
downloadllvm-7ae653285d07fb7a40e243adef9b4f9389ea0417.zip
llvm-7ae653285d07fb7a40e243adef9b4f9389ea0417.tar.gz
llvm-7ae653285d07fb7a40e243adef9b4f9389ea0417.tar.bz2
[SLP] Fix for PR32036: Vectorized horizontal reduction returning wrong
result Summary: If the same value is used several times as an extra value, SLP vectorizer takes it into account only once instead of actual number of using. For example: ``` int val = 1; for (int y = 0; y < 8; y++) { for (int x = 0; x < 8; x++) { val = val + input[y * 8 + x] + 3; } } ``` We have 2 extra rguments: `1` - initial value of horizontal reduction and `3`, which is added 8*8 times to the reduction. Before the patch we added `1` to the reduction value and added once `3`, though it must be added 64 times. Reviewers: mkuper, mzolotukhin Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30262 llvm-svn: 295956
Diffstat (limited to 'llvm/lib/CodeGen/MachineScheduler.cpp')
0 files changed, 0 insertions, 0 deletions