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

            Bug ID: 121027
           Summary: [14 Regression] ICE with BF16 and SVE at -O2
                    -msve-vector-bits=256
           Product: gcc
           Version: 14.3.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: acoplan at gcc dot gnu.org
  Target Milestone: ---

The following fails on the head of the 14 branch:

$ cat t.c
#include <arm_sve.h>
typedef svbfloat16_t vls_bfloat16_t __attribute__((arm_sve_vector_bits(32 *
8)));
svbfloat16_t foo(vls_bfloat16_t a, vls_bfloat16_t b)
{
  svbfloat16_t zero = svreinterpret_bf16_f32 (svdup_n_f32 (0.0f));
  return svzip2_bf16(zero, svuzp1_bf16(a,b));
}
$ /work/builds/gcc14/bin/gcc -O2 -march=armv8.2-a+sve+fp16
-msve-vector-bits=256 t.c -c -S -o /dev/null
t.c: In function ‘foo’:
t.c:7:1: error: unrecognizable insn:
    7 | }
      | ^
(insn 15 14 16 2 (set (reg:VNx8BF 103 [ _3 ])
        (unspec:VNx8BF [
                (reg:VNx8BF 109)
                (reg:VNx8BF 110)
            ] UNSPEC_IORF)) "t.c":6:10 -1
     (nil))
during RTL pass: vregs
t.c:7:1: internal compiler error: in extract_insn, at recog.cc:2812
0x71bb3f _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        /home/alecop01/toolchain/src/gcc-14/gcc/rtl-error.cc:108
0x71bb73 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        /home/alecop01/toolchain/src/gcc-14/gcc/rtl-error.cc:116
0xc8e1bb extract_insn(rtx_insn*)
        /home/alecop01/toolchain/src/gcc-14/gcc/recog.cc:2812
0x9e6917 instantiate_virtual_regs_in_insn
        /home/alecop01/toolchain/src/gcc-14/gcc/function.cc:1612
0x9e6917 instantiate_virtual_regs
        /home/alecop01/toolchain/src/gcc-14/gcc/function.cc:1995
0x9e6917 execute
        /home/alecop01/toolchain/src/gcc-14/gcc/function.cc:2042
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

but it doesn't fail with 13, 15, or trunk.  So we need to work out what fixed
it (and I suppose what introduced it, too).

Reply via email to