https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125105
Drea Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |pinskia at gcc dot gnu.org
--- Comment #2 from Drea Pinski <pinskia at gcc dot gnu.org> ---
When cdce runs the correct information is on the ssa names:
# RANGE [frange] double [-0.0 (-0x0.0p+0),
1.79769313486231570814527423731704356798070567525844996599e+308
(0x0.fffffffffffff8p+1024)]
# norm_20 = PHI <norm_10(4)>
DCE_COND_LB.9_21 = norm_20;
DCE_COND_LB_TEST.10_22 = DCE_COND_LB.9_21 >= 0.0;
But then copyprop removes it.
This looks to be the LCSSA form being removed which VRP attached the assumption
to and copyprop decides to remove that form as we no longer in LCSSA form (it
was only done during VRP1 temporary).
I wonder if this will show up in other places too.
In euclidean_norm, the assume is kept until VRP2 which is able to remove the
check.