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
BugPoint
CodeGen Add support for 256-bit versions of VPERMIL instruction. This is a new 2011-07-21 01:55:47 +00:00
DebugInfo
ExecutionEngine
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
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
Transforms LSR, correct fix for rdar://9786536. Silly casting bug. 2011-07-21 01:45:54 +00:00
Unit
Verifier Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
CMakeLists.txt
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
site.exp.in
TestRunner.sh