Andrea Di Biagio 7847229c31 [DAGCombiner] Add more rules to combine shuffle vector dag nodes.
This patch teaches the DAGCombiner how to fold a pair of shuffles
according to rules:
  1.  shuffle(shuffle A, B, M0), B, M1) -> shuffle(A, B, M2)
  2.  shuffle(shuffle A, B, M0), A, M1) -> shuffle(A, B, M3)

The new rules would only trigger if the resulting shuffle has legal type and
legal mask.

Added test 'combine-vec-shuffle-3.ll' to verify that DAGCombiner correctly
folds shuffles on x86 when the resulting mask is legal. Also added some negative
cases to verify that we avoid introducing illegal shuffles.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213001 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-14 22:46:26 +00:00
..
2014-06-09 22:42:55 +00:00
2014-02-16 07:31:05 +00:00
2014-05-31 00:52:23 +00:00
2014-05-19 19:45:57 +00:00
2014-01-16 06:31:20 +00:00
2014-01-24 17:20:08 +00:00
2014-04-19 13:47:43 +00:00
2014-05-05 16:47:07 +00:00
2014-06-27 18:19:56 +00:00
2014-06-27 18:19:56 +00:00
2014-06-27 18:19:56 +00:00
2014-05-26 04:08:51 +00:00
2014-06-27 18:19:56 +00:00
2014-06-27 18:19:56 +00:00
2013-12-11 08:38:42 +00:00
2013-12-11 08:38:42 +00:00
2014-01-24 17:20:08 +00:00
2014-06-27 18:19:56 +00:00
2014-05-06 01:20:42 +00:00
2013-11-14 06:05:49 +00:00
2014-03-21 00:30:24 +00:00
2013-12-11 04:10:41 +00:00
2014-02-25 20:01:08 +00:00
2013-12-03 09:17:32 +00:00
2013-11-22 17:56:57 +00:00
2013-11-25 18:05:22 +00:00
2013-11-26 20:31:31 +00:00
2014-01-24 17:20:08 +00:00
2014-05-31 00:52:23 +00:00
2014-05-20 17:40:03 +00:00
2013-11-17 10:53:19 +00:00
2014-01-11 21:06:00 +00:00
2014-02-28 18:44:39 +00:00
2014-06-07 21:23:09 +00:00
2013-12-05 05:44:44 +00:00