From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 1F510382E687; Fri, 10 Feb 2023 17:45:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1F510382E687 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1676051114; bh=z6qzRTNEZ6Xd9C7DvpzdzRL6aMmczLcPsxGbHd2P/WU=; h=From:To:Subject:Date:In-Reply-To:References:From; b=QDbhqAayCsPJGVhIyzRUb9w4yCnPxXmyNgZavTcfsvjxnG9I2K+NzNvtOrtJzIHeh xR++b24ox/t1orViXCHa7NL86hBsy0mvi4YzCt9KtdDzBjw9xzFER6h5wMQqSu/OBU Hx4u6O6seRVrgRGQVFWJFY4UvR5y0BG+ErseQI0E= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/108264] [11/12 Regression] ICE compiling guacamole-server on s390x-linux Date: Fri, 10 Feb 2023 17:45:13 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: middle-end X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: jakub 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=3D108264 --- Comment #5 from CVS Commits --- The releases/gcc-12 branch has been updated by Jakub Jelinek : https://gcc.gnu.org/g:ee25e54233c6a1548eda06aa9a11f09cd7eb32ac commit r12-9135-gee25e54233c6a1548eda06aa9a11f09cd7eb32ac Author: Jakub Jelinek Date: Tue Jan 3 12:13:24 2023 +0100 expr: Fix up store_expr into SUBREG_PROMOTED_* target [PR108264] The following testcase ICEs on s390x-linux (e.g. with -march=3Dz13). The problem is that target is (subreg/s/u:SI (reg/v:DI 66 [ x+-4 ]) 4) and we call convert_move from temp to the SUBREG_REG of that, expecting to extend the value properly. That works nicely if temp has some scalar integer mode (or partial one), but ICEs when temp has V4QImode on the assertion that from and to modes have the same bitsize. store_expr generally allows say store from V4QI to SI target because they have the same size and if temp is a CONST_INT, we already have code to convert the constant properly, so the following patch just adds hand= ling of non-scalar integer modes by converting them to the mode of target first before convert_move extends them. 2023-01-03 Jakub Jelinek PR middle-end/108264 * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targe= ts from source which doesn't have scalar integral mode first conve= rt it to outer_mode. * gcc.dg/pr108264.c: New test. (cherry picked from commit 226a498733e7919de72eb6f1bf3e16883ad159f6)=