From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id DBB9D3858D37; Sun, 10 Dec 2023 19:46:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DBB9D3858D37 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1702237604; bh=BLvRIqDGw0sY72El9WopMOz4Sb5k0GWwRNO89BFEpa0=; h=From:To:Subject:Date:In-Reply-To:References:From; b=QHWVmbOArsmVlwYGlcCw3f0j+ODBBpgM1GoZGMzkg+S3/T1RQzC+UbpNErA3M029S IzkI0WpHAtv+rv1H6RZte2zRfNPx/KseIlmlGuNavskun0g4uDFJvoBUM2rIO4NKmt eVKGASXuWBgTNz8bh1Kn6s5ZquBTXe1X5ZaSutCM= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/112933] gcc.target/aarch64/sme2/acle-asm/read_za16_vg1x2.c fails on aarch64_be Date: Sun, 10 Dec 2023 19:46:43 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: missed-optimization, testsuite-fail X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: rsandifo 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=3D112933 --- Comment #2 from GCC Commits --- The trunk branch has been updated by Richard Sandiford : https://gcc.gnu.org/g:b3aed459634654d295a1d00e6c149565ced7a9a2 commit r14-6387-gb3aed459634654d295a1d00e6c149565ced7a9a2 Author: Richard Sandiford Date: Sun Dec 10 19:46:07 2023 +0000 aarch64: Fix invalid subregs for BE svread/write_za Multi-register svread_za and svwrite_za are implemented using one pattern per register count, with the register contents being bitcast on entry (for writes) or return (for reads). Previously we relied on subregs for this, with the subreg for reads being handled by target-independent code. But using subregs isn't correct for many big-endian cases, where following subreg rules often requires actual instructions. The semantics are instead supposed to be those of svreinterpret. gcc/ PR target/112931 PR target/112933 * config/aarch64/aarch64-protos.h (aarch64_sve_reinterpret): Declare. * config/aarch64/aarch64.cc (aarch64_sve_reinterpret): New function. * config/aarch64/aarch64-sve-builtins-sme.cc (svread_za_impl::expand) (svwrite_za_impl::expand): Use it to cast the SVE register to t= he right mode.=