https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117483
Bug ID: 117483 Summary: [15 Regression] ICE: in merge, at config/riscv/riscv-vsetvl.cc:2106 Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: patrick at rivosinc dot com Target Milestone: --- Testcase: char a, b, f; short c, h; int d[5]; int e; long *g; short (*i)[4]; int main() { e = 906784; char *j = &f; short *k = &h; for (short l = 0; l < 23; l += 740314495218734 - 29738) for (unsigned char m = ~!g[l] - 255; m < 24; m += 3) { a = k[m]; b += j[1] ?: d[6]; c ^= i[010][l]; } } Command/backtrace: > /scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/bin/riscv64-unknown-linux-gnu-gcc > -fsigned-char -fno-strict-aliasing -fwrapv -march=rv64gcv_zvl256b -O3 red.c > -o rv64gcv.out during RTL pass: vsetvl red.c: In function 'main': red.c:17:1: internal compiler error: in merge, at config/riscv/riscv-vsetvl.cc:2106 17 | } | ^ 0x2f0de35 internal_error(char const*, ...) ../../../gcc/gcc/diagnostic-global-context.cc:518 0xc69f90 fancy_abort(char const*, int, char const*) ../../../gcc/gcc/diagnostic.cc:1696 0xb9e239 demand_system::merge(vsetvl_info&, vsetvl_info const&) ../../../gcc/gcc/config/riscv/riscv-vsetvl.cc:2106 0xb9e239 pre_vsetvl::earliest_fuse_vsetvl_info(int) ../../../gcc/gcc/config/riscv/riscv-vsetvl.cc:2983 0x18ba5f4 pass_vsetvl::lazy_vsetvl() ../../../gcc/gcc/config/riscv/riscv-vsetvl.cc:3558 0x18ba96a pass_vsetvl::execute(function*) ../../../gcc/gcc/config/riscv/riscv-vsetvl.cc:3605 0x18ba96a pass_vsetvl::execute(function*) ../../../gcc/gcc/config/riscv/riscv-vsetvl.cc:3588 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. Godbolt: https://godbolt.org/z/q9PsvhMxP