https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70923
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Status|UNCONFIRMED |NEW Last reconfirmed| |2016-05-03 Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- I think this is the x + x -> 2 * x canonicalization we now perform. That's bad when the target cannot vectorize integer multiplication. We have vect_recog_mult_pattern that should have triggered here but that only tries replacement with LSHIFT_EXPR rather than also a simple plus for 2 * x. Likely caused by 2016-04-26 Marc Glisse <marc.gli...@inria.fr> * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED. * fold-const.c (fold_binary_loc): Remove 2 transformations superseded by match.pd. * match.pd (x+x -> x*2): Generalize to integers.