Files
llvm-mirror/test/CodeGen/X86
Andrea Di Biagio b770dd344e [X86] Improved lowering of v4x32 build_vector dag nodes.
This patch improves the lowering of v4f32 and v4i32 build_vector dag nodes
that are known to have at least two non-zero elements.

With this patch, a build_vector that performs a blend with zero is 
converted into a shuffle. This is done to let the shuffle legalizer expand
the dag node in a optimal way. For example, if we know that a build_vector
performs a blend with zero, we can try to lower it as a movq/blend instead of
always selecting an insertps.

This patch also improves the logic that lowers a build_vector into a insertps
with zero masking. See for example the extra test cases added to test sse41.ll.

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

llvm-svn: 222375
2014-11-19 19:34:29 +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
2013-03-06 00:17:04 +00:00
2013-03-06 00:17:04 +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
2013-10-15 23:33:07 +00:00
2011-08-19 04:30:24 +00:00
2011-08-27 04:53:41 +00:00
2014-09-19 01:14:56 +00:00
2014-06-27 18:19:56 +00:00
2013-10-15 23:33:07 +00:00
2014-10-16 20:00:02 +00:00
2014-10-16 20:00:02 +00:00
2014-06-27 18:19:56 +00:00
2014-06-27 18:19:56 +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
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +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-10-16 02:27:33 +00:00
2013-12-11 08:38:42 +00:00
2013-12-11 08:38:42 +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
2014-06-27 18:19:56 +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
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
2013-10-15 23:33:07 +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-10-15 23:33:07 +00:00
2013-02-19 17:11:48 +00:00
2013-10-15 23:33:07 +00:00
2014-05-20 17:40:03 +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
2012-03-30 00:26:54 +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