https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98114
--- Comment #1 from Hongtao.liu <crazylht at gmail dot com> --- Looking at testcase there's are pointer type conversion void CALC (double *s1, double *s2, double *r) { int i; long long tmp; for (i = 0; i < SIZE; i++) { tmp = (~(*(long long *) &s1[i])) & (*(long long *) &s2[i]); r[i] = *(double *) &tmp; } } modified gcc/testsuite/gcc.target/i386/avx512dq-vandnpd-2.c @@ -9,6 +9,7 @@ #include "avx512f-mask-type.h" void +__attribute__ ((optimize ("no-strict-aliasing"), noinline)) CALC (double *s1, double *s2, double *r) { int i; modified gcc/testsuite/gcc.target/i386/avx512dq-vandpd-2.c @@ -9,6 +9,7 @@ #include "avx512f-mask-type.h" void +__attribute__ ((optimize ("no-strict-aliasing"), noinline)) CALC (double *s1, double *s2, double *r) { int i; modified gcc/testsuite/gcc.target/i386/avx512dq-vorpd-2.c @@ -9,6 +9,7 @@ #include "avx512f-mask-type.h" void +__attribute__ ((optimize ("no-strict-aliasing"), noinline)) CALC (double *src1, double *src2, double *dst) { int i; modified gcc/testsuite/gcc.target/i386/avx512dq-vxorpd-2.c @@ -9,6 +9,7 @@ #include "avx512f-mask-type.h" void +__attribute__ ((optimize ("no-strict-aliasing"), noinline)) CALC (double *src1, double *src2, double *dst) { int i; Could pass testcase.