llvm-project/llvm/test/Transforms/InstSimplify
Sanjay Patel a003c728a5 [InstCombine] choose 1 form of abs and nabs as canonical
We already do this for min/max (see the blob above the diff), 
so we should do the same for abs/nabs.
A sign-bit check (<s 0) is used as a predicate for other IR 
transforms and it's likely the best for codegen.

This might solve the motivating cases for D47037 and D47041, 
but I think those patches still make sense. We can't guarantee 
this canonicalization if the icmp has more than one use.

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

llvm-svn: 332819
2018-05-20 14:23:23 +00:00
..
2010-12-20-Boolean.ll
2011-01-14-Thread.ll
2011-02-01-Vector.ll
2011-09-05-InsertExtractValue.ll InstructionSimplify: 'extractelement' with an undef index is undef 2017-12-06 17:51:46 +00:00
2011-10-27-BinOpCrash.ll
2011-11-23-MaskedBitsCrash.ll
2013-04-19-ConstantFoldingCrash.ll
AndOrXor.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
add-mask.ll
addsub.ll
and-icmps-same-ops.ll
and-or-icmp-zero.ll [InstSimplify] fold implied null ptr check (PR35790) 2018-01-13 15:44:44 +00:00
assume.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
bitcast-vector-fold.ll
bitreverse-fold.ll Move tests associated with transforms moved in r321467 2017-12-30 03:13:00 +00:00
bitreverse.ll
bswap.ll
call-callconv.ll [InstCombine] choose 1 form of abs and nabs as canonical 2018-05-20 14:23:23 +00:00
call.ll InstSimplify: canonicalize is idempotent 2017-09-07 01:21:43 +00:00
cast-unsigned-icmp-cmp-0.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
cast.ll
compare.ll [InstCombine] remove unnecessary vector select fold; NFCI 2017-08-30 14:04:57 +00:00
dead-code-removal.ll
div.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
exact-nsw-nuw.ll [InstSimplify] fold sdiv/srem based on compare of dividend and divisor 2017-09-14 14:59:07 +00:00
extract-element.ll [instsimplify] consistently handle undef and out of bound indices for insertelement and extractelement 2017-12-30 05:54:22 +00:00
fast-math.ll [PatternMatch] allow undef elements when matching vector FP +0.0 2018-03-25 21:16:33 +00:00
fdiv.ll [InstSimplify] add tests for FP with undef operand; NFC 2018-02-27 20:17:18 +00:00
floating-point-arithmetic.ll [PatternMatch] allow undef elements when matching vector FP +0.0 2018-03-25 21:16:33 +00:00
floating-point-compare.ll [PatternMatch] enhance m_NaN() to ignore undef elements in vectors 2018-03-12 22:18:47 +00:00
fold-builtin-fma.ll
fold-intrinsics.ll Move tests associated with transforms moved in r321467 2017-12-30 03:13:00 +00:00
fp-nan.ll [InstSimplify] fp_binop X, NaN --> NaN 2018-03-21 19:31:53 +00:00
fp-undef.ll [InstSimplify] fp_binop X, undef --> NaN 2018-03-10 16:51:28 +00:00
gep.ll [InstSimplify] regenerate checks, move tests; NFC 2018-03-23 15:31:31 +00:00
icmp-bool-constant.ll [PatternMatch] enhance m_One() to ignore undef elements in vectors 2018-02-17 16:00:42 +00:00
icmp-constant.ll [ValueTracking] return zero when there's conflict in known bits of a shift (PR34838) 2017-10-12 17:31:46 +00:00
icmp-ranges.ll
implies.ll
insertelement.ll [instsimplify] consistently handle undef and out of bound indices for insertelement and extractelement 2017-12-30 05:54:22 +00:00
load-relative-32.ll
load-relative.ll
load.ll
log-exp-intrinsic.ll [InstSimplify] allow exp/log simplifications with only 'reassoc' FMF 2018-02-12 23:51:23 +00:00
logic-of-fcmps.ll [InstSimplify] fold and/or of fcmp ord/uno when operand is known nnan 2017-11-19 15:34:27 +00:00
maxmin.ll
mul.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
negate.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
noalias-ptr.ll
or-icmps-same-ops.ll
or.ll [PatternMatch, InstSimplify] enhance m_AllOnes() to ignore undef elements in vectors 2018-02-18 18:05:08 +00:00
past-the-end.ll
phi.ll
pr28725.ll Reintroduce r320049, r320014 and r319894. 2017-12-13 11:21:18 +00:00
pr33957.ll
ptr_diff.ll
reassociate.ll [InstSimplify] regenerate checks and add tests for commutes; NFC 2018-01-18 23:11:24 +00:00
rem.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
require-dominator.ll
returned.ll
select.ll Reland r301880(!): "[InstSimplify] Handle selects of GEPs with 0 offset" 2018-04-24 00:25:01 +00:00
shift-128-kb.ll
shift-knownbits.ll
shift.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
shr-nop.ll [InstSimplify] move tests for shifts; NFC 2018-04-21 16:58:00 +00:00
shufflevector.ll
signed-div-rem.ll [InstSimplify] fold sdiv/srem based on compare of dividend and divisor 2017-09-14 14:59:07 +00:00
simplify-nested-bitcast.ll
undef.ll
vec-cmp.ll
vector_gep.ll [ConstantFolding, InstSimplify] Handle more vector GEPs 2018-03-15 16:00:29 +00:00
vector_ptr_bitcast.ll