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.129.124]) by sourceware.org (Postfix) with ESMTPS id 861E43858D37 for ; Tue, 21 Mar 2023 13:28:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 861E43858D37 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=1679405315; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lc0UGYpONfz0rPMdktb0gTs8cfHotbQ18tJukjsyBHQ=; b=GYAbMKWgmHbGT1JUaNjMD0FDrl/9V77l2XSV1oDnzzAdQTWujlPF7jgQq9qL7vTrpFSkHo hGhzMVu0VlNUiMVK/BDULOrb9kA4ewjpLbBtWlRJA7JqYBqCEWQPsEx3NtHYWwK4KjctU5 rQ/MglDHABR2jq0o/UwZhxwn+e/i3vg= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-583-vMITVTC7NgORBXy904CW-A-1; Tue, 21 Mar 2023 09:28:34 -0400 X-MC-Unique: vMITVTC7NgORBXy904CW-A-1 Received: by mail-wm1-f71.google.com with SMTP id bi5-20020a05600c3d8500b003edda1368d7so2723849wmb.8 for ; Tue, 21 Mar 2023 06:28:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679405312; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=lc0UGYpONfz0rPMdktb0gTs8cfHotbQ18tJukjsyBHQ=; b=WxVUeYnHQiYEPcaqGOO4kY7Xo22BtLeElhYTX/vEoYBf2aGh3h5KMU9GUXoDHJmi4I z41Qwx/6cR4LrZ5P5WwHOKAyLriJooHzWGfFY1igRX+QbovpvCDN1f1XEQNN2daqb4kr JlWPYR43XlM9ivlEz9jg9ElTKJYmw1MSI/qgFRxh0pcDDkk+r+4iajLuDDeIyywnclyF e/y38b75sAlT3NsOyoIywZ2Lu/NQsnO/v7ejHJWUs+6TW7bhtCM/J8XaK4QFul8blsfw h7uG+Qi5xRzZKmTdrHAV5EWDvcLtMTKLE+Ssb/DQnEnfn0bfEqY90QOIPEFBYMWF8vot GhGA== X-Gm-Message-State: AO0yUKWGw9M9B7gxNsdUo77XBo85O60fdYXt3m28EyIZ2VdQFxKjom27 Cvz4k1pUZVvGtvG1mJ88/rdL2ET5KA0+4N8uovIp4JB9Gb8GGMY1v96A1mqGhV76wur5lZQu/Ls Q7sdTLh8byngvpf7lHQ== X-Received: by 2002:a05:600c:4fc8:b0:3ed:1f98:670f with SMTP id o8-20020a05600c4fc800b003ed1f98670fmr10434477wmq.20.1679405312771; Tue, 21 Mar 2023 06:28:32 -0700 (PDT) X-Google-Smtp-Source: AK7set9+CwiaUQ6l2+Ussn8ina0lWDnjyWcbcMKxwCpzitDGaGOJnCinxt8oY9Go0erAxmKnpQc8mA== X-Received: by 2002:a05:600c:4fc8:b0:3ed:1f98:670f with SMTP id o8-20020a05600c4fc800b003ed1f98670fmr10434466wmq.20.1679405312469; Tue, 21 Mar 2023 06:28:32 -0700 (PDT) Received: from [192.168.1.201] ([139.47.42.170]) by smtp.gmail.com with ESMTPSA id f1-20020a1c6a01000000b003edcc2223c6sm8742522wmc.28.2023.03.21.06.28.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 21 Mar 2023 06:28:32 -0700 (PDT) Message-ID: <1f0427e3-26f5-be76-4cab-5d8ec9ffb988@redhat.com> Date: Tue, 21 Mar 2023 14:28:31 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: [PATCH] range-op-float: Fix up -ffinite-math-only range extension and don't extend into infinities [PR109008] To: Richard Biener , Jakub Jelinek Cc: gcc-patches@gcc.gnu.org, Andrew MacLeod References: From: Aldy Hernandez In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 3/10/23 09:53, Richard Biener wrote: > On Fri, 10 Mar 2023, Jakub Jelinek wrote: Coming back to this... > /* Temporarily disable -ffinite-math-only, so that frange::set doesn't > reduce the range back to real_min_representable (type) as lower bound > or real_max_representable (type) as upper bound. */ > bool save_flag_finite_math_only = flag_finite_math_only; > flag_finite_math_only = false; > ret.set (type, lb, ub); > if (lhs.kind () != VR_VARYING) > { > ret.clear_nan (); > ret.union_ (lhs); > } > flag_finite_math_only = save_flag_finite_math_only; It looks like what you want to do is be able to create a range with a known NAN state, but without the setter reducing the range to min/max_representable. How about we enhance the API to provide: 1. Constructor with a known NAN state. 2. Setter with a flag to keep it from canonicalizing into min/max_representable. The flag in 2 could in the future be saved in the frange object to keep union and friends from further canonicalization. So the above could be written as: // Construct [lb, ub] with a known NAN state. frange tmp (lb, ub, lhs.get_nan_state ()); // Set RET without dropping/reducing the range to MIN/MAX. ret.set (tmp, FRANGE_FLAG_NO_REPRESENTABLE_REDUCTION); An alternative is to allow the setter to set everything: ret.set (type, lb, ub, lhs.get_nan_state (), FRANGE_FLAG_NO_REPRESENTABLE_REDUCTION); Would this work? I'd be happy to whip up something this week, or if preferred, leave it to the next release. Aldy