swr/rast: fix movemask_ps / movemask_pd on AVX512
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
@@ -554,15 +554,20 @@ static SIMDINLINE uint64_t SIMDCALL movemask_epi8(Integer a)
|
||||
|
||||
static SIMDINLINE uint32_t SIMDCALL movemask_pd(Double a)
|
||||
{
|
||||
__mmask8 m = _mm512_test_epi64_mask(castpd_si(a), set1_epi32(-1));
|
||||
__mmask8 m = _mm512_test_epi64_mask(castpd_si(a), set1_epi64(0x8000000000000000LL));
|
||||
return static_cast<uint32_t>(m);
|
||||
}
|
||||
static SIMDINLINE uint32_t SIMDCALL movemask_ps(Float a)
|
||||
{
|
||||
__mmask16 m = _mm512_test_epi32_mask(castps_si(a), set1_epi32(-1));
|
||||
__mmask16 m = _mm512_test_epi32_mask(castps_si(a), set1_epi32(0x8000000));
|
||||
return static_cast<uint32_t>(m);
|
||||
}
|
||||
|
||||
static SIMDINLINE Integer SIMDCALL set1_epi64(long long i) // return i (all elements are same value)
|
||||
{
|
||||
return _mm512_set1_epi64(i);
|
||||
}
|
||||
|
||||
static SIMDINLINE Integer SIMDCALL set1_epi32(int i) // return i (all elements are same value)
|
||||
{
|
||||
return _mm512_set1_epi32(i);
|
||||
|
Reference in New Issue
Block a user