llvm-6502/test
Andrea Di Biagio 89cea3c36b [DAGCombiner] Improve the folding of target independet shuffles to Undef.
When combining a pair of shuffle nodes, check if the combined shuffle mask is
trivially Undef. In case, immediately fold that pair of shuffles to Undef.

The lack of checks for undef masks was the root-cause of a poor-codegen bug
in the dag combiner.

Example:
  %1 = shufflevector <4 x i32> %A, <4 x i32> %B, <4 x i32> <i32 4, i32 1, i32 1, i32 6>
  %2 = shufflevector <4 x i32> %1, <4 x i32> undef, <4 x i32> <i32 0, i32 4, i32 1, i32 6>
  %3 = shufflevector <4 x i32> %2, <4 x i32> undef, <4 x i32> <i32 1, i32 5, i32 3, i32 3>

Before this patch, on x86 (with -mcpu=corei7) we failed to fold the entire
sequence to Undef value and therefore we generated:
  shufps $-123, %xmm1, $xmm0
  pshufd $-46, %xmm0, %xmm0

With this patch, the entire shuffle sequence is folded to Undef and no
shuffles are generated in the output assembly.

Added new test cases to test 'combine-vec-shuffle-5.ll'.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215797 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-16 00:29:44 +00:00
..
Analysis Add @llvm.assume, lowering, and some basic properties 2014-07-25 21:13:35 +00:00
Assembler verify-uselistorder: Change the default -num-shuffles=5 2014-07-31 18:46:24 +00:00
Bindings [OCaml] Add Llvm.{string_of_const,const_element}. 2014-08-03 23:54:22 +00:00
Bitcode Don't upgrade global constructors when reading bitcode 2014-08-12 16:46:37 +00:00
BugPoint llvm/test/BugPoint/compile-custom.ll: Use explicit %python to invoke a test script, compile-custom.ll.py, for shebang-incapable hosts. 2014-07-11 14:44:10 +00:00
CodeGen [DAGCombiner] Improve the folding of target independet shuffles to Undef. 2014-08-16 00:29:44 +00:00
DebugInfo Revert several FastISel commits to track down a buildbot error. 2014-08-14 19:56:28 +00:00
ExecutionEngine Add missing Interpreter intrinsic lowering for sin, cos and ceil 2014-08-08 15:00:12 +00:00
Feature Use "weak alias" instead of "alias weak" 2014-07-30 22:51:54 +00:00
FileCheck FileCheck: Add a flag to allow checking empty input 2014-08-07 18:40:37 +00:00
Instrumentation Revert r215415 which causse MSan to crash on a great deal of C++ code. 2014-08-13 09:19:39 +00:00
Integer
JitListener
Linker Set comdats when lazily linking functions. 2014-08-15 20:17:08 +00:00
LTO
MC Remove HasLEB128. 2014-08-15 14:01:07 +00:00
Object pr20589: Fix duplicated arch flag. 2014-08-08 16:18:29 +00:00
Other Don't internalize all but main by default. 2014-08-05 20:10:38 +00:00
TableGen llvm/test/TableGen/*Foreach*.td: Remove XFAIL:vg_leak. They have not been failing since r215176. 2014-08-12 14:06:21 +00:00
tools Make the test a bit more strict. 2014-08-12 15:55:27 +00:00
Transforms Copy noalias metadata from call sites to inlined instructions 2014-08-14 21:09:37 +00:00
Unit Let test/Unit/lit.cfg add config.shlibdir to $PATH on DLL platforms like cygming. 2014-07-04 05:11:55 +00:00
Verifier Use "weak alias" instead of "alias weak" 2014-07-30 22:51:54 +00:00
YAMLParser
.clang-format
CMakeLists.txt Rename llvm-uselistorder => verify-uselistorder 2014-07-30 17:11:27 +00:00
lit.cfg Temporarily Revert "Nuke the old JIT." as it's not quite ready to 2014-08-07 22:02:54 +00:00
lit.site.cfg.in Add missing Interpreter intrinsic lowering for sin, cos and ceil 2014-08-08 15:00:12 +00:00
Makefile Delete support for AuroraUX. 2014-08-14 15:15:09 +00:00
Makefile.tests
TestRunner.sh