Files
llvm-6502/test/CodeGen/X86
Chris Lattner e6f7c267df Change handling of illegal vector types to widen when possible instead of
expanding: e.g. <2 x float> -> <4 x float> instead of -> 2 floats.  This
affects two places in the code: handling cross block values and handling
function return and arguments.  Since vectors are already widened by 
legalizetypes, this gives us much better code and unblocks x86-64 abi
and SPU abi work.

For example, this (which is a silly example of a cross-block value):
define <4 x float> @test2(<4 x float> %A) nounwind {
 %B = shufflevector <4 x float> %A, <4 x float> undef, <2 x i32> <i32 0, i32 1>
 %C = fadd <2 x float> %B, %B
  br label %BB
BB:
 %D = fadd <2 x float> %C, %C
 %E = shufflevector <2 x float> %D, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
 ret <4 x float> %E
}

Now compiles into:

_test2:                                 ## @test2
## BB#0:
 addps %xmm0, %xmm0
 addps %xmm0, %xmm0
 ret

previously it compiled into:

_test2:                                 ## @test2
## BB#0:
 addps %xmm0, %xmm0
 pshufd $1, %xmm0, %xmm1
                                        ## kill: XMM0<def> XMM0<kill> XMM0<def>
 insertps $0, %xmm0, %xmm0
 insertps $16, %xmm1, %xmm0
 addps %xmm0, %xmm0
 ret

This implements rdar://8230384



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112101 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-25 22:49:25 +00:00
..
2010-01-12 18:29:23 +00:00
2009-09-23 18:20:27 +00:00
2009-11-18 21:33:35 +00:00
2009-11-26 00:35:01 +00:00
2010-02-13 02:06:10 +00:00
2010-02-15 22:03:29 +00:00
2010-07-13 18:14:47 +00:00
2010-04-17 16:29:15 +00:00
2010-03-03 00:35:56 +00:00
2010-04-17 16:29:15 +00:00
2009-11-07 06:19:20 +00:00
2010-04-17 16:29:15 +00:00
…
2010-04-07 22:53:17 +00:00
2009-09-08 23:16:26 +00:00
2010-07-16 22:51:10 +00:00
2010-07-10 22:42:12 +00:00
2010-04-17 03:43:36 +00:00
2010-05-08 04:47:54 +00:00
2010-06-14 20:19:03 +00:00
2010-04-17 16:29:15 +00:00
2010-04-17 16:29:15 +00:00
2009-11-11 07:11:02 +00:00
2009-11-11 07:11:02 +00:00
2009-11-11 07:11:02 +00:00
2010-01-12 04:52:47 +00:00
2010-03-10 03:07:41 +00:00
2009-09-09 00:19:46 +00:00
2010-04-04 19:28:59 +00:00
2010-08-17 22:35:20 +00:00
2010-03-25 20:01:07 +00:00
2010-03-10 07:07:45 +00:00
2010-01-05 17:55:26 +00:00
2010-04-28 01:53:13 +00:00
2010-04-28 01:53:13 +00:00
2009-12-16 00:53:11 +00:00
2010-04-28 01:53:13 +00:00
2010-08-15 19:40:29 +00:00
2010-04-17 16:29:15 +00:00
2010-01-19 21:51:51 +00:00
2010-06-03 04:02:59 +00:00
2010-03-05 06:17:43 +00:00
2010-02-27 23:53:53 +00:00
2009-10-23 05:58:34 +00:00
2009-10-23 05:58:34 +00:00
2009-10-23 05:58:34 +00:00
2009-10-23 05:58:34 +00:00
2009-10-16 22:09:05 +00:00
2009-10-16 22:09:05 +00:00
2009-10-16 22:09:05 +00:00
2009-10-16 22:09:05 +00:00
2009-10-16 22:09:05 +00:00
2009-10-16 22:09:05 +00:00
2009-10-16 22:09:05 +00:00
2009-10-16 22:09:05 +00:00
2009-10-16 22:09:05 +00:00
2009-10-16 22:09:05 +00:00
2009-10-16 22:09:05 +00:00
2009-10-16 22:09:05 +00:00
2009-10-16 22:09:05 +00:00
2009-10-16 22:07:19 +00:00
2010-04-28 08:30:49 +00:00
2010-06-09 20:30:22 +00:00
2009-12-15 03:00:32 +00:00