From: Craig Topper Date: Mon, 31 Oct 2016 05:49:11 +0000 (+0000) Subject: [AVX-512] Use selectd instead of selectps for _mm256_mask_extracti32x4_epi32. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7fc7a300739608881667568868bfb4dde903f515;p=clang [AVX-512] Use selectd instead of selectps for _mm256_mask_extracti32x4_epi32. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@285545 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Headers/avx512vlintrin.h b/lib/Headers/avx512vlintrin.h index 42e5d918cb..35394583e4 100644 --- a/lib/Headers/avx512vlintrin.h +++ b/lib/Headers/avx512vlintrin.h @@ -8299,12 +8299,12 @@ _mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A) ((imm) & 1) ? 7 : 3); }) #define _mm256_mask_extracti32x4_epi32(W, U, A, imm) __extension__ ({ \ - (__m128i)__builtin_ia32_selectps_128((__mmask8)(U), \ + (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \ (__v4si)_mm256_extracti32x4_epi32((A), (imm)), \ (__v4si)(W)); }) #define _mm256_maskz_extracti32x4_epi32(U, A, imm) __extension__ ({ \ - (__m128i)__builtin_ia32_selectps_128((__mmask8)(U), \ + (__m128i)__builtin_ia32_selectd_128((__mmask8)(U), \ (__v4si)_mm256_extracti32x4_epi32((A), (imm)), \ (__v4si)_mm_setzero_si128()); }) diff --git a/test/CodeGen/avx512vl-builtins.c b/test/CodeGen/avx512vl-builtins.c index 147522be19..1eaa469d5e 100644 --- a/test/CodeGen/avx512vl-builtins.c +++ b/test/CodeGen/avx512vl-builtins.c @@ -6582,14 +6582,14 @@ __m128i test_mm256_extracti32x4_epi32(__m256i __A) { __m128i test_mm256_mask_extracti32x4_epi32(__m128i __W, __mmask8 __U, __m256i __A) { // CHECK-LABEL: @test_mm256_mask_extracti32x4_epi32 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <4 x i32> - // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}} + // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} return _mm256_mask_extracti32x4_epi32(__W, __U, __A, 1); } __m128i test_mm256_maskz_extracti32x4_epi32(__mmask8 __U, __m256i __A) { // CHECK-LABEL: @test_mm256_maskz_extracti32x4_epi32 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <4 x i32> - // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}} + // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} return _mm256_maskz_extracti32x4_epi32(__U, __A, 1); }