https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112872
Bug ID: 112872 Summary: [14 Regression] RISCV ICE: in store_integral_bit_field, at expmed.cc:1049 with -03 rv64gcv_zvl1024b 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: --- Created attachment 56809 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=56809&action=edit -freport-bug output Output: > /scratch/tc-testing/tc-dec-4-trunk/build-rv64gcv/bin/riscv64-unknown-linux-gnu-gcc > -marc red.c: In function 'e': red.c:4:6: internal compiler error: in store_integral_bit_field, at expmed.cc:1049 4 | void e() { | ^ 0x9b17de store_integral_bit_field ../../../gcc/gcc/expmed.cc:1049 0x9b17de store_bit_field_1 ../../../gcc/gcc/expmed.cc:884 0xe4c83d store_bit_field(rtx_def*, poly_int<2u, unsigned long>, poly_int<2u, unsigned long>, poly_int<2u, unsigned long>, poly_int<2u, unsigned long>, machine_mode, rtx_def*, bool, bool) ../../../gcc/gcc/expmed.cc:1193 0xe783e8 store_field ../../../gcc/gcc/expr.cc:8231 0xe768ba store_constructor(tree_node*, rtx_def*, int, poly_int<2u, long>, bool) ../../../gcc/gcc/expr.cc:7986 0xe791e8 expand_constructor ../../../gcc/gcc/expr.cc:9329 0xe641f8 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../../gcc/gcc/expr.cc:11605 0xe649a9 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../../gcc/gcc/expr.cc:11220 0xf99ff2 expand_normal(tree_node*) ../../../gcc/gcc/expr.h:319 0xf99ff2 expand_vec_cond_mask_optab_fn ../../../gcc/gcc/internal-fn.cc:3116 0xf99ff2 expand_VCOND_MASK ../../../gcc/gcc/internal-fn.def:235 0xd2cd07 expand_call_stmt ../../../gcc/gcc/cfgexpand.cc:2738 0xd2cd07 expand_gimple_stmt_1 ../../../gcc/gcc/cfgexpand.cc:3881 0xd2cd07 expand_gimple_stmt ../../../gcc/gcc/cfgexpand.cc:4045 0xd31ca0 expand_gimple_basic_block ../../../gcc/gcc/cfgexpand.cc:6101 0xd33c36 execute ../../../gcc/gcc/cfgexpand.cc:6836 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. Testcase: int a, c; char b; short d; void e() { for (; d; d++) { for (; c;) ; b = 3; for (; b; b = 0) if (a) break; } } Looks similar to pr112854, but on rv64gcv_zvl1024b. Godbolt: https://godbolt.org/z/dvad6njP4