From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 441E03858C51; Tue, 3 May 2022 11:31:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 441E03858C51 From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/105463] [12/13 Regression] MVE: Wrong code, incorrect alignment assumption Date: Tue, 03 May 2022 11:31:58 +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: 12.0 X-Bugzilla-Keywords: wrong-code X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org 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: 12.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: target_milestone 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: Tue, 03 May 2022 11:31:58 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D105463 Richard Biener changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |12.0 --- Comment #1 from Richard Biener --- We vectorize correctly using a 1-byte aligned load: void __GIMPLE (ssa,guessed_local(1073741824)) bar (const unsigned char * block) { vector(4) unsigned int vect__3.5; unsigned int buf[4]; __BB(2,guessed_local(1073741824)): vect__3.5_14 =3D __MEM ((char * {ref-all})block_2(D)); __MEM ((char * {ref-all})&buf) =3D vect__3.5_14; foo (&buf); buf =3D{v} _Literal (unsigned int[4]) {CLOBBER(eol)}; return; and expand to (insn 9 8 10 (set (reg:V4SI 118 [ vect__3.5 ]) (unspec:V4SI [ (mem:V4SI (reg/v/f:SI 114 [ block ]) [0 MEM [(char * {ref-all})block_2(D)]+0 S16 A8]) ] UNSPEC_MISALIGNED_ACCESS)) "t.c":5:3 -1 (nil)) which also looks OK. 'buf' is appropriately aligned: (insn 10 9 0 (set (mem/c:V4SI (reg/f:SI 117) [0 MEM [(char * {ref-all})&buf]+0 S16 A64]) (reg:V4SI 118 [ vect__3.5 ])) "t.c":5:3 -1 and it's OK till the very end: (insn 9 12 10 2 (set (reg:V4SI 28 s12 [orig:118 vect__3.5 ] [118]) (unspec:V4SI [ (mem:V4SI (reg:SI 3 r3 [120]) [0 MEM [(char * {ref-all})block_2(D)]+0 S16 A8]) ] UNSPEC_MISALIGNED_ACCESS)) "t.c":5:3 4951 {*movmisalignv4si_mve_load} (expr_list:REG_DEAD (reg:SI 3 r3 [120]) (nil))) so it's a bug in the machine description somehow.=