llvm-project/llvm/lib/Transforms
Nikita Popov 7bafae55c0 Reapply [CVP] Simplify non-overflowing saturating add/sub
If we can determine that a saturating add/sub will not overflow based
on range analysis, convert it into a simple binary operation. This is
a sibling transform to the existing with.overflow handling.

Reapplying this with an additional check that the saturating intrinsic
has integer type, as LVI currently does not support vector types.

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

llvm-svn: 362263
2019-05-31 20:48:26 +00:00
..
AggressiveInstCombine Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Coroutines [coroutines] Fix spills of static array allocas 2019-05-13 23:58:24 +00:00
Hello Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
IPO [ThinLTO] Use original alias visibility when importing 2019-05-29 16:50:46 +00:00
InstCombine [InstCombine] 'C-(C2-X) --> X+(C-C2)' constant-fold 2019-05-31 09:47:16 +00:00
Instrumentation [PGO] Handle cases of failing to split critical edges 2019-05-28 21:45:56 +00:00
ObjCARC [ObjC][ARC] Let ARC optimizer bail out if the number of pointer states 2019-04-25 19:42:55 +00:00
Scalar Reapply [CVP] Simplify non-overflowing saturating add/sub 2019-05-31 20:48:26 +00:00
Utils Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00
Vectorize [LV] Remove the redundant using LoopVectorizationPlanner:VPlanPtr 2019-05-30 18:46:13 +00:00
CMakeLists.txt Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00