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;
}

Reply via email to