llvm-project/llvm/test
Pablo Barrio 512f7ee315 [ARM] Lower lower saturate to 0 and lower saturate to -1 using bit-operations
Summary:
Expressions of the form x < 0 ? 0 :  x; and x < -1 ? -1 : x can be lowered using bit-operations instead of branching or conditional moves

In thumb-mode this results in a two-instruction sequence, a shift followed by a bic or or while in ARM/thumb2 mode that has flexible second operand the shift can be folded into a single bic/or instructions. In most cases this results in smaller code and possibly less branches, and in no case larger than before.

Patch by Martin Svanfeldt

Reviewers: fhahn, pbarrio, rogfer01

Reviewed By: pbarrio, rogfer01

Subscribers: chrib, yroux, eugenis, efriedma, rogfer01, aemerson, javed.absar, kristof.beyls, llvm-commits

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

llvm-svn: 326333
2018-02-28 17:13:07 +00:00
..
Analysis [X86][SSE] Reduce FADD/FSUB/FMUL costs on later targets (PR36280) 2018-02-26 22:10:17 +00:00
Assembler Make the LLParser accept call instructions of variables in the program AS 2018-02-27 11:15:11 +00:00
Bindings [LLVM-C] Add Accessors For A Module's Source File Name 2018-01-30 21:34:29 +00:00
Bitcode [DebugInfo] Add remaining files to r325970 2018-02-23 23:13:18 +00:00
BugPoint [bugpoint] Report non-existent opt binary 2018-02-09 06:09:15 +00:00
CodeGen [ARM] Lower lower saturate to 0 and lower saturate to -1 using bit-operations 2018-02-28 17:13:07 +00:00
DebugInfo [DEBUGINFO] Add flag for DWARF2 or less to use sections as references. 2018-02-28 15:02:59 +00:00
Examples
ExecutionEngine [RuntimeDyld][MachO] Support ARM64_RELOC_BRANCH26 for BL instructions by 2018-02-28 00:58:21 +00:00
Feature Mark two tests REQUIRES: x86-registered-backend 2018-01-31 07:32:03 +00:00
FileCheck
Instrumentation Fix DataFlowSanitizer instrumentation pass to take parameter position changes into account for custom functions. 2018-02-22 19:09:07 +00:00
Integer
JitListener
LTO [LTO] Support filtering by hotness threshold 2018-02-26 18:37:45 +00:00
Linker [DebugInfo] Add remaining files to r325970 2018-02-23 23:13:18 +00:00
MC [WebAssembly] Remove DataSize from linking metadata section 2018-02-27 23:57:37 +00:00
Object [WebAssembly] Remove DataSize from linking metadata section 2018-02-27 23:57:37 +00:00
ObjectYAML [WebAssembly] Remove DataSize from linking metadata section 2018-02-27 23:57:37 +00:00
Other Recommit r325001: [CallSiteSplitting] Support splitting of blocks with instrs before call. 2018-02-14 13:59:12 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen Revert "TableGen: Fix typeIsConvertibleTo for record types" 2018-02-23 11:31:49 +00:00
ThinLTO/X86 [LTO] Support filtering by hotness threshold 2018-02-26 18:37:45 +00:00
Transforms [InstCombine] auto-generate complete checks; NFC 2018-02-28 16:53:45 +00:00
Unit
Verifier [DebugInfo] Unify ChecksumKind and Checksum value in DIFile 2018-02-12 19:45:54 +00:00
YAMLParser
tools [WebAssembly] Remove DataSize from linking metadata section 2018-02-27 23:57:37 +00:00
.clang-format
CMakeLists.txt
TestRunner.sh
lit.cfg.py
lit.site.cfg.py.in