From 4c72a1a9c2dd2a1e5268289c21a8df07428eda0d Mon Sep 17 00:00:00 2001 From: Bimba Shrestha Date: Thu, 5 Mar 2020 09:55:38 -0800 Subject: [PATCH 1/2] adding vector to main loop --- lib/compress/zstd_fast.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/compress/zstd_fast.c b/lib/compress/zstd_fast.c index 6dbefee6b..8d4c82b1f 100644 --- a/lib/compress/zstd_fast.c +++ b/lib/compress/zstd_fast.c @@ -80,6 +80,10 @@ ZSTD_compressBlock_fast_generic( } /* Main Search Loop */ +#ifdef __INTEL_COMPILER + #pragma vector always + #pragma ivdep +#endif while (ip1 < ilimit) { /* < instead of <=, because check at ip0+2 */ size_t mLength; BYTE const* ip2 = ip0 + 2; From 43fc88f44358d659c2d07c58710d131d370545e6 Mon Sep 17 00:00:00 2001 From: Bimba Shrestha Date: Tue, 10 Mar 2020 14:57:27 -0500 Subject: [PATCH 2/2] Adding comment and remvoing ivdep --- lib/compress/zstd_fast.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/compress/zstd_fast.c b/lib/compress/zstd_fast.c index 8d4c82b1f..09e220b3a 100644 --- a/lib/compress/zstd_fast.c +++ b/lib/compress/zstd_fast.c @@ -81,8 +81,11 @@ ZSTD_compressBlock_fast_generic( /* Main Search Loop */ #ifdef __INTEL_COMPILER + /* From intel 'The vector pragma indicates that the loop should be + * vectorized if it is legal to do so'. Can be used together with + * #pragma ivdep (but have opted to exclude that because intel + * warns against using it).*/ #pragma vector always - #pragma ivdep #endif while (ip1 < ilimit) { /* < instead of <=, because check at ip0+2 */ size_t mLength;