https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109230
--- Comment #8 from Martin Liška <marxin at gcc dot gnu.org> --- Where I see the following change in optimized dump: float _423; float _424; float _425; + vector(4) float _442; + vector(2) double _443; void * _742; unsigned int _743; const struct kiss_fft_state * _744; @@ -383,6 +385,7 @@ long unsigned int _914; unsigned long _919; void * _927; + vector(2) double _930; struct kiss_fft_cpx * _935; sizetype _936; unsigned long _941; @@ -530,13 +533,14 @@ _89 = _88 * 7.07106769084930419921875e-1; _866 = {_76, _75, _86, _89}; _868 = {_74, _78, _86, _89}; - vect__93.89_859 = vect__56.86_870 - _866; vect__93.89_858 = vect_t_r_54.81_878 - _867; vect__93.89_857 = vect__56.87_869 - _868; vect__60.88_864 = _865 + vect__56.85_871; - vect__60.88_863 = _866 + vect__56.86_870; vect__60.88_861 = _868 + vect__56.87_869; - _855 = VEC_PERM_EXPR <vect__60.88_863, vect__93.89_859, { 0, 5, 2, 3 }>; + _930 = VIEW_CONVERT_EXPR<vector(2) double>(_866); + _443 = -_930; + _442 = VIEW_CONVERT_EXPR<vector(4) float>(_443); + _855 = _442 + vect__56.86_870; _853 = VEC_PERM_EXPR <vect__93.89_857, vect__60.88_861, { 0, 5, 2, 3 }>; MEM <vector(4) float> [(float *)Fout_512] = vect__60.88_864; MEM <vector(4) float> [(float *)Fout_512 + 16B] = _855;