From: glisse Date: Mon, 2 May 2016 14:32:53 +0000 (+0000) Subject: Canonicalize X u< X to UNORDERED_EXPR X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=47ef9633e510b93bf34139d48538d5d6ee4912d1;p=thirdparty%2Fgcc.git Canonicalize X u< X to UNORDERED_EXPR 2016-05-02 Marc Glisse gcc/ * match.pd (X u< X, X u> X): New transformations. gcc/testsuite/ * gcc.dg/tree-ssa/unord.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235761 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 10bf855f351f..435a9622761e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2016-05-02 Marc Glisse + + * match.pd (X u< X, X u> X): New transformations. + 2016-05-02 Marc Glisse * flag-types.h (enum warn_strict_overflow_code): Move ... diff --git a/gcc/match.pd b/gcc/match.pd index f1b1f1541256..8de8858b1511 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -1921,6 +1921,10 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (simplify (cmp @0 @0) { constant_boolean_node (true, type); })) +(for cmp (unlt ungt) + (simplify + (cmp @0 @0) + (unordered @0 @0))) (simplify (ltgt @0 @0) (if (!flag_trapping_math) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f40758432842..2ea3d7700e3f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2016-05-02 Marc Glisse + + * gcc.dg/tree-ssa/unord.c: New testcase. + 2016-05-02 Marc Glisse * gcc.dg/tree-ssa/20040305-1.c: Adjust. diff --git a/gcc/testsuite/gcc.dg/tree-ssa/unord.c b/gcc/testsuite/gcc.dg/tree-ssa/unord.c new file mode 100644 index 000000000000..e0927925d5a0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/unord.c @@ -0,0 +1,7 @@ +/* { dg-do compile } */ +/* { dg-options "-O -fdump-tree-optimized" } */ + +int f(double a){double b=a;return !__builtin_islessequal(a,b);} +int g(double a){double b=a;return !__builtin_isgreaterequal(a,b);} + +/* { dg-final { scan-tree-dump-times " unord " 2 "optimized" } } */