try skipping _cvtmask64_u64

This may or may not work.

Change-Id: I0be7517deafe7f27087e782782a7e135110ddebe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285683
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
This commit is contained in:
Mike Klein 2020-04-27 11:15:44 -05:00 committed by Skia Commit-Bot
parent f3dca0bee1
commit 9b1efe253c

View File

@ -204,8 +204,8 @@ void blit_row_s32a_opaque(SkPMColor* dst, const SkPMColor* src, int len, U8CPU a
const auto alphaMask = _mm512_set1_epi32(0xFF000000); const auto alphaMask = _mm512_set1_epi32(0xFF000000);
auto ORed = _mm512_or_si512(s3, _mm512_or_si512(s2, _mm512_or_si512(s1, s0))); auto ORed = _mm512_or_si512(s3, _mm512_or_si512(s2, _mm512_or_si512(s1, s0)));
if (0 == _cvtmask64_u64(_mm512_cmpneq_epi8_mask(_mm512_and_si512(ORed, alphaMask), if (0 == _mm512_cmpneq_epi8_mask(_mm512_and_si512(ORed, alphaMask),
_mm512_setzero_si512()))) { _mm512_setzero_si512())) {
// All 64 source pixels are transparent. Nothing to do. // All 64 source pixels are transparent. Nothing to do.
src += 64; src += 64;
dst += 64; dst += 64;
@ -219,8 +219,8 @@ void blit_row_s32a_opaque(SkPMColor* dst, const SkPMColor* src, int len, U8CPU a
d3 = (__m512i*)(dst) + 3; d3 = (__m512i*)(dst) + 3;
auto ANDed = _mm512_and_si512(s3, _mm512_and_si512(s2, _mm512_and_si512(s1, s0))); auto ANDed = _mm512_and_si512(s3, _mm512_and_si512(s2, _mm512_and_si512(s1, s0)));
if (0 == _cvtmask64_u64(_mm512_cmpneq_epi8_mask(_mm512_and_si512(ANDed, alphaMask), if (0 == _mm512_cmpneq_epi8_mask(_mm512_and_si512(ANDed, alphaMask),
alphaMask))) { alphaMask)) {
// All 64 source pixels are opaque. SrcOver becomes Src. // All 64 source pixels are opaque. SrcOver becomes Src.
_mm512_storeu_si512(d0, s0); _mm512_storeu_si512(d0, s0);
_mm512_storeu_si512(d1, s1); _mm512_storeu_si512(d1, s1);