diff options
author | Matheus Castanho <msc@linux.ibm.com> | 2020-05-27 10:06:09 -0300 |
---|---|---|
committer | Hans Kristian Rosbach <hk-github@circlestorm.org> | 2020-06-08 14:47:17 +0200 |
commit | 3fbfd99cf665e23e879c3d9c2d9bd8e0a9cae87a (patch) | |
tree | 9316ce6c190ebec904d0f22687e847540ce27d49 /functable.c | |
parent | b81f4ee96dcbdf1db34b00727b6f1829a2ba1edb (diff) |
Add optimized slide_hash for POWER processors
This commit introduces a new slide_hash function that
uses VSX vector instructions to slide 8 hash elements at a time,
instead of just one as the standard code does.
Diffstat (limited to 'functable.c')
-rw-r--r-- | functable.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/functable.c b/functable.c index aad8766..e25da33 100644 --- a/functable.c +++ b/functable.c @@ -35,6 +35,8 @@ extern Pos quick_insert_string_acle(deflate_state *const s, const Pos str); void slide_hash_sse2(deflate_state *s); #elif defined(ARM_NEON_SLIDEHASH) void slide_hash_neon(deflate_state *s); +#elif defined(POWER8) +void slide_hash_power8(deflate_state *s); #endif #ifdef X86_AVX2 void slide_hash_avx2(deflate_state *s); @@ -174,6 +176,10 @@ ZLIB_INTERNAL void slide_hash_stub(deflate_state *s) { if (x86_cpu_has_avx2) functable.slide_hash = &slide_hash_avx2; #endif +#ifdef POWER8 + if (power_cpu_has_arch_2_07) + functable.slide_hash = &slide_hash_power8; +#endif functable.slide_hash(s); } |