https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107714
Bug ID: 107714
Summary: MVE: Invalid addressing mode generated for VLD2
Product: gcc
Version: 12.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: kevin.bracey at alifsemi dot com
Target Milestone: ---
Created attachment 53909
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53909&action=edit
Stripped-down reproducer source
While I was working on some Helium intrinsics, GCC produced some invalid code,
meaning my optimisation can only be enabled in our armclang builds. Problem
seems to be still present on GCC trunk.
Posted at https://godbolt.org/z/h3EhMvxao
Compilation options -O2 -mcpu=cortex-m55 -mfloat-abi=hard
Error: instruction does not accept this addressing mode -- `vld21.8
{q4,q5},[r3],r2'
Compiler Explorer output for trunk shows the same invalid addressing mode.
(It also shows non-existent registers q8 and up in use - I don't know why. Not
a problem in my local GCC, obtained from Arm's embedded distribution).