From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) by sourceware.org (Postfix) with ESMTPS id 20D4A384474F; Tue, 7 May 2024 16:46:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 20D4A384474F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 20D4A384474F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::62a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715100370; cv=none; b=x50eCgjFy54m+EkNpie9XIydmZD7/ZVVjaSPCVKwy1oU2Qa+fqFzVpyv8rOXdjKu1AODTHaWkVBZnQXrVLAuXvST3q/uMMAc0ZnizaPfzSW6gSMU4TElliYZZNKtsYPK1l8PbYGDepcc46vxKXdJQLtcxGDD1cjQcOEEed6FWyU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715100370; c=relaxed/simple; bh=mlb2gi6Bl+GbhUWkO0yLkNGHvTRd0532FBxBXxqFa9c=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=E2ywxuYyr7/xHD45x+JycoUayY9S/NDLIREcMoUcrVArn+RAdX/6ds4a2HTcJYDCXhW9SjfqGScVYwIs5mV4FA03ieo9gplPcf2byly8YIvc+WgIbs8lzW08uNVYIMhsr2MqBa7+E5K1FnWqJGB3qY/YV4K/SG1sdT5XW3DmFBM= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-a59b178b75bso596983666b.0; Tue, 07 May 2024 09:46:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715100368; x=1715705168; darn=gcc.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=AHD7hNzxMh9qEn0YWUL9Y/lKqf6Su63KSa2rk/jp9Lk=; b=W1X85wY5kFmEc/f4KhWXtreHuGctwuPpSHLxDcosIP60GtEXf4RcJRMdp8DcRrbUNk hvg4GJZAD74SYCu70uhEYGv4EZKjz8uFHn7VgM0eBbfsknTu9swBLKH5fOmT9Ge8zSpy 4pnHK9cEMo7PxLi3RTQzPAvNejw5pz9lT+n82iie601EvWVw8XiyITuUApSs7VjnqfHu heqOMnEoV0Zv87E9uSNo61K4z0x+OLO52Q1KD0V/oexkI1JOnQwFZnFt6KSv83751wHc hH6cyK68oVjJwDP+B66ZzNSxCthtYAye+DiCP0fnbSCuXzch91jx71jnHJZRsm9VasGe n4dA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715100368; x=1715705168; 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=AHD7hNzxMh9qEn0YWUL9Y/lKqf6Su63KSa2rk/jp9Lk=; b=ZuS+EFwCSU7SyUErneBoCf/HiesM2BNbIDhqpE3/XhR4xCO9vMj36iHFaVnUY0lcp9 Hpk5mhscOxNZEb751CvX93jIleI2LLW/smPlBGaCGJIC1Q0ytR0Mmc+mRATaYuj8SLKP 5aPDV0JshuZS9ybIumB8tBEdHJhMM9whSqkG7q76fp/r5ApCcH3nl4ek6gToQLG1O4r0 Wdq+T55l0DCH2ensg/4mw/VtwDb8kuyVYh9iBZKKwJzaLuu9QbuTOrfE+ns45wKhV6aL JWn6sHgpVBEtsHODsYafjYZCr4eYefXC/ul4DvxS3OTjpBK7+GogUoQDQTpEVO8dAekd UvNA== X-Forwarded-Encrypted: i=1; AJvYcCUxaBHu37HDRucEKmFsomddI27G3x39sj+0Q0FX1/1msY24TuRH6P+ew+ZX0Mhl3YgN91GfNwpCJad94PAcegXecxpSD5JZ6jleu41vmlWRvvVwwMwpF/P9eWyyyBR7 X-Gm-Message-State: AOJu0YwTl7WIU9eZaXyKf9XhxbWT1yjYVeFc/mKzbz6767NZRal5Ituv lOBmJrc2ic7VsD2X9h5BGO2cIPEz2VtgXfCiQ6t94VkaZryRNt8vWXheSkSNRkZpw220Dk1sQy0 gXWrUp5AhOBSz7ez+b/uIzt5m9Bs= X-Google-Smtp-Source: AGHT+IFA9AcXaEAKeiVYA1zCov6QEFYe6z4AKIC7MXjdDkL7qFnIh9oMeKbxm/iUmsmVwI356jcI5cBNyoP++ZCBpF0= X-Received: by 2002:a17:906:a3cc:b0:a59:c319:f1db with SMTP id a640c23a62f3a-a59fb94a3cfmr2063466b.1.1715100367587; Tue, 07 May 2024 09:46:07 -0700 (PDT) MIME-Version: 1.0 References: <20240507135019.3821031-1-jwakely@redhat.com> <31da9859-1254-4729-a074-6b16f24cd887@gmail.com> In-Reply-To: From: Jonathan Wakely Date: Tue, 7 May 2024 17:45:56 +0100 Message-ID: Subject: Re: [PATCH][risc-v] libstdc++: Preserve signbit of nan when converting float to double [PR113578] To: Jeff Law Cc: Andreas Schwab , Jonathan Wakely , libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,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: On Tue, 7 May 2024 at 17:39, Jonathan Wakely wrote: > > On Tue, 7 May 2024 at 17:33, Jeff Law wrote: > > > > > > > > On 5/7/24 9:36 AM, Andreas Schwab wrote: > > > On Mai 07 2024, Jonathan Wakely wrote: > > > > > >> +#ifdef __riscv > > >> + return _M_insert(__builtin_copysign((double)__f, > > >> + (double)-__builtin_signbit(__f)); > > > > > > Should this use static_cast? > > Meh. It wouldn't fit in 80 columns any more with static_cast, and it > means exactly the same thing. > > > And it's missing a close paren. > > Now that's more important! Thanks. Also, I've just realised that signbit might return a negative value if the signbit is set. The spec only says it returns non-zero if the signbit is set. So maybe we want: #ifdef __riscv const int __neg = __builtin_signbit(__f) ? -1 : 0; return _M_insert(__builtin_copysign(static_cast(__f), static_cast(__neg))); #else return _M_insert(static_cast(__f)); #endif