From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id F123C385085F; Tue, 7 Mar 2023 06:22:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F123C385085F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1678170126; bh=kBR7jPxT0dObT5iKO38H4424kMW82962vVkGpTkP9Dw=; h=From:To:Subject:Date:In-Reply-To:References:From; b=BuWeorYlSWx+QMooSiR5RxuGsIvD9aCbL7CkZL/VV7oXrWSLL7SE6WwDGJ4wFzcVW kk/oA6EtJ5Oh3eSD2O0pT+vUzQkieAYoP7/R1DhcW3Pa3Na3h9k4Q8EjSzCwyIBIqU RwtvlosMeo7MrsyQoGRmm6eDUVASjvi5lH6Y+q3g= From: "crazylht at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/109048] [13 regression] redundant mask compare generated by vectorizer. Date: Tue, 07 Mar 2023 06:22:06 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: crazylht at gmail dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D109048 --- Comment #3 from Hongtao.liu --- A three-operand phi make ifcvt generate worse code [local count: 10737414]: # iftmp.1_16 =3D PHI <2.5e-1(13), 5.0e-1(2)> # iftmp.0_34 =3D PHI <4.0e+0(13), 2.0e+0(2)> # prephitmp_40 =3D PHI <-2.5e-1(13), -5.0e-1(2)> # prephitmp_41 =3D PHI <1.25e+0(13), 1.5e+0(2)> # prephitmp_42 =3D PHI <-1.25e+0(13), -1.5e+0(2)> # DEBUG f1 =3D> NULL # DEBUG f2 =3D> iftmp.1_16 # DEBUG BEGIN_STMT # DEBUG i =3D> 0 # DEBUG BEGIN_STMT if (_3 !=3D 0) goto ; [50.00%] else goto ; [50.00%] [local count: 5368707]: [local count: 531502204]: # i_18 =3D PHI <0(29), i_47(26)> # ivtmp_15 =3D PHI <256(29), ivtmp_43(26)> # DEBUG i =3D> i_18 # DEBUG BEGIN_STMT _38 =3D (long unsigned int) i_18; _37 =3D _38 * 4; _36 =3D af_24(D) + _37; x_20 =3D *_36; # DEBUG x =3D> x_20 # DEBUG BEGIN_STMT # DEBUG D#1 =3D> x_20 < 0.0 # DEBUG z =3D> (int) D#1 # DEBUG BEGIN_STMT if (x_20 >=3D 0.0) goto ; [59.00%] else goto ; [41.00%] [local count: 313586303]: if (x_20 < iftmp.0_34) goto ; [20.00%] else goto ; [80.00%] [local count: 250869041]: [local count: 531502205]: # prephitmp_17 =3D PHI <2.0e+0(17), prephitmp_41(19), iftmp.1_16(21)> # DEBUG t1 =3D> D#2 # DEBUG BEGIN_STMT # DEBUG neg_t1 =3D> -D#2 # DEBUG BEGIN_STMT # DEBUG t2 =3D> prephitmp_17 # DEBUG BEGIN_STMT _12 =3D res_28(D) + _37; _26 =3D *_12; _27 =3D _26 + x_20; _45 =3D prephitmp_17 + _27; *_12 =3D _45; # DEBUG BEGIN_STMT i_47 =3D i_18 + 1; # DEBUG i =3D> i_47 # DEBUG BEGIN_STMT ivtmp_43 =3D ivtmp_15 - 1; if (ivtmp_43 !=3D 0)=