From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x436.google.com (mail-pf1-x436.google.com [IPv6:2607:f8b0:4864:20::436]) by sourceware.org (Postfix) with ESMTPS id 0AAFF3857711 for ; Sun, 14 May 2023 14:07:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0AAFF3857711 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-64ab2a37812so14085655b3a.1 for ; Sun, 14 May 2023 07:07:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684073247; x=1686665247; 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=OAHgW+mEm1Nx8KzXsbGjNjzfXxve3VGdxJr7I1FEry8=; b=Uwf2CyiiQ7SAOVZxT/2cekkU9TEV5/Wy/GOq0/Wodhm2bsTU6KSS+zSCibQA8vtOeK PevsEXOvrgTMuZOWux9KNbfSZRI/tfGZ3AF08+vXIMBm3mW1gzz4QApOZeCy1M4SbKbZ AjJQG7xxB2qtYrXtvT7b0+6ERuNAyO/dlXMSJLXGltcxbz3LEiNue/1CKtAQ8w/KYIp8 Zl0JchImbrQm1YjaYCWvBOVlJ1+TBvqgD4iM3cPTHkVmGcZ9maTT8H0XXnN8JYSCEpxR K7g+fWK6XhoT/EisS8sswAp3bCdWvzbkm6CZr8sLWMPL/O6rxP812xIio0hA5Vf8PeLe pDnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684073247; x=1686665247; 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=OAHgW+mEm1Nx8KzXsbGjNjzfXxve3VGdxJr7I1FEry8=; b=bKaOb6dUF5j1vyRhE3l8Rv4m9rQIjm0DPEKynCK395N0At82jMq/z6jn6Y5szJQjiX UPCT1IPK24zs9fYvGcyJKEyzPRFeJkIh2KWdnLkn9RID+NlcPqcnNqw8O7HRzmqPnZhv Cmei801+lr/R0/X0eLFNBe5pbaRqznvvZEMlDLBFu28ppcJxr20Vh5V9bT6P/NPzXhb2 aJQ3r6ioJQf5Qs0dXDjbELM3N8Fz8iK/YRMkHZuavRA2cRj4926LPtuln+BT9ewwTHOO +I8h1h88hNNwyzRLmajBfvyTghmDuMVMHU6A4m2U2UpVBuB53QII4hPlCDVigprzxJVl mtVQ== X-Gm-Message-State: AC+VfDztW31rJ6Cvbc4TgryotDaVwUqc8w1g+KCd0ZEhA2vd2PMjqYSJ cJopSMxpPFv/QPT7xXlf6P0VZuOMzTL6spTaVIM= X-Google-Smtp-Source: ACHHUZ5HsLUFnGj/EGAIg7GbxbN8NfvaiLaCFmWmQb9V6Bd07O6+pXghj9dJpdi8VA1MFuQWFn17EIZNkX+1OUSX9Lg= X-Received: by 2002:a17:902:cec9:b0:1a6:9cb3:5b30 with SMTP id d9-20020a170902cec900b001a69cb35b30mr44249006plg.8.1684073247499; Sun, 14 May 2023 07:07:27 -0700 (PDT) MIME-Version: 1.0 References: <20230514031258.1542461-1-apinski@marvell.com> <0a028947-85bc-f3e3-253e-b43831b0d4f0@ispras.ru> <61c155d8-615d-61e6-ae8e-e8c1e63acc48@ispras.ru> In-Reply-To: <61c155d8-615d-61e6-ae8e-e8c1e63acc48@ispras.ru> From: Andrew Pinski Date: Sun, 14 May 2023 07:07:14 -0700 Message-ID: Subject: Re: [PATCH] MATCH: Add pattern for `signbit(x) ? x : -x` into abs (and swapped) To: Alexander Monakov Cc: Andrew Pinski , gcc-patches@gcc.gnu.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.6 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,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 Sun, May 14, 2023 at 12:44=E2=80=AFAM Alexander Monakov via Gcc-patches wrote: > > > On Sun, 14 May 2023, Alexander Monakov wrote: > > > On Sat, 13 May 2023, Andrew Pinski via Gcc-patches wrote: > > > > > +/* signbit(x) !=3D 0 ? -x : x -> abs(x) > > > + signbit(x) =3D=3D 0 ? -x : x -> -abs(x) */ > > > +(for sign (SIGNBIT) > > > > Surprised to see a dummy iterator here. Was this meant to include > > float and long double versions of the builtin too (SIGNBITF and SIGNBIT= L)? It is NOT a dummy iterator. SIGNBIT is a operator list that expands to "BUILT_IN_SIGNBITF BUILT_IN_SIGNBIT BUILT_IN_SIGNBITL IFN_SIGNBIT". > > On the other hand, the following clauses both use SIGNBIT directly, and > it would be nice to be consistent. You cannot use the operator list directly if you have a for loop expansion too. So it is internally consistent already. Thanks, Andrew Pinski > > > > + (for neeq (ne eq) > > > + (simplify > > > + (cond (neeq (sign @0) integer_zerop) (negate @0) @0) > > > + (if (neeq =3D=3D NE_EXPR) > > > + (abs @0) > > > + (negate (abs @0)))))) > > > + > > > (simplify > > > /* signbit(x) -> 0 if x is nonnegative. */ > > > (SIGNBIT tree_expr_nonnegative_p@0) > > > > Thanks. > > Alexander > >