https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123584
Bug ID: 123584
Summary: [15/16 regression] armv8-a+sve2-sha3 ICE in
extract_insn, at recog.cc:2888 (vxarq_u64)
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: michael.crusoe at gmail dot com
Target Milestone: ---
Hello, I found this ICE while testing a recent snapshot of GCC trunk against
the SIMDe library using "march=armv8-a+sve2-sha3".
the exact version of GCC:
16.0.0 20251214 (experimental) [trunk r16-6108-g427ddf95eef] (Debian
16-20251214-1)
Reproducer using the Compiler Explorer, still has an ICE with its 20260104
snapshot: https://godbolt.org/z/nzhhzqz8c; along with GCC 15.1 & 15.2 (but not
with version 13.2 through 14.3)
the system type:
aarch64-linux-gnu
the options given when GCC was configured/built:
../src/configure -v --with-pkgversion='Debian 16-20251214-1'
--with-bugurl=file:///usr/share/doc/gcc-16/README.Bugs
--enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2,rust,cobol,algol68
--prefix=/usr --with-gcc-major-version-only --program-suffix=-16
--program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id
--libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix
--libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace
--enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support
--enable-plugin --enable-default-pie --with-system-zlib
--enable-libphobos-checking=release --with-target-system-zlib=auto
--enable-objc-gc=auto --enable-multiarch --enable-fix-cortex-a53-843419
--disable-werror
--enable-offload-targets=nvptx-none=/build/reproducible-path/gcc-16-16-20251214/debian/tmp-nvptx/usr
--enable-offload-defaulted --without-cuda-driver
--enable-checking=yes,extra,rtl --build=aarch64-linux-gnu
--host=aarch64-linux-gnu --target=aarch64-linux-gnu
--with-build-config=bootstrap-lto-lean --enable-link-serialization=4
the original complete command line that triggers the bug:
/usr/libexec/gcc/aarch64-linux-gnu/16/cc1 -quiet -I
test/arm/neon/xar-native-c.p -I test/arm/neon -I ../test/arm/neon -I . -I ..
-imultiarch aarch64-linux-gnu -MD test/arm/neon/xar-native-c.p/xar.c.d -MF
test/arm/neon/xar-native-c.p/xar.c.o.d -MQ test/arm/neon/xar-native-c.p/xar.c.o
-D _FILE_OFFSET_BITS=64 -D SIMDE_CONSTRAINED_COMPILATION -D SIMDE_ENABLE_OPENMP
-D SIMDE_TEST_BARE ../test/arm/neon/xar.c -mno-fix-cortex-a53-835769
-mno-fix-cortex-a53-843419 -quiet -dumpdir test/arm/neon/xar-native-c.p/
-dumpbase xar.c.c -dumpbase-ext .c -march=armv8-a+sve2-sha3 -mlittle-endian
-mabi=lp64 -g -Winvalid-pch -Wall -Wextra -Werror -std=c99
-fdiagnostics-color=always -fopenmp-simd -freport-bug
-fasynchronous-unwind-tables -o - -frandom-seed=0 -fdump-noaddr
the compiler output (error messages, warnings, etc.):
../test/arm/neon/xar.c: In function 'test_simde_vxarq_u64':
../test/arm/neon/xar.c:74:1: error: unrecognizable insn:
74 | }
| ^
(insn 453 452 457 139 (set (reg:V2DI 109 [ D.44270 ])
(rotate:V2DI (xor:V2DI (reg:V2DI 201)
(reg:V2DI 202))
(const_vector:V2DI [
(const_int 64 [0x40]) repeated x2
])))
"/usr/lib/gcc/aarch64-linux-gnu/16/include/arm_neon.h":26914:10 -1
(nil))
during RTL pass: vregs
../test/arm/neon/xar.c:74:1: internal compiler error: in extract_insn, at
recog.cc:2888
0x1199f5b internal_error(char const*, ...)
../../src/gcc/diagnostic-global-context.cc:787
0x119a03b fancy_abort(char const*, int, char const*)
../../src/gcc/diagnostics/context.cc:1805
0xa0de73 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
../../src/gcc/rtl-error.cc:108
0xa0e03b _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
../../src/gcc/rtl-error.cc:116
0x1895fc3 extract_insn(rtx_insn*)
../../src/gcc/recog.cc:2888
0x2268c47 instantiate_virtual_regs_in_insn
../../src/gcc/function.cc:1609
0x2268c47 instantiate_virtual_regs
../../src/gcc/function.cc:1985
0x2268c47 execute
../../src/gcc/function.cc:2032