llvm-project/llvm/test
Simon Pilgrim 898f030f70 [X86][SSE] Enable target shuffle combining to combine multiple shuffle inputs.
We currently only support combining target shuffles that consist of a single source input (plus elements known to be undef/zero).

This patch generalizes the recursive combining of the target shuffle to collect all the inputs, merging any duplicates along the way, into a full set of src ops and its shuffle mask.

We uncover a number of cases where we have failed to combine a unary shuffle because the input has been duplicated and separated during lowering.

This will allow us to combine to 2-input shuffles in a future patch.

Differential Revision: https://reviews.llvm.org/D22859

llvm-svn: 277631
2016-08-03 19:08:24 +00:00
..
Analysis [CFLAA] Remove modref queries from CFLAA. 2016-08-01 18:47:28 +00:00
Assembler Invariant start/end intrinsics overloaded for address space 2016-07-22 17:49:40 +00:00
Bindings Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
Bitcode Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
BugPoint
CodeGen [X86][SSE] Enable target shuffle combining to combine multiple shuffle inputs. 2016-08-03 19:08:24 +00:00
DebugInfo Fix a test for r277545. 2016-08-02 23:25:59 +00:00
Examples
ExecutionEngine [Orc] Fix common symbol support in ORC. 2016-08-01 22:23:24 +00:00
Feature Reinstate optnone test for GVN Hoisting, removed in r276479. 2016-07-29 16:05:50 +00:00
FileCheck Make check lines not match themselves. 2016-06-16 19:38:48 +00:00
Instrumentation Unpoison stack before resume instruction 2016-07-22 22:04:38 +00:00
Integer
JitListener
LTO Add a libLTO API to query a memory buffer and check if it contains ObjC categories 2016-07-11 23:10:18 +00:00
LibDriver
Linker IR: Drop uniquing when an MDNode Value operand is deleted 2016-08-03 18:19:43 +00:00
MC [AVX512] Add aliases for vcvttss2si{l|q}, vcvttsd2si{l|q}, vcvttss2usi{l|q}, vcvttsd2usi{l|q} instructions. 2016-08-03 10:58:05 +00:00
Object RecordStreamer: handle inline asm "lazy_reference" and mark symbols as "used" 2016-08-03 03:51:42 +00:00
ObjectYAML [YAML] Fix YAML tags appearing before the start of sequence elements 2016-06-28 21:10:26 +00:00
Other [PM] Add a generic 'repeat N times' pass wrapper to the new pass 2016-08-03 07:44:48 +00:00
SymbolRewriter [PM] Port SymbolRewriter to the new PM 2016-07-25 20:52:00 +00:00
TableGen tests: accept different TargetOpcode values. 2016-07-07 17:51:42 +00:00
ThinLTO/X86 ThinLTO: Do not take into account whether a definition has multiple copies when promoting. 2016-07-07 18:31:51 +00:00
Transforms [InstCombine] use m_APInt to allow icmp (binop X, Y), C folds with constant splat vectors 2016-08-03 18:59:03 +00:00
Unit
Verifier [Verifier] Add more tests related to non-integral pointers 2016-08-02 23:32:53 +00:00
YAMLParser
tools Reapply "More fixes to get good error messages for bad archives." 2016-08-03 19:02:50 +00:00
.clang-format
CMakeLists.txt
TestRunner.sh
lit.cfg [lit] Don't match tool names within new PM's <> markers 2016-07-25 23:09:10 +00:00
lit.site.cfg.in