From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x431.google.com (mail-pf1-x431.google.com [IPv6:2607:f8b0:4864:20::431]) by sourceware.org (Postfix) with ESMTPS id 8D0693858D34 for ; Thu, 9 May 2024 07:26:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8D0693858D34 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 8D0693858D34 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::431 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715239581; cv=none; b=RsPaybfuxX4ILGGIp2wHyVZk/LZ/pdzLmTwe8kQLpKieE5LIekKYbLhWooVi3U6O41J14FtHA5VH9g8684LeQA14iETIL+gWKk2MzT8crEUOIfMCxJAiI5bXsL5xMK4kmnq89Vqr+c8k3aY/cNt/P+3lq+ZNtP7d5cVN6NnW/rw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715239581; c=relaxed/simple; bh=YT/u3NPic3Rb8bVXTZ3RqEL3vyeZD9ip6tXoCWFOypE=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=VohbkEKj5vN9rWIv4FgrQCsCE1T2rstqG9vV5vglemYdGsxF7qs1LIhP4RnUJKhym8xhN1OY3yoo4M0eVrqDQhwRvPgpnAAeAwBULcxGabG8XIccStt/C973r9KWNaQVg4OV7O+Bsm16Qz1Som+kkt5vS0i7dnHmCW0ye360YFg= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-6f47787a0c3so544074b3a.0 for ; Thu, 09 May 2024 00:26:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715239578; x=1715844378; 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=cPZsqQf2qpjqfdfyNsYAhH8DTdl05WzwPk55vrIzJZo=; b=VcawBAiFvSd1MjiS0IFid1e03AjpbuomYEJBl46bC3TDmVNtuIMYN9nxVEqVXLNJ0T lx9WRezJFUQDCU9VqzRPruEtY5mTBLNkuoXpbvwaoBdvjBvS4iTD5bp1/XQFrY0f9u/w ph4dlv/VWl4luPJf6+uziLPddVpZ5e08cjFt8+8yaZ3igbNnUW9PBdrojkNG/dYdOPm1 DG8SqeOelaIApg5lUgZKe/6ZQ7OQUCj9KrXp8rtwquot75rPOBrr4vCPBN/rX9U+Zv0v Czeas3PTwGaSrGVOoM23jE/krlUPWOTK9a3jxpnxrby5pDzpDEDEhXgEMGMzv9WGeUpA ANuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715239578; x=1715844378; 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=cPZsqQf2qpjqfdfyNsYAhH8DTdl05WzwPk55vrIzJZo=; b=lmqcl3RtnMvlGRJB/NkrLfBHkXXbSOFNnSTv7LCY5iCgqgQE59THWu7bKImp/Vtzp7 UQVm4RpJ+7vuEZNtcFl+1QBBwg60xEGNhq+vzbX3FdMzhYy71lBYQnhg8bsM/ma3xo8T zq66t2Vr43N9nTb5qneZd8R+KTNAczEb0GVlZh27u8HMWlQfZcVinlMHsbnVn7nbo1jd pmBRNGImZEvoBI7OkpCHlrL2trnIxv6B36obR7lvikY5V1UY1R9DJeePSxD6FKEX+RhR pCJUtEbJE/LNqh5Lbd6kg6MDkBEB1EZ1PV4hRNfn//Q4GtSuv5J3Wg2WsMdpFFv+QFi2 79lQ== X-Gm-Message-State: AOJu0Yx0Zg0iLzhj+cpvssW9XDT1J+h42NlGu1xDWM2nQs1t+yU9s70+ xN6K+t1BK/vIl8QpUapl1Yh+MNXeLwj9dpMH97Nvi8bxkTf71+UqFiFx2w8dj1uamLaEnfbVWNA 3xjsUgUsZKeLusew5ZJf31uG9OE64+A== X-Google-Smtp-Source: AGHT+IFYBByida7/iTrQmJvdxaGWbIQXfXqoMIuVqYEKO0dy3GXdLjKcjlkcmbHIJkGJo/J3e9QRNtcwA4tp42yXbZ0= X-Received: by 2002:a05:6300:8085:b0:1a9:db07:82ee with SMTP id adf61e73a8af0-1afc8db5bd4mr4273784637.44.1715239578322; Thu, 09 May 2024 00:26:18 -0700 (PDT) MIME-Version: 1.0 References: <20231001192742.145518-1-pinskia@gmail.com> In-Reply-To: <20231001192742.145518-1-pinskia@gmail.com> From: Andrew Pinski Date: Thu, 9 May 2024 00:26:06 -0700 Message-ID: Subject: Re: [COMMITTED/13] Fix PR 110386: backprop vs ABSU_EXPR To: gcc-patches@gcc.gnu.org Cc: Andrew Pinski Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-7.9 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 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, Oct 1, 2023 at 12:28=E2=80=AFPM Andrew Pinski w= rote: > > From: Andrew Pinski > > The issue here is that when backprop tries to go > and strip sign ops, it skips over ABSU_EXPR but > ABSU_EXPR not only does an ABS, it also changes the > type to unsigned. > Since strip_sign_op_1 is only supposed to strip off > sign changing operands and not ones that change types, > removing ABSU_EXPR here is correct. We don't handle > nop conversions so this does cause any missed optimizations either. > > Committed to the GCC 13 branch after bootstrapped and > tested on x86_64-linux-gnu with no regressions. And to the GCC 12 and 11 branches too. Thanks, Andrew > > PR tree-optimization/110386 > > gcc/ChangeLog: > > * gimple-ssa-backprop.cc (strip_sign_op_1): Remove ABSU_EXPR. > > gcc/testsuite/ChangeLog: > > * gcc.c-torture/compile/pr110386-1.c: New test. > * gcc.c-torture/compile/pr110386-2.c: New test. > > (cherry picked from commit 2bbac12ea7bd8a3eef5382e1b13f6019df4ec03f) > --- > gcc/gimple-ssa-backprop.cc | 1 - > gcc/testsuite/gcc.c-torture/compile/pr110386-1.c | 9 +++++++++ > gcc/testsuite/gcc.c-torture/compile/pr110386-2.c | 11 +++++++++++ > 3 files changed, 20 insertions(+), 1 deletion(-) > create mode 100644 gcc/testsuite/gcc.c-torture/compile/pr110386-1.c > create mode 100644 gcc/testsuite/gcc.c-torture/compile/pr110386-2.c > > diff --git a/gcc/gimple-ssa-backprop.cc b/gcc/gimple-ssa-backprop.cc > index 65a65590017..dcb15ed4f61 100644 > --- a/gcc/gimple-ssa-backprop.cc > +++ b/gcc/gimple-ssa-backprop.cc > @@ -694,7 +694,6 @@ strip_sign_op_1 (tree rhs) > switch (gimple_assign_rhs_code (assign)) > { > case ABS_EXPR: > - case ABSU_EXPR: > case NEGATE_EXPR: > return gimple_assign_rhs1 (assign); > > diff --git a/gcc/testsuite/gcc.c-torture/compile/pr110386-1.c b/gcc/tests= uite/gcc.c-torture/compile/pr110386-1.c > new file mode 100644 > index 00000000000..4fcc977ad16 > --- /dev/null > +++ b/gcc/testsuite/gcc.c-torture/compile/pr110386-1.c > @@ -0,0 +1,9 @@ > + > +int f(int a) > +{ > + int c =3D c < 0 ? c : -c; > + c =3D -c; > + unsigned b =3D c; > + unsigned t =3D b*a; > + return t*t; > +} > diff --git a/gcc/testsuite/gcc.c-torture/compile/pr110386-2.c b/gcc/tests= uite/gcc.c-torture/compile/pr110386-2.c > new file mode 100644 > index 00000000000..c60e1b6994b > --- /dev/null > +++ b/gcc/testsuite/gcc.c-torture/compile/pr110386-2.c > @@ -0,0 +1,11 @@ > +/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ > +/* { dg-options "-mavx" } */ > + > +#include > + > +__m128i do_stuff(__m128i XMM0) { > + __m128i ABS0 =3D _mm_abs_epi32(XMM0); > + __m128i MUL0 =3D _mm_mullo_epi32(ABS0, XMM0); > + __m128i MUL1 =3D _mm_mullo_epi32(MUL0, MUL0); > + return MUL1; > +} > -- > 2.39.3 >