Index: clang/lib/Headers/avx512bwintrin.h =================================================================== --- clang/lib/Headers/avx512bwintrin.h +++ clang/lib/Headers/avx512bwintrin.h @@ -221,12 +221,18 @@ static __inline__ void __DEFAULT_FN_ATTRS _store_mask32(__mmask32 *__A, __mmask32 __B) { - *(__mmask32 *)__A = __builtin_ia32_kmovd((__mmask32)__B); + struct __store_mask32 { + __mmask32 __v; + } __attribute__((__packed__, __may_alias__)); + ((struct __store_mask32 *)__A)->__v = __builtin_ia32_kmovd((__mmask32)__B); } static __inline__ void __DEFAULT_FN_ATTRS _store_mask64(__mmask64 *__A, __mmask64 __B) { - *(__mmask64 *)__A = __builtin_ia32_kmovq((__mmask64)__B); + struct __store_mask64 { + __mmask64 __v; + } __attribute__((__packed__, __may_alias__)); + ((struct __store_mask64 *)__A)->__v = __builtin_ia32_kmovq((__mmask64)__B); } /* Integer compare */ Index: clang/lib/Headers/avx512fintrin.h =================================================================== --- clang/lib/Headers/avx512fintrin.h +++ clang/lib/Headers/avx512fintrin.h @@ -8445,7 +8445,10 @@ static __inline__ void __DEFAULT_FN_ATTRS _store_mask16(__mmask16 *__A, __mmask16 __B) { - *(__mmask16 *)__A = __builtin_ia32_kmovw((__mmask16)__B); + struct __store_mask16 { + __mmask16 __v; + } __attribute__((__packed__, __may_alias__)); + ((struct __store_mask16 *)__A)->__v = __builtin_ia32_kmovw((__mmask16)__B); } static __inline__ void __DEFAULT_FN_ATTRS512