llvm-project/llvm/lib
Sanjay Patel 3cd1aa88f9 [InstCombine] fold another shifty abs pattern to cmp+sel (PR36036)
The bug report:
https://bugs.llvm.org/show_bug.cgi?id=36036

...requests a DAG change for this, but an IR canonicalization
probably handles most cases. If we still want to match this
pattern in the backend, there's a proposal for that too:
D47831

Alive proofs including nsw/nuw cases that were first noted in:
D46988

https://rise4fun.com/Alive/Kmp

This patch is largely copied from the existing code that was
initially added with:
D40984
...but I didn't see much gain from trying to share code.

llvm-svn: 334137
2018-06-06 21:58:12 +00:00
..
Analysis [ValueTracking] Match select abs pattern when there's an sext involved 2018-06-04 16:53:57 +00:00
AsmParser [ThinLTO] Print module summary index to assembly 2018-05-26 02:34:13 +00:00
BinaryFormat [WebAssembly] Move toString helpers to BinaryFormat 2018-05-14 22:42:07 +00:00
Bitcode [Debugify] Don't apply DI before the bitcode writer pass 2018-06-04 00:11:49 +00:00
CodeGen guard fsqrt with fmf sub flags 2018-06-06 18:47:55 +00:00
DebugInfo DWARFAcceleratorTable: Add an iterator-based api for accessing names in the index 2018-06-01 10:33:11 +00:00
Demangle Move Compiler.h from Demangle back to Support 2018-06-04 22:53:38 +00:00
ExecutionEngine [ORC] Add a constructor to create an IRMaterializationUnit from a module and 2018-06-03 19:22:48 +00:00
FuzzMutate [llvm-opt-fuzzer] Add irce to the fuzzing options 2018-03-20 11:32:13 +00:00
Fuzzer
IR In thin and full LTO + CFI, direct function calls may go through jump table 2018-06-04 18:18:12 +00:00
IRReader LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
LTO IRGen: Write .dwo files when -split-dwarf-file is used together with -fthinlto-index. 2018-05-31 18:25:59 +00:00
LineEditor
Linker [ThinLTO] Recommit of import global variables 2018-03-12 10:30:50 +00:00
MC [MC] Pass MCSubtargetInfo to fixupNeedsRelaxation and applyFixup 2018-06-06 09:40:06 +00:00
Object [MachO] Add out-of-bounds check to MachOObjectFile.cpp 2018-06-04 17:01:20 +00:00
ObjectYAML [MC] Add assembler support for .cg_profile. 2018-06-02 16:33:01 +00:00
Option Re-revert "[Option] Fix PR37006 prefix choice in findNearest" 2018-05-19 16:21:01 +00:00
Passes [PM/LoopUnswitch] When using the new SimpleLoopUnswitch pass, schedule 2018-05-30 02:46:45 +00:00
ProfileData Support: Simplify endian stream interface. NFCI. 2018-05-18 19:46:24 +00:00
Support [Support] Use zx_cache_flush on Fuchsia to flush instruction cache 2018-06-06 06:26:18 +00:00
TableGen TableGen: Streamline the semantics of NAME 2018-06-04 14:26:05 +00:00
Target AMDGPU: Custom lower v2f16 fneg/fabs with illegal f16 2018-06-06 21:28:11 +00:00
Testing [LLVMTestingSupport] Add explicit linkage to LLVMSupport 2018-04-08 06:49:17 +00:00
ToolDrivers [COFF] Improve correctness of def parsing for GNU features 2018-05-09 09:21:53 +00:00
Transforms [InstCombine] fold another shifty abs pattern to cmp+sel (PR36036) 2018-06-06 21:58:12 +00:00
WindowsManifest Convert line endings of lib/WindowsManifest/CMakeLists.txt to unix. 2018-04-07 04:28:08 +00:00
XRay [XRay] clarify error messages when parsing broken traces 2018-01-30 13:41:34 +00:00
CMakeLists.txt
LLVMBuild.txt