Files
llvm/test/CodeGen/X86
Sanjay Patel 05d5e213c4 merge consecutive stores of extracted vector elements (PR21711)
This is a 2nd try at the same optimization as http://reviews.llvm.org/D6698. 
That patch was checked in at r224611, but reverted at r225031 because it
caused a failure outside of the regression tests.

The cause of the crash was not recognizing consecutive stores that have mixed
source values (loads and vector element extracts), so this patch adds a check
to bail out if any store value is not coming from a vector element extract.

This patch also refactors the shared logic of the constant source and vector
extracted elements source cases into a helper function.

Differential Revision: http://reviews.llvm.org/D6850
 


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