diff options
| author | Craig Topper <craig.topper@gmail.com> | 2015-11-11 02:51:18 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2015-11-11 02:51:18 +0000 |
| commit | 19744ee6adbc4a563085954d0d0da77f4e44fa48 (patch) | |
| tree | 9dcad49cac8a59741c90cf5205dab280e898f85f /clang/lib | |
| parent | 26f70505f32bd83f0b39d45a2f6ac7d4333de271 (diff) | |
| download | bcm5719-llvm-19744ee6adbc4a563085954d0d0da77f4e44fa48.tar.gz bcm5719-llvm-19744ee6adbc4a563085954d0d0da77f4e44fa48.zip | |
[X86] Change pointer type in AVX2 gather builtins to be the scalar type instead of the vector type. This matches gcc and removes extras casts.
llvm-svn: 252697
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Headers/avx2intrin.h | 278 |
1 files changed, 118 insertions, 160 deletions
diff --git a/clang/lib/Headers/avx2intrin.h b/clang/lib/Headers/avx2intrin.h index c905bb4e729..73e32f71457 100644 --- a/clang/lib/Headers/avx2intrin.h +++ b/clang/lib/Headers/avx2intrin.h @@ -1006,244 +1006,202 @@ _mm_srlv_epi64(__m128i __X, __m128i __Y) } #define _mm_mask_i32gather_pd(a, m, i, mask, s) __extension__ ({ \ - __m128d __a = (a); \ - double const *__m = (m); \ - __m128i __i = (i); \ - __m128d __mask = (mask); \ - (__m128d)__builtin_ia32_gatherd_pd((__v2df)__a, (const __v2df *)__m, \ - (__v4si)__i, (__v2df)__mask, (s)); }) + (__m128d)__builtin_ia32_gatherd_pd((__v2df)(__m128i)(a), \ + (double const *)(m), \ + (__v4si)(__m128i)(i), \ + (__v2df)(__m128d)(mask), (s)); }) #define _mm256_mask_i32gather_pd(a, m, i, mask, s) __extension__ ({ \ - __m256d __a = (a); \ - double const *__m = (m); \ - __m128i __i = (i); \ - __m256d __mask = (mask); \ - (__m256d)__builtin_ia32_gatherd_pd256((__v4df)__a, (const __v4df *)__m, \ - (__v4si)__i, (__v4df)__mask, (s)); }) + (__m256d)__builtin_ia32_gatherd_pd256((__v4df)(__m256d)(a), \ + (double const *)(m), \ + (__v4si)(__m128i)(i), \ + (__v4df)(__m256d)(mask), (s)); }) #define _mm_mask_i64gather_pd(a, m, i, mask, s) __extension__ ({ \ - __m128d __a = (a); \ - double const *__m = (m); \ - __m128i __i = (i); \ - __m128d __mask = (mask); \ - (__m128d)__builtin_ia32_gatherq_pd((__v2df)__a, (const __v2df *)__m, \ - (__v2di)__i, (__v2df)__mask, (s)); }) + (__m128d)__builtin_ia32_gatherq_pd((__v2df)(__m128d)(a), \ + (double const *)(m), \ + (__v2di)(__m128i)(i), \ + (__v2df)(__m128d)(mask), (s)); }) #define _mm256_mask_i64gather_pd(a, m, i, mask, s) __extension__ ({ \ - __m256d __a = (a); \ - double const *__m = (m); \ - __m256i __i = (i); \ - __m256d __mask = (mask); \ - (__m256d)__builtin_ia32_gatherq_pd256((__v4df)__a, (const __v4df *)__m, \ - (__v4di)__i, (__v4df)__mask, (s)); }) + (__m256d)__builtin_ia32_gatherq_pd256((__v4df)(__m256d)(a), \ + (double const *)(m), \ + (__v4di)(__m256i)(i), \ + (__v4df)(__m256d)(mask), (s)); }) #define _mm_mask_i32gather_ps(a, m, i, mask, s) __extension__ ({ \ - __m128 __a = (a); \ - float const *__m = (m); \ - __m128i __i = (i); \ - __m128 __mask = (mask); \ - (__m128)__builtin_ia32_gatherd_ps((__v4sf)__a, (const __v4sf *)__m, \ - (__v4si)__i, (__v4sf)__mask, (s)); }) + (__m128)__builtin_ia32_gatherd_ps((__v4sf)(__m128)(a), \ + (float const *)(m), \ + (__v4si)(__m128i)(i), \ + (__v4sf)(__m128)(mask), (s)); }) #define _mm256_mask_i32gather_ps(a, m, i, mask, s) __extension__ ({ \ - __m256 __a = (a); \ - float const *__m = (m); \ - __m256i __i = (i); \ - __m256 __mask = (mask); \ - (__m256)__builtin_ia32_gatherd_ps256((__v8sf)__a, (const __v8sf *)__m, \ - (__v8si)__i, (__v8sf)__mask, (s)); }) + (__m256)__builtin_ia32_gatherd_ps256((__v8sf)(__m256)(a), \ + (float const *)(m), \ + (__v8si)(__m256i)(i), \ + (__v8sf)(__m256)(mask), (s)); }) #define _mm_mask_i64gather_ps(a, m, i, mask, s) __extension__ ({ \ - __m128 __a = (a); \ - float const *__m = (m); \ - __m128i __i = (i); \ - __m128 __mask = (mask); \ - (__m128)__builtin_ia32_gatherq_ps((__v4sf)__a, (const __v4sf *)__m, \ - (__v2di)__i, (__v4sf)__mask, (s)); }) + (__m128)__builtin_ia32_gatherq_ps((__v4sf)(__m128)(a), \ + (float const *)(m), \ + (__v2di)(__m128i)(i), \ + (__v4sf)(__m128)(mask), (s)); }) #define _mm256_mask_i64gather_ps(a, m, i, mask, s) __extension__ ({ \ - __m128 __a = (a); \ - float const *__m = (m); \ - __m256i __i = (i); \ - __m128 __mask = (mask); \ - (__m128)__builtin_ia32_gatherq_ps256((__v4sf)__a, (const __v4sf *)__m, \ - (__v4di)__i, (__v4sf)__mask, (s)); }) + (__m128)__builtin_ia32_gatherq_ps256((__v4sf)(__m128)(a), \ + (float const *)(m), \ + (__v4di)(__m256i)(i), \ + (__v4sf)(__m128)(mask), (s)); }) #define _mm_mask_i32gather_epi32(a, m, i, mask, s) __extension__ ({ \ - __m128i __a = (a); \ - int const *__m = (m); \ - __m128i __i = (i); \ - __m128i __mask = (mask); \ - (__m128i)__builtin_ia32_gatherd_d((__v4si)__a, (const __v4si *)__m, \ - (__v4si)__i, (__v4si)__mask, (s)); }) + (__m128i)__builtin_ia32_gatherd_d((__v4si)(__m128i)(a), \ + (int const *)(m), \ + (__v4si)(__m128i)(i), \ + (__v4si)(__m128i)(mask), (s)); }) #define _mm256_mask_i32gather_epi32(a, m, i, mask, s) __extension__ ({ \ - __m256i __a = (a); \ - int const *__m = (m); \ - __m256i __i = (i); \ - __m256i __mask = (mask); \ - (__m256i)__builtin_ia32_gatherd_d256((__v8si)__a, (const __v8si *)__m, \ - (__v8si)__i, (__v8si)__mask, (s)); }) + (__m256i)__builtin_ia32_gatherd_d256((__v8si)(__m256i)(a), \ + (int const *)(m), \ + (__v8si)(__m256i)(i), \ + (__v8si)(__m256i)(mask), (s)); }) #define _mm_mask_i64gather_epi32(a, m, i, mask, s) __extension__ ({ \ - __m128i __a = (a); \ - int const *__m = (m); \ - __m128i __i = (i); \ - __m128i __mask = (mask); \ - (__m128i)__builtin_ia32_gatherq_d((__v4si)__a, (const __v4si *)__m, \ - (__v2di)__i, (__v4si)__mask, (s)); }) + (__m128i)__builtin_ia32_gatherq_d((__v4si)(__m128i)(a), \ + (int const *)(m), \ + (__v2di)(__m128i)(i), \ + (__v4si)(__m128i)(mask), (s)); }) #define _mm256_mask_i64gather_epi32(a, m, i, mask, s) __extension__ ({ \ - __m128i __a = (a); \ - int const *__m = (m); \ - __m256i __i = (i); \ - __m128i __mask = (mask); \ - (__m128i)__builtin_ia32_gatherq_d256((__v4si)__a, (const __v4si *)__m, \ - (__v4di)__i, (__v4si)__mask, (s)); }) + (__m128i)__builtin_ia32_gatherq_d256((__v4si)(__m128i)(a), \ + (int const *)(m), \ + (__v4di)(__m256i)(i), \ + (__v4si)(__m128i)(mask), (s)); }) #define _mm_mask_i32gather_epi64(a, m, i, mask, s) __extension__ ({ \ - __m128i __a = (a); \ - long long const *__m = (m); \ - __m128i __i = (i); \ - __m128i __mask = (mask); \ - (__m128i)__builtin_ia32_gatherd_q((__v2di)__a, (const __v2di *)__m, \ - (__v4si)__i, (__v2di)__mask, (s)); }) + (__m128i)__builtin_ia32_gatherd_q((__v2di)(__m128i)(a), \ + (long long const *)(m), \ + (__v4si)(__m128i)(i), \ + (__v2di)(__m128i)(mask), (s)); }) #define _mm256_mask_i32gather_epi64(a, m, i, mask, s) __extension__ ({ \ - __m256i __a = (a); \ - long long const *__m = (m); \ - __m128i __i = (i); \ - __m256i __mask = (mask); \ - (__m256i)__builtin_ia32_gatherd_q256((__v4di)__a, (const __v4di *)__m, \ - (__v4si)__i, (__v4di)__mask, (s)); }) + (__m256i)__builtin_ia32_gatherd_q256((__v4di)(__m256i)(a), \ + (long long const *)(m), \ + (__v4si)(__m128i)(i), \ + (__v4di)(__m256i)(mask), (s)); }) #define _mm_mask_i64gather_epi64(a, m, i, mask, s) __extension__ ({ \ - __m128i __a = (a); \ - long long const *__m = (m); \ - __m128i __i = (i); \ - __m128i __mask = (mask); \ - (__m128i)__builtin_ia32_gatherq_q((__v2di)__a, (const __v2di *)__m, \ - (__v2di)__i, (__v2di)__mask, (s)); }) + (__m128i)__builtin_ia32_gatherq_q((__v2di)(__m128i)(a), \ + (long long const *)(m), \ + (__v2di)(__m128i)(i), \ + (__v2di)(__m128i)(mask), (s)); }) #define _mm256_mask_i64gather_epi64(a, m, i, mask, s) __extension__ ({ \ - __m256i __a = (a); \ - long long const *__m = (m); \ - __m256i __i = (i); \ - __m256i __mask = (mask); \ - (__m256i)__builtin_ia32_gatherq_q256((__v4di)__a, (const __v4di *)__m, \ - (__v4di)__i, (__v4di)__mask, (s)); }) + (__m256i)__builtin_ia32_gatherq_q256((__v4di)(__m256i)(a), \ + (long long const *)(m), \ + (__v4di)(__m256i)(i), \ + (__v4di)(__m256i)(mask), (s)); }) #define _mm_i32gather_pd(m, i, s) __extension__ ({ \ - double const *__m = (m); \ - __m128i __i = (i); \ (__m128d)__builtin_ia32_gatherd_pd((__v2df)_mm_setzero_pd(), \ - (const __v2df *)__m, (__v4si)__i, \ - (__v2df)_mm_set1_pd((double)(long long int)-1), (s)); }) + (double const *)(m), \ + (__v4si)(__m128i)(i), \ + (__v2df)_mm_set1_pd( \ + (double)(long long int)-1), \ + (s)); }) #define _mm256_i32gather_pd(m, i, s) __extension__ ({ \ - double const *__m = (m); \ - __m128i __i = (i); \ (__m256d)__builtin_ia32_gatherd_pd256((__v4df)_mm256_setzero_pd(), \ - (const __v4df *)__m, (__v4si)__i, \ - (__v4df)_mm256_set1_pd((double)(long long int)-1), (s)); }) + (double const *)(m), \ + (__v4si)(__m128i)(i), \ + (__v4df)_mm256_set1_pd( \ + (double)(long long int)-1), \ + (s)); }) #define _mm_i64gather_pd(m, i, s) __extension__ ({ \ - double const *__m = (m); \ - __m128i __i = (i); \ (__m128d)__builtin_ia32_gatherq_pd((__v2df)_mm_setzero_pd(), \ - (const __v2df *)__m, (__v2di)__i, \ - (__v2df)_mm_set1_pd((double)(long long int)-1), (s)); }) + (double const *)(m), \ + (__v2di)(__m128i)(i), \ + (__v2df)_mm_set1_pd( \ + (double)(long long int)-1), \ + (s)); }) #define _mm256_i64gather_pd(m, i, s) __extension__ ({ \ - double const *__m = (m); \ - __m256i __i = (i); \ (__m256d)__builtin_ia32_gatherq_pd256((__v4df)_mm256_setzero_pd(), \ - (const __v4df *)__m, (__v4di)__i, \ - (__v4df)_mm256_set1_pd((double)(long long int)-1), (s)); }) + (double const *)(m), \ + (__v4di)(__m256i)(i), \ + (__v4df)_mm256_set1_pd( \ + (double)(long long int)-1), \ + (s)); }) #define _mm_i32gather_ps(m, i, s) __extension__ ({ \ - float const *__m = (m); \ - __m128i __i = (i); \ (__m128)__builtin_ia32_gatherd_ps((__v4sf)_mm_setzero_ps(), \ - (const __v4sf *)__m, (__v4si)__i, \ - (__v4sf)_mm_set1_ps((float)(int)-1), (s)); }) + (float const *)(m), (__v4si)(__m128i)(i), \ + (__v4sf)_mm_set1_ps((float)(int)-1), \ + (s)); }) #define _mm256_i32gather_ps(m, i, s) __extension__ ({ \ - float const *__m = (m); \ - __m256i __i = (i); \ (__m256)__builtin_ia32_gatherd_ps256((__v8sf)_mm256_setzero_ps(), \ - (const __v8sf *)__m, (__v8si)__i, \ - (__v8sf)_mm256_set1_ps((float)(int)-1), (s)); }) + (float const *)(m), \ + (__v8si)(__m256i)(i), \ + (__v8sf)_mm256_set1_ps((float)(int)-1), \ + (s)); }) #define _mm_i64gather_ps(m, i, s) __extension__ ({ \ - float const *__m = (m); \ - __m128i __i = (i); \ (__m128)__builtin_ia32_gatherq_ps((__v4sf)_mm_setzero_ps(), \ - (const __v4sf *)__m, (__v2di)__i, \ - (__v4sf)_mm_set1_ps((float)(int)-1), (s)); }) + (float const *)(m), (__v2di)(__m128i)(i), \ + (__v4sf)_mm_set1_ps((float)(int)-1), \ + (s)); }) #define _mm256_i64gather_ps(m, i, s) __extension__ ({ \ - float const *__m = (m); \ - __m256i __i = (i); \ (__m128)__builtin_ia32_gatherq_ps256((__v4sf)_mm_setzero_ps(), \ - (const __v4sf *)__m, (__v4di)__i, \ - (__v4sf)_mm_set1_ps((float)(int)-1), (s)); }) + (float const *)(m), \ + (__v4di)(__m256i)(i), \ + (__v4sf)_mm_set1_ps((float)(int)-1), \ + (s)); }) #define _mm_i32gather_epi32(m, i, s) __extension__ ({ \ - int const *__m = (m); \ - __m128i __i = (i); \ (__m128i)__builtin_ia32_gatherd_d((__v4si)_mm_setzero_si128(), \ - (const __v4si *)__m, (__v4si)__i, \ - (__v4si)_mm_set1_epi32(-1), (s)); }) + (int const *)(m), (__v4si)(__m128i)(i), \ + (__v4si)_mm_set1_epi32(-1), (s)); }) #define _mm256_i32gather_epi32(m, i, s) __extension__ ({ \ - int const *__m = (m); \ - __m256i __i = (i); \ (__m256i)__builtin_ia32_gatherd_d256((__v8si)_mm256_setzero_si256(), \ - (const __v8si *)__m, (__v8si)__i, \ - (__v8si)_mm256_set1_epi32(-1), (s)); }) + (int const *)(m), (__v8si)(__m256i)(i), \ + (__v8si)_mm256_set1_epi32(-1), (s)); }) #define _mm_i64gather_epi32(m, i, s) __extension__ ({ \ - int const *__m = (m); \ - __m128i __i = (i); \ (__m128i)__builtin_ia32_gatherq_d((__v4si)_mm_setzero_si128(), \ - (const __v4si *)__m, (__v2di)__i, \ - (__v4si)_mm_set1_epi32(-1), (s)); }) + (int const *)(m), (__v2di)(__m128i)(i), \ + (__v4si)_mm_set1_epi32(-1), (s)); }) #define _mm256_i64gather_epi32(m, i, s) __extension__ ({ \ - int const *__m = (m); \ - __m256i __i = (i); \ (__m128i)__builtin_ia32_gatherq_d256((__v4si)_mm_setzero_si128(), \ - (const __v4si *)__m, (__v4di)__i, \ - (__v4si)_mm_set1_epi32(-1), (s)); }) + (int const *)(m), (__v4di)(__m256i)(i), \ + (__v4si)_mm_set1_epi32(-1), (s)); }) #define _mm_i32gather_epi64(m, i, s) __extension__ ({ \ - long long const *__m = (m); \ - __m128i __i = (i); \ (__m128i)__builtin_ia32_gatherd_q((__v2di)_mm_setzero_si128(), \ - (const __v2di *)__m, (__v4si)__i, \ - (__v2di)_mm_set1_epi64x(-1), (s)); }) + (long long const *)(m), \ + (__v4si)(__m128i)(i), \ + (__v2di)_mm_set1_epi64x(-1), (s)); }) #define _mm256_i32gather_epi64(m, i, s) __extension__ ({ \ - long long const *__m = (m); \ - __m128i __i = (i); \ (__m256i)__builtin_ia32_gatherd_q256((__v4di)_mm256_setzero_si256(), \ - (const __v4di *)__m, (__v4si)__i, \ - (__v4di)_mm256_set1_epi64x(-1), (s)); }) + (long long const *)(m), \ + (__v4si)(__m128i)(i), \ + (__v4di)_mm256_set1_epi64x(-1), (s)); }) #define _mm_i64gather_epi64(m, i, s) __extension__ ({ \ - long long const *__m = (m); \ - __m128i __i = (i); \ (__m128i)__builtin_ia32_gatherq_q((__v2di)_mm_setzero_si128(), \ - (const __v2di *)__m, (__v2di)__i, \ - (__v2di)_mm_set1_epi64x(-1), (s)); }) + (long long const *)(m), \ + (__v2di)(__m128i)(i), \ + (__v2di)_mm_set1_epi64x(-1), (s)); }) #define _mm256_i64gather_epi64(m, i, s) __extension__ ({ \ - long long const *__m = (m); \ - __m256i __i = (i); \ (__m256i)__builtin_ia32_gatherq_q256((__v4di)_mm256_setzero_si256(), \ - (const __v4di *)__m, (__v4di)__i, \ - (__v4di)_mm256_set1_epi64x(-1), (s)); }) + (long long const *)(m), \ + (__v4di)(__m256i)(i), \ + (__v4di)_mm256_set1_epi64x(-1), (s)); }) #undef __DEFAULT_FN_ATTRS |

