llvm-project/llvm/test/Transforms/SCCP
Florian Hahn 611a02cce5
[ConstantRanges] Use APInt for constant case for urem/srem.
Currently UREM & SREM on constant ranges produces overly pessimistic
results for single element constant ranges.

Delegate to APInt's implementation if both operands are single element
constant ranges. We already do something similar for other binary
operators, like binary AND.

Fixes PR49731.

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D105115
2021-06-30 11:18:20 +01:00
..
2002-05-02-MissSecondInst.ll
2002-05-20-MissedIncomingValue.ll
2002-05-21-InvalidSimplify.ll [SimplifyCFG] TryToSimplifyUncondBranchFromEmptyBlock() already knows how to preserve DomTree 2020-12-17 01:03:49 +03:00
2002-08-30-GetElementPtrTest.ll
2003-06-24-OverdefinedPHIValue.ll [SimplifyCFG] MergeBlockIntoPredecessor() already knows how to preserve DomTree 2020-12-17 01:03:49 +03:00
2003-08-26-InvokeHandling.ll
2004-11-16-DeadInvoke.ll
2004-12-10-UndefBranchBug.ll [SCCP] Reduce the number of times ResolvedUndefsIn is called for large modules. 2020-10-09 15:24:16 -07:00
2006-10-23-IPSCCP-Crash.ll
2006-12-04-PackedType.ll
2006-12-19-UndefBug.ll
2007-05-16-InvokeCrash.ll
2008-01-27-UndefCorrelate.ll
2008-04-22-multiple-ret-sccp.ll
2008-05-23-UndefCallFold.ll
2008-06-09-WeakProp.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
2009-01-14-IPSCCP-Invoke.ll
2009-05-27-VectorOperandZero.ll
2009-09-24-byval-ptr.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
PR16052.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
PR26044.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
PR43857.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
apfloat-basictest.ll
apint-array.ll
apint-basictest.ll
apint-basictest2.ll
apint-basictest3.ll
apint-basictest4.ll
apint-bigarray.ll
apint-bigint.ll
apint-bigint2.ll Revert "Recommit "[SCCP] Do not replace deref'able ptr with un-deref'able one."" 2020-09-29 09:18:19 +01:00
apint-ipsccp1.ll
apint-ipsccp2.ll
apint-ipsccp3.ll
apint-ipsccp4.ll
apint-load.ll
apint-phi.ll
apint-select.ll
apint-xor.ll [SCCP] Add a few more tests for conditional propagation,XOR. 2020-03-22 21:43:33 +00:00
arg-count-mismatch.ll Revert "[IR] Ignore bitcasts of function pointers which are only used as callees in callbase instruction" 2021-04-06 16:33:28 +02:00
arg-type-mismatch.ll Revert "[IR] Ignore bitcasts of function pointers which are only used as callees in callbase instruction" 2021-04-06 16:33:28 +02:00
assume.ll [SCCP] Propagate inequalities 2020-08-04 20:20:52 +02:00
atomic-load-store.ll
atomic.ll
binaryops-constexprs.ll [SCCP] Add test case for binary ops with constant expressions. 2020-04-09 13:38:43 +01:00
binaryops-range-special-cases.ll [ConstantRanges] Use APInt for constant case for urem/srem. 2021-06-30 11:18:20 +01:00
bitcast.ll
calltest.ll [SimplifyCFG] MergeBlockIntoPredecessor() already knows how to preserve DomTree 2020-12-17 01:03:49 +03:00
clang-arc-rv.ll [ObjC][ARC] Use operand bundle 'clang.arc.attachedcall' instead of 2021-03-04 11:22:30 -08:00
comdat-ipo.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
conditions-iter-order.ll [SCCP] Add a few more tests for conditional propagation,XOR. 2020-03-22 21:43:33 +00:00
conditions-ranges-with-undef.ll [SCCP] Use ranges for predicate info conditions. 2020-04-07 11:09:18 +01:00
conditions-ranges.ll [PredicateInfo] Handle logical and/or 2021-01-20 21:03:07 +01:00
constant-range-struct.ll [SCCP] Switch to widen at PHIs, stores and call edges. 2020-05-29 11:59:17 +01:00
constant-struct.ll
crash.ll
dangling-block-address.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
deadarg.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
definite-initializer.ll
domtree-update.ll Reapply [SCCP] Directly remove non-feasible edges 2020-07-25 14:52:35 +02:00
dont-zap-return.ll
float-nan-simplification.ll Recommit "[SCCP] Use SimplifyBinOp for non-integer constant/expressions & overdef." 2020-04-14 11:48:52 +01:00
float-phis.ll [ValueLattice] Add new state for undef constants. 2020-03-14 17:19:59 +00:00
fp-bc-icmp-const-fold.ll Re-land "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support" 2020-07-28 14:00:11 +00:00
global-alias-constprop.ll
global.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
indirectbr.ll Revert "Recommit "[SCCP] Do not replace deref'able ptr with un-deref'able one."" 2020-09-29 09:18:19 +01:00
int-phis.ll [ValueLattice] Add new state for undef constants. 2020-03-14 17:19:59 +00:00
intrinsics.ll [SCCP] Compute ranges for supported intrinsics 2020-09-07 22:16:06 +02:00
ip-add-range-to-call.ll [SCCP] Add range metadata to call sites with known return ranges. 2020-07-21 10:06:54 +01:00
ip-constant-ranges.ll [SCCP] Use ranges for predicate info conditions. 2020-04-07 11:09:18 +01:00
ip-ranges-binaryops.ll [SCCP] Use constant ranges for binary operators. 2020-03-19 09:35:48 +00:00
ip-ranges-casts.ll [SCCP] Turn sext into zext for non-negative ranges. 2020-06-19 10:17:55 +01:00
ip-ranges-phis.ll [SCCP] Use constant ranges for PHI nodes. 2020-03-19 12:45:33 +00:00
ip-ranges-select.ll [ConstantFold] Fold the comparison of bitcasted global values 2020-10-20 12:41:49 -07:00
ip-ranges-sext.ll [SCCP] Turn sext into zext for non-negative ranges. 2020-06-19 10:17:55 +01:00
ipsccp-addr-taken.ll
ipsccp-basic.ll
ipsccp-branch-unresolved-undef.ll
ipsccp-clear-returned.ll [IPSCCP] Fix a bug that the "returned" attribute is not cleared when function is optimized to return undef 2020-09-02 11:21:48 -04:00
ipsccp-cycles.ll [SCCP] Switch to widen at PHIs, stores and call edges. 2020-05-29 11:59:17 +01:00
ipsccp-phi-one-pred-dead.ll
ipsccp-predinfo-order.ll
ipsccp-preserve-analysis.ll [NewPM] Hide pass manager debug logging behind -debug-pass-manager-verbose 2021-05-07 21:51:47 -07:00
ipsccp-range-crashes.ll [SCCP] Precommit some additional tests for integer ranges. 2020-03-18 11:34:04 +00:00
ipsccp-ssa-copy-nested-conds.ll [SCCP] Add tests with AND/OR branch conditions. 2020-04-09 16:39:13 +01:00
ipscp-drop-argmemonly.ll [IPSCCP] Drop argmemonly after replacing pointer argument. 2020-07-25 11:52:14 +01:00
latticeval-invalidate.ll
load-store-range.ll [SCCP] Support ranges for loads and stores. 2020-04-26 13:16:47 +01:00
loadtest.ll
loadtest2.ll
logical-nuke.ll
metadata.ll [SCCP] Propagate inequalities 2020-08-04 20:20:52 +02:00
multiple_callbacks.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
musttail-call.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
naked-return.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
openmp_parallel_for.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
overdefined-div.ll
phi-cycle.ll [ValueLattice] Distinguish between constant ranges with/without undef. 2020-03-31 12:50:20 +01:00
phis.ll [SCCP] Use constant ranges for PHI nodes. 2020-03-19 12:45:33 +00:00
pr27712.ll
pr35357.ll
pr45185-range-predinfo.ll Recommit "[SCCP] Use ValueLatticeElement instead of LatticeVal (NFCI)" 2020-03-13 17:03:22 +00:00
pr49582-iterator-invalidation.ll [SCCP] Avoid modifying AdditionalUsers while iterating over it 2021-04-02 19:05:59 +02:00
predicateinfo-cond.ll Reapply [SCCP] Directly remove non-feasible edges 2020-07-25 14:52:35 +02:00
preserve-analysis.ll [NewPM] Hide pass manager debug logging behind -debug-pass-manager-verbose 2021-05-07 21:51:47 -07:00
pthreads.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
range-and-ip.ll [ValueLattice] Distinguish between constant ranges with/without undef. 2020-03-31 12:50:20 +01:00
range-and.ll [ValueLattice] Distinguish between constant ranges with/without undef. 2020-03-31 12:50:20 +01:00
ranges-sext.ll [SCCP] Turn sext into zext for non-negative ranges. 2020-06-19 10:17:55 +01:00
recursion.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
remove-call-inst.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
replace-dereferenceable-ptr-with-undereferenceable.ll Revert "Recommit "[SCCP] Do not replace deref'able ptr with un-deref'able one."" 2020-09-29 09:18:19 +01:00
resolvedundefsin-tracked-fn.ll [SCCP] Reduce the number of times ResolvedUndefsIn is called for large modules. 2020-10-09 15:24:16 -07:00
return-argument.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
return-constant.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
return-constants.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
return-zapped.ll
retvalue-undef.ll
sccptest.ll
select.ll [SCCP] Use constant ranges for select, if cond is overdefined. 2020-03-18 09:26:02 +00:00
solve-after-each-resolving-undefs-for-function.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
struct-arg-resolve-undefs.ll
switch-constantfold-crash.ll Reapply [SCCP] Directly remove non-feasible edges 2020-07-25 14:52:35 +02:00
switch-multiple-undef.ll
switch-undef-constantfoldterminator.ll
switch.ll Revert "Use uint64_t for branch weights instead of uint32_t" 2020-10-31 00:25:32 -07:00
thread_local_acs.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
ub-shift.ll Recommit "[SCCP] Use SimplifyBinOp for non-integer constant/expressions & overdef." 2020-04-14 11:48:52 +01:00
ubsan_overflow.ll
undef-resolve.ll [ConstantFold] Fold the comparison of bitcasted global values 2020-10-20 12:41:49 -07:00
user-with-multiple-uses.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
vector-bitcast.ll [SCCP] Handle bitcast of vector constants. 2020-11-03 12:58:39 +00:00
widening.ll Reapply [SCCP] Directly remove non-feasible edges 2020-07-25 14:52:35 +02:00