https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126133
Bug ID: 126133
Summary: [17 Regression] aarch64: ICE in in
expand_fn_using_insn, at internal-fn.cc:270
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Keywords: aarch64-sme, ice-on-invalid-code
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: ktkachov at gcc dot gnu.org
Target Milestone: ---
Target: aarch64
With the new Neon intrinsics framework this testcase ICEs:
#include <arm_neon.h>
static inline __attribute__((always_inline)) uint8x16_t
helper (uint8x16_t x) { return vcntq_u8 (x); }
uint8x16_t
foo (uint8x16_t x) [[arm::streaming]] { return helper (x); }
with -O2 -march=armv8-a+sme :
during RTL pass: expand
dump file: /app/output.c.274r.expand
In function 'helper',
inlined from 'foo' at <source>:8:48:
<source>:5:32: internal compiler error: in expand_fn_using_insn, at
internal-fn.cc:270
5 | helper (uint8x16_t x) { return vcntq_u8 (x); }
| ^~~~~~~~~~~~
/cefs/e5/e51e2e211947f3198749f09e_arm64_gcc-trunk-20260706/aarch64-unknown-linux-gnu/bin/../libexec/gcc/aarch64-unknown-linux-gnu/17.0.0/cc1
-quiet -iprefix
/cefs/e5/e51e2e211947f3198749f09e_arm64_gcc-trunk-20260706/aarch64-unknown-linux-gnu/bin/../lib/gcc/aarch64-unknown-linux-gnu/17.0.0/
-isysroot
/cefs/e5/e51e2e211947f3198749f09e_arm64_gcc-trunk-20260706/aarch64-unknown-linux-gnu/bin/../aarch64-unknown-linux-gnu/sysroot
<source> -quiet -dumpdir /app/ -dumpbase output.c -dumpbase-ext .c
-march=armv8-a+sme -mlittle-endian -mabi=lp64 -g -O2 -fdiagnostics-color=always
-fno-verbose-asm -fdump-tree-all-all-lineno -fdump-rtl-all-all-lineno
-fdump-ipa-all-all-lineno -o /app/output.s
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
See <https://gcc.gnu.org/bugs/> for instructions.
Compiler returned: 1
GCC 16 used to reject the code cleanly