https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121073
Bug ID: 121073
Summary: [16 Regression] RISC-V: ICE during RTL pass: avlprop
insn does not satisfy its constraints
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: ewlu at rivosinc dot com
Target Milestone: ---
Created attachment 61866
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61866&action=edit
freport-bug output
Testcase:
int a;
unsigned char p[1][21];
void init() {
for (int s = 0; s < 21; ++s)
for (int t = 0; t < 21; ++t)
p[s][t] = 39;
for (short t = 0; t < 9; t += -5077966496202321318LL + 28071)
a = p[3][t] && p[2][t];
}
Commands/backtrace
$
/scratch/ewlu/daily-upstream-build/build-gcv/bin/riscv64-unknown-linux-gnu-gcc
-I/scratch/ewlu/ci/compiler-fuzz-ci/csmith-build/include -fsigned-char
-fno-strict-aliasing -fwrapv -march=rv64gcv -O3 -mrvv-vector-bits=zvl red.c -o
rv64gcv.out -w -freport-bug
red.c: In function 'init':
red.c:9:1: error: insn does not satisfy its constraints:
9 | }
| ^
(insn 23 19 25 2 (set (reg:RVVMF4QI 155)
(if_then_else:RVVMF4QI (unspec:RVVMF32BI [
(reg:RVVMF32BI 136 [ mask__22.12 ])
(const_int 1 [0x1])
(const_int 2 [0x2]) repeated x2
(const_int 0 [0])
(reg:SI 66 vl)
(reg:SI 67 vtype)
] UNSPEC_VPREDICATE)
(vec_duplicate:RVVMF4QI (const_int 39 [0x27]))
(unspec:RVVMF4QI [
(reg:DI 0 zero)
] UNSPEC_VUNDEF))) "red.c":8:17 discrim 1 3993
{*pred_broadcastrvvmf4qi}
(nil))
during RTL pass: avlprop
red.c:9:1: internal compiler error: in extract_constrain_insn_cached, at
recog.cc:2795
0x2ea4806 internal_error(char const*, ...)
../../../gcc/gcc/diagnostic-global-context.cc:517
0xd29f8b fancy_abort(char const*, int, char const*)
../../../gcc/gcc/diagnostic.cc:1818
0xbb1efc _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
../../../gcc/gcc/rtl-error.cc:108
0xbb1f28 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
../../../gcc/gcc/rtl-error.cc:118
0xbb0902 extract_constrain_insn_cached(rtx_insn*)
../../../gcc/gcc/recog.cc:2795
0x1fcf635 get_attr_avl_type_idx(rtx_insn*)
../../../gcc/gcc/config/riscv/riscv.md:1497
0x19f0ff4 riscv_vector::vlmax_avl_type_p(rtx_insn*)
../../../gcc/gcc/config/riscv/riscv-v.cc:5715
0x1a12010 vlmax_ta_p
../../../gcc/gcc/config/riscv/riscv-avlprop.cc:150
0x1a12010 pass_avlprop::execute(function*)
../../../gcc/gcc/config/riscv/riscv-avlprop.cc:465
Please submit a full bug report, with preprocessed source.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Preprocessed source stored into /tmp/cci4OIfd.out file, please attach this to
your bugreport.
Godbolt: https://godbolt.org/z/KWPE8evjc
Found via fuzzer