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

Reply via email to