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

Reply via email to