This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ICE on valid code, cse related
"Pranav Bhandarkar" <pranav.bhandarkar@gmail.com> writes:
> Note the REG_EQUAL note of insn 17. cse tries to replace reg:SI 138
> with a constant and because of insn 13, the note becomes (float:SF
> (const_int 0)) which in turn cse converts into
>
> REG_EQUAL (const_double:SF 0 [0x0] 0.0 [0x0.0p+0])
That seems OK at first glance.
> and when CONST_DOUBLE_LOW is done on the above, the compiler crashes -
>
> " internal compiler error: RTL check: expected code 'const_double' and
> mode 'VOID', have code 'const_double' and mode 'SF' in plus_constant,
> at explow.c:103"
>
> i.e the compiler is crashing after converting a const_int to an SFmode value.
Who is calling CONST_DOUBLE_LOW on this value?
Ian