Michael Kuperstein
e5b8fbc43a
[SLPVectorizer] Vectorize reverse-order loads in horizontal reductions
...
When vectorizing a tree rooted at a store bundle, we currently try to sort the
stores before building the tree, so that the stores can be vectorized. For other
trees, the order of the root bundle - which determines the order of all other
bundles - is arbitrary. That is bad, since if a leaf bundle of consecutive loads
happens to appear in the wrong order, we will not vectorize it.
This is partially mitigated when the root is a binary operator, by trying to
build a "reversed" tree when that's considered profitable. This patch extends the
workaround we have for binops to trees rooted in a horizontal reduction.
This fixes PR28474.
Differential Revision: https://reviews.llvm.org/D22554
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276477 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-22 21:28:48 +00:00
..
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +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
2016-06-20 23:08:21 +00:00
2016-04-06 07:04:53 +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
2013-07-07 06:57:07 +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
2015-02-27 19:29:02 +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-05-06 21:33:01 +00:00
2016-07-20 10:41:28 +00:00
2016-05-06 21:33:01 +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
2015-02-27 21:17:42 +00:00
2016-07-08 17:19:13 +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
2015-12-16 17:22:24 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2014-10-15 17:35:01 +00:00
2016-04-28 16:11:45 +00:00
2015-02-27 21:17:42 +00:00
2014-06-09 22:42:55 +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
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2014-04-09 14:20:47 +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
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
2013-07-09 21:38:08 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2013-11-26 22:24:25 +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
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-07-22 21:28:48 +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
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-07-18 13:20:54 +00:00
2015-06-19 17:40:15 +00:00
2015-02-27 21:17:42 +00:00
2014-05-04 17:10:15 +00:00
2016-07-06 08:11:23 +00:00
2013-04-20 22:29:43 +00:00