https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106910
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |enhancement Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Keywords| |missed-optimization Last reconfirmed| |2022-09-12 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- On x86_64: /app/example.cpp:19:35: missed: function is not vectorizable. /opt/compiler-explorer/gcc-trunk-20220912/include/c++/13.0.0/cmath:261:28: missed: not vectorized: relevant stmt not supported: _9 = __builtin_floorf (_1); While on aarch64, GCC can handle the SLP just fine: vect__1.7_12 = MEM <const vector(2) float> [(float *)r_4(D)]; vect__9.8_13 = .FLOOR (vect__1.7_12); vect__10.9_14 = (vector(2) int) vect__9.8_13; MEM <vector(2) int> [(int *)&D.25164] = vect__10.9_14; So this is a target backend improvement that is needed.