diff options
author | Mike Klein <mtklein@chromium.org> | 2017-08-22 11:20:04 -0400 |
---|---|---|
committer | Mike Klein <mtklein@chromium.org> | 2017-08-22 16:22:22 +0000 |
commit | 72859cbb149ba09f04a1e9f11ab17fd6b53978b3 (patch) | |
tree | 8d11ce01379e0c8868ace47ef358520ca2dab58e /src/jumper | |
parent | a4c96cbe54b7ccf795ed0bcb8a972c3ba82b30db (diff) |
remove disabled mask load and store code
Things ran slower when we attempted to turn it on,
and we've already removed the analog in SkJumper_stages.cpp.
Change-Id: I61afa38990bf54d1bff2b1902f09a14df4e17da9
Reviewed-on: https://skia-review.googlesource.com/37080
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/jumper')
-rw-r--r-- | src/jumper/SkJumper_stages_8bit.cpp | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/src/jumper/SkJumper_stages_8bit.cpp b/src/jumper/SkJumper_stages_8bit.cpp index 6ebba0768b..1d6bc8a885 100644 --- a/src/jumper/SkJumper_stages_8bit.cpp +++ b/src/jumper/SkJumper_stages_8bit.cpp @@ -256,39 +256,6 @@ SI void store(T* dst, V v, size_t tail) { unaligned_store(dst, v); } -#if 0 && defined(__AVX2__) - SI U32 mask(size_t tail) { - // We go a little out of our way to avoid needing large constant values here. - - // It's easiest to build the mask as 8 8-bit values, either 0x00 or 0xff. - // Start fully on, then shift away lanes from the top until we've got our mask. - uint64_t mask = 0xffffffffffffffff >> 8*(kStride-tail); - - // Sign-extend each mask lane to its full width, 0x00000000 or 0xffffffff. - using S8 = int8_t __attribute__((ext_vector_type(8))); - using S32 = int32_t __attribute__((ext_vector_type(8))); - return (U32)__builtin_convertvector(unaligned_load<S8>(&mask), S32); - } - - template <> - inline U32 load(const uint32_t* src, size_t tail) { - __builtin_assume(tail < kStride); - if (__builtin_expect(tail, 0)) { - return _mm256_maskload_epi32((const int*)src, mask(tail)); - } - return unaligned_load<U32>(src); - } - - template <> - inline void store(uint32_t* dst, U32 v, size_t tail) { - __builtin_assume(tail < kStride); - if (__builtin_expect(tail, 0)) { - return _mm256_maskstore_epi32((int*)dst, mask(tail), v); - } - unaligned_store(dst, v); - } -#endif - // Used by load_ and store_ stages to get to the right (x,y) starting point of contiguous memory. template <typename T> SI T* ptr_at_xy(const SkJumper_MemoryCtx* ctx, int x, int y) { |