https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113033

            Bug ID: 113033
           Summary: GCC 14 (20231203 snapshot) ICE when building LSX
                    vector rotate code on LoongArch
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: c at jia dot je
  Target Milestone: ---

Source code:

```
#include <lsxintrin.h>

v2u64 test(v2u64 a, int imm) {
  return (a << (imm & 63)) | (a >> (64 - (imm & 63)));
}

```

Command line to reproduce:

```
gcc-14 -mlsx -c test.c
```

Error message:

```
test.c: In function ‘test’:
test.c:5:1: error: unrecognizable insn:
    5 | }
      | ^
(insn 16 15 17 2 (set (reg:DI 92)
        (and:DI (neg:DI (reg:DI 80 [ _1 ]))
            (const_int 63 [0x3f]))) "test.c":4:28 -1
     (nil))
during RTL pass: vregs
test.c:5:1: internal compiler error: in extract_insn, at recog.cc:2804
0x5555591d419f internal_error(char const*, ...)
        ???:0
0x5555577b4d87 fancy_abort(char const*, int, char const*)
        ???:0
0x5555577998bb _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ???:0
0x5555577998ef _fatal_insn_not_found(rtx_def const*, char const*, int, char
const*)
        ???:0
0x5555580704f7 extract_insn(rtx_insn*)
        ???:0
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://bugs.gentoo.org/> for instructions.
```

Reply via email to