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