https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122124
Bug ID: 122124
Summary: [Trunk] RISC-V rv64gcv: miscompile at -O0
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: xxs_chy at outlook dot com
Target Milestone: ---
Testcase:
#include <stdint.h>
#include <stdio.h>
#define BS_VEC(type, num) type __attribute__((vector_size(num * sizeof(type))))
uint16_t func_24() {
BS_VEC(uint8_t, 2)
BS_VAR_1 = __builtin_shufflevector(
(BS_VEC(uint8_t, 4))5,
__builtin_convertvector((BS_VEC(int32_t, 4)){}, BS_VEC(uint8_t, 4)), 5,
0);
return BS_VAR_1[1];
}
int main() {
printf("%u\n", func_24());
}
Commands:
> riscv64-unknown-linux-gnu-gcc -march=rv64gcv -O0 -static a.c && qemu-riscv64
> a.out
> 0
> riscv64-unknown-linux-gnu-gcc -march=rv64gcv -O1/O2/O3 -static a.c &&
> qemu-riscv64 a.out
> 5
> riscv64-unknown-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=riscv64-unknown-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/opt/riscv64/bin/../libexec/gcc/riscv64-unknown-linux-gnu/16.0.0/lto-wrapper
Target: riscv64-unknown-linux-gnu
Configured with:
/home/shareduser/XChy/Projects/crosstool-ng/.build/riscv64-unknown-linux-gnu/src/gcc/configure
--build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu
--target=riscv64-unknown-linux-gnu
--prefix=/home/shareduser/x-tools/riscv64-unknown-linux-gnu
--exec_prefix=/home/shareduser/x-tools/riscv64-unknown-linux-gnu
--with-sysroot=/home/shareduser/x-tools/riscv64-unknown-linux-gnu/riscv64-unknown-linux-gnu/sysroot
--enable-languages=c,c++ --with-arch=rv64gc --with-pkgversion='crosstool-NG
1.28.0_rc1' --enable-__cxa_atexit --disable-libmudflap --disable-libgomp
--disable-libssp --disable-libquadmath --disable-libquadmath-support
--disable-libsanitizer --disable-libmpx
--with-gmp=/home/shareduser/XChy/Projects/crosstool-ng/.build/riscv64-unknown-linux-gnu/buildtools
--with-mpfr=/home/shareduser/XChy/Projects/crosstool-ng/.build/riscv64-unknown-linux-gnu/buildtools
--with-mpc=/home/shareduser/XChy/Projects/crosstool-ng/.build/riscv64-unknown-linux-gnu/buildtools
--with-isl=/home/shareduser/XChy/Projects/crosstool-ng/.build/riscv64-unknown-linux-gnu/buildtools
--enable-lto --enable-threads=posix --enable-target-optspace --disable-plugin
--disable-nls --disable-multilib
--with-local-prefix=/home/shareduser/x-tools/riscv64-unknown-linux-gnu/riscv64-unknown-linux-gnu/sysroot
--enable-long-long
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 16.0.0 20250926 (experimental) (crosstool-NG 1.28.0_rc1)