llvm-project/llvm/test
Chandler Carruth 142e966261 [x86,SDAG] Sink the logic for folding shuffles of splats more
aggressively from the x86 shuffle lowering to the generic SDAG vector
shuffle formation code.

This code already tried to fold away shuffles of splats! It just had
lots of bugs and couldn't handle the case my new x86 shuffle lowering
needed.

First, it failed to correctly compute whether N2 was undef because it
pre-computed this, then did transformations which could *make* N2 undef,
then failed to ever re-consider the precomputed state.

Second, it didn't look through bitcasts at all, even in the safe cases
where they are just element-type bitcasts with no change to the number
of elements.

Third, it didn't handle all-zero bit casts nicely the way my code in the
x86 side of things did, which is essential to getting good zext-shuffle
lowerings.

But all of these are generic. I just ported the code down to this layer
and fixed the surrounding bugs. Tests exercising this in the x86 backend
still pass and some silly code in widen_cast-6.ll gets better. I updated
that test to be a bit more precise but it's still pretty unclear what
the value of the test is in this day and age.

llvm-svn: 212517
2014-07-08 08:45:38 +00:00
..
Analysis [CostModel][x86] Improved cost model for alternate shuffles. 2014-07-03 22:24:18 +00:00
Assembler IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
Bindings Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
Bitcode Add some test files for r211710. 2014-06-25 15:41:39 +00:00
BugPoint Revert r206989, "Mark llvm/test/BugPoint/compile-custom.ll as XFAIL:vg_leak." It has been fixed since r207265. 2014-04-27 11:59:33 +00:00
CodeGen [x86,SDAG] Sink the logic for folding shuffles of splats more 2014-07-08 08:45:38 +00:00
DebugInfo Temporarily revert "Don't try to construct debug LexicalScopes hierarchy for functions that do not have top level debug information." as it appears to be breaking some LTO constructs. 2014-07-03 22:24:54 +00:00
ExecutionEngine Fix this test to not write to the source tree, and instead to write to 2014-06-28 05:18:49 +00:00
Feature IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
FileCheck
Instrumentation [asan] Generate asm instrumentation in MC. 2014-07-07 13:57:37 +00:00
Integer
JitListener
LTO Change the default input for llvm-nm to be a.out instead of standard input 2014-06-23 20:27:53 +00:00
Linker IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
MC [X86] AVX512: Only allow k1-k7 as predicates to vpcmp* 2014-07-08 00:22:32 +00:00
Object Ignore llvm.* globals. 2014-07-04 19:08:22 +00:00
Other IR: Fold away compares between GV GEPs and GVs 2014-07-04 22:05:26 +00:00
TableGen Fix error in tablegen when either operand of !if is an empty list. 2014-06-10 20:10:08 +00:00
Transforms Fix for PR17073 ( http://llvm.org/pr17073 ), simplifycfg illegally hoists an operation in a phi node that can trap. 2014-07-07 21:19:00 +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 IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
YAMLParser
tools [llvm-readobj] Fix output of MIPS GOT without local and global entries. 2014-07-05 19:28:49 +00:00
.clang-format
CMakeLists.txt OK, NAKAMURA Takumi beat me to this change. So backing out my addition of 2014-05-19 23:26:51 +00:00
Makefile lld test for configure & make 2014-06-06 09:06:25 +00:00
Makefile.tests
TestRunner.sh
lit.cfg Delete utils/FileUpdate. 2014-06-23 17:58:39 +00:00
lit.site.cfg.in