From patchwork Mon Oct 17 13:25:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew MacLeod X-Patchwork-Id: 3459 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp1446894wrs; Mon, 17 Oct 2022 06:28:14 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4fsrhGQCtYD/BO70QanAMT+Jg078mHne+cyJ6Q1d4jaG/BM0r+K5eRG2IywgUjdOIdLPpX X-Received: by 2002:a05:6402:1caa:b0:458:d825:95b5 with SMTP id cz10-20020a0564021caa00b00458d82595b5mr10423970edb.95.1666013293850; Mon, 17 Oct 2022 06:28:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666013293; cv=none; d=google.com; s=arc-20160816; b=QYWKG7RRsYkp323WfFPD7rPkP7i/7bZvdsKFAcANveAl4LYZKerhavCiFF0y3PfrL+ lQ+j6yrU6qwR/Mcz4IXG+ARqWCrfFePNeQpHRE09366j1PgpzI8ZRtz0aEtQU0LEAi7E S9LAwNRnt+nwE8L3wWy+Hq/K3krDVsMZStQN0e249ZMn/vbLW3AOqf8BSEkD3TGMt/X8 llNXaUEf/Zpp8qKMZKwcE1c9skvGhilPoora8V7FOXqjyI+I3jH6SffoncXM6VcvFKBZ Xl+RFdrwD0MKUUmLpQVAsk6w7iMHm2zAvidYfT4uwTn8m8H+x5OcnBpqCsQVN0+w+n1A ceGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:content-language :subject:to:user-agent:mime-version:date:message-id:dmarc-filter :delivered-to:dkim-signature:dkim-filter; bh=5KFqY39tzb+t6nXzKo79h/CPWlssvloYuWrzsSB0Q1Q=; b=qjEkd02UELNqskJF6PSlZySIdknlPS6Jco9Kw9P3/tL1LKqAO7jjTeRTk+ZQyPuuLF dtMXfN/+KRLyTMQphsw9LuCIQ7sD4AxKSdOqEaffPFDMzSvsXcToPV90GkzX6XWdnH12 Y+aFa9xHSbzwoebw54mshmcZ4P3b/4OFdhBdqn60HeLlStGoJ0+9K0GntbqZd2MNs+EY DJOb/ePqrCsZ+gLBe8/cb+OxKNEoqWwRVzdEuot/bgBS+YDl3lFIJ/WX1eQ7YK/mXMIJ LOIncYdHAlOfWGoj/sq1fTFY++ci0Ikk03sybDVRsAJ3piYxAirCUKUBNtpiNhbgavSF Yivg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=n929LEpT; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id hq40-20020a1709073f2800b0073866c0672asi3106581ejc.73.2022.10.17.06.28.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 06:28:13 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=n929LEpT; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 37205385735A for ; Mon, 17 Oct 2022 13:27:57 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 37205385735A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1666013277; bh=5KFqY39tzb+t6nXzKo79h/CPWlssvloYuWrzsSB0Q1Q=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=n929LEpT6hrOXrz5xS5YC57ip9DihdXK1MPYqPBBPNwlgi5U3hgbu6OE4rnnpRXXH 6tmLTYQSIEk9OjLJ6xq34oIOTx4py/6KMqtrPd6oadfb5QKYh3TxxZ15wLPQuNZO/G /D4MEWdf5Yr3Py7twVJQOOszk4Gphjh1x9xUKDL8= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 9B38C3858022 for ; Mon, 17 Oct 2022 13:26:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9B38C3858022 Received: from mail-io1-f71.google.com (mail-io1-f71.google.com [209.85.166.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-66-re5o4t3dMIOApSiKvfuIYA-1; Mon, 17 Oct 2022 09:26:04 -0400 X-MC-Unique: re5o4t3dMIOApSiKvfuIYA-1 Received: by mail-io1-f71.google.com with SMTP id w16-20020a6b4a10000000b006a5454c789eso7023905iob.20 for ; Mon, 17 Oct 2022 06:26:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ccqYIeKGwnLPbOCODfbemrpd9dP0cXFFnJ+LVdicqQ0=; b=iKVkwuHCbWSYeD1ZcKnY50SuMRWYm7YD0B+PiEty28F1amIh3trxciA1RdPbOh9U8U TFoXgcAWb/VJ39KcDDuV+lJCaH/X6n3b9W4mq6NDIGjiUlzbWmQ0CXIFp/NhrzJoR7ZD QfS3KBu0MRsaZmPqYQEqPlp7guchruUVtZAgID4G9J0yluiXAX52q+mIt8vvBOTrV9ow rYkmUVPGwKDgEv+fDEhem+pv+yIiY61cGBPe1ta9p90MajDL9QpGyPZ9kWyDB8QGK/OR aaeulKv4JhsTRAW6yq/PCeTEtHw4JB4vwWOaZeO0sSD506XiGFSihjM50q0EGRgj4pOe PmYw== X-Gm-Message-State: ACrzQf23hGwqYq5ZC6snw218QMq8qKMXeQ6iru3xS6YzYwPxZPAHkcaU NRDDvunUE5r/lfodQZPhEO+ew1gKkZ9ZY8ytfPGgYMHeKgWbnMwzDuZpwtdqsJvdHBDrBwrLjzb ofaN1KcKcyn6zrU0wJOFZZV2TBbagz3Zr8ddr1B1NntF1tk/nh5FQyMgq/XA4lPn8NpyUoA== X-Received: by 2002:a92:c0c9:0:b0:2f9:ae60:164c with SMTP id t9-20020a92c0c9000000b002f9ae60164cmr4828507ilf.28.1666013162279; Mon, 17 Oct 2022 06:26:02 -0700 (PDT) X-Received: by 2002:a92:c0c9:0:b0:2f9:ae60:164c with SMTP id t9-20020a92c0c9000000b002f9ae60164cmr4828491ilf.28.1666013162036; Mon, 17 Oct 2022 06:26:02 -0700 (PDT) Received: from ?IPV6:2607:fea8:a263:f600::50d4? ([2607:fea8:a263:f600::50d4]) by smtp.gmail.com with ESMTPSA id g14-20020a05663810ee00b00349e1922573sm4380513jae.170.2022.10.17.06.26.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 17 Oct 2022 06:26:01 -0700 (PDT) Message-ID: <65c19cf9-5709-3be3-5cd4-7a75dbd53c6a@redhat.com> Date: Mon, 17 Oct 2022 09:25:59 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 To: gcc-patches Subject: [COMMITTED] Add 3 floating NAN tests. X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Andrew MacLeod via Gcc-patches From: Andrew MacLeod Reply-To: Andrew MacLeod Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1746941555703408362?= X-GMAIL-MSGID: =?utf-8?q?1746941555703408362?= 3 tests from Aldy using the relations generated by GORI between operands to set or clear NANs as appropriate on outgoing edges. Pushed. Andrew From 7896a31d3003bad8b845881f59e570fbc3c78cfa Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Mon, 10 Oct 2022 11:01:48 +0200 Subject: [PATCH 4/4] 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. --- 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(+) create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/vrp-float-3a.c create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/vrp-float-4a.c create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/vrp-float-5a.c 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" } } -- 2.37.3