From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 386E13858CDB; Wed, 8 Nov 2023 12:41:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 386E13858CDB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1699447270; bh=7kbiVCa49qiAqiajoqoJ2UDWtg/tCWlElo/Iug4hY9I=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Z766nOSaPcI7T3nrL4YaRdSmpCj/b7FcIrbfgmqmUERwOJEvG2ikzu41uM/j3e5+J 709UXEn5L6GH0EYnmmWu9yDcbDPNR8/AlZEAfQ4YQj86qPU9hDmIJWF4yOjm0PIUFj AakzN3x08BwbNR73jMFr1QmpSi50cQoaurVkyc68= From: "vmakarov at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/112337] arm: ICE in arm_effective_regno when compiling for MVE Date: Wed, 08 Nov 2023 12:41:08 +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: ice-on-valid-code, ra X-Bugzilla-Severity: normal X-Bugzilla-Who: vmakarov at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc 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=3D112337 Vladimir Makarov changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |vmakarov at gcc dot gnu.org --- Comment #7 from Vladimir Makarov --- (In reply to Alex Coplan from comment #6) > Confirmed. Here's a slightly cleaned up reproducer that doesn't warn: >=20 > #pragma GCC arm "arm_mve_types.h" > int32x4_t h(void *p) { return __builtin_mve_vldrwq_sv4si(p); } > void g(int32x4_t); > void f(int, int, int, short, int *p) { > int *bias =3D p; > for (;;) { > int32x4_t d =3D h(bias); > bias +=3D 4; > g(d); > } > } >=20 > ICEs with -O2 -march=3Darmv8.1-m.main+mve -mfloat-abi=3Dhard on the trunk. Looking at the dump, I can guess INC/DEC operand is not a reg after IRA temporary transformation. It can be fixed in arm.cc by checking that the operand is reg instead of using the assert but it could be wrong because the documentation says the operand should be a reg. Also such solution would n= ot work for possible problem on other targets. Could you provide me preprocessed test file. I'll try to find a solution as soon as possible.=