llvm-6502/test
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
..
Analysis refix PR1143 by making basicaa analyze zexts of indices aggresively, 2010-08-18 23:09:49 +00:00
Archive These tests are no longer stored in *CVS*. 2010-08-04 15:58:01 +00:00
Assembler Make GlobalValue alignment consistent with load, store, and alloca 2010-07-28 20:56:48 +00:00
Bindings/Ocaml Fix vmcore.ml test. 2010-08-20 18:24:35 +00:00
Bitcode Replace the arm.neon.vmovls and vmovlu intrinsics with vector sign-extend and 2010-08-20 04:54:02 +00:00
BugPoint XFAIL this on mingw, following remove_arguments_test.ll. 2010-08-24 20:54:50 +00:00
CodeGen Change handling of illegal vector types to widen when possible instead of 2010-08-25 22:49:25 +00:00
DebugInfo Convert DbgInfoPrinter to use errs() instead of outs(). 2010-08-20 18:03:05 +00:00
ExecutionEngine Revert r101455, which fails on the llvm-arm-linux buildbot. 2010-04-16 18:37:31 +00:00
Feature Extend function-local metadata to be usable as attachments. 2010-08-24 02:24:03 +00:00
FrontendAda
FrontendC Test should pass on non-Darwin x86. 2010-08-20 21:18:55 +00:00
FrontendC++ Update tests to not rely on input file's absolute path. 2010-07-27 18:13:53 +00:00
FrontendFortran
FrontendObjC Update tests to not rely on input file's absolute path. 2010-07-27 18:13:53 +00:00
FrontendObjC++ Test case for r110459. Radar 8264751. Test case by Fariborz Jahanian! 2010-08-06 19:02:24 +00:00
Integer
lib
Linker Remap metadata attached to instructions when remapping individual 2010-08-25 21:36:50 +00:00
LLVMC llvmc: Make syntax more consistent. 2010-08-23 23:21:23 +00:00
MC X86: Fix misencode of RI64mi8. This fixes OpenSSL / x86_64-apple-darwin10 / clang -O3. 2010-08-25 21:11:02 +00:00
Other Try to escape the '$'s in these so they reach the underlying 'sh' invocation. 2010-08-23 08:54:19 +00:00
Scripts Add some win64 coff goodness. 2010-08-17 21:05:54 +00:00
TableGen Remove TargetInstrInfo::copyRegToReg entirely. 2010-07-11 17:01:17 +00:00
Transforms DIGlobalVariable can be used to encode debug info for globals that are directly folded into a constant by FE. 2010-08-25 18:52:02 +00:00
Unit
Verifier Reject unrepresentable pointer types in intrinsics. Fixes PR7316. 2010-08-08 06:12:09 +00:00
CMakeLists.txt tests: Propogate LLVM_SRC_ROOT and PYTHON_EXECUTABLE environment variables to tests. 2010-06-12 16:21:19 +00:00
lit.cfg The %ocamlopt setting has embedded quotes. Copy the entire value instead 2010-08-20 14:19:38 +00:00
lit.site.cfg.in tests: Propogate LLVM_SRC_ROOT and PYTHON_EXECUTABLE environment variables to tests. 2010-06-12 16:21:19 +00:00
Makefile check-lit was failing again on F13 64 bits :-( 2010-08-05 03:35:01 +00:00
Makefile.tests
site.exp.in
TestRunner.sh tests: Deprecate TestRunner.sh, and have it just invoke 'llvm-lit' (which will 2010-08-02 00:52:41 +00:00