Tim Shen
aec68b263d
[InstCombine] Simplify and correct folding fcmps with the same children
...
Summary: Take advantage of FCmpInst::Predicate's bit pattern and handle (fcmp *, x, y) | (fcmp *, x, y) and (fcmp *, x, y) & (fcmp *, x, y) more consistently. Also fold more FCmpInst::FCMP_FALSE and FCmpInst::FCMP_TRUE to constants.
Currently InstCombine wrongly folds (fcmp ogt, x, y) | (fcmp ord, x, y) to (fcmp ogt, x, y); this patch also fixes that.
Reviewers: spatel
Subscribers: llvm-commits, iteratee, echristo
Differential Revision: http://reviews.llvm.org/D21775
llvm-svn: 274156
2016-06-29 20:10:17 +00:00
Tim Shen
860a67eb4c
[InstCombine, NFC] Change the generated variable names by creating new instructions
...
This removes some noise for D21775's test changes.
llvm-svn: 274155
2016-06-29 20:10:13 +00:00
Tim Shen
4561e784f4
[InstCombine] Add full tests for FoldAndOfFCmps and FoldOrOfFCmps
...
Summary: This adds tests for covering all cases that FoldAndOfFCmps and FoldOrOfFCmps handle.
Reviewers: spatel
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D21844
llvm-svn: 274144
2016-06-29 17:55:11 +00:00
Sanjay Patel
8ce43c098b
minimize regression tests and update checks
...
llvm-svn: 274046
2016-06-28 18:33:10 +00:00
Benjamin Kramer
e89c705030
InstCombine: Check the operand types before merging fcmp ord & fcmp ord.
...
Fixes PR15737.
llvm-svn: 179417
2013-04-12 21:56:23 +00:00
Benjamin Kramer
bc2724f6e0
Fix broken tests.
...
llvm-svn: 165019
2012-10-02 15:49:34 +00:00
Manman Ren
c2bc2d106b
InstCombine: fix a bug when combining (fcmp cc0 x, y) && (fcmp cc1 x, y).
...
uno && ueq was converted to ueq, it should be converted to uno.
llvm-svn: 158441
2012-06-14 05:57:42 +00:00
Chad Rosier
faa3894628
Fix combine of uno && ord -> false so that the ordering of the fcmps doesn't
...
matter.
rdar://11579835
llvm-svn: 158084
2012-06-06 17:22:40 +00:00
Chad Rosier
280e5df2ac
Remove extraneous CHECK-NOTs from previous commit and add a new test case.
...
llvm-svn: 158045
2012-06-06 02:12:17 +00:00
Chad Rosier
1de1b54e72
FileCheckize this test.
...
llvm-svn: 158044
2012-06-06 01:38:32 +00:00
Dan Gohman
72a13d2476
Use opt -S instead of piping bitcode output through llvm-dis.
...
llvm-svn: 81257
2009-09-08 22:34:10 +00:00
Dan Gohman
9737a63ed8
Change these tests to feed the assembly files to opt directly, instead
...
of using llvm-as, now that opt supports this.
llvm-svn: 81226
2009-09-08 16:50:01 +00:00
Evan Cheng
ce70752b11
- Somehow I forgot about one / une.
...
- Renumber fcmp predicates to match their icmp counterparts.
- Try swapping operands to expose more optimization opportunities.
llvm-svn: 57513
2008-10-14 18:13:38 +00:00
Evan Cheng
67786cce66
Optimize anding of two fcmp into a single fcmp if the operands are the same. e.g. uno && ueq -> ueq
...
ord && olt -> olt
ord && ueq -> oeq
llvm-svn: 57507
2008-10-14 17:15:11 +00:00