forked from OSchip/llvm-project
[AVX-512] Use selectd instead of selectps for _mm256_mask_extracti32x4_epi32.
llvm-svn: 285545
This commit is contained in:
parent
5116993f8e
commit
350729627a
|
@ -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()); })
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue