llvm-project/llvm/test
Simon Pilgrim 01ae462fef [X86][SSE] Combine (some) target shuffles with multiple uses
As discussed on D41794, we have many cases where we fail to combine shuffles as the input operands have other uses.

This patch permits these shuffles to be combined as long as they don't introduce additional variable shuffle masks, which should reduce instruction dependencies and allow the total number of shuffles to still drop without increasing the constant pool.

However, this may mean that some memory folds may no longer occur, and on pre-AVX require the occasional extra register move.

This also exposes some poor PMULDQ/PMULUDQ codegen which was doing unnecessary upper/lower calculations which will in fact fold to zero/undef - the fix will be added in a followup commit.

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

llvm-svn: 339335
2018-08-09 12:30:02 +00:00
..
Analysis [SCEV] Properly solve quadratic equations 2018-08-02 19:13:35 +00:00
Assembler [ThinLTO] Only emit referenced type id records in index files 2018-07-19 22:25:56 +00:00
Bindings
Bitcode [FileCheck] Add -allow-deprecated-dag-overlap to failing llvm tests 2018-07-11 20:25:49 +00:00
BugPoint [lit, python] Always add quotes around the python path in lit 2018-08-06 22:37:44 +00:00
CodeGen [X86][SSE] Combine (some) target shuffles with multiple uses 2018-08-09 12:30:02 +00:00
DebugInfo [CMake] Use normalized Windows target triples 2018-08-09 02:16:18 +00:00
Demangle [MS Demangler] Create a new backref context for template instantiations. 2018-08-08 17:17:04 +00:00
Examples
ExecutionEngine [CMake] Use normalized Windows target triples 2018-08-09 02:16:18 +00:00
Feature
FileCheck [FileCheck] Provide an option for FileCheck to dump original input to stderr on failure 2018-07-20 20:21:57 +00:00
Instrumentation Fix crash in bounds checking. 2018-08-03 17:12:23 +00:00
Integer
JitListener
LTO Enrich inline messages 2018-08-05 14:53:08 +00:00
Linker
MC [RISCV] Add "lla" pseudo-instruction to assembler 2018-08-09 07:08:20 +00:00
Object [WASM] Fix overflow when reading custom section 2018-08-08 16:34:03 +00:00
ObjectYAML
Other [CMake] Use normalized Windows target triples 2018-08-09 02:16:18 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen [lit, python] Always add quotes around the python path in lit 2018-08-06 22:37:44 +00:00
ThinLTO/X86 [lit, python] Always add quotes around the python path in lit 2018-08-06 22:37:44 +00:00
Transforms [LICM] Add tests for future hoisting of fence instructions [NFC] 2018-08-09 04:21:02 +00:00
Unit
Verifier Recommit r335794 "Add support for generating a call graph profile from Branch Frequency Info." with fix for removed functions. 2018-07-16 00:28:24 +00:00
YAMLParser
tools [X86] MCA tests for XCHG*, XADD* and CMPXCHG* instructions 2018-08-07 14:36:43 +00:00
.clang-format
CMakeLists.txt Make check-llvm depend on llvm-undname 2018-07-20 18:42:19 +00:00
TestRunner.sh
lit.cfg.py [CMake] Use normalized Windows target triples 2018-08-09 02:16:18 +00:00
lit.site.cfg.py.in