From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1011) id 47ED03858293; Mon, 17 Oct 2022 13:25:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 47ED03858293 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1666013106; bh=VbNx4L5niqj+sMYPZXdD+6zT+GdIg5Z4/h5SaX0PLLg=; h=From:To:Subject:Date:From; b=li9qQYecwG59EXjqZjDN1a/1y6yn37lp1qKN6fmKXeOw+G3t4i0m6dV7fvEZW020g ECbcLcD+LyrZY5RY+arTTBQiHP8dUIxCZG3MRR4mATNa2StxfNfcYgQfFKlPy2h5ie +qxFZmou7/OUD8R73ZLkfR2l4MaIgxTl2x3bUXMU= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Andrew Macleod To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-3334] Add 3 floating NAN tests. X-Act-Checkin: gcc X-Git-Author: Aldy Hernandez X-Git-Refname: refs/heads/master X-Git-Oldrev: b565ac19264a5827162d28537bccc8531c25e817 X-Git-Newrev: 7896a31d3003bad8b845881f59e570fbc3c78cfa Message-Id: <20221017132506.47ED03858293@sourceware.org> Date: Mon, 17 Oct 2022 13:25:06 +0000 (GMT) List-Id: https://gcc.gnu.org/g:7896a31d3003bad8b845881f59e570fbc3c78cfa commit r13-3334-g7896a31d3003bad8b845881f59e570fbc3c78cfa Author: Aldy Hernandez Date: Mon Oct 10 11:01:48 2022 +0200 Add 3 floating NAN tests. x UNORD x should set NAN on the TRUE side. The false side of x == x should set NAN. The true side of x != x should set NAN. gcc/testsuite/ * gcc.dg/tree-ssa/vrp-float-3a.c: New. * gcc.dg/tree-ssa/vrp-float-4a.c: New. * gcc.dg/tree-ssa/vrp-float-5a.c: New. Diff: --- gcc/testsuite/gcc.dg/tree-ssa/vrp-float-3a.c | 19 +++++++++++++++++++ gcc/testsuite/gcc.dg/tree-ssa/vrp-float-4a.c | 23 +++++++++++++++++++++++ gcc/testsuite/gcc.dg/tree-ssa/vrp-float-5a.c | 16 ++++++++++++++++ 3 files changed, 58 insertions(+) diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp-float-3a.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp-float-3a.c new file mode 100644 index 00000000000..5aadaa7c4db --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp-float-3a.c @@ -0,0 +1,19 @@ +// { dg-do compile } +// { dg-options "-O2 -fno-thread-jumps -fdisable-tree-fre1 -fdump-tree-evrp" } + +void link_error (); +void bar (); + +float +foo (float x) +{ + if (x != x) + { + // The true side of x != x implies NAN, so we should be able to + // fold this. + if (!__builtin_isnan (x)) + link_error (); + } +} + +// { dg-final { scan-tree-dump-not "link_error" "evrp" } } diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp-float-4a.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp-float-4a.c new file mode 100644 index 00000000000..7d3187b3962 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp-float-4a.c @@ -0,0 +1,23 @@ +// { dg-do compile } +// { dg-options "-O2 -fno-thread-jumps -fdisable-tree-fre1 -fdump-tree-evrp" } + +void link_error (); +void bar (); + +float +foo (float x) +{ + if (x == x) + { + bar (); + } + else + { + // The false side of x == x implies NAN, so we should be able to + // fold this. + if (!__builtin_isnan (x)) + link_error (); + } +} + +// { dg-final { scan-tree-dump-not "link_error" "evrp" } } diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp-float-5a.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp-float-5a.c new file mode 100644 index 00000000000..08332305f2c --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp-float-5a.c @@ -0,0 +1,16 @@ +// { dg-do compile } +// { dg-options "-O2 -fno-thread-jumps -fdisable-tree-fre1 -fdump-tree-evrp" } + +void link_error (); + +float +foo (float x) +{ + if (__builtin_isnan (x)) + { + if (!__builtin_isnan (x)) + link_error (); + } +} + +// { dg-final { scan-tree-dump-not "link_error" "evrp" } }