Michael Gottesman
4932bbe20c
[InstCombine] Teach InstCombine how to handle an obfuscated splat.
...
An obfuscated splat is where the frontend poorly generates code for a splat
using several different shuffles to create the splat, i.e.,
%A = load <4 x float>* %in_ptr, align 16
%B = shufflevector <4 x float> %A, <4 x float> undef, <4 x i32> <i32 0, i32 0, i32 undef, i32 undef>
%C = shufflevector <4 x float> %B, <4 x float> %A, <4 x i32> <i32 0, i32 1, i32 4, i32 undef>
%D = shufflevector <4 x float> %C, <4 x float> %A, <4 x i32> <i32 0, i32 1, i32 2, i32 4>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166061 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-16 21:29:38 +00:00
..
2011-11-27 06:54:59 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2009-09-11 18:01:28 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2009-09-11 18:01:28 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2012-02-03 00:00:50 +00:00
2011-09-06 13:37:06 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-08-07 22:35:16 +00:00
2009-09-11 18:01:28 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2009-09-11 18:01:28 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-04-23 17:39:52 +00:00
2012-05-05 07:09:40 +00:00
2012-03-16 00:52:42 +00:00
2012-06-07 20:28:57 +00:00
2012-01-11 12:20:08 +00:00
2012-02-13 23:05:18 +00:00
2012-02-29 01:53:13 +00:00
2012-03-10 18:07:46 +00:00
2012-05-01 00:20:38 +00:00
2012-04-24 20:18:49 +00:00
2012-04-30 11:56:58 +00:00
2012-05-27 22:03:32 +00:00
2012-05-28 19:18:16 +00:00
2012-06-07 01:02:13 +00:00
2012-07-25 09:45:37 +00:00
2012-07-30 07:25:20 +00:00
2012-08-30 11:23:20 +00:00
2012-09-18 09:31:44 +00:00
2012-09-24 17:22:43 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-09-27 10:14:43 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-10-04 13:36:31 +00:00
2011-11-29 18:26:38 +00:00
2012-06-26 13:39:21 +00:00
2012-10-02 15:49:34 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2012-04-26 23:29:14 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 19:09:46 +00:00
2009-09-08 22:34:10 +00:00
2012-07-02 12:47:22 +00:00
2012-04-23 17:39:52 +00:00
2012-03-29 22:01:41 +00:00
2012-07-02 19:09:46 +00:00
2012-09-27 10:14:43 +00:00
2012-09-27 10:14:43 +00:00
2012-07-06 23:09:25 +00:00
2012-07-02 19:09:46 +00:00
2011-02-17 21:22:27 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2012-02-03 00:00:50 +00:00
2012-05-11 01:32:59 +00:00
2011-11-28 22:48:22 +00:00
2012-07-02 19:09:46 +00:00
2012-08-10 20:55:20 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-05-22 15:25:31 +00:00
2012-09-21 16:26:41 +00:00
2012-07-02 12:47:22 +00:00
2011-11-27 06:54:59 +00:00
2012-08-18 22:04:34 +00:00
2011-03-30 17:02:54 +00:00
2011-03-18 01:10:31 +00:00
2011-11-29 23:57:10 +00:00
2012-08-30 23:11:49 +00:00
2012-07-02 12:47:22 +00:00
2009-09-11 18:01:28 +00:00
2012-06-10 20:35:00 +00:00
2011-12-24 22:34:15 +00:00
2012-07-06 23:09:25 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-02-16 06:28:33 +00:00
2012-07-02 12:47:22 +00:00
2012-07-06 23:09:25 +00:00
2012-09-27 21:21:21 +00:00
2012-09-27 21:21:21 +00:00
2012-08-21 08:39:44 +00:00
2012-07-02 12:47:22 +00:00
2012-08-15 03:49:59 +00:00
2012-09-27 21:21:25 +00:00
2012-09-27 21:21:25 +00:00
2012-07-02 19:09:46 +00:00
2012-09-27 21:21:18 +00:00
2012-09-27 21:21:18 +00:00
2012-07-02 19:09:46 +00:00
2012-06-26 22:03:13 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-10-16 21:29:38 +00:00
2012-07-06 23:09:25 +00:00
2012-08-17 19:26:41 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2011-11-28 23:32:19 +00:00
2012-07-02 12:47:22 +00:00
2012-04-27 17:50:22 +00:00
2012-07-02 12:47:22 +00:00
2012-04-04 12:51:34 +00:00
2012-06-08 22:30:05 +00:00
2012-07-27 18:03:57 +00:00
2012-07-02 12:47:22 +00:00
2011-12-15 00:56:45 +00:00
2012-07-02 19:09:46 +00:00
2011-12-12 11:59:10 +00:00
2012-04-23 17:39:52 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2012-01-09 17:23:27 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-10-13 16:45:32 +00:00
2012-10-13 16:45:32 +00:00
2012-10-13 16:45:32 +00:00
2012-10-13 16:45:37 +00:00
2012-10-13 16:45:37 +00:00
2012-10-15 03:47:37 +00:00
2012-10-15 03:47:37 +00:00
2012-09-27 21:21:28 +00:00
2012-09-27 21:21:28 +00:00
2012-10-13 16:45:32 +00:00
2012-10-13 16:45:32 +00:00
2012-10-13 16:45:32 +00:00
2012-10-15 03:47:37 +00:00
2012-10-15 03:47:37 +00:00
2012-09-27 21:21:31 +00:00
2012-09-27 21:21:31 +00:00
2012-10-13 16:45:37 +00:00
2012-10-13 16:45:37 +00:00
2012-10-11 02:05:23 +00:00
2011-12-24 17:31:53 +00:00
2012-02-20 14:34:57 +00:00
2012-06-22 16:36:43 +00:00
2012-07-02 12:47:22 +00:00
2012-08-28 10:01:43 +00:00
2012-07-02 12:47:22 +00:00
2012-09-27 08:33:56 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-09-28 09:33:53 +00:00
2011-12-05 06:29:09 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-10-15 03:47:37 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2012-06-26 22:03:13 +00:00
2012-07-02 12:47:22 +00:00