https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123807
Bug ID: 123807
Summary: [16 Regression] loongarch64: ICE in emit_move_insn, at
expr.cc:4635
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: ---
$ loongarch64-linux-gnu-gcc-16 testcase.i
during RTL pass: expand
testcase.i: In function 'test_simde_mm512_mask_slli_epi64':
testcase.i:8:63: internal compiler error: in emit_move_insn, at expr.cc:4635
8 | test_simde_mm512_mask_slli_epi64_r_.u64 = __trans_tmp_1.u64 << imm8;
| ~~~~~~~~~~~~~~~~~~^~~~~~~
0x7f7845643ca7 __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7f7845643d64 __libc_start_main_impl
../csu/libc-start.c:360
No ICE on gcc 15.2.0 https://godbolt.org/z/Yqf4orPTd
(There is no GCC trunk for loongarch64 on Compiler Explorer, so I can
demonstrate the ICE there)
$ cat testcase.i
typedef long uint64_t;
typedef struct {
uint64_t u64 __attribute__((__vector_size__(16)));
} simde__m512i_private;
simde__m512i_private __trans_tmp_1, test_simde_mm512_mask_slli_epi64_r_;
void test_simde_mm512_mask_slli_epi64(int imm8) {
test_simde_mm512_mask_slli_epi64_r_.u64 = __trans_tmp_1.u64 << imm8;
}
$ loongarch64-linux-gnu-gcc-16 -v
Using built-in specs.
COLLECT_GCC=/usr/bin/loongarch64-linux-gnu-gcc-16
COLLECT_LTO_WRAPPER=/usr/libexec/gcc-cross/loongarch64-linux-gnu/16/lto-wrapper
Target: loongarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian
16-20260119-1~0crusoe-bpo14+2'
--with-bugurl=file:///usr/share/doc/gcc-16/README.Bugs
--enable-languages=c,ada,c++,d,fortran,objc,obj-c++,m2,algol68 --prefix=/usr
--with-gcc-major-version-only --program-suffix=-16 --enable-shared
--enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext
--enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/
--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 --without-target-system-zlib
--enable-multiarch --disable-werror --disable-multilib --enable-checking=yes
--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=loongarch64-linux-gnu
--program-prefix=loongarch64-linux-gnu-
--includedir=/usr/loongarch64-linux-gnu/include
--with-build-config=bootstrap-lto-lean --enable-link-serialization=2
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 16.0.1 20260119 (experimental) [trunk r16-6889-g3287a5c6174]
(Debian 16-20260119-1~0crusoe-bpo14+2)