Alexey Bataev
29965753c8
[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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295949 91177308-0d34-0410-b5e6-96231b3b80d8
2017-02-23 09:40:38 +00:00
..
2016-12-13 16:42:18 +00:00
2017-02-10 21:09:07 +00:00
2016-06-15 06:18:01 +00:00
2017-02-17 23:57:42 +00:00
2016-06-17 18:11:48 +00:00
2017-01-17 23:39:33 +00:00
2016-12-07 21:47:32 +00:00
2015-12-03 19:41:25 +00:00
2016-08-02 02:15:45 +00:00
2016-12-20 23:46:36 +00:00
2016-07-14 07:44:20 +00:00
2016-05-05 00:51:09 +00:00
2017-02-17 17:36:52 +00:00
2017-01-25 02:25:54 +00:00
2016-12-19 08:22:17 +00:00
2016-09-01 09:42:39 +00:00
2016-07-09 03:25:35 +00:00
2016-11-04 18:50:45 +00:00
2016-09-21 15:29:08 +00:00
2016-08-12 01:09:53 +00:00
2017-01-17 20:15:47 +00:00
2016-05-05 02:37:32 +00:00
2016-06-24 23:32:02 +00:00
2015-12-27 08:13:45 +00:00
2017-02-13 23:10:51 +00:00
2017-02-22 18:53:38 +00:00
2016-12-20 02:09:43 +00:00
2017-01-24 12:55:57 +00:00
2016-12-22 00:45:21 +00:00
2017-02-17 23:57:42 +00:00
2016-11-21 00:28:23 +00:00
2016-05-21 02:24:44 +00:00
2017-02-17 17:36:52 +00:00
2017-02-07 17:35:53 +00:00
2017-02-17 17:36:52 +00:00
2017-02-17 00:32:19 +00:00
2016-09-20 23:10:31 +00:00
2017-02-15 17:42:58 +00:00
2017-02-23 00:44:03 +00:00
2017-01-24 19:55:36 +00:00
2017-02-18 21:59:09 +00:00
2017-02-11 01:53:00 +00:00
2016-06-05 19:08:54 +00:00
2017-02-04 19:44:14 +00:00
2017-02-07 23:59:07 +00:00
2017-02-17 04:21:14 +00:00
2016-07-20 01:55:27 +00:00
2017-02-14 16:41:10 +00:00
2017-02-10 00:44:08 +00:00
2017-02-23 03:58:53 +00:00
2016-08-22 12:59:58 +00:00
2017-01-18 02:41:26 +00:00
2017-01-13 00:16:23 +00:00
2017-01-22 20:28:56 +00:00
2016-09-21 19:16:47 +00:00
2017-01-27 01:32:26 +00:00
2017-01-25 16:00:44 +00:00
2016-11-21 22:35:34 +00:00
2016-12-19 08:22:17 +00:00
2017-02-14 21:10:40 +00:00
2016-05-10 18:28:10 +00:00
2017-02-22 21:47:08 +00:00
2017-02-22 00:27:34 +00:00
2017-02-10 06:12:06 +00:00
2017-02-22 21:56:02 +00:00
2016-12-21 04:07:40 +00:00
2016-08-28 08:53:53 +00:00
2016-05-13 22:52:35 +00:00
2016-09-02 22:03:40 +00:00
2016-07-28 22:08:41 +00:00
2016-08-12 17:28:27 +00:00
2015-11-22 00:16:24 +00:00
2017-02-13 19:26:18 +00:00
2016-06-14 03:22:22 +00:00
2016-12-27 17:58:12 +00:00
2017-01-21 02:02:56 +00:00
2015-11-19 05:56:52 +00:00
2016-09-17 20:40:16 +00:00
2016-12-19 08:22:17 +00:00
2017-02-22 22:20:58 +00:00
2016-09-13 23:43:11 +00:00
2017-01-04 21:24:56 +00:00
2017-02-14 20:03:48 +00:00
2016-05-03 08:33:26 +00:00
2016-06-25 01:40:54 +00:00
2016-06-24 20:13:42 +00:00
2016-10-03 19:35:30 +00:00
2016-11-22 20:23:04 +00:00
2015-06-17 20:52:32 +00:00
2016-10-07 20:34:00 +00:00
2016-10-14 17:56:00 +00:00
2017-02-22 17:27:21 +00:00
2016-07-25 20:02:54 +00:00
2017-02-17 17:36:52 +00:00
2016-07-20 22:11:36 +00:00
2017-02-17 17:36:52 +00:00
2016-07-19 17:52:41 +00:00
2017-02-23 09:40:38 +00:00
2016-10-28 20:00:33 +00:00
2016-12-05 18:04:47 +00:00
2016-07-11 18:13:28 +00:00
2015-10-30 23:28:12 +00:00
2016-12-22 00:45:21 +00:00
2017-02-22 00:02:21 +00:00
2016-11-07 21:01:49 +00:00
2017-02-14 03:42:38 +00:00
2017-02-22 22:20:58 +00:00
2017-02-17 19:43:45 +00:00