https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60818
Arseny Solokha <asolokha at gmx dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to fail| |7.0
--- Comment #17 from Arseny Solokha <asolokha at gmx dot com> ---
(In reply to Arseny Solokha from comment #15)
> (In reply to Segher Boessenkool from comment #14)
> > I cannot get any of the testcases to fail with current trunk (but
> > they do fail with GCC 6). Combine always merges the compare into
> > the if_then_else pattern, and there are no such patterns in rs6000
> > (this could be done with a cmp+isel define_insn_and_split, and is
> > probably a good idea, but we do not have that currently).
>
> OK, I'll post another one or two the next week. This is still reproducible
> on the trunk, but the actual code pattern causing the ICE seems to be a
> moving target.
int no;
void
gn (int d3)
{
while (no != 0)
{
if ((no > d3) > (no < d3))
++no;
while (d3 != 0)
{
}
}
}
% powerpc-e300c3-linux-gnu-gcc-7.0.0-alpha20170326 -misel -Os -w -c qb3j6i03.c
qb3j6i03.c: In function 'gn':
qb3j6i03.c:15:1: internal compiler error: in validate_condition_mode, at
config/rs6000/rs6000.c:20752
}
^
0x2b53add47a3 validate_condition_mode(rtx_code, machine_mode)
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/config/rs6000/rs6000.c:20751
0x2b53b0171a7 branch_comparison_operator(rtx_def*, machine_mode)
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/config/rs6000/predicates.md:1243
0x2b53b01731b scc_rev_comparison_operator(rtx_def*, machine_mode)
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/config/rs6000/predicates.md:1300
0x2b53b0362d4 recog_10
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/config/rs6000/rs6000.md:344
0x2b53b0362d4 recog_11
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/config/rs6000/altivec.md:224
0x2b53b0362d4 recog_12
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/config/rs6000/rs6000.md:5090
0x2b53b0703e5 recog_137
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/config/rs6000/altivec.md:1760
0x2b53b09ff2b recog_for_combine_1
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/combine.c:11145
0x2b53b0a6aed recog_for_combine
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/combine.c:11401
0x2b53b0b2601 try_combine
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/combine.c:4033
0x2b53b0b8ea0 combine_instructions
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/combine.c:1372
0x2b53b0b8ea0 rest_of_handle_combine
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/combine.c:14650
0x2b53b0b8ea0 execute
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/combine.c:14695
The same for powerpc-e500v2-linux-gnuspe. As before, toggling -fPIC may be
necessary as well.