https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98470

--- Comment #4 from jcmvbkbc at gcc dot gnu.org ---
I've noticed that this forward-propagation of the literal load followed by not
calling the secondary reload function happens when the first literal load
instruction has the following in its expression list:

(expr_list:REG_EQUIV (mem/u/c:SF (symbol_ref/u:SI ("*.LC0") [flags 0x2]) [0  S4
A32])

and it doesn't happen for instructions that have the following:

(expr_list:REG_EQUIV (const_double:SF 0.0 [0x0.0p+0])

This expression is present in this instruction up to the ce2 pass where it's
lost. Compiling with -fno-if-conversion preserves the expression and results in
the correct output.

Reply via email to