llvm/test
Chandler Carruth a6cc351c5b [x86] Teach the new vector shuffle lowering to use 'punpcklwd' and
'punpckhwd' instructions when suitable rather than falling back to the
generic algorithm.

While we could canonicalize to these patterns late in the process, that
wouldn't help when the freedom to use them is only visible during
initial lowering when undef lanes are well understood. This, it turns
out, is very important for matching the shuffle patterns that are used
to lower sign extension. Fixes a small but relevant regression in
gcc-loops with the new lowering.

When I changed this I noticed that several 'pshufd' lowerings became
unpck variants. This is bad because it removes the ability to freely
copy in the same instruction. I've adjusted the widening test to handle
undef lanes correctly and now those will correctly continue to use
'pshufd' to lower. However, this caused a bunch of churn in the test
cases. No functional change, just churn.

Both of these changes are part of addressing a general weakness in the
new lowering -- it doesn't sufficiently leverage undef lanes. I've at
least a couple of patches that will help there at least in an academic
sense.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217752 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-15 09:02:37 +00:00
..
Analysis [ARM] Teach the cost model that cross-class copies are costly. 2014-09-12 13:29:40 +00:00
Assembler [inline asm] Add a check in InlineAsm::ConstraintInfo::Parse to make sure '{' 2014-09-05 22:30:32 +00:00
Bindings Restore the ability to check if LLVMCreateObjectFile was successful 2014-09-05 21:22:09 +00:00
Bitcode Teach llvm-bcanalyzer to use one stream's BLOCKINFO to read another stream. 2014-08-30 17:07:55 +00:00
BugPoint
CodeGen [x86] Teach the new vector shuffle lowering to use 'punpcklwd' and 2014-09-15 09:02:37 +00:00
DebugInfo DebugInfo: Do not use DW_FORM_GNU_addr_index in skeleton CUs, GDB 7.8 errors on this. 2014-09-07 17:31:42 +00:00
ExecutionEngine [MCJIT] Make sure we test ARM BR24 relocations with both internal and external 2014-09-11 22:43:36 +00:00
Feature [AArch64] Update test case to pass with post-RA MI scheduler. 2014-09-13 03:23:23 +00:00
FileCheck
Instrumentation [asan-assembly-instrumentation] Added CFI directives to the generated instrumentation code. 2014-09-10 09:45:49 +00:00
Integer
JitListener
Linker Merge alignment of common GlobalValue. 2014-09-09 17:48:18 +00:00
LTO
MC [mips][microMIPS] Implement JRADDIUSP instruction 2014-09-12 14:29:54 +00:00
Object Nuke MCAnalysis. 2014-09-02 22:32:20 +00:00
Other [lit] Parse all strings as UTF-8 rather than ASCII. 2014-09-12 16:46:05 +00:00
TableGen Tablegen fixes for new syntax when initializing bits from variables. 2014-08-29 19:41:04 +00:00
tools Stop suppress error messages in test case to see why one buildbot is failing 2014-09-12 22:46:01 +00:00
Transforms InstSimplify: Simplify trivial and/or of icmps 2014-09-15 08:15:28 +00:00
Unit
Verifier Verifier: Don't reject varargs callee cleanup functions 2014-08-29 21:25:28 +00:00
YAMLParser
.clang-format
CMakeLists.txt Add LLVMgold target to test dependencies. 2014-09-10 22:20:49 +00:00
lit.cfg Reinstate "Nuke the old JIT." 2014-09-02 22:28:02 +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