https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112971
Bug ID: 112971 Summary: [14] RISC-V rv64gcv_zvl256b vector -O3: internal compiler error: Segmentation fault signal terminated program cc1 Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: patrick at rivosinc dot com Target Milestone: --- > /scratch/tc-testing/tc-dec-11-trunk/build-rv64gcv/bin/riscv64-unknown-linux-gnu-gcc > -march=rv64gcv_zvl256b -mabi=lp64d -O3 red.c -S riscv64-unknown-linux-gnu-gcc: internal compiler error: Segmentation fault signal terminated program cc1 Please submit a full bug report, with preprocessed source (by using -freport-bug). See <https://gcc.gnu.org/bugs/> for instructions. Testcase: int a; short b[9]; char c, d; void e() { d = 0; for (;; d++) { if (b[d]) break; a = 8; for (; a >= 0; a--) { char *f = &c; *f &= d == (a & d); } } } -freport bug doesn't seem to be working, so here's the GCC -v output: > /scratch/tc-testing/tc-dec-11-trunk/build-rv64gcv/bin/riscv64-unknown-linux-gnu-gcc > -v Using built-in specs. COLLECT_GCC=/scratch/tc-testing/tc-dec-11-trunk/build-rv64gcv/bin/riscv64-unknown-linux-gnu-gcc COLLECT_LTO_WRAPPER=/scratch/tc-testing/tc-dec-11-trunk/build-rv64gcv/libexec/gcc/riscv64-unknown-linux-gnu/14.0.0/lto-wrapper Target: riscv64-unknown-linux-gnu Configured with: /scratch/tc-testing/tc-dec-11-trunk/build-rv64gcv/../gcc/configure --target=riscv64-unknown-linux-gnu --prefix=/scratch/tc-testing/tc-dec-11-trunk/build-rv64gcv --with-sysroot=/scratch/tc-testing/tc-dec-11-trunk/build-rv64gcv/sysroot --with-pkgversion=geea25179d8d --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++,fortran --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libsanitizer --disable-nls --disable-bootstrap --src=../../gcc --enable-multilib --with-abi=lp64d --with-arch=rv64imafdc --with-tune=rocket --with-isa-spec=20191213 'CFLAGS_FOR_TARGET=-O2 -mcmodel=medlow' 'CXXFLAGS_FOR_TARGET=-O2 -mcmodel=medlow' Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 14.0.0 20231211 (experimental) (geea25179d8d) The issue goes away if I use --param=riscv-autovec-preference=fixed-vlmax. Godbolt: https://godbolt.org/z/4ovbT6d77