1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/test/Transforms/InstSimplify
Elena Demikhovsky e46025656d Fold fcmp in cases where value is provably non-negative. By Arch Robison.
This patch folds fcmp in some cases of interest in Julia. The patch adds a function CannotBeOrderedLessThanZero that returns true if a value is provably not less than zero. I.e. the function returns true if the value is provably -0, +0, positive, or a NaN. The patch extends InstructionSimplify.cpp to fold instances of fcmp where:
 - the predicate is olt or uge
 - the first operand is provably not less than zero
 - the second operand is zero
The motivation for handling these cases optimizing away domain checks for sqrt in Julia for common idioms such as sqrt(x*x+y*y)..

http://reviews.llvm.org/D6972

llvm-svn: 227298
2015-01-28 08:03:58 +00:00
..
2010-12-20-Boolean.ll
2011-01-14-Thread.ll
2011-02-01-Vector.ll
2011-09-05-InsertExtractValue.ll
2011-10-27-BinOpCrash.ll
2011-11-23-MaskedBitsCrash.ll
2013-04-19-ConstantFoldingCrash.ll
AndOrXor.ll InstSimplify: Try to bring back the rest of r223583 2014-12-08 18:30:43 +00:00
apint-or.ll Move optimization of some cases of (A & C1)|(B & C2) from instcombine to instsimplify. Patch by Rahul Jain, plus some last minute changes by me -- you can blame me for any bugs. 2014-06-19 03:51:46 +00:00
assume.ll Add @llvm.assume, lowering, and some basic properties 2014-07-25 21:13:35 +00:00
call-callconv.ll
call.ll
compare.ll InstSimplify: Handle some simple tautological comparisons 2014-11-25 02:55:48 +00:00
dead-code-removal.ll RecursivelyDeleteTriviallyDeadInstructions() could remove 2014-04-26 05:58:11 +00:00
exact-nsw-nuw.ll InstCombine, InstSimplify: (%X /s C1) /s C2 isn't always 0 when C1 * C2 overflow 2014-10-11 10:20:01 +00:00
fast-math.ll
fdiv.ll
floating-point-arithmetic.ll
floating-point-compare.ll Fold fcmp in cases where value is provably non-negative. By Arch Robison. 2015-01-28 08:03:58 +00:00
fold-builtin-fma.ll Revert "r216914 - Revert: [APFloat] Fixed a bug in method 'fusedMultiplyAdd'" 2014-10-14 19:23:07 +00:00
gep.ll InstSimplify: Don't simplify gep X, (Y-X) to Y if types differ 2014-08-27 20:08:34 +00:00
maxmin.ll
noalias-ptr.ll Revert "r223364 - Revert r223347 which has caused crashes on bootstrap bots." 2014-12-04 17:45:19 +00:00
past-the-end.ll
phi.ll
ptr_diff.ll
reassociate.ll
rem.ll InstSimplify: Don't allow (x srem y) urem y -> x srem y 2014-09-17 04:16:35 +00:00
select.ll InstSimplify: Optimize away pointless comparisons 2014-12-20 03:04:38 +00:00
shr-nop.ll InstSimplify: Exact shifts of X by Y are X if X has the lsb set 2014-11-05 00:59:59 +00:00
undef.ll ConstantFold: Shifting undef by zero results in undef 2014-12-18 23:54:43 +00:00
vector_gep.ll
vector_ptr_bitcast.ll [InstSimplify] Support constant folding to vector of pointers 2014-10-22 12:18:48 +00:00