Nate Begeman
abc0199680
Adapt the x86 build_vector dagcombine to the current state of the legalizer.
...
build vectors with i64 elements will only appear on 32b x86 before legalize.
Since vector widening occurs during legalize, and produces i64 build_vector
elements, the dag combiner is never run on these before legalize splits them
into 32b elements.
Teach the build_vector dag combine in x86 back end to recognize consecutive
loads producing the low part of the vector.
Convert the two uses of TLI's consecutive load recognizer to pass LoadSDNodes
since that was required implicitly.
Add a testcase for the transform.
Old:
subl $28, %esp
movl 32(%esp), %eax
movl 4(%eax), %ecx
movl %ecx, 4(%esp)
movl (%eax), %eax
movl %eax, (%esp)
movaps (%esp), %xmm0
pmovzxwd %xmm0, %xmm0
movl 36(%esp), %eax
movaps %xmm0, (%eax)
addl $28, %esp
ret
New:
movl 4(%esp), %eax
pmovzxwd (%eax), %xmm0
movl 8(%esp), %eax
movaps %xmm0, (%eax)
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72957 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-05 21:37:30 +00:00
..
2009-06-04 22:49:04 +00:00
2009-02-16 00:44:23 +00:00
2009-06-04 22:49:04 +00:00
2009-03-31 18:20:47 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-03-31 18:20:47 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-03-25 20:20:11 +00:00
2009-06-04 22:49:04 +00:00
2009-02-21 02:06:47 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-03-23 08:01:15 +00:00
2009-02-11 21:29:39 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-03-31 18:20:47 +00:00
2009-06-04 22:49:04 +00:00
2009-04-29 00:15:41 +00:00
2009-04-29 00:15:41 +00:00
2009-03-12 16:10:08 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-04-20 08:01:12 +00:00
2009-06-04 22:49:04 +00:00
2009-03-23 08:01:15 +00:00
2009-05-16 00:34:42 +00:00
2009-04-20 08:01:12 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-03-23 08:01:15 +00:00
2009-06-04 22:49:04 +00:00
2009-02-05 06:55:21 +00:00
2009-02-06 01:49:19 +00:00
2009-02-09 08:45:39 +00:00
2009-02-08 11:04:35 +00:00
2009-02-12 06:56:08 +00:00
2009-02-12 17:33:11 +00:00
2009-02-12 20:58:09 +00:00
2009-06-04 22:49:04 +00:00
2009-02-20 10:02:23 +00:00
2009-02-21 11:53:32 +00:00
2009-06-04 22:49:04 +00:00
2009-02-27 00:02:22 +00:00
2009-06-04 22:49:04 +00:00
2009-03-04 00:18:06 +00:00
2009-03-06 02:23:01 +00:00
2009-03-11 05:08:08 +00:00
2009-03-09 20:22:18 +00:00
2009-06-04 22:49:04 +00:00
2009-03-11 00:03:21 +00:00
2009-03-11 22:18:44 +00:00
2009-06-04 22:49:04 +00:00
2009-03-17 09:46:22 +00:00
2009-03-31 18:20:47 +00:00
2009-05-07 01:41:42 +00:00
2009-03-23 21:16:53 +00:00
2009-04-29 00:15:41 +00:00
2009-06-03 21:13:54 +00:00
2009-03-26 23:03:32 +00:00
2009-03-30 06:17:34 +00:00
2009-04-09 16:50:43 +00:00
2009-04-12 07:51:14 +00:00
2009-04-12 23:00:38 +00:00
2009-04-14 00:32:25 +00:00
2009-04-13 20:04:24 +00:00
2009-04-29 00:15:41 +00:00
2009-04-18 02:01:23 +00:00
2009-04-17 14:35:58 +00:00
2009-04-20 08:01:12 +00:00
2009-04-21 22:46:52 +00:00
2009-04-27 15:08:34 +00:00
2009-04-25 09:25:19 +00:00
2009-04-28 06:24:09 +00:00
2009-04-28 02:12:36 +00:00
2009-04-27 17:36:47 +00:00
2009-04-27 20:42:46 +00:00
2009-04-30 00:48:50 +00:00
2009-04-28 21:49:33 +00:00
2009-04-29 07:16:34 +00:00
2009-04-30 00:58:57 +00:00
2009-04-16 12:34:53 +00:00
2009-05-08 18:23:14 +00:00
2009-05-11 21:54:13 +00:00
2009-05-28 05:10:20 +00:00
2009-05-23 14:06:57 +00:00
2009-05-23 17:29:48 +00:00
2009-05-28 23:52:18 +00:00
2009-05-30 08:43:27 +00:00
2009-06-03 09:00:27 +00:00
2009-06-04 02:02:01 +00:00
2009-06-04 02:32:04 +00:00
2009-06-04 20:53:36 +00:00
2009-03-25 20:20:11 +00:00
2009-06-03 21:13:54 +00:00
2009-04-29 00:15:41 +00:00
2009-03-25 01:47:28 +00:00
2009-03-17 20:23:43 +00:00
2009-04-03 20:11:30 +00:00
2009-04-09 03:51:29 +00:00
2009-05-16 00:34:42 +00:00
2009-05-16 00:34:42 +00:00
2009-05-12 23:58:14 +00:00
2009-06-04 22:49:04 +00:00
2009-03-17 02:45:40 +00:00
2009-04-08 00:15:30 +00:00
2009-05-20 05:45:36 +00:00
2009-04-27 20:35:32 +00:00
2009-04-27 20:35:32 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-05-08 23:35:49 +00:00
2009-06-02 21:29:13 +00:00
2009-06-04 22:49:04 +00:00
2009-03-25 20:20:11 +00:00
2009-06-04 22:49:04 +00:00
2009-02-12 06:54:55 +00:00
2009-04-23 19:39:41 +00:00
2009-02-18 02:19:52 +00:00
2009-06-05 21:37:30 +00:00
2009-04-08 00:54:40 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-04-29 00:15:41 +00:00
2009-04-29 00:15:41 +00:00
2009-03-13 20:42:20 +00:00
2009-03-13 23:53:06 +00:00
2009-04-29 00:15:41 +00:00
2009-05-04 19:50:33 +00:00
2009-02-23 22:03:08 +00:00
2009-03-13 23:53:06 +00:00
2009-06-04 22:49:04 +00:00
2009-04-23 19:39:41 +00:00
2009-04-23 19:39:41 +00:00
2009-06-04 18:22:31 +00:00
2009-03-13 02:25:09 +00:00
2009-05-13 22:29:12 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-04-27 02:00:55 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-02-09 23:32:07 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-03 21:13:54 +00:00
2009-04-13 16:09:41 +00:00
2009-04-13 16:09:41 +00:00
2009-04-13 16:09:41 +00:00
2009-04-14 22:17:14 +00:00
2009-04-14 22:17:14 +00:00
2009-04-14 22:50:17 +00:00
2009-05-29 01:44:43 +00:00
2009-03-12 17:07:39 +00:00
2009-03-23 18:27:36 +00:00
2009-06-04 22:49:04 +00:00
2009-03-28 05:57:29 +00:00
2009-03-30 21:34:07 +00:00
2009-03-04 02:47:25 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-04-13 16:09:41 +00:00
2009-06-04 22:49:04 +00:00
2009-03-17 23:43:59 +00:00
2009-06-04 22:49:04 +00:00
2009-05-11 18:49:56 +00:00
2009-02-25 22:49:59 +00:00
2009-03-31 01:38:29 +00:00
2009-05-18 15:16:49 +00:00
2009-02-20 22:16:49 +00:00
2009-02-21 02:06:47 +00:00
2009-02-21 02:06:47 +00:00
2009-05-11 22:33:01 +00:00
2009-05-11 22:33:01 +00:00
2009-02-13 00:26:43 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-02-10 22:06:28 +00:00
2009-03-12 05:59:15 +00:00
2009-05-02 18:29:22 +00:00
2009-05-05 18:52:19 +00:00
2009-03-12 06:52:53 +00:00
2009-06-04 22:49:04 +00:00
2009-05-28 00:35:15 +00:00
2009-05-28 00:35:15 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-02-09 20:54:38 +00:00
2009-02-11 19:19:41 +00:00
2009-05-05 21:10:19 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-03-07 01:58:32 +00:00
2009-06-04 22:49:04 +00:00
2009-03-25 01:47:28 +00:00
2009-03-11 05:08:08 +00:00
2009-02-11 21:29:39 +00:00
2009-04-29 00:15:41 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-02-11 23:41:57 +00:00
2009-05-11 17:15:42 +00:00
2009-02-15 08:36:12 +00:00
2009-06-04 22:49:04 +00:00
2009-02-05 08:46:33 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-05-05 22:50:29 +00:00
2009-06-04 22:05:33 +00:00
2009-06-03 21:13:54 +00:00
2009-05-11 22:33:01 +00:00
2009-02-27 00:51:50 +00:00
2009-03-14 02:33:41 +00:00
2009-03-30 15:28:40 +00:00
2009-05-11 18:30:42 +00:00
2009-03-13 05:53:31 +00:00
2009-03-25 20:30:19 +00:00
2009-03-25 20:20:11 +00:00
2009-03-31 19:39:24 +00:00
2009-03-31 19:39:24 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-03-25 20:20:11 +00:00
2009-06-04 22:49:04 +00:00
2009-02-11 21:29:39 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-05-12 18:31:57 +00:00
2009-05-12 18:31:57 +00:00
2009-06-04 22:49:04 +00:00
2009-04-16 03:18:22 +00:00
2009-06-04 22:49:04 +00:00
2009-04-14 00:32:25 +00:00
2009-03-23 07:19:58 +00:00
2009-04-08 00:15:30 +00:00
2009-04-08 00:15:30 +00:00
2009-05-12 02:17:14 +00:00
2009-04-08 00:15:30 +00:00
2009-04-09 03:51:29 +00:00
2009-03-28 08:33:27 +00:00
2009-03-28 08:33:27 +00:00
2009-03-28 12:36:29 +00:00
2009-04-12 10:43:41 +00:00
2009-04-13 13:02:49 +00:00
2009-04-12 10:43:41 +00:00
2009-04-13 13:02:49 +00:00
2009-04-12 10:43:41 +00:00
2009-04-13 13:02:49 +00:00
2009-04-12 10:43:41 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-06-04 22:49:04 +00:00
2009-04-08 00:15:30 +00:00
2009-02-21 03:14:25 +00:00
2009-04-27 18:41:29 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-04-03 02:43:30 +00:00
2009-02-20 07:10:11 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-02-23 08:49:38 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-04-27 18:41:29 +00:00
2009-02-23 08:49:38 +00:00
2009-02-23 08:49:38 +00:00
2009-04-27 18:41:29 +00:00
2009-02-23 08:49:38 +00:00
2009-04-29 22:47:44 +00:00
2009-06-04 22:49:04 +00:00
2009-02-23 08:49:38 +00:00
2009-02-23 08:49:38 +00:00
2009-04-27 18:41:29 +00:00
2009-04-27 18:41:29 +00:00
2009-02-23 08:49:38 +00:00
2009-02-23 08:49:38 +00:00
2009-02-23 08:49:38 +00:00
2009-02-23 16:34:46 +00:00
2009-03-11 06:35:11 +00:00
2009-03-11 18:47:57 +00:00
2009-04-29 22:47:44 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-04-29 00:15:41 +00:00
2009-02-20 07:10:11 +00:00
2009-06-04 22:49:04 +00:00
2009-05-23 13:15:11 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-03-17 19:36:00 +00:00
2009-06-03 00:37:20 +00:00