Alexey Bataev
f77d1656af
[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: 295972
2017-02-23 13:37:09 +00:00
..
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2016-12-08 11:57:51 +00:00
2015-03-13 18:20:45 +00:00
2015-09-30 21:05:43 +00:00
2015-04-16 23:24:18 +00:00
2016-06-11 19:23:02 +00:00
2017-02-21 13:40:55 +00:00
2016-06-20 23:08:21 +00:00
2016-11-16 00:55:50 +00:00
2016-05-06 22:22:18 +00:00
2015-02-27 21:17:42 +00:00
2015-11-06 20:17:51 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2016-12-11 20:07:15 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-07-08 23:40:55 +00:00
2016-11-08 14:10:28 +00:00
2016-07-20 10:41:28 +00:00
2016-08-04 10:51:41 +00:00
2015-02-27 21:17:42 +00:00
2016-04-15 15:57:41 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2017-02-14 15:20:48 +00:00
2016-10-01 16:54:01 +00:00
2016-11-18 02:25:34 +00:00
2015-02-27 21:17:42 +00:00
2016-07-08 17:19:13 +00:00
2016-12-06 13:29:55 +00:00
2016-10-01 19:35:59 +00:00
2016-06-22 14:07:46 +00:00
2016-04-29 07:09:51 +00:00
2016-06-08 21:55:16 +00:00
2016-06-15 08:43:40 +00:00
2015-02-27 21:17:42 +00:00
2017-02-23 13:37:09 +00:00
2016-12-15 13:21:29 +00:00
2017-02-20 12:41:16 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2016-12-08 11:57:51 +00:00
2016-04-28 16:11:45 +00:00
2015-02-27 21:17:42 +00:00
2017-02-03 19:09:45 +00:00
2015-02-27 21:17:42 +00:00
2015-07-08 23:40:55 +00:00
2015-02-27 21:17:42 +00:00
2016-12-12 21:11:04 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-12-28 00:18:08 +00:00
2015-02-27 21:17:42 +00:00
2016-02-26 19:40:34 +00:00
2015-02-27 21:17:42 +00:00
2015-06-17 20:52:32 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-07-08 23:40:55 +00:00
2015-07-30 17:40:39 +00:00
2016-04-01 17:28:15 +00:00
2017-01-11 19:23:57 +00:00
2016-11-16 00:55:50 +00:00
2015-02-27 21:17:42 +00:00
2017-01-28 17:59:44 +00:00
2016-12-01 18:42:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-09-30 17:28:19 +00:00
2016-10-07 09:39:22 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-12-06 13:29:55 +00:00
2016-09-18 20:25:41 +00:00
2017-01-28 17:59:44 +00:00
2015-06-19 17:40:15 +00:00
2016-10-10 14:28:06 +00:00
2015-02-27 21:17:42 +00:00
2017-01-18 18:07:46 +00:00
2016-07-06 08:11:23 +00:00