diff options
author | Tim Rowley <[email protected]> | 2017-07-27 14:56:46 -0500 |
---|---|---|
committer | Tim Rowley <[email protected]> | 2017-08-02 11:39:33 -0500 |
commit | 39ed8e297cf75bc924db2f81798e18b80502bca7 (patch) | |
tree | fb2a749c0a6325a89fc80adefbffcabaf36b1ff6 | |
parent | c18d91ca9aa4911a258fb164cab1ed92e781baea (diff) |
swr/rast: vmask() implementations for KNL
Reviewed-by: Bruce Cherniak <[email protected]>
-rw-r--r-- | src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512_knights.inl | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512_knights.inl b/src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512_knights.inl index 17001be0674..2ee7639ccfa 100644 --- a/src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512_knights.inl +++ b/src/gallium/drivers/swr/rasterizer/common/simdlib_512_avx512_knights.inl @@ -132,6 +132,20 @@ } #define SIMD_IWRAPPER_2I(op) SIMD_IWRAPPER_2I_(op, op) +private: + static SIMDINLINE Integer vmask(__mmask8 m) + { + return _mm512_mask_set1_epi64(_mm512_setzero_si512(), m, -1LL); + } + static SIMDINLINE Integer vmask(__mmask32 m) + { + return _mm512_mask_set1_epi16(_mm512_setzero_si512(), m, -1); + } + static SIMDINLINE Integer vmask(__mmask64 m) + { + return _mm512_mask_set1_epi8(_mm512_setzero_si512(), m, -1); + } + public: SIMD_WRAPPERI_2_(and_ps, and_epi32); // return a & b (float treated as int) SIMD_WRAPPERI_2_(andnot_ps, andnot_epi32); // return (~a) & b (float treated as int) |