llvm-6502/test
Andrea Di Biagio ae16ff1c42 [X86] Improved lowering of packed v8i16 vector shifts by non-constant count.
Before this patch, the backend sub-optimally expanded the non-constant shift
count of a v8i16 shift into a sequence of two 'movd' plus 'movzwl'.

With this patch the backend checks if the target features sse4.1. If so, then
it lets the shuffle legalizer deal with the expansion of the shift amount.

Example:
;;
define <8 x i16> @test(<8 x i16> %A, <8 x i16> %B) {
  %shamt = shufflevector <8 x i16> %B, <8 x i16> undef, <8 x i32> zeroinitializer
  %shl = shl <8 x i16> %A, %shamt
  ret <8 x i16> %shl
}
;;

Before (with -mattr=+avx):
  vmovd  %xmm1, %eax
  movzwl  %ax, %eax
  vmovd  %eax, %xmm1
  vpsllw  %xmm1, %xmm0, %xmm0
  retq

Now:
  vpxor  %xmm2, %xmm2, %xmm2
  vpblendw  $1, %xmm1, %xmm2, %xmm1
  vpsllw  %xmm1, %xmm0, %xmm0
  retq


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223660 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-08 14:36:51 +00:00
..
Analysis BFI: Saturate when combining edges to a successor 2014-12-05 19:13:42 +00:00
Assembler IR: Add missing tests for function-local metadata 2014-12-07 17:56:16 +00:00
Bindings [OCaml] Move Llvm.clone_module to its own Llvm_transform_utils module. 2014-12-01 19:50:39 +00:00
Bitcode IR: Fix bitcode compatability filenames 2014-12-08 00:41:39 +00:00
BugPoint
CodeGen [X86] Improved lowering of packed v8i16 vector shifts by non-constant count. 2014-12-08 14:36:51 +00:00
DebugInfo Fix a bug when pretty-printing DW_OP_deref. 2014-12-05 18:19:38 +00:00
ExecutionEngine Small model and JIT generally don't go well with each other. 2014-11-25 17:14:22 +00:00
Feature IR: Disallow function-local metadata attachments 2014-12-06 02:29:44 +00:00
FileCheck
Instrumentation Add target triples to all dfsan tests. 2014-12-05 22:32:30 +00:00
Integer
JitListener
Linker Fix linking of prologue data. 2014-12-08 13:44:38 +00:00
LTO Add Forward Control-Flow Integrity. 2014-11-11 21:08:02 +00:00
MC [Hexagon] Adding sub/and/or reg, imm forms 2014-12-05 21:38:29 +00:00
Object Add missing test file 2014-12-04 09:20:13 +00:00
Other
SymbolRewriter Transform: add SymbolRewriter pass 2014-11-07 21:32:08 +00:00
TableGen
tools Re-add support to llvm-objdump for Mach-O universal files and archives with -macho 2014-12-04 23:56:27 +00:00
Transforms Removal Of Duplicate Test Case from shift.ll file 2014-12-08 09:40:43 +00:00
Unit
Verifier [Statepoints 1/4] Statepoint infrastructure for garbage collection: IR Intrinsics 2014-12-01 21:18:12 +00:00
YAMLParser
.clang-format
CMakeLists.txt Revert "Add missing test dependency and use a more canonical target name." 2014-12-04 04:33:32 +00:00
lit.cfg [OCaml] [cmake] Add CMake buildsystem for OCaml. 2014-12-01 19:50:23 +00:00
lit.site.cfg.in [OCaml] [autoconf] Migrate to ocamlfind. 2014-10-30 08:29:45 +00:00
Makefile OCAMLFLAGS can contain =, don't use = with sed 2014-11-13 09:29:30 +00:00
Makefile.tests
TestRunner.sh