From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 C6BFC3858024 for ; Fri, 14 Oct 2022 14:53:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C6BFC3858024 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665759207; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=qXHH0itwavzqm5AhbUjI8F+QcFkVc8vj3ysgP8mPUN0=; b=XLc/rw4DLz8w0qh9zGBRWpasvz+ws9UTjJ9DScYQtCsGKRykZzrqxmbesZSQqtSlAxtguk G+cwvS036vRxenNrmAcxaPc5WMxpV5AcmsTMnJ417HS7BOAdRK8mdvLgcBBlFcfCpRQphM qDym9ZyjPMPsHxpybdecIu3jwp8Sc/8= Received: from mail-yw1-f198.google.com (mail-yw1-f198.google.com [209.85.128.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-184-MiE8QYMpMvOXzbTR-z5cdQ-1; Fri, 14 Oct 2022 10:53:26 -0400 X-MC-Unique: MiE8QYMpMvOXzbTR-z5cdQ-1 Received: by mail-yw1-f198.google.com with SMTP id 00721157ae682-3576c47f204so48020347b3.2 for ; Fri, 14 Oct 2022 07:53:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=qXHH0itwavzqm5AhbUjI8F+QcFkVc8vj3ysgP8mPUN0=; b=h2qD1ViwXzHzpuEYSTl5mh/s4DUsnbCXS2dwwyi6KzX8vjyMGZaf5ua40FWQd1COZA kikkcB2GaCQlTXwWseM38+tHQ8JCopIJA4RMjALGi3HJIkApFLycU76F4jhHJ7ONsyy3 lAmTNdb2L6aoabky6B8+r/bNVDnbpsizRDa+qJGnup/ZzI8fWXmNuVuPJ4X+F0GbyZQ3 tuBc/21kFot1wbusaql6OtD3UBttRkYOY5pZqHQrjLXw2ehlfAV6jNDHHNvAwUEy+S4r nVK+wtUerg7yX2oQke/3j1LbEftylR1TWfnWrV442NOu3tVThyvuze9oIocAO1K5yhUi LqBA== X-Gm-Message-State: ACrzQf3I6N8PZELythKLJAoD6NbdJOlLeTmHNNxIF+4zDeJyww7TrXvF 5QCArL+Pie9IXn+gWg4dhSVIYh4wS638kAkPSYXpOJllTmbofpaz7y8RSURohaj0b+wwcrVa9NZ 6Mv39GlcHrT+eA+q003b8rj/7FwsGV41E6A== X-Received: by 2002:a05:6902:13c8:b0:6af:f2b8:e164 with SMTP id y8-20020a05690213c800b006aff2b8e164mr4836813ybu.466.1665759205363; Fri, 14 Oct 2022 07:53:25 -0700 (PDT) X-Google-Smtp-Source: AMsMyM791FxYIkzjE6BEBOOK6A1NsiEeYAWuZ8bsZlJJuar52sYmDV9Mtiwr5uLo6Xb5DPJEI6eLUM2hDyw2VY+/i48= X-Received: by 2002:a05:6902:13c8:b0:6af:f2b8:e164 with SMTP id y8-20020a05690213c800b006aff2b8e164mr4836794ybu.466.1665759205111; Fri, 14 Oct 2022 07:53:25 -0700 (PDT) MIME-Version: 1.0 References: <20221014142652.671475-1-aldyh@redhat.com> In-Reply-To: From: Aldy Hernandez Date: Fri, 14 Oct 2022 16:53:13 +0200 Message-ID: Subject: Re: [COMMITTED] Drop -0.0 in frange::set() for !HONOR_SIGNED_ZEROS. To: Jakub Jelinek Cc: GCC patches X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="000000000000b4025e05eaffc96f" X-Spam-Status: No, score=-11.9 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,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 List-Id: --000000000000b4025e05eaffc96f Content-Type: text/plain; charset="UTF-8" On Fri, Oct 14, 2022 at 4:33 PM Jakub Jelinek wrote: > > On Fri, Oct 14, 2022 at 04:26:50PM +0200, Aldy Hernandez via Gcc-patches wrote: > > Similar to what we do for NANs when !HONOR_NANS and Inf when > > flag_finite_math_only, we can remove -0.0 from the range at creation > > time. > > > > We were kinda sorta doing this because there is a bug in > > real_isdenormal that is causing flush_denormals_to_zero to saturate > > [x, -0.0] to [x, +0.0] when !HONOR_SIGNED_ZEROS. Fixing this bug > > (upcoming), causes us to leave -0.0 in places where we aren't > > expecting it (the intersection code). > > > > gcc/ChangeLog: > > > > * value-range.cc (frange::set): Drop -0.0 for !HONOR_SIGNED_ZEROS. > > This looks wrong to me. > !HONOR_NANS is different from !HONOR_SIGNED_ZEROS. > The former says that either NaNs aren't supported or if they appear, > it will be UB. > The latter says that either -0.0 doesn't exist, or user doesn't care > if -0.0 or 0.0 is used. > > So, what you do is ok for !MODE_HAS_SIGNED_ZEROS (TYPE_MODE (m_type)), > but otherwise we want to canonicalize [x, -0.0] to [x, 0.0] and > [0.0, y] to [-0.0, y]. If the user doesn't care, I would expect they'd be ok with it being +0.0, but I must say, this is way beyond my paygrade. How does this patch in testing look? Thanks. Aldy --000000000000b4025e05eaffc96f Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Implement-distinction-between-HONOR_SIGNED_ZEROS-and.patch" Content-Disposition: attachment; filename="0001-Implement-distinction-between-HONOR_SIGNED_ZEROS-and.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l98lyu3g0 RnJvbSAwNDVkNTdiOTc5NzIyZDE1Y2U3ZmNlNzMzNjE2YmJmNGFiMGUwNDU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGR5IEhlcm5hbmRleiA8YWxkeWhAcmVkaGF0LmNvbT4KRGF0 ZTogRnJpLCAxNCBPY3QgMjAyMiAxNjo0OTozMyArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEltcGxl bWVudCBkaXN0aW5jdGlvbiBiZXR3ZWVuIEhPTk9SX1NJR05FRF9aRVJPUyBhbmQKIE1PREVfSEFT X1NJR05FRF9aRVJPUy4KCmdjYy9DaGFuZ2VMb2c6CgoJKiB2YWx1ZS1yYW5nZS5jYyAoZnJhbmdl OjpzZXQpOiBJbXBsZW1lbnQgZGlzdGluY3Rpb24gYmV0d2VlbgoJSE9OT1JfU0lHTkVEX1pFUk9T IGFuZCBNT0RFX0hBU19TSUdORURfWkVST1MuCi0tLQogZ2NjL3ZhbHVlLXJhbmdlLmNjIHwgOSAr KysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9nY2MvdmFsdWUtcmFuZ2UuY2MgYi9nY2MvdmFsdWUtcmFuZ2UuY2MKaW5k ZXggNmI0ZjNkZGRjZDUuLmU1YjRjMTU2NWQ0IDEwMDY0NAotLS0gYS9nY2MvdmFsdWUtcmFuZ2Uu Y2MKKysrIGIvZ2NjL3ZhbHVlLXJhbmdlLmNjCkBAIC0zMjQsMTMgKzMyNCwyMCBAQCBmcmFuZ2U6 OnNldCAodHJlZSB0eXBlLAogICAgICAgbV9uZWdfbmFuID0gZmFsc2U7CiAgICAgfQogCi0gIGlm ICghSE9OT1JfU0lHTkVEX1pFUk9TIChtX3R5cGUpKQorICBpZiAoIU1PREVfSEFTX1NJR05FRF9a RVJPUyAoVFlQRV9NT0RFIChtX3R5cGUpKSkKICAgICB7CiAgICAgICBpZiAocmVhbF9pc3plcm8g KCZtX21pbiwgMSkpCiAJbV9taW4uc2lnbiA9IDA7CiAgICAgICBpZiAocmVhbF9pc3plcm8gKCZt X21heCwgMSkpCiAJbV9tYXguc2lnbiA9IDA7CiAgICAgfQorICBlbHNlIGlmICghSE9OT1JfU0lH TkVEX1pFUk9TIChtX3R5cGUpKQorICAgIHsKKyAgICAgIGlmIChyZWFsX2lzemVybyAoJm1fbWF4 LCAxKSkKKwltX21heC5zaWduID0gMDsKKyAgICAgIGlmIChyZWFsX2lzemVybyAoJm1fbWluLCAw KSkKKwltX21pbi5zaWduID0gMTsKKyAgICB9CiAKICAgLy8gRm9yIC1mZmluaXRlLW1hdGgtb25s eSB3ZSBjYW4gZHJvcCByYW5nZXMgb3V0c2lkZSB0aGUKICAgLy8gcmVwcmVzZW50YWJsZSBudW1i ZXJzIHRvIG1pbi9tYXggZm9yIHRoZSB0eXBlLgotLSAKMi4zNy4zCgo= --000000000000b4025e05eaffc96f--