https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80634
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Trunk gives: vect_cst__42 = {a_13(D), a_13(D), a_13(D), a_13(D)}; vect__4.7_41 = MEM <vector(4) float> [(float *)x_12(D)]; vect__7.11_46 = MEM <vector(4) float> [(float *)y_14(D)]; vect__8.12_47 = .FMA (vect__4.7_41, vect_cst__42, vect__7.11_46); MEM <vector(4) float> [(float *)y_14(D)] = vect__8.12_47; vect_cst__72 = {a_13(D), a_13(D)}; vect__10.19_71 = MEM <vector(2) float> [(float *)x_12(D) + 16B]; vect__33.23_77 = MEM <vector(2) float> [(float *)y_14(D) + 16B]; vect__34.24_78 = .FMA (vect__10.19_71, vect_cst__72, vect__33.23_77); MEM <vector(2) float> [(float *)y_14(D) + 16B] = vect__34.24_78; _59 = MEM[(float *)x_12(D) + 24B]; _62 = MEM[(float *)y_14(D) + 24B]; _63 = .FMA (a_13(D), _59, _62); MEM[(float *)y_14(D) + 24B] = _63; For the 7 case.