From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 1A3543857C74; Wed, 7 Oct 2020 10:02:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1A3543857C74 From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug bootstrap/95582] [11 Regression] LTO lean + PGO bootstrap is broken in Ada Date: Wed, 07 Oct 2020 10:02:16 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: bootstrap X-Bugzilla-Version: 11.0 X-Bugzilla-Keywords: ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 11.0 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 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Oct 2020 10:02:17 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D95582 --- Comment #15 from Richard Biener --- The patch causes g++.dg/vect/simd-bool-comparison-1.cc to FAIL because it will result in signed BOOLEAN_TYPEs with precision 1 rejected. Those we use for build_nonstandard_boolean_type via #0 0x0000000001b93458 in build_truth_vector_type_for_mode (nunits=3D..., mask_mode=3DE_DImode) at /home/rguenther/src/gcc3/gcc/tree.c:10931 #1 0x0000000001b935a2 in build_truth_vector_type_for (vectype=3D) at /home/rguenther/src/gcc3/gcc/tree.c:10949 #2 0x0000000001b96175 in truth_type_for (type=3D) at /home/rguenther/src/gcc3/gcc/tree.c:11764 #3 0x0000000001ae92b6 in get_mask_type_for_scalar_type (vinfo=3D0x3beccd0, scalar_type=3D, group_size=3D0) at /home/rguenther/src/gcc3/gcc/tree-vect-stmts.c:11137 #4 0x00000000028cfaee in vect_recog_mask_conversion_pattern (vinfo=3D0x3be= ccd0, stmt_vinfo=3D0x3da6ae0, type_out=3D0x7fffffffc320) at /home/rguenther/src/gcc3/gcc/tree-vect-patterns.c:4354 which then causes the VECT_SCALAR_BOOLEAN_TYPE_P result to differ even for = C++ at #1 0x0000000001abfa11 in VECT_SCALAR_BOOLEAN_TYPE_P (TYPE=3D) at /home/rguenther/src/gcc3/gcc/tree-vectorizer.h:1425 #2 0x0000000001ae41c1 in vect_is_simple_cond (cond=3D, vinfo=3D0x3beccd0, stmt_info=3D0x3da7410, slp_node=3D0x0,=20 comp_vectype=3D0x7fffffffbbe0, dts=3D0x7fffffffbbb0, vectype=3D) at /home/rguenther/src/gcc3/gcc/tree-vect-stmts.c:9711 #3 0x0000000001ae49bf in vectorizable_condition (vinfo=3D0x3beccd0, stmt_info=3D0x3da7410, gsi=3D0x0, vec_stmt=3D0x0, slp_node=3D0x0, cost_vec=3D0x7fffffffc1b8) at /home/rguenther/src/gcc3/gcc/tree-vect-stmts.c:9876 now the Ada issue was about non-1 precision BOOLEAN_TYPE, so we could narrow down the fix. But then the question is why we allow signed 1-bit bools but not signed 1-bit integers... So I'm first re-testing #define VECT_SCALAR_BOOLEAN_TYPE_P(TYPE) \ - (TREE_CODE (TYPE) =3D=3D BOOLEAN_TYPE \ - || ((TREE_CODE (TYPE) =3D=3D INTEGER_TYPE \ - || TREE_CODE (TYPE) =3D=3D ENUMERAL_TYPE) \ - && TYPE_PRECISION (TYPE) =3D=3D 1 \ - && TYPE_UNSIGNED (TYPE))) + (INTEGRAL_TYPE_P (TYPE) \ + && TYPE_PRECISION (TYPE) =3D=3D 1)=