https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120995
Bug ID: 120995 Summary: [RISC-V] ICE: unrecognizable insn UNSPEC_COMPARE_AND_SWAP with rv64gc_zabha_zacas Product: gcc Version: 15.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: sch...@linux-m68k.org Target Milestone: --- Target: riscv*-*-* $ cat seeded_rng.i _Bool atomic_bool_cmpxchg_v_0; void atomic_bool_cmpxchg_old() { __sync_bool_compare_and_swap(&atomic_bool_cmpxchg_v_0, atomic_bool_cmpxchg_old, 0); } $ gcc/xgcc -B gcc/ -march=rv64gc_zabha_zacas -O2 -std=gnu11 -S seeded_rng.i seeded_rng.i: In function ‘atomic_bool_cmpxchg_old’: seeded_rng.i:5:1: error: unrecognizable insn: 5 | } | ^ (insn 7 6 8 2 (parallel [ (set (reg:QI 136) (mem/v:QI (lo_sum:DI (reg:DI 135) (symbol_ref:DI ("atomic_bool_cmpxchg_v_0") [flags 0x86] <var_decl 0x7f41a7bb9000 atomic_bool_cmpxchg_v_0>)) [-1 S1 A8])) (set (mem/v:QI (lo_sum:DI (reg:DI 135) (symbol_ref:DI ("atomic_bool_cmpxchg_v_0") [flags 0x86] <var_decl 0x7f41a7bb9000 atomic_bool_cmpxchg_v_0>)) [-1 S1 A8]) (unspec_volatile:QI [ (reg:QI 138) (const_int 0 [0]) (const_int 32773 [0x8005]) repeated x2 ] UNSPEC_COMPARE_AND_SWAP)) ]) "seeded_rng.i":3:3 -1 (nil)) during RTL pass: vregs seeded_rng.i:5:1: internal compiler error: in extract_insn, at recog.cc:2882