https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102252
Bug ID: 102252 Summary: svbool_t with SVE can generate invalid assembly Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: gilles.gouaillardet at gmail dot com Target Milestone: --- Created attachment 51429 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51429&action=edit a simple reproducer Let's consider the attached test_svbool.cpp and compile it with SVE fixed 512 bits: $ g++ -march=armv8.2-a+sve -msve-vector-bits=512 -c test_svbool.cpp /tmp/cc38qRcE.s: Assembler messages: /tmp/cc38qRcE.s:44: Error: invalid addressing mode at operand 2 -- `ldr p0,[x0,x1,lsl 3]' The generated assembly is invalid and cannot be assembled. All branches that support SVE (10, 11 and 12) are affected. FWIW, the code compiles just fine with LLVM 12, 13 and main branches. This code is a trimmed version of an improvement for GROMACS.