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.