1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/test
Esme-Yi 725cbaf080 [DAGCombiner] Add decomposition patterns for Mul-by-Imm.
Summary: This patch is derived from D87384.
In this patch we expand the existing decomposition of mul-by-constant to be more general by implementing 2 patterns:
```
  mul x, (2^N + 2^M) --> (add (shl x, N), (shl x, M))
  mul x, (2^N - 2^M) --> (sub (shl x, N), (shl x, M))
```
The conversion will be trigged if the multiplier is a big constant that the target can't use a single multiplication instruction to handle. This is controlled by the hook `decomposeMulByConstant`.
More over, the conversion benefits from an ILP improvement since the instructions are independent. A case with the sequence like following also gets benefit since a shift instruction is saved.

```
*res1 = a * 0x8800;
*res2 = a * 0x8080;
```

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D88201
2020-10-09 08:51:40 +00:00
..
Analysis [llvm][mlir] Promote the experimental reduction intrinsics to be first class intrinsics. 2020-10-07 10:36:44 -07:00
Assembler [llvm][mlir] Promote the experimental reduction intrinsics to be first class intrinsics. 2020-10-07 10:36:44 -07:00
Bindings
Bitcode [llvm][mlir] Promote the experimental reduction intrinsics to be first class intrinsics. 2020-10-07 10:36:44 -07:00
BugPoint
CodeGen [DAGCombiner] Add decomposition patterns for Mul-by-Imm. 2020-10-09 08:51:40 +00:00
DebugInfo [DebugInfo] Improve dbg preservation in LSR. 2020-10-08 13:16:43 +02:00
Demangle
Examples
ExecutionEngine [JITLink][ELF] Handle BSS sections, improve some error messages. 2020-10-05 21:35:35 -07:00
Feature
FileCheck
Instrumentation [llvm][mlir] Promote the experimental reduction intrinsics to be first class intrinsics. 2020-10-07 10:36:44 -07:00
Integer
JitListener
Linker
LTO [IRMover] Avoid materializing global value that belongs to not-yet-linked module 2020-10-07 18:14:07 -07:00
MachineVerifier [GlobalISel] Add G_VECREDUCE_* opcodes for vector reductions. 2020-10-08 10:33:19 -07:00
MC Introduce and use a new section type for the bb_addr_map section. 2020-10-08 11:13:19 -07:00
Object
ObjectYAML
Other [NewPM] Use PassInstrumentation for -verify-each 2020-10-07 19:24:25 -07:00
Reduce
SafepointIRVerifier
Support
SymbolRewriter
TableGen [TableGen][GlobalISel] add handling of nested *_SUBREG 2020-10-05 10:42:18 +02:00
ThinLTO/X86
tools [llvm-readelf/obj][test] - Stop using precompiled binary in mips-plt.test 2020-10-09 11:48:49 +03:00
Transforms [InstCombine] visitTrunc - trunc(shl(X, C)) --> shl(trunc(X),trunc(C)) vector support 2020-10-08 22:07:51 +01:00
Unit
Verifier [AttributeFuncs][FIX] Update new tests (D87304, D87306) after sret changes 2020-10-06 00:12:18 -05:00
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg.py
lit.site.cfg.py.in
TestRunner.sh