https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105533
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|tree-optimization |middle-end Target| |x86_64-pc-linux-gnu Host|x86_64-pc-linux-gnu | --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- choose_mult_variant (machine_mode mode, HOST_WIDE_INT val, ... synth_mult (&alg2, val - 1, &limit, mode); But slsr should not be processing any of these IR I don't think. _7 = _4 * Inf; c$imag_8 = (long intD.8) _7; # VUSE <.MEM_16> i.1_9 = iD.1980; # RANGE [-2147483648, 2147483647] _10 = (long intD.8) i.1_9; c$real_23 = c$real_6 * _10; c$imag_24 = c$imag_8 * _10; Huh? This does not make sense at all. float _4; float _7; if (tree_fits_shwi_p (rhs2)) return mult_by_coeff_cost (tree_to_shwi (rhs2), lhs_mode, speed); But I don't see that even call that. bool tree_fits_shwi_p (const_tree t) { return (t != NULL_TREE && TREE_CODE (t) == INTEGER_CST && wi::fits_shwi_p (wi::to_widest (t))); }