llvm-project/llvm/test/Transforms/InstSimplify
Serge Pavlov f398739152 [FEnv] Constfold some unary constrained operations
This change implements constant folding to constrained versions of
intrinsics, implementing rounding: floor, ceil, trunc, round, rint and
nearbyint.

Differential Revision: https://reviews.llvm.org/D72930
2020-03-28 12:28:33 +07:00
..
2010-12-20-Boolean.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
2011-01-14-Thread.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
2011-02-01-Vector.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
2011-09-05-InsertExtractValue.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
2011-10-27-BinOpCrash.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
2011-11-23-MaskedBitsCrash.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
2013-04-19-ConstantFoldingCrash.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
AndOrXor.ll [InstSimplify] simplify power-of-2 (single bit set) sequences 2019-06-20 22:55:28 +00:00
add-mask.ll [ValueTracking] Add computeKnownBits DemandedElts support to masked add instructions (PR36319) 2020-03-18 21:50:56 +00:00
add.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
addsub.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
and-icmps-same-ops.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
and-or-icmp-zero.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
assume-non-zero.ll [ValueTracking] isKnownNonZero() should take non-null-ness assumptions into consideration (PR43267) 2019-12-20 01:47:57 +03:00
assume.ll [Tests] Regenerate some test checks; NFC 2020-03-20 12:06:53 +01:00
bitcast-vector-fold.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
bitreverse-fold.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
bitreverse.ll [ValueTracking] Add computeKnownBits DemandedElts support to EXTRACTELEMENT/OR/BSWAP/BITREVERSE instructions (PR36319) 2020-03-18 18:49:58 +00:00
bswap.ll [ValueTracking] Add computeKnownBits DemandedElts support to EXTRACTELEMENT/OR/BSWAP/BITREVERSE instructions (PR36319) 2020-03-18 18:49:58 +00:00
call.ll [InstCombine] Simplify calls with "returned" attribute 2020-03-20 10:23:39 +01:00
cast-unsigned-icmp-cmp-0.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
cast.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
cmp_of_min_max.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
compare.ll [ValueTracking] Add some initial isKnownNonZero DemandedElts support (PR36319) 2020-03-20 13:29:00 +00:00
constantfold-add-nuw-allones-to-allones.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
constantfold-shl-nuw-C-to-C.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
constfold-constrained.ll [FEnv] Constfold some unary constrained operations 2020-03-28 12:28:33 +07:00
dead-code-removal.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
div-by-0-guard-before-smul_ov-not.ll [InstSimplify] Drop leftover "division-by-zero guard" around `@llvm.umul.with.overflow` inverted overflow bit 2019-08-29 12:48:04 +00:00
div-by-0-guard-before-smul_ov.ll [InstSimplify] Drop leftover "division-by-zero guard" around `@llvm.umul.with.overflow` overflow bit 2019-08-29 12:47:50 +00:00
div-by-0-guard-before-umul_ov-not.ll [InstSimplify] Drop leftover "division-by-zero guard" around `@llvm.umul.with.overflow` inverted overflow bit 2019-08-29 12:48:04 +00:00
div-by-0-guard-before-umul_ov.ll [InstSimplify] Drop leftover "division-by-zero guard" around `@llvm.umul.with.overflow` overflow bit 2019-08-29 12:47:50 +00:00
div.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
exact-nsw-nuw.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
extract-element.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
fast-math.ll [InstSimplify] Add unary fneg to `fsub 0.0, (fneg X) ==> X` transform 2019-05-17 16:47:00 +00:00
fcmp-select.ll [InstSimplify] use FMF to improve fcmp+select fold 2019-11-04 08:29:56 -05:00
fdiv.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
floating-point-arithmetic.ll [InstSimplify] Teach fsub -0.0, (fneg X) ==> X about unary fneg 2019-05-20 13:13:35 +00:00
floating-point-compare.ll [InstSimplify] enhance fcmp fold with never-nan operand 2019-06-09 13:48:59 +00:00
fold-intrinsics.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
fp-nan.ll [InstSimplify] simplify FP ops harder with FMF 2020-03-12 09:13:28 -04:00
fp-undef.ll [InstSimplify] simplify FP ops harder with FMF (part 2) 2020-03-12 09:53:20 -04:00
freeze.ll [ValueTracking] improve undef/poison analysis for constant vectors 2020-03-24 13:35:47 -04:00
gep.ll [SVE] Update API ConstantVector::getSplat() to use ElementCount. 2020-03-12 13:22:41 -07:00
icmp-abs-nabs.ll [ValueTracking] When calculating known bits for integer abs, make sure we're looking at a negate and not just any instruction with the nsw flag set. 2019-08-07 18:28:16 +00:00
icmp-bool-constant.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
icmp-constant.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
icmp-ranges.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
implies.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
insertelement.ll [InstSimplify] guard against unreachable code (PR43218) 2019-09-04 15:12:55 +00:00
known-never-nan.ll [ValueTracking] Add a basic version of isKnownNonInfinity and use it to detect more NoNaNs 2019-11-19 22:24:46 +01:00
known-non-zero.ll [ValueTracking] Allow context-sensitive nullness check for non-pointers 2019-12-09 15:15:52 -06:00
load-relative-32.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
load-relative.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
load.ll [ConstantFolding] Fix assertion failure on non-power-of-two vector load. 2019-06-19 10:28:48 +00:00
log-exp-intrinsic.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
log2-pow2-intrinsic.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
log10-pow10-intrinsic.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
logic-of-fcmps.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
maxmin.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
mul.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
negate.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
noalias-ptr.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
or-icmps-same-ops.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
or.ll [ValueTracking] Add computeKnownBits DemandedElts support to XOR instructions (PR36319) 2020-03-18 20:24:14 +00:00
past-the-end.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
phi.ll [InstSimplify] add a phi test with 1 incoming value; NFC 2019-06-19 17:23:29 +00:00
pr28725.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
pr33957.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
ptr_diff.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
reassociate.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
redundant-null-check-in-uadd_with_overflow-of-nonnull-ptr.ll [InstSimplify] Pass SimplifyQuery into simplifyUnsignedRangeCheck() and use it for isKnownNonZero() 2019-09-11 15:32:46 +00:00
rem.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
remove-dead-call.ll [InstSimplify] Report "Changed" also when only deleting dead instructions 2019-08-09 07:08:25 +00:00
require-dominator.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
result-of-add-of-negative-is-non-zero-and-no-underflow.ll [NFC][InstSimplify] Add some more tests for D67498/D67502 2019-09-13 17:58:24 +00:00
result-of-usub-by-nonzero-is-non-zero-and-no-overflow.ll [InstSimplify] simplifyUnsignedRangeCheck(): handle more cases (PR43251) 2019-09-12 09:26:17 +00:00
result-of-usub-is-non-zero-and-no-overflow.ll [InstSimplify] Handle more 'A </>/>=/<= B &&/|| (A - B) !=/== 0' patterns (PR43251) 2019-09-25 22:59:41 +00:00
returned.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
round-intrinsics.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
saturating-add-sub.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
sdiv.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
select-and-cmp.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
select-implied.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
select-or-cmp.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
select.ll [InstSimplify] fold select of vector constants that include undef elements 2020-01-20 08:48:32 -05:00
shift-128-kb.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
shift-knownbits.ll [ValueTracking] Add computeKnownBits DemandedElts support to shift instructions (PR36319) 2020-03-20 11:08:08 +00:00
shift.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
shr-nop.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
shr-scalar-vector-consistency.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
shufflevector.ll [InstSimplify] fold splat of inserted constant to vector constant 2019-12-15 09:32:03 -05:00
signed-div-rem.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
simplify-nested-bitcast.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
srem.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
sub.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
undef.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
unsigned-range-checks.ll [InstSimplify] simplifyUnsignedRangeCheck(): X >= Y && Y == 0 --> Y == 0 2019-09-21 22:27:39 +00:00
vec-cmp.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
vector_gep.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
vector_ptr_bitcast.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
vscale.ll [ValueTracking][SVE] Fix isGEPKnownNonNull for scalable vector. 2020-03-17 11:31:30 -07:00