https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85918

            Bug ID: 85918
           Summary: Conversions to/from [unsigned] long long are not
                    vectorized for AVX512DQ target
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ubizjak at gmail dot com
  Target Milestone: ---
            Target: x86
            Target: x86
           Summary: Conversions to/from [unsigned] long long are not
                    vectorized for AVX512DQ target

These should all be vectorized with -O3 -mavx512dq:

--cut here--
#define N 1024

long long ll[N];
unsigned long long ull[N];

float f[N];
double d[N];

void ll2f (void)
{
  int i;

  for (i = 0; i < N; i++)
    f[i] = ll[i];
}

void ull2f (void)
{
  int i;

  for (i = 0; i < N; i++)
    f[i] = ull[i];
}

void ll2d (void)
{
  int i;

  for (i = 0; i < N; i++)
    d[i] = ll[i];
}

void ull2d (void)
{
  int i;

  for (i = 0; i < N; i++)
    d[i] = ull[i];
}

void f2ll (void)
{
  int i;

  for (i = 0; i < N; i++)
    ll[i] = f[i];
}

void f2ull (void)
{
  int i;

  for (i = 0; i < N; i++)
    ull[i] = f[i];
}

void d2ll (void)
{
  int i;

  for (i = 0; i < N; i++)
    ll[i] = d[i];
}

void d2ull (void)
{
  int i;

  for (i = 0; i < N; i++)
    ull[i] = d[i];
}
--cut here--

Currently, the compiles vectorizes only ll2d and d2ll.

Reply via email to