llvm-project/llvm/lib/Transforms/InstCombine
Sanjay Patel 577c705752 [InstCombine] try to fold 'add+sub' to 'not+add'
These are reassociated versions of the same pattern and
similar transforms as in rL338200 and rL338118.

The motivation is identical to those commits:
Patterns with add/sub combos can be improved using
'not' ops. This is better for analysis and may lead
to follow-on transforms because 'xor' and 'add' are
commutative/associative. It can also help codegen.

llvm-svn: 338221
2018-07-29 18:13:16 +00:00
..
CMakeLists.txt InstCombine/AMDGPU: Add dimension-aware image intrinsics to SimplifyDemanded 2018-06-21 13:37:31 +00:00
InstCombineAddSub.cpp [InstCombine] try to fold 'add+sub' to 'not+add' 2018-07-29 18:13:16 +00:00
InstCombineAndOrXor.cpp [InstCombine] not(sub X, Y) --> add (not X), Y 2018-07-27 10:54:48 +00:00
InstCombineCalls.cpp PatternMatch: Add wrappers for fabs and canonicalize 2018-07-27 09:04:35 +00:00
InstCombineCasts.cpp [InstCombine] Preserve debug value when simplifying cast-of-select 2018-07-17 18:08:36 +00:00
InstCombineCompares.cpp [InstCombine] Re-commit: Fold 'check for [no] signed truncation' pattern 2018-07-18 10:55:17 +00:00
InstCombineInternal.h [InstCombine] allow more shuffle folds using safe constants 2018-07-09 23:22:47 +00:00
InstCombineLoadStoreAlloca.cpp llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
InstCombineMulDivRem.cpp [InstCombine] fold udiv with common factor from muls with nuw 2018-07-26 19:22:41 +00:00
InstCombinePHI.cpp Move Analysis/Utils/Local.h back to Transforms 2018-06-04 21:23:21 +00:00
InstCombineSelect.cpp [InstCombine] canonicalize abs pattern 2018-07-27 01:49:51 +00:00
InstCombineShifts.cpp [InstCombine] simplify binops before trying other folds 2018-06-21 17:06:36 +00:00
InstCombineSimplifyDemanded.cpp [X86] Remove and autoupgrade the scalar fma intrinsics with masking. 2018-07-12 00:29:56 +00:00
InstCombineTables.td InstCombine/AMDGPU: Add dimension-aware image intrinsics to SimplifyDemanded 2018-06-21 13:37:31 +00:00
InstCombineVectorOps.cpp [InstCombine] allow flag propagation when using safe constant 2018-07-10 16:09:49 +00:00
InstructionCombining.cpp [InstCombine] allow more shuffle folds using safe constants 2018-07-09 23:22:47 +00:00
LLVMBuild.txt