llvm-6502/test
Bruno Cardoso Lopes 65b74e1d00 Add support for 256-bit versions of VPERMIL instruction. This is a new
instruction introduced in AVX, which can operate on 128 and 256-bit vectors.
It considers a 256-bit vector as two independent 128-bit lanes. It can permute
any 32 or 64 elements inside a lane, and restricts the second lane to
have the same permutation of the first one. With the improved splat support
introduced early today, adding codegen for this instruction enable more
efficient 256-bit code:

Instead of:
  vextractf128  $0, %ymm0, %xmm0
  punpcklbw %xmm0, %xmm0
  punpckhbw %xmm0, %xmm0
  vinsertf128 $0, %xmm0, %ymm0, %ymm1
  vinsertf128 $1, %xmm0, %ymm1, %ymm0
  vextractf128  $1, %ymm0, %xmm1
  shufps  $1, %xmm1, %xmm1
  movss %xmm1, 28(%rsp)
  movss %xmm1, 24(%rsp)
  movss %xmm1, 20(%rsp)
  movss %xmm1, 16(%rsp)
  vextractf128  $0, %ymm0, %xmm0
  shufps  $1, %xmm0, %xmm0
  movss %xmm0, 12(%rsp)
  movss %xmm0, 8(%rsp)
  movss %xmm0, 4(%rsp)
  movss %xmm0, (%rsp)
  vmovaps (%rsp), %ymm0
We get:
  vextractf128  $0, %ymm0, %xmm0
  punpcklbw %xmm0, %xmm0
  punpckhbw %xmm0, %xmm0
  vinsertf128 $0, %xmm0, %ymm0, %ymm1
  vinsertf128 $1, %xmm0, %ymm1, %ymm0
  vpermilps $85, %ymm0, %ymm0

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135662 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-21 01:55:47 +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 Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
Bindings/Ocaml Remove tests for APIs that were removed. 2011-07-09 18:55:51 +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 Add support for 256-bit versions of VPERMIL instruction. This is a new 2011-07-21 01:55:47 +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 Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
FrontendAda
FrontendC More minor adjustments. 2011-07-16 07:28:35 +00:00
FrontendC++
FrontendFortran
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 fix rdar://9776316 - type remapping needed for inline asm blobs, 2011-07-15 23:18:40 +00:00
LLVMC
MC Extend the hack for _GLOBAL_OFFSET_TABLE_ slightly; PR10389. 2011-07-20 19:36:11 +00:00
Object
Other Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
Scripts
TableGen Teach TableGen to evaluate DAG expressions as set operations. 2011-06-04 04:11:37 +00:00
Transforms LSR, correct fix for rdar://9786536. Silly casting bug. 2011-07-21 01:45:54 +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