diff --git a/clang/include/clang/Basic/BuiltinsX86.def b/clang/include/clang/Basic/BuiltinsX86.def --- a/clang/include/clang/Basic/BuiltinsX86.def +++ b/clang/include/clang/Basic/BuiltinsX86.def @@ -365,7 +365,7 @@ TARGET_BUILTIN(__builtin_ia32_pslldqi128_byteshift, "V2OiV2OiIi", "ncV:128:", "sse2") TARGET_BUILTIN(__builtin_ia32_psrldqi128_byteshift, "V2OiV2OiIi", "ncV:128:", "sse2") -TARGET_BUILTIN(__builtin_ia32_monitor, "vv*UiUi", "n", "sse3") +TARGET_BUILTIN(__builtin_ia32_monitor, "vvC*UiUi", "n", "sse3") TARGET_BUILTIN(__builtin_ia32_mwait, "vUiUi", "n", "sse3") TARGET_BUILTIN(__builtin_ia32_lddqu, "V16ccC*", "nV:128:", "sse3") @@ -1396,8 +1396,8 @@ TARGET_BUILTIN(__builtin_ia32_psrlwi512, "V32sV32si", "ncV:512:", "avx512bw") TARGET_BUILTIN(__builtin_ia32_pslldqi512_byteshift, "V8OiV8OiIi", "ncV:512:", "avx512bw") TARGET_BUILTIN(__builtin_ia32_psrldqi512_byteshift, "V8OiV8OiIi", "ncV:512:", "avx512bw") -TARGET_BUILTIN(__builtin_ia32_movdqa32load128_mask, "V4iV4i*V4iUc", "nV:128:", "avx512vl") -TARGET_BUILTIN(__builtin_ia32_movdqa32load256_mask, "V8iV8i*V8iUc", "nV:256:", "avx512vl") +TARGET_BUILTIN(__builtin_ia32_movdqa32load128_mask, "V4iV4iC*V4iUc", "nV:128:", "avx512vl") +TARGET_BUILTIN(__builtin_ia32_movdqa32load256_mask, "V8iV8iC*V8iUc", "nV:256:", "avx512vl") TARGET_BUILTIN(__builtin_ia32_movdqa32load512_mask, "V16iV16iC*V16iUs", "nV:512:", "avx512f") TARGET_BUILTIN(__builtin_ia32_movdqa32store512_mask, "vV16i*V16iUs", "nV:512:", "avx512f") TARGET_BUILTIN(__builtin_ia32_movdqa64load512_mask, "V8OiV8OiC*V8OiUc", "nV:512:", "avx512f") @@ -1418,8 +1418,8 @@ TARGET_BUILTIN(__builtin_ia32_vcomiss, "iV4fV4fIiIi", "ncV:128:", "avx512f") TARGET_BUILTIN(__builtin_ia32_kunpckdi, "UOiUOiUOi", "nc", "avx512bw") TARGET_BUILTIN(__builtin_ia32_kunpcksi, "UiUiUi", "nc", "avx512bw") -TARGET_BUILTIN(__builtin_ia32_loaddquhi512_mask, "V32sV32s*V32sUi", "nV:512:", "avx512bw") -TARGET_BUILTIN(__builtin_ia32_loaddquqi512_mask, "V64cV64c*V64cUOi", "nV:512:", "avx512bw") +TARGET_BUILTIN(__builtin_ia32_loaddquhi512_mask, "V32sV32sC*V32sUi", "nV:512:", "avx512bw") +TARGET_BUILTIN(__builtin_ia32_loaddquqi512_mask, "V64cV64cC*V64cUOi", "nV:512:", "avx512bw") TARGET_BUILTIN(__builtin_ia32_fixupimmpd512_mask, "V8dV8dV8dV8OiIiUcIi", "ncV:512:", "avx512f") TARGET_BUILTIN(__builtin_ia32_fixupimmpd512_maskz, "V8dV8dV8dV8OiIiUcIi", "ncV:512:", "avx512f") TARGET_BUILTIN(__builtin_ia32_fixupimmps512_mask, "V16fV16fV16fV16iIiUsIi", "ncV:512:", "avx512f") @@ -1432,10 +1432,10 @@ TARGET_BUILTIN(__builtin_ia32_getexpss128_round_mask, "V4fV4fV4fV4fUcIi", "ncV:128:", "avx512f") TARGET_BUILTIN(__builtin_ia32_getmantsd_round_mask, "V2dV2dV2dIiV2dUcIi", "ncV:128:", "avx512f") TARGET_BUILTIN(__builtin_ia32_getmantss_round_mask, "V4fV4fV4fIiV4fUcIi", "ncV:128:", "avx512f") -TARGET_BUILTIN(__builtin_ia32_loaddquhi128_mask, "V8sV8s*V8sUc", "nV:128:", "avx512bw,avx512vl") -TARGET_BUILTIN(__builtin_ia32_loaddquhi256_mask, "V16sV16s*V16sUs", "nV:256:", "avx512bw,avx512vl") -TARGET_BUILTIN(__builtin_ia32_loaddquqi128_mask, "V16cV16c*V16cUs", "nV:128:", "avx512bw,avx512vl") -TARGET_BUILTIN(__builtin_ia32_loaddquqi256_mask, "V32cV32c*V32cUi", "nV:256:", "avx512bw,avx512vl") +TARGET_BUILTIN(__builtin_ia32_loaddquhi128_mask, "V8sV8sC*V8sUc", "nV:128:", "avx512bw,avx512vl") +TARGET_BUILTIN(__builtin_ia32_loaddquhi256_mask, "V16sV16sC*V16sUs", "nV:256:", "avx512bw,avx512vl") +TARGET_BUILTIN(__builtin_ia32_loaddquqi128_mask, "V16cV16cC*V16cUs", "nV:128:", "avx512bw,avx512vl") +TARGET_BUILTIN(__builtin_ia32_loaddquqi256_mask, "V32cV32cC*V32cUi", "nV:256:", "avx512bw,avx512vl") TARGET_BUILTIN(__builtin_ia32_fixupimmpd128_mask, "V2dV2dV2dV2OiIiUc", "ncV:128:", "avx512vl") TARGET_BUILTIN(__builtin_ia32_fixupimmpd128_maskz, "V2dV2dV2dV2OiIiUc", "ncV:128:", "avx512vl") TARGET_BUILTIN(__builtin_ia32_fixupimmpd256_mask, "V4dV4dV4dV4OiIiUc", "ncV:256:", "avx512vl") @@ -1444,20 +1444,20 @@ TARGET_BUILTIN(__builtin_ia32_fixupimmps128_maskz, "V4fV4fV4fV4iIiUc", "ncV:128:", "avx512vl") TARGET_BUILTIN(__builtin_ia32_fixupimmps256_mask, "V8fV8fV8fV8iIiUc", "ncV:256:", "avx512vl") TARGET_BUILTIN(__builtin_ia32_fixupimmps256_maskz, "V8fV8fV8fV8iIiUc", "ncV:256:", "avx512vl") -TARGET_BUILTIN(__builtin_ia32_loadapd128_mask, "V2dV2d*V2dUc", "nV:128:", "avx512vl") -TARGET_BUILTIN(__builtin_ia32_loadsd128_mask, "V2dV2d*V2dUc", "nV:128:", "avx512f") -TARGET_BUILTIN(__builtin_ia32_loadapd256_mask, "V4dV4d*V4dUc", "nV:256:", "avx512vl") -TARGET_BUILTIN(__builtin_ia32_loadaps128_mask, "V4fV4f*V4fUc", "nV:128:", "avx512vl") -TARGET_BUILTIN(__builtin_ia32_loadss128_mask, "V4fV4f*V4fUc", "nV:128:", "avx512f") -TARGET_BUILTIN(__builtin_ia32_loadaps256_mask, "V8fV8f*V8fUc", "nV:256:", "avx512vl") -TARGET_BUILTIN(__builtin_ia32_loaddqudi128_mask, "V2OiV2Oi*V2OiUc", "nV:128:", "avx512vl") -TARGET_BUILTIN(__builtin_ia32_loaddqudi256_mask, "V4OiV4Oi*V4OiUc", "nV:256:", "avx512vl") -TARGET_BUILTIN(__builtin_ia32_loaddqusi128_mask, "V4iV4i*V4iUc", "nV:128:", "avx512vl") -TARGET_BUILTIN(__builtin_ia32_loaddqusi256_mask, "V8iV8i*V8iUc", "nV:256:", "avx512vl") -TARGET_BUILTIN(__builtin_ia32_loadupd128_mask, "V2dV2d*V2dUc", "nV:128:", "avx512vl") -TARGET_BUILTIN(__builtin_ia32_loadupd256_mask, "V4dV4d*V4dUc", "nV:256:", "avx512vl") -TARGET_BUILTIN(__builtin_ia32_loadups128_mask, "V4fV4f*V4fUc", "nV:128:", "avx512vl") -TARGET_BUILTIN(__builtin_ia32_loadups256_mask, "V8fV8f*V8fUc", "nV:256:", "avx512vl") +TARGET_BUILTIN(__builtin_ia32_loadapd128_mask, "V2dV2dC*V2dUc", "nV:128:", "avx512vl") +TARGET_BUILTIN(__builtin_ia32_loadsd128_mask, "V2dV2dC*V2dUc", "nV:128:", "avx512f") +TARGET_BUILTIN(__builtin_ia32_loadapd256_mask, "V4dV4dC*V4dUc", "nV:256:", "avx512vl") +TARGET_BUILTIN(__builtin_ia32_loadaps128_mask, "V4fV4fC*V4fUc", "nV:128:", "avx512vl") +TARGET_BUILTIN(__builtin_ia32_loadss128_mask, "V4fV4fC*V4fUc", "nV:128:", "avx512f") +TARGET_BUILTIN(__builtin_ia32_loadaps256_mask, "V8fV8fC*V8fUc", "nV:256:", "avx512vl") +TARGET_BUILTIN(__builtin_ia32_loaddqudi128_mask, "V2OiV2OiC*V2OiUc", "nV:128:", "avx512vl") +TARGET_BUILTIN(__builtin_ia32_loaddqudi256_mask, "V4OiV4OiC*V4OiUc", "nV:256:", "avx512vl") +TARGET_BUILTIN(__builtin_ia32_loaddqusi128_mask, "V4iV4iC*V4iUc", "nV:128:", "avx512vl") +TARGET_BUILTIN(__builtin_ia32_loaddqusi256_mask, "V8iV8iC*V8iUc", "nV:256:", "avx512vl") +TARGET_BUILTIN(__builtin_ia32_loadupd128_mask, "V2dV2dC*V2dUc", "nV:128:", "avx512vl") +TARGET_BUILTIN(__builtin_ia32_loadupd256_mask, "V4dV4dC*V4dUc", "nV:256:", "avx512vl") +TARGET_BUILTIN(__builtin_ia32_loadups128_mask, "V4fV4fC*V4fUc", "nV:128:", "avx512vl") +TARGET_BUILTIN(__builtin_ia32_loadups256_mask, "V8fV8fC*V8fUc", "nV:256:", "avx512vl") TARGET_BUILTIN(__builtin_ia32_storedquhi512_mask, "vV32s*V32sUi", "nV:512:", "avx512bw") TARGET_BUILTIN(__builtin_ia32_storedquqi512_mask, "vV64c*V64cUOi", "nV:512:", "avx512bw") TARGET_BUILTIN(__builtin_ia32_storedquhi128_mask, "vV8s*V8sUc", "nV:128:", "avx512vl,avx512bw") @@ -1872,11 +1872,11 @@ TARGET_BUILTIN(__builtin_ia32_selectsd_128, "V2dUcV2dV2d", "ncV:128:", "avx512f") // MONITORX/MWAITX -TARGET_BUILTIN(__builtin_ia32_monitorx, "vv*UiUi", "n", "mwaitx") +TARGET_BUILTIN(__builtin_ia32_monitorx, "vvC*UiUi", "n", "mwaitx") TARGET_BUILTIN(__builtin_ia32_mwaitx, "vUiUiUi", "n", "mwaitx") // WAITPKG -TARGET_BUILTIN(__builtin_ia32_umonitor, "vv*", "n", "waitpkg") +TARGET_BUILTIN(__builtin_ia32_umonitor, "vvC*", "n", "waitpkg") TARGET_BUILTIN(__builtin_ia32_umwait, "UcUiUiUi", "n", "waitpkg") TARGET_BUILTIN(__builtin_ia32_tpause, "UcUiUiUi", "n", "waitpkg") diff --git a/clang/lib/Headers/avx512bwintrin.h b/clang/lib/Headers/avx512bwintrin.h --- a/clang/lib/Headers/avx512bwintrin.h +++ b/clang/lib/Headers/avx512bwintrin.h @@ -1731,13 +1731,13 @@ struct __loadu_epi16 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi16*)__P)->__v; + return ((const struct __loadu_epi16*)__P)->__v; } static __inline__ __m512i __DEFAULT_FN_ATTRS512 _mm512_mask_loadu_epi16 (__m512i __W, __mmask32 __U, void const *__P) { - return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P, + return (__m512i) __builtin_ia32_loaddquhi512_mask ((const __v32hi *) __P, (__v32hi) __W, (__mmask32) __U); } @@ -1745,7 +1745,7 @@ static __inline__ __m512i __DEFAULT_FN_ATTRS512 _mm512_maskz_loadu_epi16 (__mmask32 __U, void const *__P) { - return (__m512i) __builtin_ia32_loaddquhi512_mask ((__v32hi *) __P, + return (__m512i) __builtin_ia32_loaddquhi512_mask ((const __v32hi *) __P, (__v32hi) _mm512_setzero_si512 (), (__mmask32) __U); @@ -1757,13 +1757,13 @@ struct __loadu_epi8 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi8*)__P)->__v; + return ((const struct __loadu_epi8*)__P)->__v; } static __inline__ __m512i __DEFAULT_FN_ATTRS512 _mm512_mask_loadu_epi8 (__m512i __W, __mmask64 __U, void const *__P) { - return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P, + return (__m512i) __builtin_ia32_loaddquqi512_mask ((const __v64qi *) __P, (__v64qi) __W, (__mmask64) __U); } @@ -1771,7 +1771,7 @@ static __inline__ __m512i __DEFAULT_FN_ATTRS512 _mm512_maskz_loadu_epi8 (__mmask64 __U, void const *__P) { - return (__m512i) __builtin_ia32_loaddquqi512_mask ((__v64qi *) __P, + return (__m512i) __builtin_ia32_loaddquqi512_mask ((const __v64qi *) __P, (__v64qi) _mm512_setzero_si512 (), (__mmask64) __U); diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h --- a/clang/lib/Headers/avx512fintrin.h +++ b/clang/lib/Headers/avx512fintrin.h @@ -4305,7 +4305,7 @@ struct __loadu_si512 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_si512*)__P)->__v; + return ((const struct __loadu_si512*)__P)->__v; } static __inline __m512i __DEFAULT_FN_ATTRS512 @@ -4314,7 +4314,7 @@ struct __loadu_epi32 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi32*)__P)->__v; + return ((const struct __loadu_epi32*)__P)->__v; } static __inline __m512i __DEFAULT_FN_ATTRS512 @@ -4341,7 +4341,7 @@ struct __loadu_epi64 { __m512i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi64*)__P)->__v; + return ((const struct __loadu_epi64*)__P)->__v; } static __inline __m512i __DEFAULT_FN_ATTRS512 @@ -4401,7 +4401,7 @@ struct __loadu_pd { __m512d_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_pd*)__p)->__v; + return ((const struct __loadu_pd*)__p)->__v; } static __inline __m512 __DEFAULT_FN_ATTRS512 @@ -4410,13 +4410,13 @@ struct __loadu_ps { __m512_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_ps*)__p)->__v; + return ((const struct __loadu_ps*)__p)->__v; } static __inline __m512 __DEFAULT_FN_ATTRS512 _mm512_load_ps(void const *__p) { - return *(__m512*)__p; + return *(const __m512*)__p; } static __inline __m512 __DEFAULT_FN_ATTRS512 @@ -4439,7 +4439,7 @@ static __inline __m512d __DEFAULT_FN_ATTRS512 _mm512_load_pd(void const *__p) { - return *(__m512d*)__p; + return *(const __m512d*)__p; } static __inline __m512d __DEFAULT_FN_ATTRS512 @@ -4462,19 +4462,19 @@ static __inline __m512i __DEFAULT_FN_ATTRS512 _mm512_load_si512 (void const *__P) { - return *(__m512i *) __P; + return *(const __m512i *) __P; } static __inline __m512i __DEFAULT_FN_ATTRS512 _mm512_load_epi32 (void const *__P) { - return *(__m512i *) __P; + return *(const __m512i *) __P; } static __inline __m512i __DEFAULT_FN_ATTRS512 _mm512_load_epi64 (void const *__P) { - return *(__m512i *) __P; + return *(const __m512i *) __P; } /* SIMD store ops */ @@ -8724,13 +8724,13 @@ (__v4sf)_mm_setzero_ps(), 0, 4, 4, 4); - return (__m128) __builtin_ia32_loadss128_mask ((__v4sf *) __A, src, __U & 1); + return (__m128) __builtin_ia32_loadss128_mask ((const __v4sf *) __A, src, __U & 1); } static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_maskz_load_ss (__mmask8 __U, const float* __A) { - return (__m128)__builtin_ia32_loadss128_mask ((__v4sf *) __A, + return (__m128)__builtin_ia32_loadss128_mask ((const __v4sf *) __A, (__v4sf) _mm_setzero_ps(), __U & 1); } @@ -8742,13 +8742,13 @@ (__v2df)_mm_setzero_pd(), 0, 2); - return (__m128d) __builtin_ia32_loadsd128_mask ((__v2df *) __A, src, __U & 1); + return (__m128d) __builtin_ia32_loadsd128_mask ((const __v2df *) __A, src, __U & 1); } static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_maskz_load_sd (__mmask8 __U, const double* __A) { - return (__m128d) __builtin_ia32_loadsd128_mask ((__v2df *) __A, + return (__m128d) __builtin_ia32_loadsd128_mask ((const __v2df *) __A, (__v2df) _mm_setzero_pd(), __U & 1); } diff --git a/clang/lib/Headers/avx512vlbwintrin.h b/clang/lib/Headers/avx512vlbwintrin.h --- a/clang/lib/Headers/avx512vlbwintrin.h +++ b/clang/lib/Headers/avx512vlbwintrin.h @@ -2289,13 +2289,13 @@ struct __loadu_epi16 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi16*)__P)->__v; + return ((const struct __loadu_epi16*)__P)->__v; } static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_loadu_epi16 (__m128i __W, __mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P, + return (__m128i) __builtin_ia32_loaddquhi128_mask ((const __v8hi *) __P, (__v8hi) __W, (__mmask8) __U); } @@ -2303,7 +2303,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_loadu_epi16 (__mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_loaddquhi128_mask ((__v8hi *) __P, + return (__m128i) __builtin_ia32_loaddquhi128_mask ((const __v8hi *) __P, (__v8hi) _mm_setzero_si128 (), (__mmask8) __U); @@ -2315,13 +2315,13 @@ struct __loadu_epi16 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi16*)__P)->__v; + return ((const struct __loadu_epi16*)__P)->__v; } static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_loadu_epi16 (__m256i __W, __mmask16 __U, void const *__P) { - return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P, + return (__m256i) __builtin_ia32_loaddquhi256_mask ((const __v16hi *) __P, (__v16hi) __W, (__mmask16) __U); } @@ -2329,7 +2329,7 @@ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_loadu_epi16 (__mmask16 __U, void const *__P) { - return (__m256i) __builtin_ia32_loaddquhi256_mask ((__v16hi *) __P, + return (__m256i) __builtin_ia32_loaddquhi256_mask ((const __v16hi *) __P, (__v16hi) _mm256_setzero_si256 (), (__mmask16) __U); @@ -2341,13 +2341,13 @@ struct __loadu_epi8 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi8*)__P)->__v; + return ((const struct __loadu_epi8*)__P)->__v; } static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_loadu_epi8 (__m128i __W, __mmask16 __U, void const *__P) { - return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P, + return (__m128i) __builtin_ia32_loaddquqi128_mask ((const __v16qi *) __P, (__v16qi) __W, (__mmask16) __U); } @@ -2355,7 +2355,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_loadu_epi8 (__mmask16 __U, void const *__P) { - return (__m128i) __builtin_ia32_loaddquqi128_mask ((__v16qi *) __P, + return (__m128i) __builtin_ia32_loaddquqi128_mask ((const __v16qi *) __P, (__v16qi) _mm_setzero_si128 (), (__mmask16) __U); @@ -2367,13 +2367,13 @@ struct __loadu_epi8 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi8*)__P)->__v; + return ((const struct __loadu_epi8*)__P)->__v; } static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_loadu_epi8 (__m256i __W, __mmask32 __U, void const *__P) { - return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P, + return (__m256i) __builtin_ia32_loaddquqi256_mask ((const __v32qi *) __P, (__v32qi) __W, (__mmask32) __U); } @@ -2381,7 +2381,7 @@ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_loadu_epi8 (__mmask32 __U, void const *__P) { - return (__m256i) __builtin_ia32_loaddquqi256_mask ((__v32qi *) __P, + return (__m256i) __builtin_ia32_loaddquqi256_mask ((const __v32qi *) __P, (__v32qi) _mm256_setzero_si256 (), (__mmask32) __U); diff --git a/clang/lib/Headers/avx512vlintrin.h b/clang/lib/Headers/avx512vlintrin.h --- a/clang/lib/Headers/avx512vlintrin.h +++ b/clang/lib/Headers/avx512vlintrin.h @@ -2505,7 +2505,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_mask_expandloadu_pd (__m128d __W, __mmask8 __U, void const *__P) { - return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P, + return (__m128d) __builtin_ia32_expandloaddf128_mask ((const __v2df *) __P, (__v2df) __W, (__mmask8) __U); @@ -2513,7 +2513,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_maskz_expandloadu_pd (__mmask8 __U, void const *__P) { - return (__m128d) __builtin_ia32_expandloaddf128_mask ((__v2df *) __P, + return (__m128d) __builtin_ia32_expandloaddf128_mask ((const __v2df *) __P, (__v2df) _mm_setzero_pd (), (__mmask8) @@ -2522,7 +2522,7 @@ static __inline__ __m256d __DEFAULT_FN_ATTRS256 _mm256_mask_expandloadu_pd (__m256d __W, __mmask8 __U, void const *__P) { - return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P, + return (__m256d) __builtin_ia32_expandloaddf256_mask ((const __v4df *) __P, (__v4df) __W, (__mmask8) __U); @@ -2530,7 +2530,7 @@ static __inline__ __m256d __DEFAULT_FN_ATTRS256 _mm256_maskz_expandloadu_pd (__mmask8 __U, void const *__P) { - return (__m256d) __builtin_ia32_expandloaddf256_mask ((__v4df *) __P, + return (__m256d) __builtin_ia32_expandloaddf256_mask ((const __v4df *) __P, (__v4df) _mm256_setzero_pd (), (__mmask8) @@ -2539,7 +2539,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_expandloadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P, + return (__m128i) __builtin_ia32_expandloaddi128_mask ((const __v2di *) __P, (__v2di) __W, (__mmask8) __U); @@ -2547,7 +2547,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_expandloaddi128_mask ((__v2di *) __P, + return (__m128i) __builtin_ia32_expandloaddi128_mask ((const __v2di *) __P, (__v2di) _mm_setzero_si128 (), (__mmask8) @@ -2557,7 +2557,7 @@ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_expandloadu_epi64 (__m256i __W, __mmask8 __U, void const *__P) { - return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P, + return (__m256i) __builtin_ia32_expandloaddi256_mask ((const __v4di *) __P, (__v4di) __W, (__mmask8) __U); @@ -2565,7 +2565,7 @@ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P) { - return (__m256i) __builtin_ia32_expandloaddi256_mask ((__v4di *) __P, + return (__m256i) __builtin_ia32_expandloaddi256_mask ((const __v4di *) __P, (__v4di) _mm256_setzero_si256 (), (__mmask8) @@ -2574,14 +2574,14 @@ static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_mask_expandloadu_ps (__m128 __W, __mmask8 __U, void const *__P) { - return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P, + return (__m128) __builtin_ia32_expandloadsf128_mask ((const __v4sf *) __P, (__v4sf) __W, (__mmask8) __U); } static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_maskz_expandloadu_ps (__mmask8 __U, void const *__P) { - return (__m128) __builtin_ia32_expandloadsf128_mask ((__v4sf *) __P, + return (__m128) __builtin_ia32_expandloadsf128_mask ((const __v4sf *) __P, (__v4sf) _mm_setzero_ps (), (__mmask8) @@ -2590,14 +2590,14 @@ static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_mask_expandloadu_ps (__m256 __W, __mmask8 __U, void const *__P) { - return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P, + return (__m256) __builtin_ia32_expandloadsf256_mask ((const __v8sf *) __P, (__v8sf) __W, (__mmask8) __U); } static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_maskz_expandloadu_ps (__mmask8 __U, void const *__P) { - return (__m256) __builtin_ia32_expandloadsf256_mask ((__v8sf *) __P, + return (__m256) __builtin_ia32_expandloadsf256_mask ((const __v8sf *) __P, (__v8sf) _mm256_setzero_ps (), (__mmask8) @@ -2606,7 +2606,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_expandloadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P, + return (__m128i) __builtin_ia32_expandloadsi128_mask ((const __v4si *) __P, (__v4si) __W, (__mmask8) __U); @@ -2614,7 +2614,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_expandloadsi128_mask ((__v4si *) __P, + return (__m128i) __builtin_ia32_expandloadsi128_mask ((const __v4si *) __P, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); @@ -2623,7 +2623,7 @@ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_expandloadu_epi32 (__m256i __W, __mmask8 __U, void const *__P) { - return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P, + return (__m256i) __builtin_ia32_expandloadsi256_mask ((const __v8si *) __P, (__v8si) __W, (__mmask8) __U); @@ -2631,7 +2631,7 @@ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_expandloadu_epi32 (__mmask8 __U, void const *__P) { - return (__m256i) __builtin_ia32_expandloadsi256_mask ((__v8si *) __P, + return (__m256i) __builtin_ia32_expandloadsi256_mask ((const __v8si *) __P, (__v8si) _mm256_setzero_si256 (), (__mmask8) @@ -5073,13 +5073,13 @@ static __inline __m128i __DEFAULT_FN_ATTRS128 _mm_load_epi32 (void const *__P) { - return *(__m128i *) __P; + return *(const __m128i *) __P; } static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_load_epi32 (__m128i __W, __mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P, + return (__m128i) __builtin_ia32_movdqa32load128_mask ((const __v4si *) __P, (__v4si) __W, (__mmask8) __U); @@ -5088,7 +5088,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_load_epi32 (__mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_movdqa32load128_mask ((__v4si *) __P, + return (__m128i) __builtin_ia32_movdqa32load128_mask ((const __v4si *) __P, (__v4si) _mm_setzero_si128 (), (__mmask8) @@ -5098,13 +5098,13 @@ static __inline __m256i __DEFAULT_FN_ATTRS256 _mm256_load_epi32 (void const *__P) { - return *(__m256i *) __P; + return *(const __m256i *) __P; } static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_load_epi32 (__m256i __W, __mmask8 __U, void const *__P) { - return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P, + return (__m256i) __builtin_ia32_movdqa32load256_mask ((const __v8si *) __P, (__v8si) __W, (__mmask8) __U); @@ -5113,7 +5113,7 @@ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_load_epi32 (__mmask8 __U, void const *__P) { - return (__m256i) __builtin_ia32_movdqa32load256_mask ((__v8si *) __P, + return (__m256i) __builtin_ia32_movdqa32load256_mask ((const __v8si *) __P, (__v8si) _mm256_setzero_si256 (), (__mmask8) @@ -5183,13 +5183,13 @@ static __inline __m128i __DEFAULT_FN_ATTRS128 _mm_load_epi64 (void const *__P) { - return *(__m128i *) __P; + return *(const __m128i *) __P; } static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_load_epi64 (__m128i __W, __mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P, + return (__m128i) __builtin_ia32_movdqa64load128_mask ((const __v2di *) __P, (__v2di) __W, (__mmask8) __U); @@ -5198,7 +5198,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_load_epi64 (__mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_movdqa64load128_mask ((__v2di *) __P, + return (__m128i) __builtin_ia32_movdqa64load128_mask ((const __v2di *) __P, (__v2di) _mm_setzero_si128 (), (__mmask8) @@ -5208,13 +5208,13 @@ static __inline __m256i __DEFAULT_FN_ATTRS256 _mm256_load_epi64 (void const *__P) { - return *(__m256i *) __P; + return *(const __m256i *) __P; } static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_load_epi64 (__m256i __W, __mmask8 __U, void const *__P) { - return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P, + return (__m256i) __builtin_ia32_movdqa64load256_mask ((const __v4di *) __P, (__v4di) __W, (__mmask8) __U); @@ -5223,7 +5223,7 @@ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_load_epi64 (__mmask8 __U, void const *__P) { - return (__m256i) __builtin_ia32_movdqa64load256_mask ((__v4di *) __P, + return (__m256i) __builtin_ia32_movdqa64load256_mask ((const __v4di *) __P, (__v4di) _mm256_setzero_si256 (), (__mmask8) @@ -5430,7 +5430,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_mask_load_pd (__m128d __W, __mmask8 __U, void const *__P) { - return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P, + return (__m128d) __builtin_ia32_loadapd128_mask ((const __v2df *) __P, (__v2df) __W, (__mmask8) __U); } @@ -5438,7 +5438,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_maskz_load_pd (__mmask8 __U, void const *__P) { - return (__m128d) __builtin_ia32_loadapd128_mask ((__v2df *) __P, + return (__m128d) __builtin_ia32_loadapd128_mask ((const __v2df *) __P, (__v2df) _mm_setzero_pd (), (__mmask8) __U); @@ -5447,7 +5447,7 @@ static __inline__ __m256d __DEFAULT_FN_ATTRS256 _mm256_mask_load_pd (__m256d __W, __mmask8 __U, void const *__P) { - return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P, + return (__m256d) __builtin_ia32_loadapd256_mask ((const __v4df *) __P, (__v4df) __W, (__mmask8) __U); } @@ -5455,7 +5455,7 @@ static __inline__ __m256d __DEFAULT_FN_ATTRS256 _mm256_maskz_load_pd (__mmask8 __U, void const *__P) { - return (__m256d) __builtin_ia32_loadapd256_mask ((__v4df *) __P, + return (__m256d) __builtin_ia32_loadapd256_mask ((const __v4df *) __P, (__v4df) _mm256_setzero_pd (), (__mmask8) __U); @@ -5464,7 +5464,7 @@ static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_mask_load_ps (__m128 __W, __mmask8 __U, void const *__P) { - return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P, + return (__m128) __builtin_ia32_loadaps128_mask ((const __v4sf *) __P, (__v4sf) __W, (__mmask8) __U); } @@ -5472,7 +5472,7 @@ static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_maskz_load_ps (__mmask8 __U, void const *__P) { - return (__m128) __builtin_ia32_loadaps128_mask ((__v4sf *) __P, + return (__m128) __builtin_ia32_loadaps128_mask ((const __v4sf *) __P, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); @@ -5481,7 +5481,7 @@ static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_mask_load_ps (__m256 __W, __mmask8 __U, void const *__P) { - return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P, + return (__m256) __builtin_ia32_loadaps256_mask ((const __v8sf *) __P, (__v8sf) __W, (__mmask8) __U); } @@ -5489,7 +5489,7 @@ static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_maskz_load_ps (__mmask8 __U, void const *__P) { - return (__m256) __builtin_ia32_loadaps256_mask ((__v8sf *) __P, + return (__m256) __builtin_ia32_loadaps256_mask ((const __v8sf *) __P, (__v8sf) _mm256_setzero_ps (), (__mmask8) __U); @@ -5501,13 +5501,13 @@ struct __loadu_epi64 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi64*)__P)->__v; + return ((const struct __loadu_epi64*)__P)->__v; } static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_loadu_epi64 (__m128i __W, __mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P, + return (__m128i) __builtin_ia32_loaddqudi128_mask ((const __v2di *) __P, (__v2di) __W, (__mmask8) __U); } @@ -5515,7 +5515,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_loadu_epi64 (__mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_loaddqudi128_mask ((__v2di *) __P, + return (__m128i) __builtin_ia32_loaddqudi128_mask ((const __v2di *) __P, (__v2di) _mm_setzero_si128 (), (__mmask8) __U); @@ -5527,13 +5527,13 @@ struct __loadu_epi64 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi64*)__P)->__v; + return ((const struct __loadu_epi64*)__P)->__v; } static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_loadu_epi64 (__m256i __W, __mmask8 __U, void const *__P) { - return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P, + return (__m256i) __builtin_ia32_loaddqudi256_mask ((const __v4di *) __P, (__v4di) __W, (__mmask8) __U); } @@ -5541,7 +5541,7 @@ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_loadu_epi64 (__mmask8 __U, void const *__P) { - return (__m256i) __builtin_ia32_loaddqudi256_mask ((__v4di *) __P, + return (__m256i) __builtin_ia32_loaddqudi256_mask ((const __v4di *) __P, (__v4di) _mm256_setzero_si256 (), (__mmask8) __U); @@ -5553,13 +5553,13 @@ struct __loadu_epi32 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi32*)__P)->__v; + return ((const struct __loadu_epi32*)__P)->__v; } static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_mask_loadu_epi32 (__m128i __W, __mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P, + return (__m128i) __builtin_ia32_loaddqusi128_mask ((const __v4si *) __P, (__v4si) __W, (__mmask8) __U); } @@ -5567,7 +5567,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS128 _mm_maskz_loadu_epi32 (__mmask8 __U, void const *__P) { - return (__m128i) __builtin_ia32_loaddqusi128_mask ((__v4si *) __P, + return (__m128i) __builtin_ia32_loaddqusi128_mask ((const __v4si *) __P, (__v4si) _mm_setzero_si128 (), (__mmask8) __U); @@ -5579,13 +5579,13 @@ struct __loadu_epi32 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_epi32*)__P)->__v; + return ((const struct __loadu_epi32*)__P)->__v; } static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_mask_loadu_epi32 (__m256i __W, __mmask8 __U, void const *__P) { - return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P, + return (__m256i) __builtin_ia32_loaddqusi256_mask ((const __v8si *) __P, (__v8si) __W, (__mmask8) __U); } @@ -5593,7 +5593,7 @@ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_loadu_epi32 (__mmask8 __U, void const *__P) { - return (__m256i) __builtin_ia32_loaddqusi256_mask ((__v8si *) __P, + return (__m256i) __builtin_ia32_loaddqusi256_mask ((const __v8si *) __P, (__v8si) _mm256_setzero_si256 (), (__mmask8) __U); @@ -5602,7 +5602,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_mask_loadu_pd (__m128d __W, __mmask8 __U, void const *__P) { - return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P, + return (__m128d) __builtin_ia32_loadupd128_mask ((const __v2df *) __P, (__v2df) __W, (__mmask8) __U); } @@ -5610,7 +5610,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS128 _mm_maskz_loadu_pd (__mmask8 __U, void const *__P) { - return (__m128d) __builtin_ia32_loadupd128_mask ((__v2df *) __P, + return (__m128d) __builtin_ia32_loadupd128_mask ((const __v2df *) __P, (__v2df) _mm_setzero_pd (), (__mmask8) __U); @@ -5619,7 +5619,7 @@ static __inline__ __m256d __DEFAULT_FN_ATTRS256 _mm256_mask_loadu_pd (__m256d __W, __mmask8 __U, void const *__P) { - return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P, + return (__m256d) __builtin_ia32_loadupd256_mask ((const __v4df *) __P, (__v4df) __W, (__mmask8) __U); } @@ -5627,7 +5627,7 @@ static __inline__ __m256d __DEFAULT_FN_ATTRS256 _mm256_maskz_loadu_pd (__mmask8 __U, void const *__P) { - return (__m256d) __builtin_ia32_loadupd256_mask ((__v4df *) __P, + return (__m256d) __builtin_ia32_loadupd256_mask ((const __v4df *) __P, (__v4df) _mm256_setzero_pd (), (__mmask8) __U); @@ -5636,7 +5636,7 @@ static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_mask_loadu_ps (__m128 __W, __mmask8 __U, void const *__P) { - return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P, + return (__m128) __builtin_ia32_loadups128_mask ((const __v4sf *) __P, (__v4sf) __W, (__mmask8) __U); } @@ -5644,7 +5644,7 @@ static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_maskz_loadu_ps (__mmask8 __U, void const *__P) { - return (__m128) __builtin_ia32_loadups128_mask ((__v4sf *) __P, + return (__m128) __builtin_ia32_loadups128_mask ((const __v4sf *) __P, (__v4sf) _mm_setzero_ps (), (__mmask8) __U); @@ -5653,7 +5653,7 @@ static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_mask_loadu_ps (__m256 __W, __mmask8 __U, void const *__P) { - return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P, + return (__m256) __builtin_ia32_loadups256_mask ((const __v8sf *) __P, (__v8sf) __W, (__mmask8) __U); } @@ -5661,7 +5661,7 @@ static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_maskz_loadu_ps (__mmask8 __U, void const *__P) { - return (__m256) __builtin_ia32_loadups256_mask ((__v8sf *) __P, + return (__m256) __builtin_ia32_loadups256_mask ((const __v8sf *) __P, (__v8sf) _mm256_setzero_ps (), (__mmask8) __U); diff --git a/clang/lib/Headers/avxintrin.h b/clang/lib/Headers/avxintrin.h --- a/clang/lib/Headers/avxintrin.h +++ b/clang/lib/Headers/avxintrin.h @@ -3069,7 +3069,7 @@ static __inline __m256d __DEFAULT_FN_ATTRS _mm256_load_pd(double const *__p) { - return *(__m256d *)__p; + return *(const __m256d *)__p; } /// Loads 8 single-precision floating point values from a 32-byte aligned @@ -3085,7 +3085,7 @@ static __inline __m256 __DEFAULT_FN_ATTRS _mm256_load_ps(float const *__p) { - return *(__m256 *)__p; + return *(const __m256 *)__p; } /// Loads 4 double-precision floating point values from an unaligned @@ -3105,7 +3105,7 @@ struct __loadu_pd { __m256d_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_pd*)__p)->__v; + return ((const struct __loadu_pd*)__p)->__v; } /// Loads 8 single-precision floating point values from an unaligned @@ -3125,7 +3125,7 @@ struct __loadu_ps { __m256_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_ps*)__p)->__v; + return ((const struct __loadu_ps*)__p)->__v; } /// Loads 256 bits of integer data from a 32-byte aligned memory @@ -3161,7 +3161,7 @@ struct __loadu_si256 { __m256i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_si256*)__p)->__v; + return ((const struct __loadu_si256*)__p)->__v; } /// Loads 256 bits of integer data from an unaligned memory location diff --git a/clang/lib/Headers/emmintrin.h b/clang/lib/Headers/emmintrin.h --- a/clang/lib/Headers/emmintrin.h +++ b/clang/lib/Headers/emmintrin.h @@ -1578,7 +1578,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_load_pd(double const *__dp) { - return *(__m128d*)__dp; + return *(const __m128d*)__dp; } /// Loads a double-precision floating-point value from a specified memory @@ -1599,7 +1599,7 @@ struct __mm_load1_pd_struct { double __u; } __attribute__((__packed__, __may_alias__)); - double __u = ((struct __mm_load1_pd_struct*)__dp)->__u; + double __u = ((const struct __mm_load1_pd_struct*)__dp)->__u; return __extension__ (__m128d){ __u, __u }; } @@ -1622,7 +1622,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_loadr_pd(double const *__dp) { - __m128d __u = *(__m128d*)__dp; + __m128d __u = *(const __m128d*)__dp; return __builtin_shufflevector((__v2df)__u, (__v2df)__u, 1, 0); } @@ -1643,7 +1643,7 @@ struct __loadu_pd { __m128d_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_pd*)__dp)->__v; + return ((const struct __loadu_pd*)__dp)->__v; } /// Loads a 64-bit integer value to the low element of a 128-bit integer @@ -1663,7 +1663,7 @@ struct __loadu_si64 { long long __v; } __attribute__((__packed__, __may_alias__)); - long long __u = ((struct __loadu_si64*)__a)->__v; + long long __u = ((const struct __loadu_si64*)__a)->__v; return __extension__ (__m128i)(__v2di){__u, 0LL}; } @@ -1684,7 +1684,7 @@ struct __loadu_si32 { int __v; } __attribute__((__packed__, __may_alias__)); - int __u = ((struct __loadu_si32*)__a)->__v; + int __u = ((const struct __loadu_si32*)__a)->__v; return __extension__ (__m128i)(__v4si){__u, 0, 0, 0}; } @@ -1705,7 +1705,7 @@ struct __loadu_si16 { short __v; } __attribute__((__packed__, __may_alias__)); - short __u = ((struct __loadu_si16*)__a)->__v; + short __u = ((const struct __loadu_si16*)__a)->__v; return __extension__ (__m128i)(__v8hi){__u, 0, 0, 0, 0, 0, 0, 0}; } @@ -1726,7 +1726,7 @@ struct __mm_load_sd_struct { double __u; } __attribute__((__packed__, __may_alias__)); - double __u = ((struct __mm_load_sd_struct*)__dp)->__u; + double __u = ((const struct __mm_load_sd_struct*)__dp)->__u; return __extension__ (__m128d){ __u, 0 }; } @@ -1753,7 +1753,7 @@ struct __mm_loadh_pd_struct { double __u; } __attribute__((__packed__, __may_alias__)); - double __u = ((struct __mm_loadh_pd_struct*)__dp)->__u; + double __u = ((const struct __mm_loadh_pd_struct*)__dp)->__u; return __extension__ (__m128d){ __a[0], __u }; } @@ -1780,7 +1780,7 @@ struct __mm_loadl_pd_struct { double __u; } __attribute__((__packed__, __may_alias__)); - double __u = ((struct __mm_loadl_pd_struct*)__dp)->__u; + double __u = ((const struct __mm_loadl_pd_struct*)__dp)->__u; return __extension__ (__m128d){ __u, __a[1] }; } @@ -3550,7 +3550,7 @@ struct __loadu_si128 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_si128*)__p)->__v; + return ((const struct __loadu_si128*)__p)->__v; } /// Returns a vector of [2 x i64] where the lower element is taken from @@ -3571,7 +3571,7 @@ struct __mm_loadl_epi64_struct { long long __u; } __attribute__((__packed__, __may_alias__)); - return __extension__ (__m128i) { ((struct __mm_loadl_epi64_struct*)__p)->__u, 0}; + return __extension__ (__m128i) { ((const struct __mm_loadl_epi64_struct*)__p)->__u, 0}; } /// Generates a 128-bit vector of [4 x i32] with unspecified content. diff --git a/clang/lib/Headers/immintrin.h b/clang/lib/Headers/immintrin.h --- a/clang/lib/Headers/immintrin.h +++ b/clang/lib/Headers/immintrin.h @@ -301,7 +301,7 @@ struct __loadu_i16 { short __v; } __attribute__((__packed__, __may_alias__)); - return __builtin_bswap16(((struct __loadu_i16*)__P)->__v); + return __builtin_bswap16(((const struct __loadu_i16*)__P)->__v); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) @@ -317,7 +317,7 @@ struct __loadu_i32 { int __v; } __attribute__((__packed__, __may_alias__)); - return __builtin_bswap32(((struct __loadu_i32*)__P)->__v); + return __builtin_bswap32(((const struct __loadu_i32*)__P)->__v); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) @@ -334,7 +334,7 @@ struct __loadu_i64 { long long __v; } __attribute__((__packed__, __may_alias__)); - return __builtin_bswap64(((struct __loadu_i64*)__P)->__v); + return __builtin_bswap64(((const struct __loadu_i64*)__P)->__v); } static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe"))) diff --git a/clang/lib/Headers/mwaitxintrin.h b/clang/lib/Headers/mwaitxintrin.h --- a/clang/lib/Headers/mwaitxintrin.h +++ b/clang/lib/Headers/mwaitxintrin.h @@ -17,9 +17,9 @@ /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("mwaitx"))) static __inline__ void __DEFAULT_FN_ATTRS -_mm_monitorx(void const * __p, unsigned __extensions, unsigned __hints) +_mm_monitorx(void * __p, unsigned __extensions, unsigned __hints) { - __builtin_ia32_monitorx((void *)__p, __extensions, __hints); + __builtin_ia32_monitorx(__p, __extensions, __hints); } static __inline__ void __DEFAULT_FN_ATTRS diff --git a/clang/lib/Headers/pmmintrin.h b/clang/lib/Headers/pmmintrin.h --- a/clang/lib/Headers/pmmintrin.h +++ b/clang/lib/Headers/pmmintrin.h @@ -263,7 +263,7 @@ static __inline__ void __DEFAULT_FN_ATTRS _mm_monitor(void const *__p, unsigned __extensions, unsigned __hints) { - __builtin_ia32_monitor((void *)__p, __extensions, __hints); + __builtin_ia32_monitor(__p, __extensions, __hints); } /// Used with the MONITOR instruction to wait while the processor is in diff --git a/clang/lib/Headers/xmmintrin.h b/clang/lib/Headers/xmmintrin.h --- a/clang/lib/Headers/xmmintrin.h +++ b/clang/lib/Headers/xmmintrin.h @@ -1627,7 +1627,7 @@ struct __mm_loadh_pi_struct { __mm_loadh_pi_v2f32 __u; } __attribute__((__packed__, __may_alias__)); - __mm_loadh_pi_v2f32 __b = ((struct __mm_loadh_pi_struct*)__p)->__u; + __mm_loadh_pi_v2f32 __b = ((const struct __mm_loadh_pi_struct*)__p)->__u; __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1); return __builtin_shufflevector(__a, __bb, 0, 1, 4, 5); } @@ -1654,7 +1654,7 @@ struct __mm_loadl_pi_struct { __mm_loadl_pi_v2f32 __u; } __attribute__((__packed__, __may_alias__)); - __mm_loadl_pi_v2f32 __b = ((struct __mm_loadl_pi_struct*)__p)->__u; + __mm_loadl_pi_v2f32 __b = ((const struct __mm_loadl_pi_struct*)__p)->__u; __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1); return __builtin_shufflevector(__a, __bb, 4, 5, 2, 3); } @@ -1680,7 +1680,7 @@ struct __mm_load_ss_struct { float __u; } __attribute__((__packed__, __may_alias__)); - float __u = ((struct __mm_load_ss_struct*)__p)->__u; + float __u = ((const struct __mm_load_ss_struct*)__p)->__u; return __extension__ (__m128){ __u, 0, 0, 0 }; } @@ -1702,7 +1702,7 @@ struct __mm_load1_ps_struct { float __u; } __attribute__((__packed__, __may_alias__)); - float __u = ((struct __mm_load1_ps_struct*)__p)->__u; + float __u = ((const struct __mm_load1_ps_struct*)__p)->__u; return __extension__ (__m128){ __u, __u, __u, __u }; } @@ -1722,7 +1722,7 @@ static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_load_ps(const float *__p) { - return *(__m128*)__p; + return *(const __m128*)__p; } /// Loads a 128-bit floating-point vector of [4 x float] from an @@ -1742,7 +1742,7 @@ struct __loadu_ps { __m128_u __v; } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_ps*)__p)->__v; + return ((const struct __loadu_ps*)__p)->__v; } /// Loads four packed float values, in reverse order, from an aligned @@ -2100,7 +2100,7 @@ /// be generated. \n /// _MM_HINT_T2: Move data using the T2 hint. The PREFETCHT2 instruction will /// be generated. -#define _mm_prefetch(a, sel) (__builtin_prefetch((void *)(a), \ +#define _mm_prefetch(a, sel) (__builtin_prefetch((const void *)(a), \ ((sel) >> 2) & 1, (sel) & 0x3)) #endif diff --git a/clang/test/Headers/x86-intrinsics-headers-clean.cpp b/clang/test/Headers/x86-intrinsics-headers-clean.cpp --- a/clang/test/Headers/x86-intrinsics-headers-clean.cpp +++ b/clang/test/Headers/x86-intrinsics-headers-clean.cpp @@ -1,7 +1,7 @@ // Make sure the intrinsic headers compile cleanly with no warnings or errors. // RUN: %clang_cc1 -ffreestanding -triple x86_64-unknown-unknown -Wsystem-headers \ -// RUN: -fsyntax-only -flax-vector-conversions=none -x c++ -verify %s +// RUN: -Wcast-qual -fsyntax-only -flax-vector-conversions=none -x c++ -verify %s // expected-no-diagnostics diff --git a/clang/test/Headers/x86intrin-2.c b/clang/test/Headers/x86intrin-2.c --- a/clang/test/Headers/x86intrin-2.c +++ b/clang/test/Headers/x86intrin-2.c @@ -1,6 +1,6 @@ -// RUN: %clang_cc1 -fsyntax-only -ffreestanding %s -verify -// RUN: %clang_cc1 -fsyntax-only -ffreestanding -flax-vector-conversions=none %s -verify -// RUN: %clang_cc1 -fsyntax-only -ffreestanding -x c++ %s -verify +// RUN: %clang_cc1 -fsyntax-only -ffreestanding -Wcast-qual %s -verify +// RUN: %clang_cc1 -fsyntax-only -ffreestanding -flax-vector-conversions=none -Wcast-qual %s -verify +// RUN: %clang_cc1 -fsyntax-only -ffreestanding -Wcast-qual -x c++ %s -verify // expected-no-diagnostics #if defined(i386) || defined(__x86_64__) @@ -16,6 +16,10 @@ return _mm_add_ss(a, b); } +void __attribute__((__target__("sse"))) mm_prefetch_wrap(const void *p) { + _mm_prefetch(p, 0x3); +} + __m128d __attribute__((__target__("sse2"))) mm_sqrt_sd_wrap(__m128d a, __m128d b) { return _mm_sqrt_sd(a, b); }