https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93009
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2019-12-20 Component|regression |target Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org Target Milestone|--- |9.3 Summary|AVX512 FMA - wrong code |[9/10 Regression] AVX512 |generation |FMA - wrong code generation | |since r265288 Ever confirmed|0 |1 --- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Ah, now I see, reduced testcase for -O2 -mavx512vl, regressed with r265288: typedef double v2df __attribute__((vector_size (16))); __attribute__((noipa)) v2df foo (v2df x, v2df y, double *z) { return x * y + (v2df) { z[0], z[0] }; } __attribute__((noipa)) v2df bar (v2df x, v2df y, double *z) { return y * x + (v2df) { z[0], z[0] }; } int main () { double z = 5.0; v2df x = foo ((v2df) { 1.0, 2.0 }, (v2df) { 3.0, 4.0 }, &z); v2df y = bar ((v2df) { 6.0, 7.0 }, (v2df) { 8.0, 9.0 }, &z); if (x[0] != 8.0 || x[1] != 13.0 || y[0] != 53.0 || y[1] != 68.0) __builtin_abort (); return 0; }