[AVX-512] Use selectd instead of selectps for _mm256_mask_extracti32x4_epi32.

llvm-svn: 285545
This commit is contained in:
Craig Topper 2016-10-31 05:49:11 +00:00
parent 5116993f8e
commit 350729627a
2 changed files with 4 additions and 4 deletions

View File

@ -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()); })

View File

@ -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> <i32 4, i32 5, i32 6, i32 7>
// 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> <i32 4, i32 5, i32 6, i32 7>
// 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);
}