llvm/test
Zia Ansari 02da4e7721 [X86] - Catch extra combine opportunities for redundant imuls.
When we fold "mul ((add x, c1), c1)" -> "add ((mul x, c2), c1*c2)", we bail if (add x, c1) has multiple
users which would result in an extra add instruction.
In such cases, this patch adds a check to see if we can eliminate a multiply instruction in exchange for the extra add.

I also added the capability of doing the existing optimization with non-splatted vectors (splatted also works).

Differential Revision: http://reviews.llvm.org/D13740



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@251028 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-22 16:14:45 +00:00
..
Analysis [GlobalsAA] Loosen an overly conservative bailout 2015-10-22 13:44:26 +00:00
Assembler
Bindings
Bitcode
BugPoint
CodeGen [X86] - Catch extra combine opportunities for redundant imuls. 2015-10-22 16:14:45 +00:00
DebugInfo
Examples
ExecutionEngine [RuntimeDyld] Ignore ST_FILE symbols when constructing GlobalSymbolTable 2015-10-21 20:22:04 +00:00
Feature [OperandBundles] Teach AliasAnalysis about operand bundles 2015-10-22 03:12:51 +00:00
FileCheck
Instrumentation [PGO] Eliminate prof data register calls on FreeBSD platform 2015-10-19 04:17:10 +00:00
Integer
JitListener
LibDriver
Linker
LTO
MC [PPC] Fix PR24686 by failing assembly for an invalid relocation 2015-10-22 15:53:44 +00:00
Object
Other
SymbolRewriter
TableGen
tools Backing out commit r250906 as it broke lld. 2015-10-21 17:13:20 +00:00
Transforms [InstCombine] Revise the test case to match full sequene 2015-10-21 21:50:58 +00:00
Unit
Verifier
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh