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.