https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117801
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|ra | Component|target |middle-end --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Trunk: vect__79.41_96 = .FMA (vect__ifc__144.33_89, vect_pretmp_54.10_137, vect__ifc__147.37_21); MEM <vector(4) float> [(float *)&c + ivtmp.48_31 * 1] = vect__ifc__144.33_89; MEM <vector(4) float> [(float *)&b + ivtmp.48_31 * 1] = vect__ifc__147.37_21; MEM <vector(4) float> [(float *)&a + ivtmp.48_31 * 1] = vect__79.41_96; GCC 14: MEM <vector(4) float> [(float *)&c + ivtmp.48_31 * 1] = vect__ifc__144.33_45; _3 = -vect__ifc__141.28_26; vect__71.36_92 = .FMA (vect_pretmp_55.16_69, vect_pretmp_54.13_140, _3); vect__ifc__147.37_93 = .VCOND_MASK (mask__100.31_89, vect__ifc__141.28_26, vect__71.36_92); MEM <vector(4) float> [(float *)&b + ivtmp.48_31 * 1] = vect__ifc__147.37_93; vect__79.41_5 = .FMA (vect__ifc__144.33_45, vect_pretmp_54.13_140, vect__ifc__147.37_93); MEM <vector(4) float> [(float *)&a + ivtmp.48_31 * 1] = vect__79.41_5; So yes it is a scheduling issue because FMA is destructive.