https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87319
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|middle-end |tree-optimization --- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Really this reduces down to just (now): void test1(const int* a, const int* b, const int* c, int* d) { *d = *a * *c + *b * *c; } ----- CUT --- We don't reassociate to just: *d = (*a +* b) * *c; For signed types (including signed vector types).