From: Eli Friedman Date: Mon, 23 Sep 2013 23:52:04 +0000 (+0000) Subject: Fix argument types of some AVX2 intrinsics. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9b2caf7e4a8fe26bf1abd0bf1bf223209be13c2f;p=clang Fix argument types of some AVX2 intrinsics. This fix makes our headers consistent with gcc. PR17312. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191248 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Headers/avx2intrin.h b/lib/Headers/avx2intrin.h index 69826c5b8e..95744693ac 100644 --- a/lib/Headers/avx2intrin.h +++ b/lib/Headers/avx2intrin.h @@ -1061,7 +1061,7 @@ _mm_srlv_epi64(__m128i __X, __m128i __Y) #define _mm_mask_i32gather_epi64(a, m, i, mask, s) __extension__ ({ \ __m128i __a = (a); \ - int const *__m = (m); \ + long long const *__m = (m); \ __m128i __i = (i); \ __m128i __mask = (mask); \ (__m128i)__builtin_ia32_gatherd_q((__v2di)__a, (const __v2di *)__m, \ @@ -1069,7 +1069,7 @@ _mm_srlv_epi64(__m128i __X, __m128i __Y) #define _mm256_mask_i32gather_epi64(a, m, i, mask, s) __extension__ ({ \ __m256i __a = (a); \ - int const *__m = (m); \ + long long const *__m = (m); \ __m128i __i = (i); \ __m256i __mask = (mask); \ (__m256i)__builtin_ia32_gatherd_q256((__v4di)__a, (const __v4di *)__m, \ @@ -1077,7 +1077,7 @@ _mm_srlv_epi64(__m128i __X, __m128i __Y) #define _mm_mask_i64gather_epi64(a, m, i, mask, s) __extension__ ({ \ __m128i __a = (a); \ - int const *__m = (m); \ + long long const *__m = (m); \ __m128i __i = (i); \ __m128i __mask = (mask); \ (__m128i)__builtin_ia32_gatherq_q((__v2di)__a, (const __v2di *)__m, \ @@ -1085,7 +1085,7 @@ _mm_srlv_epi64(__m128i __X, __m128i __Y) #define _mm256_mask_i64gather_epi64(a, m, i, mask, s) __extension__ ({ \ __m256i __a = (a); \ - int const *__m = (m); \ + long long const *__m = (m); \ __m256i __i = (i); \ __m256i __mask = (mask); \ (__m256i)__builtin_ia32_gatherq_q256((__v4di)__a, (const __v4di *)__m, \ @@ -1176,28 +1176,28 @@ _mm_srlv_epi64(__m128i __X, __m128i __Y) (__v4si)_mm_set1_epi32(-1), (s)); }) #define _mm_i32gather_epi64(m, i, s) __extension__ ({ \ - int const *__m = (m); \ + 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)); }) #define _mm256_i32gather_epi64(m, i, s) __extension__ ({ \ - int const *__m = (m); \ + 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)); }) #define _mm_i64gather_epi64(m, i, s) __extension__ ({ \ - int const *__m = (m); \ + 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)); }) #define _mm256_i64gather_epi64(m, i, s) __extension__ ({ \ - int const *__m = (m); \ + long long const *__m = (m); \ __m256i __i = (i); \ (__m256i)__builtin_ia32_gatherq_q256((__v4di)_mm256_setzero_si256(), \ (const __v4di *)__m, (__v4di)__i, \ diff --git a/test/CodeGen/avx2-builtins.c b/test/CodeGen/avx2-builtins.c index 1ff14f4e0e..5024d94e71 100644 --- a/test/CodeGen/avx2-builtins.c +++ b/test/CodeGen/avx2-builtins.c @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 %s -O3 -triple=x86_64-apple-darwin -target-feature +avx2 -emit-llvm -o - | FileCheck %s +// RUN: %clang_cc1 %s -O3 -triple=x86_64-apple-darwin -target-feature +avx2 -emit-llvm -o - -Werror | FileCheck %s // Don't include mm_malloc.h, it's system specific. #define __MM_MALLOC_H @@ -850,22 +850,22 @@ __m128i test_mm256_mask_i64gather_epi32(__m128i a, int const *b, __m256i c, return _mm256_mask_i64gather_epi32(a, b, c, d, 2); } -__m128i test_mm_mask_i32gather_epi64(__m128i a, int const *b, __m128i c, +__m128i test_mm_mask_i32gather_epi64(__m128i a, long long const *b, __m128i c, __m128i d) { // CHECK: @llvm.x86.avx2.gather.d.q return _mm_mask_i32gather_epi64(a, b, c, d, 2); } -__m256i test_mm256_mask_i32gather_epi64(__m256i a, int const *b, __m128i c, +__m256i test_mm256_mask_i32gather_epi64(__m256i a, long long const *b, __m128i c, __m256i d) { // CHECK: @llvm.x86.avx2.gather.d.q.256 return _mm256_mask_i32gather_epi64(a, b, c, d, 2); } -__m128i test_mm_mask_i64gather_epi64(__m128i a, int const *b, __m128i c, +__m128i test_mm_mask_i64gather_epi64(__m128i a, long long const *b, __m128i c, __m128i d) { // CHECK: @llvm.x86.avx2.gather.q.q return _mm_mask_i64gather_epi64(a, b, c, d, 2); } -__m256i test_mm256_mask_i64gather_epi64(__m256i a, int const *b, __m256i c, +__m256i test_mm256_mask_i64gather_epi64(__m256i a, long long const *b, __m256i c, __m256i d) { // CHECK: @llvm.x86.avx2.gather.q.q.256 return _mm256_mask_i64gather_epi64(a, b, c, d, 2); @@ -920,19 +920,19 @@ __m128i test_mm256_i64gather_epi32(int const *b, __m256i c) { // CHECK: @llvm.x86.avx2.gather.q.d.256 return _mm256_i64gather_epi32(b, c, 2); } -__m128i test_mm_i32gather_epi64(int const *b, __m128i c) { +__m128i test_mm_i32gather_epi64(long long const *b, __m128i c) { // CHECK: @llvm.x86.avx2.gather.d.q return _mm_i32gather_epi64(b, c, 2); } -__m256i test_mm256_i32gather_epi64(int const *b, __m128i c) { +__m256i test_mm256_i32gather_epi64(long long const *b, __m128i c) { // CHECK: @llvm.x86.avx2.gather.d.q.256 return _mm256_i32gather_epi64(b, c, 2); } -__m128i test_mm_i64gather_epi64(int const *b, __m128i c) { +__m128i test_mm_i64gather_epi64(long long const *b, __m128i c) { // CHECK: @llvm.x86.avx2.gather.q.q return _mm_i64gather_epi64(b, c, 2); } -__m256i test_mm256_i64gather_epi64(int const *b, __m256i c) { +__m256i test_mm256_i64gather_epi64(long long const *b, __m256i c) { // CHECK: @llvm.x86.avx2.gather.q.q.256 return _mm256_i64gather_epi64(b, c, 2); }