https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100757
Bug ID: 100757 Summary: arm: ICE (unrecognizable insn) with MVE VPSELQ_S Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: acoplan at gcc dot gnu.org Target Milestone: --- This appears to be a recent regression on the trunk: $ gcc/xgcc -v Using built-in specs. COLLECT_GCC=gcc/xgcc Target: arm-eabi Configured with: /home/alecop01/toolchain/src/gcc/configure --prefix=/data_sdb/toolchain/cc1s/arm --enable-languages=c,c++ --disable-bootstrap --target=arm-eabi Thread model: single Supported LTO compression algorithms: zlib gcc version 12.0.0 20210525 (experimental) (GCC) $ cat test.c extern int a[]; int n; void foo(int x, _Bool b) { for (int i = 0; i < n; i++) a[i] = x || b; } $ gcc/xgcc -B gcc -c test.c -march=armv8.1-m.main+mve -mfloat-abi=hard -O -ftree-vectorize -mtune=cortex-a55 test.c: In function ‘foo’: test.c:6:1: error: unrecognizable insn: 6 | } | ^ (insn 44 43 45 6 (set (reg:V4SI 131 [ vect_patt_4.10 ]) (unspec:V4SI [ (reg:V4SI 149) (reg:V4SI 150) (reg:V4SI 148 [ mask__2.9 ]) ] VPSELQ_S)) -1 (nil)) during RTL pass: vregs test.c:6:1: internal compiler error: in extract_insn, at recog.c:2770 0x5e9fc6 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /home/alecop01/toolchain/src/gcc/gcc/rtl-error.c:108 0x5e9fe5 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) /home/alecop01/toolchain/src/gcc/gcc/rtl-error.c:116 0xc770c7 extract_insn(rtx_insn*) /home/alecop01/toolchain/src/gcc/gcc/recog.c:2770 0x9aa78a instantiate_virtual_regs_in_insn /home/alecop01/toolchain/src/gcc/gcc/function.c:1609 0x9aa78a instantiate_virtual_regs /home/alecop01/toolchain/src/gcc/gcc/function.c:1983 0x9aa78a execute /home/alecop01/toolchain/src/gcc/gcc/function.c:2032 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.