https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125654
--- Comment #2 from Drea Pinski <pinskia at gcc dot gnu.org> ---
The difference is:
broken:
```
vect_uCenter_15.5_27 = _26 * { 5.0e-1, 5.0e-1, 5.0e-1, 5.0e-1 };
_28 = VEC_PERM_EXPR <vect_uCenter_15.5_27, vect_uCenter_15.5_27, { 1, 0, 3, 2
}>;
vect__25.6_29 = .VEC_FMADDSUB (vect_uCenter_15.5_27, vect_uCenter_15.5_27,
_28);
```
vs working:
```
vect_uCenter_15.5_27 = _26 * { 5.0e-1, 5.0e-1, 5.0e-1, 5.0e-1 };
_29 = VEC_PERM_EXPR <vect_uCenter_15.5_27, vect_uCenter_15.5_27, { 1, 0, 3, 2
}>;
vect__25.6_30 = .VEC_ADDSUB (vect_uCenter_15.5_27, _29);
```
That is the broken is `_27*_27+-_28` vs `_27+-_29` (_28/_29 are the same).