From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 958563858D33; Tue, 7 Feb 2023 11:45:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 958563858D33 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1675770359; bh=WeY4AxK3905OBfjCwHbSGfCbDbqwbZNTJXKeQyliQG8=; h=From:To:Subject:Date:In-Reply-To:References:From; b=jkwDPxtg3jqWEt35ekIp+csuCSiD4c4zy0Ll8oikC9/OKy0SDAeid3kLceNqpxrGk uBwHlB7ZUNTsIfbkMjRvZVv4s3aqMuJEexb6bmutCjLwr0VygpNObr0Hf8PLQY9NuK xzK1ak8dsC1gjHdQu3BsKlUe61G2UF9bItdR0kmk= From: "jakub at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/108692] [11/12/13 Regression] Miscompilation of orc_test.c since r11-5160 Date: Tue, 07 Feb 2023 11:45:59 +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: wrong-code X-Bugzilla-Severity: normal X-Bugzilla-Who: jakub at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 11.4 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=3D108692 --- Comment #1 from Jakub Jelinek --- Before the r11-5160 change, the innermost loop was an unsigned char x 16 ->= int x 4 SAD_EXPR: [local count: 567644343]: # vect_var12_i_49.13_90 =3D PHI # ivtmp.57_149 =3D PHI vect_var32_32.16_95 =3D MEM [(const signed= char *)vectp.15_91 + ivtmp.57_149 * 1]; vect_var33_33.19_100 =3D MEM [(const signe= d char *)vectp.18_96 + ivtmp.57_149 * 1]; vect_var32.20_101 =3D VIEW_CONVERT_EXPR(vect_var32_32.16_95); vect_var33.21_102 =3D VIEW_CONVERT_EXPR(vect_var33_33.19_100); vect_patt_46.22_103 =3D SAD_EXPR ; ivtmp.57_150 =3D ivtmp.57_149 + 16; if (ivtmp.57_150 !=3D _166) goto ; [83.33%] else goto ; [16.67%] with vect_patt_46.22_103/vect_var12_i_49.13_90 type being vector(4) int. After the change it is signed char x 16 -> int x 4 SAD_EXPR instead: [local count: 567644343]: # vect_var12_i_49.13_99 =3D PHI # ivtmp.55_156 =3D PHI vect_var32_32.16_104 =3D MEM [(const signe= d char *)vectp.15_100 + ivtmp.55_156 * 1]; vect_var33_33.19_109 =3D MEM [(const signe= d char *)vectp.18_105 + ivtmp.55_156 * 1]; vect_patt_39.20_110 =3D SAD_EXPR ; ivtmp.55_157 =3D ivtmp.55_156 + 16; if (ivtmp.55_157 !=3D _173) goto ; [83.33%] else goto ; [16.67%]=