https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127652
Bug ID: 127652
Summary: [PRU] g++.dg/opt/mem-notrap-load-builtin.C is failing
with ICE
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: dimitar at gcc dot gnu.org
Target Milestone: ---
Test case g++.dg/opt/mem-notrap-load-builtin.C fails on pru-unknown-elf:
/home/dinux/projects/pru/testbot-workspace/gcc/gcc/testsuite/g++.dg/opt/mem-notrap-load-builtin.C:
In member function 'int blocks::compare() const':
/home/dinux/projects/pru/testbot-workspace/gcc/gcc/testsuite/g++.dg/opt/mem-notrap-load-builtin.C:18:27:
internal compiler error: in decompose, at rtl.h:2345
0x25a5d7f internal_error(char const*, ...)
/home/dinux/projects/pru/testbot-workspace/gcc/gcc/diagnostic-global-context.cc:787
0x878957 fancy_abort(char const*, int, char const*)
/home/dinux/projects/pru/testbot-workspace/gcc/gcc/diagnostics/context.cc:1813
0xe482cb wi::int_traits<std::pair<rtx_def*, machine_mode> >::decompose(long*,
unsigned int, std::pair<rtx_def*, machine_mode> const&)
/home/dinux/projects/pru/testbot-workspace/gcc/gcc/rtl.h:2345
0xe482cb wide_int_ref_storage<false,
false>::wide_int_ref_storage<std::pair<rtx_def*, machine_mode>
>(std::pair<rtx_def*, machine_mode> const&)
/home/dinux/projects/pru/testbot-workspace/gcc/gcc/wide-int.h:1089
0xe482cb generic_wide_int<wide_int_ref_storage<false, false>
>::generic_wide_int<std::pair<rtx_def*, machine_mode> >(std::pair<rtx_def*,
machine_mode> const&)
/home/dinux/projects/pru/testbot-workspace/gcc/gcc/wide-int.h:847
0xe482cb wide_int_storage::wide_int_storage<std::pair<rtx_def*, machine_mode>
>(std::pair<rtx_def*, machine_mode> const&)
/home/dinux/projects/pru/testbot-workspace/gcc/gcc/wide-int.h:1189
0xe4244f
generic_wide_int<wide_int_storage>::generic_wide_int<std::pair<rtx_def*,
machine_mode> >(std::pair<rtx_def*, machine_mode> const&)
/home/dinux/projects/pru/testbot-workspace/gcc/gcc/wide-int.h:847
0xe4244f canonicalize_comparison(machine_mode, rtx_code*, rtx_def**)
/home/dinux/projects/pru/testbot-workspace/gcc/gcc/expmed.cc:6548
0x11af8e0 prepare_cmp_insn
/home/dinux/projects/pru/testbot-workspace/gcc/gcc/optabs.cc:4624
This statement in function emit_block_cmp_via_loop is problematic for pru
because word_mode=QImode:
iter_mode = word_mode;
At the same time iter_limit is (const_int 16384 [0x4000]).