From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com [IPv6:2a00:1450:4864:20::129]) by sourceware.org (Postfix) with ESMTPS id AFC4C3858C20; Tue, 14 Nov 2023 10:48:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AFC4C3858C20 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 AFC4C3858C20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::129 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699958906; cv=none; b=Yu4C0UbBgdLSYdo2UpqaooaFTOynEnotlPFxADnpOAi8KFt+EOcrM1AFqU0Svrg7iV/Dr3OfdmROODxQkfZzz/l4omUWVfzMImZ0sYUcrSEaovjeIkaNbEIyZpzVeet0iuBYpMusrj/zRZk5Gj6Bgv387V9YltwYyTv7lkXWP4c= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699958906; c=relaxed/simple; bh=wWRMrk2stKvFBcNyWY7LsGG8hTGUSJ2pibBnqlJ2ROc=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=BHegvGc/IirsM3fwfEY1E0Qp/HvZZMpvXSmljpyAZS4HuQHEBaWMKWE2WbxqsdcS0mCXfBSF1xRUF581zc2dx/598puhOqmC18BzFMf0YPnyKhx78oM7f6+kJXVOj5MjB0jy8sMugSEpLyn4xgpPF41QvHXmZrulHBP9c08nIQI= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-507a55302e0so7656423e87.0; Tue, 14 Nov 2023 02:48:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699958903; x=1700563703; darn=gcc.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=OwqDgKKYHAZEDhKfa4I/nsRik6ekD8/NzbTRQN6ITUU=; b=PUVdo/e+KYH4c6rIkop7Ycr/Q7JiX7LoumqNyMfsv+xHv1u+Lcg5BmVWJPxNeDJkgT iQjE42iT1njEHs2V7KMBBnXIAj9j5zRqmIdAjydSAvNsttBK+ECwkhRU//IwsCuD5QMs ynyu8rkwadeEwnPQqovve+PDLJvwBfHH2xHjAaaSqSjx4IuZxlp+6hLoGVh+PzdZwDtx rh4q2ML3f7gcyT9DCQTwrmScWzLbuVsH3W3HrLLRtIn/8ouRmlHOOKc/RRBTLJT6ORGU WI/cumI4wxVzQDzCtKtteWCZ1cTOuuke/KmZ+C6rZ3YCVWr3qobWFgNaqjXw2q73eggb ImWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699958903; x=1700563703; h=content-transfer-encoding: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=OwqDgKKYHAZEDhKfa4I/nsRik6ekD8/NzbTRQN6ITUU=; b=CQ7Qt1+zTVXuYnQpNZkXSBJWZ5RE6RPoexTuUN8T3RFZnirvFGC3TtjWJd/46nk2ZA fUrrJBAOblbE5Dq72xHkcjOmQToHelM8f5lgFEsOrYtx10ddbY5QoF97n2l0hfDIg6gV +w3GT3eoXEfZVWl293F1up6hhIaxH5J6j/+kImlrX6wmPFIBOMLAi1Gl24MBdsfPt4E1 GLrA6dkUB5RtZaWgpf6cIMmllcLKArC0PtbMUqYypC+IMt0ALCbI2gjgorSOMo/MBtvQ QXQ/d28WU4NYKZIFjqyJ/xUwzpkfC+2OeSoqTSDDTUXu40ia1ObXoQV2C9LfXW1d5Eud lvhg== X-Gm-Message-State: AOJu0YzBjlpWH4xijrLbWuZNfMcsiodrTLJdo5J6pGJ6pXJG3RyR6KIV jiU2FuDNp6jLTLskEOjs2bI+rYRv+oIg0hPXnRI= X-Google-Smtp-Source: AGHT+IE+Roaz2mIfQzNLP96K44fqNOnbRMNy9o+0EoMzQ/7RnzntNT13XGJarzZ77Ub64U+HdykA9y7EfGai5K9lOyY= X-Received: by 2002:ac2:5ecb:0:b0:509:377a:26d9 with SMTP id d11-20020ac25ecb000000b00509377a26d9mr5940571lfq.8.1699958902944; Tue, 14 Nov 2023 02:48:22 -0800 (PST) MIME-Version: 1.0 References: <20231114100320.47373-1-xry111@xry111.site> In-Reply-To: <20231114100320.47373-1-xry111@xry111.site> From: Richard Biener Date: Tue, 14 Nov 2023 11:44:50 +0100 Message-ID: Subject: Re: [PATCH] Only allow (copysign x, NEG_CONST) -> (fneg (fabs x)) simplification for constant folding [PR112483] To: Xi Ruoyao Cc: gcc-patches@gcc.gnu.org, chenglulu , i@xen0n.name, xuchenghua@loongson.cn, Tamar Christina , tschwinge@gcc.gnu.org, Roger Sayle , Andrew Pinski Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-7.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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, Nov 14, 2023 at 11:04=E2=80=AFAM Xi Ruoyao wro= te: > > From: Andrew Pinski > > On targets with native copysign instructions, (copysign x, -1) is > usually more efficient than (fneg (fabs x)). Since r14-5284, in the > middle end we always optimize (fneg (fabs x)) to (copysign x, -1), not > vice versa. If the target does not support native fcopysign, > expand_COPYSIGN will expand it as (fneg (fabs x)) anyway. > > gcc/ChangeLog: > > PR rtl-optimization/112483 > * simplify-rtx.cc (simplify_binary_operation_1) : > Call simplify_unary_operation for NEG instead of > simplify_gen_unary. > --- > > [xry111]: > > Following Andrew's suggestion, I bootstrapped and regtested this > patch on loongarch64-linux-gnu. Now with > > float t(float x) > { > return __builtin_copysignf(x, -0.1234); > } > > It correctly generates > > pcalau12i $r12,%pc_hi20(.LC0) > fld.s $f1,$r12,%pc_lo12(.LC0) > fcopysign.s $f0,$f0,$f1 > jr $r1 > > instead of the de-optimized fabs.s and fneg.s > > Ok for trunk? > > gcc/simplify-rtx.cc | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc > index 2d2e5a3c1ca..f3745d86aea 100644 > --- a/gcc/simplify-rtx.cc > +++ b/gcc/simplify-rtx.cc > @@ -4392,7 +4392,7 @@ simplify_ashift: > real_convert (&f1, mode, CONST_DOUBLE_REAL_VALUE (trueop1)); > rtx tmp =3D simplify_gen_unary (ABS, mode, op0, mode); > if (REAL_VALUE_NEGATIVE (f1)) > - tmp =3D simplify_gen_unary (NEG, mode, tmp, mode); > + tmp =3D simplify_unary_operation (NEG, mode, tmp, mode); shouldn't that be when either the ABS or the NEG simplify? And I wonder when that happens - I suppose when op0 is CONST_DOUBLE only? > return tmp; > } > if (GET_CODE (op0) =3D=3D NEG || GET_CODE (op0) =3D=3D ABS) > -- > 2.42.1 >