llvm-6502/test
Bruno Cardoso Lopes 3b86598cfa Instead of always leaving the work to the generic legalizer when
there is no support for native 256-bit shuffles, be more smart in some
cases, for example, when you can extract specific 128-bit parts and use
regular 128-bit shuffles for them. Example:

For this shuffle:
  shufflevector <4 x i64> %a, <4 x i64> %b, <4 x i32>
                <i32 1, i32 0, i32 7, i32 6>

This was expanded to:
  vextractf128  $1, %ymm1, %xmm2
  vpextrq $0, %xmm2, %rax
  vmovd %rax, %xmm1
  vpextrq $1, %xmm2, %rax
  vmovd %rax, %xmm2
  vpunpcklqdq %xmm1, %xmm2, %xmm1
  vpextrq $0, %xmm0, %rax
  vmovd %rax, %xmm2
  vpextrq $1, %xmm0, %rax
  vmovd %rax, %xmm0
  vpunpcklqdq %xmm2, %xmm0, %xmm0
  vinsertf128 $1, %xmm1, %ymm0, %ymm0
  ret

Now we get:
  vshufpd $1, %xmm0, %xmm0, %xmm0
  vextractf128  $1, %ymm1, %xmm1
  vshufpd $1, %xmm1, %xmm1, %xmm1
  vinsertf128 $1, %xmm1, %ymm0, %ymm0

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137733 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-16 18:21:54 +00:00
..
Analysis Move the loads after the calls so that the fix for 2011-07-09 23:53:58 +00:00
Archive Avoid writing to an arbitrary filename during the test run by writing to 2011-07-02 20:43:18 +00:00
Assembler Move "atomic" and "volatile" designations on instructions after the opcode 2011-08-12 22:50:01 +00:00
Bindings/Ocaml Remove the build_unwind function from the OCaml bindings. 2011-08-10 01:10:17 +00:00
Bitcode Remove support for parsing the "type i32" syntax for defining a numbered 2011-06-19 00:03:46 +00:00
BugPoint
CodeGen Instead of always leaving the work to the generic legalizer when 2011-08-16 18:21:54 +00:00
DebugInfo Test for previous commit. 2011-06-17 14:16:17 +00:00
ExecutionEngine manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
Feature Revert r136253, r136263, r136269, r136313, r136325, r136326, r136329, r136338, 2011-07-30 05:42:50 +00:00
FrontendC++ Fix test. 2011-08-13 17:06:34 +00:00
FrontendObjC
FrontendObjC++
Integer Remove support for parsing the "type i32" syntax for defining a numbered 2011-06-19 00:03:46 +00:00
lib
Linker We need to map DebugLoc. It leads to Fuction * (through subprogram entry node) which should be appropriately mapped. 2011-08-04 20:02:18 +00:00
LLVMC
MC ARM .align NOP padding uses different encoding pre-ARMv6. 2011-08-16 17:06:20 +00:00
Object
Other Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
Scripts Fix the bitwidth of the remaining fields. 2011-08-04 17:00:11 +00:00
TableGen Teach TableGen to evaluate DAG expressions as set operations. 2011-06-04 04:11:37 +00:00
Transforms Fix test. 2011-08-16 01:42:56 +00:00
Unit test/Unit: Fix enable shared test to follow check that we have actually loaded 2011-06-22 20:41:53 +00:00
Verifier Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
CMakeLists.txt Fix a CMake warning, following up to r134008. 2011-06-28 21:46:21 +00:00
lit.cfg lit support for REQUIRES: asserts. 2011-06-22 23:23:19 +00:00
lit.site.cfg.in cmake+lit: handle ENABLE_ASSERTIONS feature properly. 2011-06-23 17:52:36 +00:00
Makefile cmake+lit: handle ENABLE_ASSERTIONS feature properly. 2011-06-23 17:52:36 +00:00
Makefile.tests
site.exp.in
TestRunner.sh