https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116035
Bug ID: 116035 Summary: [14/15] RISC-V: -march=rv64g_xtheadmemidx_zba generates illegal lwu insn Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: patrick at rivosinc dot com Target Milestone: --- Testcase: void a(long); unsigned b[11]; void c() { for (int d = 0; d < 11; ++d) a(b[d]); } Generated asm: c: addi sp,sp,-32 sd s0,16(sp) lui s0,%hi(.LANCHOR0) addi s0,s0,%lo(.LANCHOR0) sd s1,8(sp) sd ra,24(sp) addi s1,s0,44 .L2: lwu a0,(s0),4,0 call a bne s0,s1,.L2 ld ra,24(sp) ld s0,16(sp) ld s1,8(sp) addi sp,sp,32 jr ra b: .zero 44 Command/backtrace: > /scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/bin/riscv64-unknown-linux-gnu-gcc > -march=rv64g_xtheadmemidx_zba -mabi=lp64d -mabi=lp64d driver.c -c -O3 /scratch/tmp/ccJK0u5H.s: Assembler messages: /scratch/tmp/ccJK0u5H.s:25: Error: illegal operands `lwu a0,(s0),4,0' Godbolt: https://godbolt.org/z/874e85n9r Without xtheadmemidx: https://godbolt.org/z/4Eo4Wf6h3 Found via fuzzer. Very likely related to: pr116033