summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/InstCombine/and-fcmp.ll
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Temporarily Revert "Add basic loop fusion pass.""Eric Christopher2019-04-171-0/+1584
| | | | | | | | The reversion apparently deleted the test/Transforms directory. Will be re-reverting again. llvm-svn: 358552
* Temporarily Revert "Add basic loop fusion pass."Eric Christopher2019-04-171-1584/+0
| | | | | | | | As it's causing some bot failures (and per request from kbarton). This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda. llvm-svn: 358546
* [InstCombine] fold logic-of-nan-fcmps (PR41069)Sanjay Patel2019-03-191-16/+8
| | | | | | | | | | | | | | | Combine 2 fcmps that are checking for nan-ness: and (fcmp ord X, 0), (and (fcmp ord Y, 0), Z) --> and (fcmp ord X, Y), Z or (fcmp uno X, 0), (or (fcmp uno Y, 0), Z) --> or (fcmp uno X, Y), Z This is an exact match for a minimal reassociation pattern. If we want to handle this more generally that should go in the reassociate pass and allow removing this code. This should fix: https://bugs.llvm.org/show_bug.cgi?id=41069 llvm-svn: 356471
* [InstCombine] add FMF to tests for extra coverage; NFCSanjay Patel2019-03-191-8/+8
| | | | | | | ninf is probably the only relevant possible flag here (nnan allows simplification and nsz never makes a difference). llvm-svn: 356453
* [InstCombine] add/adjust test for NaN checks; NFCSanjay Patel2019-03-181-11/+43
| | | | llvm-svn: 356383
* [InstCombine] add tests for logic of NaN fcmps; NFCSanjay Patel2019-03-151-0/+34
| | | | llvm-svn: 356287
* [InstSimplify, InstCombine] add/update tests with FP +0.0 vector with undef; NFCSanjay Patel2018-03-251-101/+112
| | | | llvm-svn: 328455
* [InstCombine] move related tests together; NFC Sanjay Patel2017-09-121-3/+13
| | | | llvm-svn: 313036
* [ValueTracking, InstCombine] canonicalize fcmp ord/uno with non-NAN ops to ↵Sanjay Patel2017-09-051-4/+2
| | | | | | | | | | | | | | | | | | | | | null constants This is a preliminary step towards solving the remaining part of PR27145 - IR for isfinite(): https://bugs.llvm.org/show_bug.cgi?id=27145 In order to solve that one more generally, we need to add matching for and/or of fcmp ord/uno with a constant operand. But while looking at those patterns, I realized we were missing a canonicalization for nonzero constants. Rather than limiting to just folds for constants, we're adding a general value tracking method for this based on an existing DAG helper. By transforming everything to 0.0, we can simplify the existing code in foldLogicOfFCmps() and pick up missing vector folds. Differential Revision: https://reviews.llvm.org/D37427 llvm-svn: 312591
* [InstCombine] add tests for fcmp ord/uno canonicalization; NFCSanjay Patel2017-09-031-0/+24
| | | | | | Currently, we canonicalize some cases to use 0.0, but we miss others. llvm-svn: 312445
* [InstCombine] Simplify and correct folding fcmps with the same childrenTim Shen2016-06-291-268/+116
| | | | | | | | | | | | | | 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
* [InstCombine, NFC] Change the generated variable names by creating new ↵Tim Shen2016-06-291-24/+24
| | | | | | | | instructions This removes some noise for D21775's test changes. llvm-svn: 274155
* [InstCombine] Add full tests for FoldAndOfFCmps and FoldOrOfFCmpsTim Shen2016-06-291-70/+1601
| | | | | | | | | | | | 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
* minimize regression tests and update checksSanjay Patel2016-06-281-70/+74
| | | | llvm-svn: 274046
* InstCombine: Check the operand types before merging fcmp ord & fcmp ord.Benjamin Kramer2013-04-121-0/+21
| | | | | | Fixes PR15737. llvm-svn: 179417
* Fix broken tests.Benjamin Kramer2012-10-021-1/+1
| | | | llvm-svn: 165019
* InstCombine: fix a bug when combining (fcmp cc0 x, y) && (fcmp cc1 x, y).Manman Ren2012-06-141-0/+11
| | | | | | uno && ueq was converted to ueq, it should be converted to uno. llvm-svn: 158441
* Fix combine of uno && ord -> false so that the ordering of the fcmps doesn'tChad Rosier2012-06-061-0/+10
| | | | | | | matter. rdar://11579835 llvm-svn: 158084
* Remove extraneous CHECK-NOTs from previous commit and add a new test case.Chad Rosier2012-06-061-2/+10
| | | | llvm-svn: 158045
* FileCheckize this test.Chad Rosier2012-06-061-2/+18
| | | | llvm-svn: 158044
* Use opt -S instead of piping bitcode output through llvm-dis.Dan Gohman2009-09-081-2/+2
| | | | llvm-svn: 81257
* Change these tests to feed the assembly files to opt directly, insteadDan Gohman2009-09-081-2/+2
| | | | | | of using llvm-as, now that opt supports this. llvm-svn: 81226
* - Somehow I forgot about one / une.Evan Cheng2008-10-141-1/+9
| | | | | | | - Renumber fcmp predicates to match their icmp counterparts. - Try swapping operands to expose more optimization opportunities. llvm-svn: 57513
* Optimize anding of two fcmp into a single fcmp if the operands are the same. ↵Evan Cheng2008-10-141-0/+26
e.g. uno && ueq -> ueq ord && olt -> olt ord && ueq -> oeq llvm-svn: 57507
OpenPOWER on IntegriCloud