* [PATCH v2] x86_64: Implement evex512 version of strrchr and wcsrchr
@ 2022-11-03 20:08 Sunil K Pandey
2022-11-03 22:45 ` Sunil Pandey
2022-11-03 22:47 ` Noah Goldstein
0 siblings, 2 replies; 3+ messages in thread
From: Sunil K Pandey @ 2022-11-03 20:08 UTC (permalink / raw)
To: libc-alpha
Changes from v1:
Use vec api for register.
Replace VPCMP with VPCMPEQ
Restructure and remove 1 unconditional jump.
Change page cross logic to use sall.
This patch implements following evex512 version of string functions.
evex512 version takes up to 30% less cycle as compared to evex,
depending on length and alignment.
- strrchr function using 512 bit vectors.
- wcsrchr function using 512 bit vectors.
Code size data:
strrchr-evex.o 879 byte
strrchr-evex512.o 601 byte (-32%)
wcsrchr-evex.o 882 byte
wcsrchr-evex512.o 572 byte (-35%)
Placeholder function, not used by any processor at the moment.
---
sysdeps/x86_64/multiarch/Makefile | 2 +
sysdeps/x86_64/multiarch/ifunc-impl-list.c | 10 +
sysdeps/x86_64/multiarch/strrchr-evex-base.S | 264 +++++++++++++++++++
sysdeps/x86_64/multiarch/strrchr-evex512.S | 8 +
sysdeps/x86_64/multiarch/wcsrchr-evex512.S | 13 +
5 files changed, 297 insertions(+)
create mode 100644 sysdeps/x86_64/multiarch/strrchr-evex-base.S
create mode 100644 sysdeps/x86_64/multiarch/strrchr-evex512.S
create mode 100644 sysdeps/x86_64/multiarch/wcsrchr-evex512.S
diff --git a/sysdeps/x86_64/multiarch/Makefile b/sysdeps/x86_64/multiarch/Makefile
index 597ac9d5e9..066bfa48d9 100644
--- a/sysdeps/x86_64/multiarch/Makefile
+++ b/sysdeps/x86_64/multiarch/Makefile
@@ -114,6 +114,7 @@ sysdep_routines += \
strrchr-avx2 \
strrchr-avx2-rtm \
strrchr-evex \
+ strrchr-evex512 \
strrchr-sse2 \
strspn-sse4 \
strstr-avx512 \
@@ -157,6 +158,7 @@ sysdep_routines += \
wcsrchr-avx2 \
wcsrchr-avx2-rtm \
wcsrchr-evex \
+ wcsrchr-evex512 \
wcsrchr-sse2 \
wmemchr-avx2 \
wmemchr-avx2-rtm \
diff --git a/sysdeps/x86_64/multiarch/ifunc-impl-list.c b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
index c3d75a09f4..7cebee7ec7 100644
--- a/sysdeps/x86_64/multiarch/ifunc-impl-list.c
+++ b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
@@ -600,6 +600,11 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
&& CPU_FEATURE_USABLE (BMI1)
&& CPU_FEATURE_USABLE (BMI2)),
__strrchr_evex)
+ X86_IFUNC_IMPL_ADD_V4 (array, i, strrchr,
+ (CPU_FEATURE_USABLE (AVX512VL)
+ && CPU_FEATURE_USABLE (AVX512BW)
+ && CPU_FEATURE_USABLE (BMI2)),
+ __strrchr_evex512)
X86_IFUNC_IMPL_ADD_V3 (array, i, strrchr,
(CPU_FEATURE_USABLE (AVX2)
&& CPU_FEATURE_USABLE (BMI1)
@@ -828,6 +833,11 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
&& CPU_FEATURE_USABLE (BMI1)
&& CPU_FEATURE_USABLE (BMI2)),
__wcsrchr_evex)
+ X86_IFUNC_IMPL_ADD_V4 (array, i, wcsrchr,
+ (CPU_FEATURE_USABLE (AVX512VL)
+ && CPU_FEATURE_USABLE (AVX512BW)
+ && CPU_FEATURE_USABLE (BMI2)),
+ __wcsrchr_evex512)
X86_IFUNC_IMPL_ADD_V3 (array, i, wcsrchr,
(CPU_FEATURE_USABLE (AVX2)
&& CPU_FEATURE_USABLE (BMI1)
diff --git a/sysdeps/x86_64/multiarch/strrchr-evex-base.S b/sysdeps/x86_64/multiarch/strrchr-evex-base.S
new file mode 100644
index 0000000000..6698fe8b78
--- /dev/null
+++ b/sysdeps/x86_64/multiarch/strrchr-evex-base.S
@@ -0,0 +1,264 @@
+/* Placeholder function, not used by any processor at the moment.
+ Copyright (C) 2022 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* UNUSED. Exists purely as reference implementation. */
+
+#include <isa-level.h>
+
+#if ISA_SHOULD_BUILD (4)
+
+# include <sysdep.h>
+
+# ifdef USE_AS_WCSRCHR
+# define CHAR_SIZE 4
+# define VPBROADCAST vpbroadcastd
+# define VPCMPEQ vpcmpeqd
+# define VPMINU vpminud
+# define VPTESTN vptestnmd
+# else
+# define CHAR_SIZE 1
+# define VPBROADCAST vpbroadcastb
+# define VPCMPEQ vpcmpeqb
+# define VPMINU vpminub
+# define VPTESTN vptestnmb
+# endif
+
+# define PAGE_SIZE 4096
+# define CHAR_PER_VEC (VEC_SIZE / CHAR_SIZE)
+
+ .section SECTION(.text), "ax", @progbits
+/* Aligning entry point to 64 byte, provides better performance for
+ one vector length string. */
+ENTRY_P2ALIGN (STRRCHR, 6)
+
+ /* Broadcast CHAR to VMM(0). */
+ VPBROADCAST %esi, %VMM(0)
+ movl %edi, %eax
+ sall $20, %eax
+ cmpl $((PAGE_SIZE - VEC_SIZE) << 20), %eax
+ ja L(page_cross)
+
+L(page_cross_continue):
+ /* Compare [w]char for null, mask bit will be set for match. */
+ VMOVU (%rdi), %VMM(1)
+
+ VPTESTN %VMM(1), %VMM(1), %k1
+ KMOV %k1, %VRCX
+ test %VRCX, %VRCX
+ jz L(align_more)
+
+ VPCMPEQ %VMM(1), %VMM(0), %k0
+ KMOV %k0, %VRAX
+ BLSMSK %VRCX, %VRCX
+ and %VRCX, %VRAX
+ jz L(ret)
+
+ BSR %VRAX, %VRAX
+# ifdef USE_AS_WCSRCHR
+ leaq (%rdi, %rax, CHAR_SIZE), %rax
+# else
+ add %rdi, %rax
+# endif
+L(ret):
+ ret
+
+L(vector_x2_end):
+ VPCMPEQ %VMM(2), %VMM(0), %k2
+ KMOV %k2, %VRAX
+ BLSMSK %VRCX, %VRCX
+ and %VRCX, %VRAX
+ jz L(vector_x1_ret)
+
+ BSR %VRAX, %VRAX
+ leaq (VEC_SIZE)(%rdi, %rax, CHAR_SIZE), %rax
+ ret
+
+ /* Check the first vector at very last to look for match. */
+L(vector_x1_ret):
+ VPCMPEQ %VMM(1), %VMM(0), %k2
+ KMOV %k2, %VRAX
+ test %VRAX, %VRAX
+ jz L(ret)
+
+ BSR %VRAX, %VRAX
+# ifdef USE_AS_WCSRCHR
+ leaq (%rsi, %rax, CHAR_SIZE), %rax
+# else
+ add %rsi, %rax
+# endif
+ ret
+
+L(align_more):
+ /* Zero r8 to store match result. */
+ xorl %r8d, %r8d
+ /* Save pointer of first vector, in case if no match found. */
+ movq %rdi, %rsi
+ /* Align pointer to vector size. */
+ andq $-VEC_SIZE, %rdi
+ /* Loop unroll 2 times for 2 vector loop. */
+ VMOVA (VEC_SIZE)(%rdi), %VMM(2)
+ VPTESTN %VMM(2), %VMM(2), %k0
+ KMOV %k0, %VRCX
+ test %VRCX, %VRCX
+ jnz L(vector_x2_end)
+
+ /* Save pointer of second vector, in case if no match
+ found. */
+ movq %rdi, %r9
+ /* Align address to VEC_SIZE * 2 for loop. */
+ andq $-(VEC_SIZE * 2), %rdi
+
+ .p2align 4,,11
+L(loop):
+ /* 2 vector loop, as it provide better performance as compared
+ to 4 vector loop. */
+ VMOVA (VEC_SIZE * 2)(%rdi), %VMM(3)
+ VMOVA (VEC_SIZE * 3)(%rdi), %VMM(4)
+ VPCMPEQ %VMM(3), %VMM(0), %k1
+ VPCMPEQ %VMM(4), %VMM(0), %k2
+ VPMINU %VMM(3), %VMM(4), %VMM(5)
+ VPTESTN %VMM(5), %VMM(5), %k0
+ KOR %k1, %k2, %k3
+ subq $-(VEC_SIZE * 2), %rdi
+ /* If k0 and k3 zero, match and end of string not found. */
+ KORTEST %k0, %k3
+ jz L(loop)
+
+ /* If k0 is non zero, end of string found. */
+ KORTEST %k0, %k0
+ jnz L(endloop)
+
+ lea VEC_SIZE(%rdi), %r8
+ /* A match found, it need to be stored in r8 before loop
+ continue. */
+ /* Check second vector first. */
+ KMOV %k2, %VRDX
+ test %VRDX, %VRDX
+ jnz L(loop_vec_x2_match)
+
+ KMOV %k1, %VRDX
+ /* Match is in first vector, rdi offset need to be substracted
+ by VEC_SIZE. */
+ sub $VEC_SIZE, %r8
+
+ /* If second vector doesn't have match, first vector must
+ have match. */
+L(loop_vec_x2_match):
+ BSR %VRDX, %VRDX
+# ifdef USE_AS_WCSRCHR
+ sal $2, %rdx
+# endif
+ add %rdx, %r8
+ jmp L(loop)
+
+L(endloop):
+ /* Check if string end in first loop vector. */
+ VPTESTN %VMM(3), %VMM(3), %k0
+ KMOV %k0, %VRCX
+ test %VRCX, %VRCX
+ jnz L(loop_vector_x1_end)
+
+ /* Check if it has match in first loop vector. */
+ KMOV %k1, %VRAX
+ test %VRAX, %VRAX
+ jz L(loop_vector_x2_end)
+
+ BSR %VRAX, %VRAX
+ leaq (%rdi, %rax, CHAR_SIZE), %r8
+
+ /* String must end in second loop vector. */
+L(loop_vector_x2_end):
+ VPTESTN %VMM(4), %VMM(4), %k0
+ KMOV %k0, %VRCX
+ KMOV %k2, %VRAX
+ BLSMSK %VRCX, %VRCX
+ /* Check if it has match in second loop vector. */
+ and %VRCX, %VRAX
+ jz L(check_last_match)
+
+ BSR %VRAX, %VRAX
+ leaq (VEC_SIZE)(%rdi, %rax, CHAR_SIZE), %rax
+ ret
+
+ /* String end in first loop vector. */
+L(loop_vector_x1_end):
+ KMOV %k1, %VRAX
+ BLSMSK %VRCX, %VRCX
+ /* Check if it has match in second loop vector. */
+ and %VRCX, %VRAX
+ jz L(check_last_match)
+
+ BSR %VRAX, %VRAX
+ leaq (%rdi, %rax, CHAR_SIZE), %rax
+ ret
+
+ /* No match in first and second loop vector. */
+L(check_last_match):
+ /* Check if any match recorded in r8. */
+ test %r8, %r8
+ jz L(vector_x2_ret)
+ movq %r8, %rax
+ ret
+
+ /* No match recorded in r8. Check the second saved vector
+ in begining. */
+L(vector_x2_ret):
+ VPCMPEQ %VMM(2), %VMM(0), %k2
+ KMOV %k2, %VRAX
+ test %VRAX, %VRAX
+ jz L(vector_x1_ret)
+
+ /* Match found in the second saved vector. */
+ BSR %VRAX, %VRAX
+ leaq (VEC_SIZE)(%r9, %rax, CHAR_SIZE), %rax
+ ret
+
+L(page_cross):
+ mov %rdi, %rax
+ movl %edi, %ecx
+
+# ifdef USE_AS_WCSRCHR
+ /* Calculate number of compare result bits to be skipped for
+ wide string alignment adjustment. */
+ andl $(VEC_SIZE - 1), %ecx
+ sarl $2, %ecx
+# endif
+ /* ecx contains number of w[char] to be skipped as a result
+ of address alignment. */
+ andq $-VEC_SIZE, %rax
+ VMOVA (%rax), %VMM(1)
+ VPTESTN %VMM(1), %VMM(1), %k1
+ KMOV %k1, %VRAX
+ SHR %cl, %VRAX
+ jz L(page_cross_continue)
+ VPCMPEQ %VMM(1), %VMM(0), %k0
+ KMOV %k0, %VRDX
+ SHR %cl, %VRDX
+ BLSMSK %VRAX, %VRAX
+ and %VRDX, %VRAX
+ jz L(ret)
+ BSR %VRAX, %VRAX
+# ifdef USE_AS_WCSRCHR
+ leaq (%rdi, %rax, CHAR_SIZE), %rax
+# else
+ add %rdi, %rax
+# endif
+
+ ret
+END (STRRCHR)
+#endif
diff --git a/sysdeps/x86_64/multiarch/strrchr-evex512.S b/sysdeps/x86_64/multiarch/strrchr-evex512.S
new file mode 100644
index 0000000000..7d81e66375
--- /dev/null
+++ b/sysdeps/x86_64/multiarch/strrchr-evex512.S
@@ -0,0 +1,8 @@
+# ifndef STRRCHR
+# define STRRCHR __strrchr_evex512
+# endif
+
+#include "x86-evex512-vecs.h"
+#include "reg-macros.h"
+
+#include "strrchr-evex-base.S"
diff --git a/sysdeps/x86_64/multiarch/wcsrchr-evex512.S b/sysdeps/x86_64/multiarch/wcsrchr-evex512.S
new file mode 100644
index 0000000000..f241f63716
--- /dev/null
+++ b/sysdeps/x86_64/multiarch/wcsrchr-evex512.S
@@ -0,0 +1,13 @@
+#ifndef WCSRCHR
+# define WCSRCHR __wcsrchr_evex512
+#endif
+
+#define STRRCHR WCSRCHR
+#define USE_AS_WCSRCHR 1
+
+#define USE_WIDE_CHAR 1
+
+#include "x86-evex512-vecs.h"
+#include "reg-macros.h"
+
+#include "strrchr-evex512.S"
--
2.38.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] x86_64: Implement evex512 version of strrchr and wcsrchr
2022-11-03 20:08 [PATCH v2] x86_64: Implement evex512 version of strrchr and wcsrchr Sunil K Pandey
@ 2022-11-03 22:45 ` Sunil Pandey
2022-11-03 22:47 ` Noah Goldstein
1 sibling, 0 replies; 3+ messages in thread
From: Sunil Pandey @ 2022-11-03 22:45 UTC (permalink / raw)
To: Sunil K Pandey; +Cc: libc-alpha
[-- Attachment #1: Type: text/plain, Size: 13420 bytes --]
On Thu, Nov 3, 2022 at 1:08 PM Sunil K Pandey via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
> Changes from v1:
> Use vec api for register.
> Replace VPCMP with VPCMPEQ
> Restructure and remove 1 unconditional jump.
> Change page cross logic to use sall.
>
> This patch implements following evex512 version of string functions.
> evex512 version takes up to 30% less cycle as compared to evex,
> depending on length and alignment.
>
> - strrchr function using 512 bit vectors.
> - wcsrchr function using 512 bit vectors.
>
> Code size data:
>
> strrchr-evex.o 879 byte
> strrchr-evex512.o 601 byte (-32%)
>
> wcsrchr-evex.o 882 byte
> wcsrchr-evex512.o 572 byte (-35%)
>
> Placeholder function, not used by any processor at the moment.
> ---
> sysdeps/x86_64/multiarch/Makefile | 2 +
> sysdeps/x86_64/multiarch/ifunc-impl-list.c | 10 +
> sysdeps/x86_64/multiarch/strrchr-evex-base.S | 264 +++++++++++++++++++
> sysdeps/x86_64/multiarch/strrchr-evex512.S | 8 +
> sysdeps/x86_64/multiarch/wcsrchr-evex512.S | 13 +
> 5 files changed, 297 insertions(+)
> create mode 100644 sysdeps/x86_64/multiarch/strrchr-evex-base.S
> create mode 100644 sysdeps/x86_64/multiarch/strrchr-evex512.S
> create mode 100644 sysdeps/x86_64/multiarch/wcsrchr-evex512.S
>
> diff --git a/sysdeps/x86_64/multiarch/Makefile b/sysdeps/x86_64/multiarch/Makefile
> index 597ac9d5e9..066bfa48d9 100644
> --- a/sysdeps/x86_64/multiarch/Makefile
> +++ b/sysdeps/x86_64/multiarch/Makefile
> @@ -114,6 +114,7 @@ sysdep_routines += \
> strrchr-avx2 \
> strrchr-avx2-rtm \
> strrchr-evex \
> + strrchr-evex512 \
> strrchr-sse2 \
> strspn-sse4 \
> strstr-avx512 \
> @@ -157,6 +158,7 @@ sysdep_routines += \
> wcsrchr-avx2 \
> wcsrchr-avx2-rtm \
> wcsrchr-evex \
> + wcsrchr-evex512 \
> wcsrchr-sse2 \
> wmemchr-avx2 \
> wmemchr-avx2-rtm \
> diff --git a/sysdeps/x86_64/multiarch/ifunc-impl-list.c b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
> index c3d75a09f4..7cebee7ec7 100644
> --- a/sysdeps/x86_64/multiarch/ifunc-impl-list.c
> +++ b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
> @@ -600,6 +600,11 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
> && CPU_FEATURE_USABLE (BMI1)
> && CPU_FEATURE_USABLE (BMI2)),
> __strrchr_evex)
> + X86_IFUNC_IMPL_ADD_V4 (array, i, strrchr,
> + (CPU_FEATURE_USABLE (AVX512VL)
> + && CPU_FEATURE_USABLE (AVX512BW)
> + && CPU_FEATURE_USABLE (BMI2)),
> + __strrchr_evex512)
> X86_IFUNC_IMPL_ADD_V3 (array, i, strrchr,
> (CPU_FEATURE_USABLE (AVX2)
> && CPU_FEATURE_USABLE (BMI1)
> @@ -828,6 +833,11 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
> && CPU_FEATURE_USABLE (BMI1)
> && CPU_FEATURE_USABLE (BMI2)),
> __wcsrchr_evex)
> + X86_IFUNC_IMPL_ADD_V4 (array, i, wcsrchr,
> + (CPU_FEATURE_USABLE (AVX512VL)
> + && CPU_FEATURE_USABLE (AVX512BW)
> + && CPU_FEATURE_USABLE (BMI2)),
> + __wcsrchr_evex512)
> X86_IFUNC_IMPL_ADD_V3 (array, i, wcsrchr,
> (CPU_FEATURE_USABLE (AVX2)
> && CPU_FEATURE_USABLE (BMI1)
> diff --git a/sysdeps/x86_64/multiarch/strrchr-evex-base.S b/sysdeps/x86_64/multiarch/strrchr-evex-base.S
> new file mode 100644
> index 0000000000..6698fe8b78
> --- /dev/null
> +++ b/sysdeps/x86_64/multiarch/strrchr-evex-base.S
> @@ -0,0 +1,264 @@
> +/* Placeholder function, not used by any processor at the moment.
> + Copyright (C) 2022 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, see
> + <https://www.gnu.org/licenses/>. */
> +
> +/* UNUSED. Exists purely as reference implementation. */
> +
> +#include <isa-level.h>
> +
> +#if ISA_SHOULD_BUILD (4)
> +
> +# include <sysdep.h>
> +
> +# ifdef USE_AS_WCSRCHR
> +# define CHAR_SIZE 4
> +# define VPBROADCAST vpbroadcastd
> +# define VPCMPEQ vpcmpeqd
> +# define VPMINU vpminud
> +# define VPTESTN vptestnmd
> +# else
> +# define CHAR_SIZE 1
> +# define VPBROADCAST vpbroadcastb
> +# define VPCMPEQ vpcmpeqb
> +# define VPMINU vpminub
> +# define VPTESTN vptestnmb
> +# endif
> +
> +# define PAGE_SIZE 4096
> +# define CHAR_PER_VEC (VEC_SIZE / CHAR_SIZE)
> +
> + .section SECTION(.text), "ax", @progbits
> +/* Aligning entry point to 64 byte, provides better performance for
> + one vector length string. */
> +ENTRY_P2ALIGN (STRRCHR, 6)
> +
> + /* Broadcast CHAR to VMM(0). */
> + VPBROADCAST %esi, %VMM(0)
> + movl %edi, %eax
> + sall $20, %eax
> + cmpl $((PAGE_SIZE - VEC_SIZE) << 20), %eax
> + ja L(page_cross)
> +
> +L(page_cross_continue):
> + /* Compare [w]char for null, mask bit will be set for match. */
> + VMOVU (%rdi), %VMM(1)
> +
> + VPTESTN %VMM(1), %VMM(1), %k1
> + KMOV %k1, %VRCX
> + test %VRCX, %VRCX
> + jz L(align_more)
> +
> + VPCMPEQ %VMM(1), %VMM(0), %k0
> + KMOV %k0, %VRAX
> + BLSMSK %VRCX, %VRCX
> + and %VRCX, %VRAX
> + jz L(ret)
> +
> + BSR %VRAX, %VRAX
> +# ifdef USE_AS_WCSRCHR
> + leaq (%rdi, %rax, CHAR_SIZE), %rax
> +# else
> + add %rdi, %rax
> +# endif
> +L(ret):
> + ret
> +
> +L(vector_x2_end):
> + VPCMPEQ %VMM(2), %VMM(0), %k2
> + KMOV %k2, %VRAX
> + BLSMSK %VRCX, %VRCX
> + and %VRCX, %VRAX
> + jz L(vector_x1_ret)
> +
> + BSR %VRAX, %VRAX
> + leaq (VEC_SIZE)(%rdi, %rax, CHAR_SIZE), %rax
> + ret
> +
> + /* Check the first vector at very last to look for match. */
> +L(vector_x1_ret):
> + VPCMPEQ %VMM(1), %VMM(0), %k2
> + KMOV %k2, %VRAX
> + test %VRAX, %VRAX
> + jz L(ret)
> +
> + BSR %VRAX, %VRAX
> +# ifdef USE_AS_WCSRCHR
> + leaq (%rsi, %rax, CHAR_SIZE), %rax
> +# else
> + add %rsi, %rax
> +# endif
> + ret
> +
> +L(align_more):
> + /* Zero r8 to store match result. */
> + xorl %r8d, %r8d
> + /* Save pointer of first vector, in case if no match found. */
> + movq %rdi, %rsi
> + /* Align pointer to vector size. */
> + andq $-VEC_SIZE, %rdi
> + /* Loop unroll 2 times for 2 vector loop. */
> + VMOVA (VEC_SIZE)(%rdi), %VMM(2)
> + VPTESTN %VMM(2), %VMM(2), %k0
> + KMOV %k0, %VRCX
> + test %VRCX, %VRCX
> + jnz L(vector_x2_end)
> +
> + /* Save pointer of second vector, in case if no match
> + found. */
> + movq %rdi, %r9
> + /* Align address to VEC_SIZE * 2 for loop. */
> + andq $-(VEC_SIZE * 2), %rdi
> +
> + .p2align 4,,11
> +L(loop):
> + /* 2 vector loop, as it provide better performance as compared
> + to 4 vector loop. */
> + VMOVA (VEC_SIZE * 2)(%rdi), %VMM(3)
> + VMOVA (VEC_SIZE * 3)(%rdi), %VMM(4)
> + VPCMPEQ %VMM(3), %VMM(0), %k1
> + VPCMPEQ %VMM(4), %VMM(0), %k2
> + VPMINU %VMM(3), %VMM(4), %VMM(5)
> + VPTESTN %VMM(5), %VMM(5), %k0
> + KOR %k1, %k2, %k3
> + subq $-(VEC_SIZE * 2), %rdi
> + /* If k0 and k3 zero, match and end of string not found. */
> + KORTEST %k0, %k3
> + jz L(loop)
> +
> + /* If k0 is non zero, end of string found. */
> + KORTEST %k0, %k0
> + jnz L(endloop)
> +
> + lea VEC_SIZE(%rdi), %r8
> + /* A match found, it need to be stored in r8 before loop
> + continue. */
> + /* Check second vector first. */
> + KMOV %k2, %VRDX
> + test %VRDX, %VRDX
> + jnz L(loop_vec_x2_match)
> +
> + KMOV %k1, %VRDX
> + /* Match is in first vector, rdi offset need to be substracted
> + by VEC_SIZE. */
> + sub $VEC_SIZE, %r8
> +
> + /* If second vector doesn't have match, first vector must
> + have match. */
> +L(loop_vec_x2_match):
> + BSR %VRDX, %VRDX
> +# ifdef USE_AS_WCSRCHR
> + sal $2, %rdx
> +# endif
> + add %rdx, %r8
> + jmp L(loop)
> +
> +L(endloop):
> + /* Check if string end in first loop vector. */
> + VPTESTN %VMM(3), %VMM(3), %k0
> + KMOV %k0, %VRCX
> + test %VRCX, %VRCX
> + jnz L(loop_vector_x1_end)
> +
> + /* Check if it has match in first loop vector. */
> + KMOV %k1, %VRAX
> + test %VRAX, %VRAX
> + jz L(loop_vector_x2_end)
> +
> + BSR %VRAX, %VRAX
> + leaq (%rdi, %rax, CHAR_SIZE), %r8
> +
> + /* String must end in second loop vector. */
> +L(loop_vector_x2_end):
> + VPTESTN %VMM(4), %VMM(4), %k0
> + KMOV %k0, %VRCX
> + KMOV %k2, %VRAX
> + BLSMSK %VRCX, %VRCX
> + /* Check if it has match in second loop vector. */
> + and %VRCX, %VRAX
> + jz L(check_last_match)
> +
> + BSR %VRAX, %VRAX
> + leaq (VEC_SIZE)(%rdi, %rax, CHAR_SIZE), %rax
> + ret
> +
> + /* String end in first loop vector. */
> +L(loop_vector_x1_end):
> + KMOV %k1, %VRAX
> + BLSMSK %VRCX, %VRCX
> + /* Check if it has match in second loop vector. */
> + and %VRCX, %VRAX
> + jz L(check_last_match)
> +
> + BSR %VRAX, %VRAX
> + leaq (%rdi, %rax, CHAR_SIZE), %rax
> + ret
> +
> + /* No match in first and second loop vector. */
> +L(check_last_match):
> + /* Check if any match recorded in r8. */
> + test %r8, %r8
> + jz L(vector_x2_ret)
> + movq %r8, %rax
> + ret
> +
> + /* No match recorded in r8. Check the second saved vector
> + in begining. */
> +L(vector_x2_ret):
> + VPCMPEQ %VMM(2), %VMM(0), %k2
> + KMOV %k2, %VRAX
> + test %VRAX, %VRAX
> + jz L(vector_x1_ret)
> +
> + /* Match found in the second saved vector. */
> + BSR %VRAX, %VRAX
> + leaq (VEC_SIZE)(%r9, %rax, CHAR_SIZE), %rax
> + ret
> +
> +L(page_cross):
> + mov %rdi, %rax
> + movl %edi, %ecx
> +
> +# ifdef USE_AS_WCSRCHR
> + /* Calculate number of compare result bits to be skipped for
> + wide string alignment adjustment. */
> + andl $(VEC_SIZE - 1), %ecx
> + sarl $2, %ecx
> +# endif
> + /* ecx contains number of w[char] to be skipped as a result
> + of address alignment. */
> + andq $-VEC_SIZE, %rax
> + VMOVA (%rax), %VMM(1)
> + VPTESTN %VMM(1), %VMM(1), %k1
> + KMOV %k1, %VRAX
> + SHR %cl, %VRAX
> + jz L(page_cross_continue)
> + VPCMPEQ %VMM(1), %VMM(0), %k0
> + KMOV %k0, %VRDX
> + SHR %cl, %VRDX
> + BLSMSK %VRAX, %VRAX
> + and %VRDX, %VRAX
> + jz L(ret)
> + BSR %VRAX, %VRAX
> +# ifdef USE_AS_WCSRCHR
> + leaq (%rdi, %rax, CHAR_SIZE), %rax
> +# else
> + add %rdi, %rax
> +# endif
> +
> + ret
> +END (STRRCHR)
> +#endif
> diff --git a/sysdeps/x86_64/multiarch/strrchr-evex512.S b/sysdeps/x86_64/multiarch/strrchr-evex512.S
> new file mode 100644
> index 0000000000..7d81e66375
> --- /dev/null
> +++ b/sysdeps/x86_64/multiarch/strrchr-evex512.S
> @@ -0,0 +1,8 @@
> +# ifndef STRRCHR
> +# define STRRCHR __strrchr_evex512
> +# endif
> +
> +#include "x86-evex512-vecs.h"
> +#include "reg-macros.h"
> +
> +#include "strrchr-evex-base.S"
> diff --git a/sysdeps/x86_64/multiarch/wcsrchr-evex512.S b/sysdeps/x86_64/multiarch/wcsrchr-evex512.S
> new file mode 100644
> index 0000000000..f241f63716
> --- /dev/null
> +++ b/sysdeps/x86_64/multiarch/wcsrchr-evex512.S
> @@ -0,0 +1,13 @@
> +#ifndef WCSRCHR
> +# define WCSRCHR __wcsrchr_evex512
> +#endif
> +
> +#define STRRCHR WCSRCHR
> +#define USE_AS_WCSRCHR 1
> +
> +#define USE_WIDE_CHAR 1
> +
> +#include "x86-evex512-vecs.h"
> +#include "reg-macros.h"
> +
> +#include "strrchr-evex512.S"
> --
> 2.38.1
>
SKX microbenchmark data:
[-- Attachment #2: strrchr_10.txt --]
[-- Type: text/plain, Size: 167618 bytes --]
Function: strrchr
Variant:
__strrchr_evex __strrchr_evex512
========================================================================================================================
len=2048, pos=32, align=0: 13.21 9.51 ( 28.01%)
len=2048, pos=32, align=1: 14.40 9.53 ( 33.80%)
len=2048, pos=64, align=0: 15.13 14.68 ( 2.92%)
len=2048, pos=64, align=2: 15.21 14.19 ( 6.71%)
len=2048, pos=128, align=0: 23.92 19.05 ( 20.35%)
len=2048, pos=128, align=3: 24.27 16.80 ( 30.78%)
len=2048, pos=256, align=0: 29.69 21.35 ( 28.10%)
len=2048, pos=256, align=4: 29.86 21.40 ( 28.34%)
len=2048, pos=512, align=0: 39.77 29.41 ( 26.05%)
len=2048, pos=512, align=5: 39.61 29.88 ( 24.57%)
len=2048, pos=1024, align=0: 65.70 44.33 ( 32.53%)
len=2048, pos=1024, align=6: 65.72 43.21 ( 34.26%)
len=2048, pos=2048, align=0: 117.04 75.87 ( 35.18%)
len=2048, pos=2048, align=7: 117.49 75.96 ( 35.35%)
len=2048, pos=4096, align=0: 116.65 75.90 ( 34.93%)
len=2048, pos=4096, align=8: 115.89 75.06 ( 35.23%)
len=256, pos=64, align=1: 16.14 13.20 ( 18.20%)
len=256, pos=64, align=1: 15.22 14.19 ( 6.75%)
len=256, pos=64, align=15: 15.49 14.20 ( 8.30%)
len=256, pos=64, align=15: 15.12 14.44 ( 4.47%)
len=256, pos=64, align=2: 15.98 13.20 ( 17.40%)
len=256, pos=64, align=2: 15.16 14.18 ( 6.46%)
len=256, pos=64, align=30: 15.48 14.20 ( 8.24%)
len=256, pos=64, align=30: 15.13 14.17 ( 6.37%)
len=256, pos=64, align=3: 15.19 14.69 ( 3.27%)
len=256, pos=64, align=3: 15.42 14.55 ( 5.66%)
len=256, pos=64, align=45: 15.10 14.58 ( 3.46%)
len=256, pos=64, align=45: 15.91 13.20 ( 17.05%)
len=256, pos=64, align=4: 15.22 14.19 ( 6.78%)
len=256, pos=64, align=4: 15.58 14.17 ( 9.06%)
len=256, pos=64, align=60: 16.21 13.20 ( 18.54%)
len=256, pos=64, align=60: 15.20 14.21 ( 6.51%)
len=256, pos=64, align=5: 15.13 14.18 ( 6.25%)
len=256, pos=64, align=5: 15.10 14.43 ( 4.44%)
len=256, pos=64, align=75: 15.27 14.16 ( 7.30%)
len=256, pos=64, align=75: 15.20 14.16 ( 6.83%)
len=256, pos=64, align=6: 15.41 14.17 ( 8.04%)
len=256, pos=64, align=6: 15.15 14.19 ( 6.35%)
len=256, pos=64, align=90: 15.11 14.11 ( 6.63%)
len=256, pos=64, align=90: 15.11 14.16 ( 6.27%)
len=256, pos=64, align=7: 15.17 14.54 ( 4.14%)
len=256, pos=64, align=7: 16.39 13.20 ( 19.45%)
len=256, pos=64, align=105: 15.17 14.11 ( 6.99%)
len=256, pos=64, align=105: 15.49 14.11 ( 8.90%)
len=1, pos=0, align=0: 9.61 9.60 ( 0.02%)
len=1, pos=0, align=0: 8.72 8.40 ( 3.62%)
len=1, pos=0, align=4095: 12.05 13.28 (-10.17%)
len=2, pos=1, align=0: 8.73 8.40 ( 3.78%)
len=2, pos=1, align=0: 8.40 8.40 ( 0.00%)
len=2, pos=1, align=4095: 42.33 42.39 ( -0.15%)
len=3, pos=2, align=0: 8.41 8.40 ( 0.03%)
len=3, pos=2, align=0: 8.40 8.40 ( 0.00%)
len=3, pos=2, align=4094: 42.00 42.42 ( -1.00%)
len=4, pos=3, align=0: 8.40 8.42 ( -0.18%)
len=4, pos=3, align=0: 8.72 8.41 ( 3.59%)
len=4, pos=3, align=4094: 43.17 43.02 ( 0.34%)
len=5, pos=4, align=0: 8.73 8.42 ( 3.49%)
len=5, pos=4, align=0: 8.40 8.42 ( -0.20%)
len=5, pos=4, align=4093: 42.33 42.40 ( -0.16%)
len=6, pos=5, align=0: 8.40 8.42 ( -0.20%)
len=6, pos=5, align=0: 8.40 8.42 ( -0.19%)
len=6, pos=5, align=4093: 42.86 42.06 ( 1.86%)
len=7, pos=6, align=0: 8.40 8.42 ( -0.19%)
len=7, pos=6, align=0: 8.40 8.42 ( -0.21%)
len=7, pos=6, align=4092: 42.00 42.53 ( -1.25%)
len=8, pos=7, align=0: 8.40 8.71 ( -3.65%)
len=8, pos=7, align=0: 8.40 8.40 ( 0.00%)
len=8, pos=7, align=4092: 42.81 42.42 ( 0.91%)
len=9, pos=8, align=0: 8.40 8.73 ( -3.94%)
len=9, pos=8, align=0: 8.40 8.42 ( -0.22%)
len=9, pos=8, align=4091: 42.81 42.89 ( -0.19%)
len=10, pos=9, align=0: 8.40 8.73 ( -3.92%)
len=10, pos=9, align=0: 8.40 8.42 ( -0.21%)
len=10, pos=9, align=4091: 42.81 42.36 ( 1.05%)
len=11, pos=10, align=0: 8.76 8.42 ( 3.83%)
len=11, pos=10, align=0: 8.40 8.42 ( -0.23%)
len=11, pos=10, align=4090: 42.32 42.00 ( 0.75%)
len=12, pos=11, align=0: 8.40 8.42 ( -0.19%)
len=12, pos=11, align=0: 8.76 8.42 ( 3.81%)
len=12, pos=11, align=4090: 42.36 42.06 ( 0.72%)
len=13, pos=12, align=0: 8.40 8.42 ( -0.20%)
len=13, pos=12, align=0: 8.40 8.42 ( -0.17%)
len=13, pos=12, align=4089: 42.81 42.93 ( -0.29%)
len=14, pos=13, align=0: 8.40 8.73 ( -3.88%)
len=14, pos=13, align=0: 8.40 8.42 ( -0.21%)
len=14, pos=13, align=4089: 42.91 42.06 ( 1.99%)
len=15, pos=14, align=0: 8.40 8.42 ( -0.19%)
len=15, pos=14, align=0: 8.40 8.42 ( -0.19%)
len=15, pos=14, align=4088: 42.81 42.35 ( 1.07%)
len=16, pos=15, align=0: 8.71 8.42 ( 3.29%)
len=16, pos=15, align=0: 8.80 8.42 ( 4.33%)
len=16, pos=15, align=4088: 42.56 42.06 ( 1.18%)
len=17, pos=16, align=0: 8.40 8.42 ( -0.19%)
len=17, pos=16, align=0: 8.40 8.42 ( -0.19%)
len=17, pos=16, align=4087: 43.12 42.06 ( 2.47%)
len=18, pos=17, align=0: 8.40 8.42 ( -0.22%)
len=18, pos=17, align=0: 8.40 8.42 ( -0.19%)
len=18, pos=17, align=4087: 43.04 42.06 ( 2.28%)
len=19, pos=18, align=0: 8.40 8.42 ( -0.20%)
len=19, pos=18, align=0: 8.40 8.42 ( -0.17%)
len=19, pos=18, align=4086: 42.37 42.05 ( 0.74%)
len=20, pos=19, align=0: 8.40 8.42 ( -0.20%)
len=20, pos=19, align=0: 8.40 8.42 ( -0.19%)
len=20, pos=19, align=4086: 42.32 42.00 ( 0.74%)
len=21, pos=20, align=0: 8.41 8.42 ( -0.17%)
len=21, pos=20, align=0: 8.40 8.42 ( -0.17%)
len=21, pos=20, align=4085: 42.73 42.42 ( 0.73%)
len=22, pos=21, align=0: 10.12 8.42 ( 16.78%)
len=22, pos=21, align=0: 9.37 9.55 ( -1.97%)
len=22, pos=21, align=4085: 42.66 42.35 ( 0.72%)
len=23, pos=22, align=0: 9.24 9.52 ( -3.07%)
len=23, pos=22, align=0: 8.42 8.42 ( 0.04%)
len=23, pos=22, align=4084: 42.01 42.48 ( -1.13%)
len=24, pos=23, align=0: 8.42 8.42 ( 0.03%)
len=24, pos=23, align=0: 9.20 9.61 ( -4.45%)
len=24, pos=23, align=4084: 42.71 42.77 ( -0.14%)
len=25, pos=24, align=0: 10.09 8.42 ( 16.56%)
len=25, pos=24, align=0: 8.42 8.42 ( 0.05%)
len=25, pos=24, align=4083: 42.33 42.00 ( 0.77%)
len=26, pos=25, align=0: 9.76 10.46 ( -7.14%)
len=26, pos=25, align=0: 9.87 9.67 ( 2.04%)
len=26, pos=25, align=4083: 42.32 43.49 ( -2.77%)
len=27, pos=26, align=0: 8.40 8.42 ( -0.17%)
len=27, pos=26, align=0: 9.30 9.58 ( -3.01%)
len=27, pos=26, align=4082: 42.67 43.35 ( -1.60%)
len=28, pos=27, align=0: 9.28 9.58 ( -3.22%)
len=28, pos=27, align=0: 8.40 8.42 ( -0.21%)
len=28, pos=27, align=4082: 42.66 43.03 ( -0.87%)
len=29, pos=28, align=0: 10.11 8.42 ( 16.73%)
len=29, pos=28, align=0: 8.40 8.42 ( -0.17%)
len=29, pos=28, align=4081: 43.47 43.05 ( 0.97%)
len=30, pos=29, align=0: 10.09 8.42 ( 16.54%)
len=30, pos=29, align=0: 10.13 8.42 ( 16.92%)
len=30, pos=29, align=4081: 42.35 42.80 ( -1.05%)
len=31, pos=30, align=0: 10.12 8.42 ( 16.81%)
len=31, pos=30, align=0: 9.58 10.17 ( -6.19%)
len=31, pos=30, align=4080: 42.44 42.34 ( 0.23%)
len=32, pos=31, align=0: 9.31 9.44 ( -1.44%)
len=32, pos=31, align=0: 9.23 9.52 ( -3.11%)
len=32, pos=31, align=4080: 42.69 42.05 ( 1.49%)
len=16, pos=0, align=0: 8.40 8.42 ( -0.17%)
len=32, pos=16, align=0: 9.20 9.51 ( -3.44%)
len=48, pos=32, align=0: 14.00 9.56 ( 31.76%)
len=64, pos=48, align=0: 14.00 9.52 ( 32.00%)
len=80, pos=64, align=0: 15.18 14.21 ( 6.37%)
len=96, pos=80, align=0: 15.54 14.93 ( 3.92%)
len=112, pos=96, align=0: 16.39 14.11 ( 13.96%)
len=128, pos=112, align=0: 16.31 14.47 ( 11.31%)
len=144, pos=128, align=0: 23.99 18.01 ( 24.93%)
len=160, pos=144, align=0: 23.86 19.03 ( 20.25%)
len=176, pos=160, align=0: 24.53 16.80 ( 31.51%)
len=192, pos=176, align=0: 23.58 17.82 ( 24.40%)
len=208, pos=192, align=0: 27.50 16.82 ( 38.83%)
len=224, pos=208, align=0: 27.53 16.76 ( 39.14%)
len=240, pos=224, align=0: 27.09 17.09 ( 36.90%)
len=256, pos=240, align=0: 27.89 15.98 ( 42.71%)
len=272, pos=256, align=0: 29.61 21.42 ( 27.66%)
len=288, pos=272, align=0: 28.86 22.05 ( 23.61%)
len=16, pos=0, align=0: 9.61 9.60 ( 0.01%)
len=16, pos=16, align=0: 8.40 8.40 ( 0.01%)
len=16, pos=16, align=0: 8.40 8.40 ( 0.02%)
len=16, pos=0, align=0: 8.40 8.71 ( -3.70%)
len=16, pos=16, align=0: 8.40 8.40 ( 0.00%)
len=16, pos=48, align=0: 8.40 8.40 ( 0.00%)
len=64, pos=16, align=0: 8.40 8.40 ( 0.02%)
len=16, pos=96, align=0: 8.40 8.40 ( 0.03%)
len=112, pos=16, align=0: 8.40 8.40 ( 0.03%)
len=16, pos=144, align=0: 8.40 8.40 ( 0.03%)
len=160, pos=16, align=0: 8.40 8.40 ( 0.03%)
len=16, pos=192, align=0: 8.40 8.40 ( 0.03%)
len=208, pos=16, align=0: 8.40 8.40 ( 0.03%)
len=16, pos=240, align=0: 8.40 8.40 ( 0.03%)
len=256, pos=16, align=0: 8.40 8.40 ( 0.03%)
len=16, pos=288, align=0: 8.40 8.40 ( 0.03%)
len=304, pos=16, align=0: 8.40 8.40 ( 0.03%)
len=32, pos=0, align=0: 8.40 8.40 ( 0.01%)
len=32, pos=32, align=0: 13.97 9.44 ( 32.42%)
len=32, pos=32, align=0: 13.20 8.40 ( 36.36%)
len=32, pos=0, align=0: 8.40 8.40 ( 0.03%)
len=32, pos=32, align=0: 13.20 8.40 ( 36.37%)
len=32, pos=48, align=0: 13.99 9.51 ( 32.03%)
len=80, pos=32, align=0: 14.19 9.81 ( 30.84%)
len=32, pos=96, align=0: 13.95 9.55 ( 31.54%)
len=128, pos=32, align=0: 14.30 9.51 ( 33.52%)
len=32, pos=144, align=0: 14.01 9.51 ( 32.10%)
len=176, pos=32, align=0: 14.35 9.55 ( 33.41%)
len=32, pos=192, align=0: 13.21 8.40 ( 36.38%)
len=224, pos=32, align=0: 14.22 9.42 ( 33.74%)
len=32, pos=240, align=0: 14.36 9.54 ( 33.56%)
len=272, pos=32, align=0: 14.70 8.40 ( 42.83%)
len=32, pos=288, align=0: 14.32 9.57 ( 33.14%)
len=320, pos=32, align=0: 14.70 8.40 ( 42.84%)
len=64, pos=0, align=0: 8.72 8.40 ( 3.64%)
len=64, pos=64, align=0: 15.95 13.21 ( 17.21%)
len=64, pos=64, align=0: 15.19 14.16 ( 6.73%)
len=64, pos=0, align=0: 9.60 9.86 ( -2.62%)
len=64, pos=64, align=0: 15.91 13.20 ( 17.00%)
len=64, pos=48, align=0: 13.89 9.55 ( 31.30%)
len=112, pos=64, align=0: 15.25 14.11 ( 7.48%)
len=64, pos=16, align=0: 8.40 9.60 (-14.26%)
len=16, pos=48, align=0: 8.40 8.40 ( 0.03%)
len=16, pos=64, align=0: 8.40 8.40 ( 0.03%)
len=64, pos=96, align=0: 15.34 14.48 ( 5.56%)
len=160, pos=64, align=0: 16.00 13.20 ( 17.51%)
len=64, pos=144, align=0: 15.20 14.20 ( 6.58%)
len=208, pos=64, align=0: 15.59 14.19 ( 8.98%)
len=64, pos=192, align=0: 16.08 13.20 ( 17.92%)
len=256, pos=64, align=0: 15.19 14.14 ( 6.93%)
len=64, pos=240, align=0: 15.54 14.23 ( 8.45%)
len=304, pos=64, align=0: 15.86 13.56 ( 14.51%)
len=64, pos=288, align=0: 15.16 14.11 ( 6.93%)
len=352, pos=64, align=0: 15.22 14.10 ( 7.32%)
len=128, pos=0, align=0: 8.40 8.40 ( 0.00%)
len=128, pos=128, align=0: 23.83 18.99 ( 20.31%)
len=128, pos=128, align=0: 24.28 16.80 ( 30.81%)
len=128, pos=0, align=0: 9.29 8.40 ( 9.52%)
len=128, pos=128, align=0: 24.32 16.80 ( 30.91%)
len=128, pos=48, align=0: 13.24 9.51 ( 28.19%)
len=176, pos=128, align=0: 23.55 18.19 ( 22.73%)
len=128, pos=80, align=0: 15.74 13.20 ( 16.12%)
len=80, pos=48, align=0: 13.94 9.63 ( 30.90%)
len=80, pos=128, align=0: 15.17 14.17 ( 6.57%)
len=128, pos=96, align=0: 16.34 14.87 ( 9.04%)
len=224, pos=128, align=0: 23.49 18.09 ( 22.98%)
len=128, pos=32, align=0: 14.74 8.40 ( 43.00%)
len=32, pos=96, align=0: 14.00 9.57 ( 31.60%)
len=32, pos=128, align=0: 13.21 9.60 ( 27.30%)
len=128, pos=144, align=0: 23.89 17.85 ( 25.27%)
len=272, pos=128, align=0: 23.46 17.75 ( 24.33%)
len=128, pos=192, align=0: 23.64 18.16 ( 23.20%)
len=320, pos=128, align=0: 24.30 16.80 ( 30.87%)
len=128, pos=240, align=0: 23.56 17.75 ( 24.64%)
len=368, pos=128, align=0: 24.01 17.96 ( 25.17%)
len=128, pos=288, align=0: 24.23 16.80 ( 30.65%)
len=416, pos=128, align=0: 23.48 17.85 ( 23.98%)
len=256, pos=0, align=0: 8.40 8.40 ( 0.01%)
len=256, pos=256, align=0: 30.81 20.41 ( 33.78%)
len=256, pos=256, align=0: 29.52 21.65 ( 26.68%)
len=256, pos=0, align=0: 8.40 8.40 ( 0.01%)
len=256, pos=256, align=0: 30.78 21.08 ( 31.52%)
len=256, pos=48, align=0: 13.20 10.70 ( 18.98%)
len=304, pos=256, align=0: 29.69 21.81 ( 26.53%)
len=256, pos=208, align=0: 27.76 17.12 ( 38.33%)
len=208, pos=48, align=0: 14.29 10.75 ( 24.83%)
len=208, pos=256, align=0: 28.58 16.80 ( 41.21%)
len=256, pos=96, align=0: 16.40 14.17 ( 13.58%)
len=352, pos=256, align=0: 29.74 22.10 ( 25.68%)
len=256, pos=160, align=0: 24.56 16.80 ( 31.57%)
len=160, pos=96, align=0: 16.38 14.10 ( 13.92%)
len=160, pos=256, align=0: 23.84 17.88 ( 24.98%)
len=256, pos=144, align=0: 24.85 16.80 ( 32.37%)
len=400, pos=256, align=0: 29.72 22.16 ( 25.44%)
len=256, pos=112, align=0: 17.47 13.20 ( 24.41%)
len=112, pos=144, align=0: 16.46 14.11 ( 14.27%)
len=112, pos=256, align=0: 16.38 14.55 ( 11.17%)
len=256, pos=192, align=0: 29.27 15.60 ( 46.68%)
len=448, pos=256, align=0: 30.03 21.41 ( 28.69%)
len=256, pos=64, align=0: 15.97 13.52 ( 15.34%)
len=64, pos=192, align=0: 15.17 14.34 ( 5.47%)
len=64, pos=256, align=0: 15.13 14.16 ( 6.39%)
len=256, pos=240, align=0: 27.08 16.73 ( 38.20%)
len=496, pos=256, align=0: 29.99 21.34 ( 28.84%)
len=256, pos=16, align=0: 8.41 8.40 ( 0.06%)
len=16, pos=240, align=0: 8.40 8.40 ( 0.02%)
len=16, pos=256, align=0: 8.40 8.40 ( 0.03%)
len=256, pos=288, align=0: 29.70 21.34 ( 28.16%)
len=544, pos=256, align=0: 30.25 21.42 ( 29.19%)
len=512, pos=0, align=0: 9.28 8.40 ( 9.41%)
len=512, pos=512, align=0: 40.43 27.61 ( 31.71%)
len=512, pos=512, align=0: 39.21 30.19 ( 23.00%)
len=512, pos=0, align=0: 9.60 8.40 ( 12.50%)
len=512, pos=512, align=0: 38.41 29.88 ( 22.22%)
len=512, pos=48, align=0: 14.17 9.72 ( 31.39%)
len=560, pos=512, align=0: 40.39 27.61 ( 31.64%)
len=512, pos=464, align=0: 36.73 25.35 ( 30.96%)
len=464, pos=48, align=0: 14.99 8.40 ( 43.96%)
len=464, pos=512, align=0: 36.86 25.41 ( 31.06%)
len=512, pos=96, align=0: 17.76 13.20 ( 25.67%)
len=608, pos=512, align=0: 41.10 28.56 ( 30.50%)
len=512, pos=416, align=0: 34.43 25.03 ( 27.32%)
len=416, pos=96, align=0: 16.30 14.54 ( 10.82%)
len=416, pos=512, align=0: 33.67 25.41 ( 24.52%)
len=512, pos=144, align=0: 24.53 18.32 ( 25.31%)
len=656, pos=512, align=0: 39.56 28.56 ( 27.80%)
len=512, pos=368, align=0: 33.20 24.33 ( 26.72%)
len=368, pos=144, align=0: 23.49 18.26 ( 22.27%)
len=368, pos=512, align=0: 33.23 24.01 ( 27.75%)
len=512, pos=192, align=0: 28.32 18.24 ( 35.62%)
len=704, pos=512, align=0: 40.47 25.21 ( 37.71%)
len=512, pos=320, align=0: 31.54 23.82 ( 24.45%)
len=320, pos=192, align=0: 28.28 15.96 ( 43.58%)
len=320, pos=512, align=0: 33.82 21.50 ( 36.42%)
len=512, pos=240, align=0: 27.15 16.94 ( 37.61%)
len=752, pos=512, align=0: 40.70 27.61 ( 32.17%)
len=512, pos=272, align=0: 30.79 21.40 ( 30.51%)
len=272, pos=240, align=0: 27.19 16.69 ( 38.61%)
len=272, pos=512, align=0: 29.57 22.12 ( 25.18%)
len=512, pos=288, align=0: 29.66 22.20 ( 25.17%)
len=800, pos=512, align=0: 38.81 28.66 ( 26.14%)
len=512, pos=224, align=0: 27.19 17.85 ( 34.34%)
len=224, pos=288, align=0: 27.19 16.70 ( 38.60%)
len=224, pos=512, align=0: 27.51 16.79 ( 38.97%)
len=1024, pos=0, align=0: 8.40 8.40 ( 0.02%)
len=1024, pos=1024, align=0: 65.30 44.25 ( 32.23%)
len=1024, pos=1024, align=0: 64.30 43.11 ( 32.96%)
len=1024, pos=0, align=0: 8.43 8.72 ( -3.47%)
len=1024, pos=1024, align=0: 66.42 43.52 ( 34.47%)
len=1024, pos=48, align=0: 15.05 8.40 ( 44.17%)
len=1072, pos=1024, align=0: 65.03 42.71 ( 34.32%)
len=1024, pos=976, align=0: 61.36 41.03 ( 33.13%)
len=976, pos=48, align=0: 14.90 8.40 ( 43.63%)
len=976, pos=1024, align=0: 63.13 39.61 ( 37.26%)
len=1024, pos=96, align=0: 16.42 14.19 ( 13.60%)
len=1120, pos=1024, align=0: 65.18 41.91 ( 35.71%)
len=1024, pos=928, align=0: 57.79 40.42 ( 30.06%)
len=928, pos=96, align=0: 16.39 14.10 ( 14.00%)
len=928, pos=1024, align=0: 60.17 40.17 ( 33.24%)
len=1024, pos=144, align=0: 24.30 17.15 ( 29.42%)
len=1168, pos=1024, align=0: 65.31 44.60 ( 31.71%)
len=1024, pos=880, align=0: 54.50 38.66 ( 29.06%)
len=880, pos=144, align=0: 24.89 16.81 ( 32.48%)
len=880, pos=1024, align=0: 55.30 37.51 ( 32.17%)
len=1024, pos=192, align=0: 28.04 16.80 ( 40.08%)
len=1216, pos=1024, align=0: 65.07 44.20 ( 32.08%)
len=1024, pos=832, align=0: 54.50 38.78 ( 28.84%)
len=832, pos=192, align=0: 27.17 16.73 ( 38.43%)
len=832, pos=1024, align=0: 55.35 38.74 ( 30.01%)
len=1024, pos=240, align=0: 28.48 15.60 ( 45.20%)
len=1264, pos=1024, align=0: 65.42 44.61 ( 31.80%)
len=1024, pos=784, align=0: 52.31 36.26 ( 30.69%)
len=784, pos=240, align=0: 27.47 16.67 ( 39.30%)
len=784, pos=1024, align=0: 52.52 37.09 ( 29.38%)
len=1024, pos=288, align=0: 29.66 22.89 ( 22.85%)
len=1312, pos=1024, align=0: 64.32 44.58 ( 30.69%)
len=1024, pos=736, align=0: 51.16 31.64 ( 38.15%)
len=736, pos=288, align=0: 29.67 22.65 ( 23.66%)
len=736, pos=1024, align=0: 47.68 32.53 ( 31.77%)
len=2048, pos=0, align=0: 8.40 8.40 ( 0.02%)
len=2048, pos=2048, align=0: 169.37 121.13 ( 28.48%)
len=2048, pos=2048, align=0: 169.28 121.20 ( 28.41%)
len=2048, pos=0, align=0: 8.43 8.72 ( -3.45%)
len=2048, pos=2048, align=0: 170.25 120.94 ( 28.96%)
len=2048, pos=48, align=0: 14.66 9.43 ( 35.68%)
len=2096, pos=2048, align=0: 169.47 119.73 ( 29.35%)
len=2048, pos=2000, align=0: 114.57 72.43 ( 36.78%)
len=2000, pos=48, align=0: 15.00 8.40 ( 44.01%)
len=2000, pos=2048, align=0: 114.38 72.31 ( 36.78%)
len=2048, pos=96, align=0: 16.35 14.21 ( 13.05%)
len=2144, pos=2048, align=0: 148.94 119.04 ( 20.08%)
len=2048, pos=1952, align=0: 111.08 71.09 ( 35.99%)
len=1952, pos=96, align=0: 16.30 14.19 ( 12.93%)
len=1952, pos=2048, align=0: 111.14 63.30 ( 43.05%)
len=2048, pos=144, align=0: 23.47 19.42 ( 17.25%)
len=2192, pos=2048, align=0: 161.16 120.23 ( 25.39%)
len=2048, pos=1904, align=0: 110.04 68.78 ( 37.50%)
len=1904, pos=144, align=0: 24.86 18.00 ( 27.59%)
len=1904, pos=2048, align=0: 109.60 60.46 ( 44.83%)
len=2048, pos=192, align=0: 27.17 17.95 ( 33.93%)
len=2240, pos=2048, align=0: 169.82 121.01 ( 28.74%)
len=2048, pos=1856, align=0: 108.04 62.45 ( 42.20%)
len=1856, pos=192, align=0: 27.15 18.10 ( 33.32%)
len=1856, pos=2048, align=0: 107.80 68.59 ( 36.38%)
len=2048, pos=240, align=0: 27.17 17.87 ( 34.25%)
len=2288, pos=2048, align=0: 164.58 121.22 ( 26.35%)
len=2048, pos=1808, align=0: 104.75 68.67 ( 34.44%)
len=1808, pos=240, align=0: 28.03 15.60 ( 44.33%)
len=1808, pos=2048, align=0: 103.89 65.94 ( 36.52%)
len=2048, pos=288, align=0: 29.91 21.40 ( 28.44%)
len=2336, pos=2048, align=0: 171.76 65.07 ( 62.12%)
len=2048, pos=1760, align=0: 100.02 65.08 ( 34.93%)
len=1760, pos=288, align=0: 29.59 22.89 ( 22.65%)
len=1760, pos=2048, align=0: 99.27 65.30 ( 34.22%)
len=2048, pos=32, align=0: 121.31 69.98 ( 42.31%)
len=2048, pos=32, align=1: 118.91 82.92 ( 30.27%)
len=2048, pos=64, align=0: 118.95 79.41 ( 33.24%)
len=2048, pos=64, align=2: 120.58 79.46 ( 34.10%)
len=2048, pos=128, align=0: 119.36 82.99 ( 30.48%)
len=2048, pos=128, align=3: 119.22 83.03 ( 30.35%)
len=2048, pos=256, align=0: 118.29 80.64 ( 31.82%)
len=2048, pos=256, align=4: 123.60 85.57 ( 30.77%)
len=2048, pos=512, align=0: 117.17 79.79 ( 31.90%)
len=2048, pos=512, align=5: 121.28 83.03 ( 31.54%)
len=2048, pos=1024, align=0: 125.04 87.84 ( 29.75%)
len=2048, pos=1024, align=6: 122.67 84.27 ( 31.30%)
len=2048, pos=2048, align=0: 117.76 79.44 ( 32.54%)
len=2048, pos=2048, align=7: 115.56 73.70 ( 36.23%)
len=2048, pos=4096, align=0: 113.98 72.28 ( 36.59%)
len=2048, pos=4096, align=8: 116.09 71.51 ( 38.41%)
len=256, pos=64, align=1: 28.06 26.12 ( 6.92%)
len=256, pos=64, align=1: 27.97 25.80 ( 7.74%)
len=256, pos=64, align=15: 27.69 26.69 ( 3.62%)
len=256, pos=64, align=15: 28.69 25.20 ( 12.14%)
len=256, pos=64, align=2: 27.14 26.99 ( 0.52%)
len=256, pos=64, align=2: 28.32 25.80 ( 8.89%)
len=256, pos=64, align=30: 27.51 26.30 ( 4.40%)
len=256, pos=64, align=30: 27.60 26.46 ( 4.14%)
len=256, pos=64, align=3: 26.41 27.07 ( -2.50%)
len=256, pos=64, align=3: 27.16 27.04 ( 0.42%)
len=256, pos=64, align=45: 27.14 26.68 ( 1.69%)
len=256, pos=64, align=45: 27.52 26.83 ( 2.53%)
len=256, pos=64, align=4: 28.18 26.11 ( 7.33%)
len=256, pos=64, align=4: 27.26 27.02 ( 0.90%)
len=256, pos=64, align=60: 28.19 25.80 ( 8.47%)
len=256, pos=64, align=60: 27.57 26.27 ( 4.71%)
len=256, pos=64, align=5: 28.69 25.20 ( 12.16%)
len=256, pos=64, align=5: 27.23 26.99 ( 0.87%)
len=256, pos=64, align=75: 27.17 26.46 ( 2.61%)
len=256, pos=64, align=75: 27.61 25.83 ( 6.43%)
len=256, pos=64, align=6: 27.47 26.78 ( 2.49%)
len=256, pos=64, align=6: 28.32 26.15 ( 7.66%)
len=256, pos=64, align=90: 27.23 25.08 ( 7.88%)
len=256, pos=64, align=90: 27.24 23.94 ( 12.13%)
len=256, pos=64, align=7: 27.46 26.78 ( 2.50%)
len=256, pos=64, align=7: 28.33 26.16 ( 7.66%)
len=256, pos=64, align=105: 27.21 25.95 ( 4.63%)
len=256, pos=64, align=105: 28.32 24.61 ( 13.10%)
len=1, pos=0, align=0: 8.72 9.61 (-10.14%)
len=1, pos=0, align=0: 8.40 8.40 ( 0.00%)
len=1, pos=0, align=4095: 42.32 42.06 ( 0.62%)
len=2, pos=1, align=0: 8.40 8.40 ( -0.00%)
len=2, pos=1, align=0: 8.40 8.40 ( 0.01%)
len=2, pos=1, align=4095: 42.00 42.77 ( -1.83%)
len=3, pos=2, align=0: 8.40 8.42 ( -0.20%)
len=3, pos=2, align=0: 8.72 8.42 ( 3.40%)
len=3, pos=2, align=4094: 43.03 42.00 ( 2.40%)
len=4, pos=3, align=0: 8.71 8.42 ( 3.34%)
len=4, pos=3, align=0: 8.40 8.42 ( -0.24%)
len=4, pos=3, align=4094: 42.01 42.37 ( -0.86%)
len=5, pos=4, align=0: 8.40 8.42 ( -0.23%)
len=5, pos=4, align=0: 8.40 8.42 ( -0.19%)
len=5, pos=4, align=4093: 42.33 42.06 ( 0.64%)
len=6, pos=5, align=0: 8.40 8.42 ( -0.20%)
len=6, pos=5, align=0: 8.40 8.77 ( -4.40%)
len=6, pos=5, align=4093: 42.01 43.26 ( -2.98%)
len=7, pos=6, align=0: 8.72 8.41 ( 3.56%)
len=7, pos=6, align=0: 8.40 8.40 ( 0.00%)
len=7, pos=6, align=4092: 42.01 43.19 ( -2.82%)
len=8, pos=7, align=0: 8.40 8.71 ( -3.61%)
len=8, pos=7, align=0: 8.40 8.40 ( 0.00%)
len=8, pos=7, align=4092: 42.82 42.63 ( 0.44%)
len=9, pos=8, align=0: 8.75 8.40 ( 4.00%)
len=9, pos=8, align=0: 8.40 8.40 ( 0.00%)
len=9, pos=8, align=4091: 42.01 42.32 ( -0.74%)
len=10, pos=9, align=0: 8.40 8.40 ( 0.00%)
len=10, pos=9, align=0: 8.40 8.88 ( -5.71%)
len=10, pos=9, align=4091: 42.98 42.00 ( 2.27%)
len=11, pos=10, align=0: 8.40 8.40 ( 0.02%)
len=11, pos=10, align=0: 8.40 8.40 ( 0.03%)
len=11, pos=10, align=4090: 42.85 42.06 ( 1.85%)
len=12, pos=11, align=0: 8.40 8.40 ( 0.00%)
len=12, pos=11, align=0: 8.40 8.40 ( 0.02%)
len=12, pos=11, align=4090: 42.00 42.35 ( -0.82%)
len=13, pos=12, align=0: 8.72 8.40 ( 3.60%)
len=13, pos=12, align=0: 8.40 8.71 ( -3.69%)
len=13, pos=12, align=4089: 42.84 42.00 ( 1.95%)
len=14, pos=13, align=0: 8.40 8.40 ( 0.02%)
len=14, pos=13, align=0: 8.40 8.40 ( 0.03%)
len=14, pos=13, align=4089: 42.01 42.35 ( -0.82%)
len=15, pos=14, align=0: 8.40 8.40 ( 0.02%)
len=15, pos=14, align=0: 8.71 8.40 ( 3.52%)
len=15, pos=14, align=4088: 42.36 42.53 ( -0.41%)
len=16, pos=15, align=0: 8.40 8.72 ( -3.73%)
len=16, pos=15, align=0: 8.40 8.40 ( 0.00%)
len=16, pos=15, align=4088: 42.36 42.00 ( 0.84%)
len=17, pos=16, align=0: 8.40 8.40 ( 0.02%)
len=17, pos=16, align=0: 8.40 8.40 ( 0.03%)
len=17, pos=16, align=4087: 42.32 42.00 ( 0.75%)
len=18, pos=17, align=0: 8.40 8.40 ( 0.02%)
len=18, pos=17, align=0: 8.40 8.40 ( 0.03%)
len=18, pos=17, align=4087: 43.00 42.06 ( 2.18%)
len=19, pos=18, align=0: 10.11 8.71 ( 13.77%)
len=19, pos=18, align=0: 9.27 9.42 ( -1.65%)
len=19, pos=18, align=4086: 42.44 42.00 ( 1.02%)
len=20, pos=19, align=0: 8.40 8.40 ( 0.02%)
len=20, pos=19, align=0: 8.40 8.40 ( 0.03%)
len=20, pos=19, align=4086: 43.32 42.49 ( 1.92%)
len=21, pos=20, align=0: 10.03 8.40 ( 16.23%)
len=21, pos=20, align=0: 9.31 9.42 ( -1.25%)
len=21, pos=20, align=4085: 42.66 42.65 ( 0.03%)
len=22, pos=21, align=0: 9.31 9.53 ( -2.38%)
len=22, pos=21, align=0: 8.40 8.40 ( 0.03%)
len=22, pos=21, align=4085: 42.01 42.37 ( -0.87%)
len=23, pos=22, align=0: 8.40 8.40 ( 0.02%)
len=23, pos=22, align=0: 9.26 9.43 ( -1.90%)
len=23, pos=22, align=4084: 42.72 42.81 ( -0.22%)
len=24, pos=23, align=0: 9.44 8.40 ( 10.96%)
len=24, pos=23, align=0: 8.40 8.40 ( 0.02%)
len=24, pos=23, align=4084: 43.01 42.06 ( 2.22%)
len=25, pos=24, align=0: 9.73 9.56 ( 1.83%)
len=25, pos=24, align=0: 9.59 9.51 ( 0.81%)
len=25, pos=24, align=4083: 42.33 42.85 ( -1.24%)
len=26, pos=25, align=0: 8.40 8.40 ( 0.03%)
len=26, pos=25, align=0: 9.17 9.56 ( -4.22%)
len=26, pos=25, align=4083: 42.34 42.77 ( -0.99%)
len=27, pos=26, align=0: 9.26 9.56 ( -3.26%)
len=27, pos=26, align=0: 8.40 8.40 ( 0.02%)
len=27, pos=26, align=4082: 43.38 43.76 ( -0.87%)
len=28, pos=27, align=0: 10.03 8.40 ( 16.21%)
len=28, pos=27, align=0: 8.40 8.40 ( 0.02%)
len=28, pos=27, align=4082: 42.66 42.98 ( -0.73%)
len=29, pos=28, align=0: 10.09 8.40 ( 16.74%)
len=29, pos=28, align=0: 8.40 8.40 ( 0.01%)
len=29, pos=28, align=4081: 42.33 43.52 ( -2.82%)
len=30, pos=29, align=0: 10.14 8.42 ( 16.98%)
len=30, pos=29, align=0: 9.28 9.77 ( -5.25%)
len=30, pos=29, align=4081: 42.65 42.36 ( 0.69%)
len=31, pos=30, align=0: 8.40 8.42 ( -0.22%)
len=31, pos=30, align=0: 9.56 9.51 ( 0.49%)
len=31, pos=30, align=4080: 42.36 42.00 ( 0.84%)
len=32, pos=31, align=0: 16.20 8.40 ( 48.11%)
len=32, pos=31, align=0: 14.40 8.40 ( 41.66%)
len=32, pos=31, align=4080: 39.70 43.23 ( -8.89%)
len=16, pos=0, align=0: 8.76 8.40 ( 4.09%)
len=32, pos=16, align=0: 14.45 9.43 ( 34.77%)
len=48, pos=32, align=0: 13.99 9.56 ( 31.66%)
len=64, pos=48, align=0: 15.16 14.87 ( 1.94%)
len=80, pos=64, align=0: 16.39 13.21 ( 19.43%)
len=96, pos=80, align=0: 18.77 13.20 ( 29.66%)
len=112, pos=96, align=0: 17.16 13.56 ( 20.99%)
len=128, pos=112, align=0: 23.95 21.41 ( 10.61%)
len=144, pos=128, align=0: 24.93 16.80 ( 32.60%)
len=160, pos=144, align=0: 23.86 17.97 ( 24.70%)
len=176, pos=160, align=0: 23.60 17.78 ( 24.65%)
len=192, pos=176, align=0: 28.66 19.00 ( 33.69%)
len=208, pos=192, align=0: 29.25 17.89 ( 38.85%)
len=224, pos=208, align=0: 29.08 15.92 ( 45.25%)
len=240, pos=224, align=0: 28.72 16.75 ( 41.66%)
len=256, pos=240, align=0: 30.69 25.59 ( 16.60%)
len=272, pos=256, align=0: 30.03 21.33 ( 28.97%)
len=288, pos=272, align=0: 30.16 25.36 ( 15.90%)
len=16, pos=0, align=0: 8.72 9.60 (-10.09%)
len=16, pos=16, align=0: 10.49 9.61 ( 8.40%)
len=16, pos=16, align=0: 9.99 10.00 ( -0.09%)
len=16, pos=0, align=0: 8.74 8.41 ( 3.80%)
len=16, pos=16, align=0: 9.63 10.33 ( -7.18%)
len=16, pos=48, align=0: 9.64 10.44 ( -8.25%)
len=64, pos=16, align=0: 16.40 14.97 ( 8.71%)
len=16, pos=96, align=0: 9.63 10.00 ( -3.82%)
len=112, pos=16, align=0: 18.48 13.92 ( 24.67%)
len=16, pos=144, align=0: 9.63 10.00 ( -3.82%)
len=160, pos=16, align=0: 26.01 24.13 ( 7.23%)
len=16, pos=192, align=0: 10.01 10.33 ( -3.12%)
len=208, pos=16, align=0: 24.79 25.34 ( -2.22%)
len=16, pos=240, align=0: 10.00 10.81 ( -8.07%)
len=256, pos=16, align=0: 32.88 27.97 ( 14.94%)
len=16, pos=288, align=0: 9.63 10.36 ( -7.65%)
len=304, pos=16, align=0: 28.42 27.60 ( 2.86%)
len=32, pos=0, align=0: 15.11 9.88 ( 34.63%)
len=32, pos=32, align=0: 15.49 10.00 ( 35.42%)
len=32, pos=32, align=0: 15.48 11.04 ( 28.68%)
len=32, pos=0, align=0: 15.88 8.40 ( 47.09%)
len=32, pos=32, align=0: 15.18 11.05 ( 27.23%)
len=32, pos=48, align=0: 15.10 11.37 ( 24.67%)
len=80, pos=32, align=0: 17.31 15.00 ( 13.35%)
len=32, pos=96, align=0: 15.31 11.07 ( 27.70%)
len=128, pos=32, align=0: 23.59 22.64 ( 4.00%)
len=32, pos=144, align=0: 15.14 11.00 ( 27.33%)
len=176, pos=32, align=0: 23.88 22.60 ( 5.33%)
len=32, pos=192, align=0: 15.09 12.13 ( 19.61%)
len=224, pos=32, align=0: 24.86 25.82 ( -3.88%)
len=32, pos=240, align=0: 15.50 11.02 ( 28.89%)
len=272, pos=32, align=0: 26.74 28.55 ( -6.78%)
len=32, pos=288, align=0: 15.54 11.79 ( 24.12%)
len=320, pos=32, align=0: 30.90 29.12 ( 5.75%)
len=64, pos=0, align=0: 16.35 15.24 ( 6.81%)
len=64, pos=64, align=0: 18.36 13.97 ( 23.91%)
len=64, pos=64, align=0: 16.41 15.64 ( 4.71%)
len=64, pos=0, align=0: 16.65 14.99 ( 9.96%)
len=64, pos=64, align=0: 18.31 14.31 ( 21.86%)
len=64, pos=48, align=0: 16.38 15.88 ( 3.08%)
len=112, pos=64, align=0: 17.61 14.17 ( 19.54%)
len=64, pos=16, align=0: 16.69 15.85 ( 5.02%)
len=16, pos=48, align=0: 10.29 10.04 ( 2.43%)
len=16, pos=64, align=0: 10.21 10.04 ( 1.65%)
len=64, pos=96, align=0: 17.27 13.99 ( 19.00%)
len=160, pos=64, align=0: 23.92 23.74 ( 0.74%)
len=64, pos=144, align=0: 17.90 13.99 ( 21.83%)
len=208, pos=64, align=0: 25.10 22.03 ( 12.24%)
len=64, pos=192, align=0: 17.16 14.41 ( 16.06%)
len=256, pos=64, align=0: 27.20 26.79 ( 1.52%)
len=64, pos=240, align=0: 16.52 14.83 ( 10.23%)
len=304, pos=64, align=0: 27.20 26.75 ( 1.65%)
len=64, pos=288, align=0: 16.43 15.42 ( 6.11%)
len=352, pos=64, align=0: 29.13 27.41 ( 5.89%)
len=128, pos=0, align=0: 23.58 23.63 ( -0.21%)
len=128, pos=128, align=0: 24.49 21.61 ( 11.79%)
len=128, pos=128, align=0: 23.63 23.00 ( 2.68%)
len=128, pos=0, align=0: 24.65 21.62 ( 12.27%)
len=128, pos=128, align=0: 24.84 22.94 ( 7.67%)
len=128, pos=48, align=0: 24.59 21.61 ( 12.14%)
len=176, pos=128, align=0: 24.75 16.81 ( 32.09%)
len=128, pos=80, align=0: 24.39 20.41 ( 16.34%)
len=80, pos=48, align=0: 15.33 16.18 ( -5.49%)
len=80, pos=128, align=0: 16.73 15.29 ( 8.56%)
len=128, pos=96, align=0: 21.93 19.20 ( 12.45%)
len=224, pos=128, align=0: 29.86 19.00 ( 36.39%)
len=128, pos=32, align=0: 24.49 22.80 ( 6.88%)
len=32, pos=96, align=0: 15.10 13.00 ( 13.91%)
len=32, pos=128, align=0: 15.17 11.36 ( 25.14%)
len=128, pos=144, align=0: 24.60 21.61 ( 12.16%)
len=272, pos=128, align=0: 31.89 26.26 ( 17.65%)
len=128, pos=192, align=0: 23.90 22.56 ( 5.60%)
len=320, pos=128, align=0: 35.78 24.61 ( 31.22%)
len=128, pos=240, align=0: 23.53 22.66 ( 3.69%)
len=368, pos=128, align=0: 34.76 25.62 ( 26.31%)
len=128, pos=288, align=0: 24.75 21.61 ( 12.68%)
len=416, pos=128, align=0: 36.82 30.11 ( 18.22%)
len=256, pos=0, align=0: 27.81 29.74 ( -6.95%)
len=256, pos=256, align=0: 27.42 28.53 ( -4.06%)
len=256, pos=256, align=0: 29.30 28.80 ( 1.71%)
len=256, pos=0, align=0: 27.22 28.71 ( -5.47%)
len=256, pos=256, align=0: 28.03 27.72 ( 1.10%)
len=256, pos=48, align=0: 27.01 28.51 ( -5.54%)
len=304, pos=256, align=0: 29.58 21.50 ( 27.30%)
len=256, pos=208, align=0: 31.96 26.17 ( 18.11%)
len=208, pos=48, align=0: 26.03 24.48 ( 5.94%)
len=208, pos=256, align=0: 25.88 23.41 ( 9.55%)
len=256, pos=96, align=0: 24.77 27.11 ( -9.43%)
len=352, pos=256, align=0: 35.43 23.86 ( 32.66%)
len=256, pos=160, align=0: 30.80 23.80 ( 22.73%)
len=160, pos=96, align=0: 21.55 21.42 ( 0.57%)
len=160, pos=256, align=0: 24.33 21.61 ( 11.18%)
len=256, pos=144, align=0: 32.31 25.09 ( 22.35%)
len=400, pos=256, align=0: 36.31 29.77 ( 18.02%)
len=256, pos=112, align=0: 25.96 26.99 ( -3.97%)
len=112, pos=144, align=0: 18.79 14.40 ( 23.34%)
len=112, pos=256, align=0: 17.56 15.36 ( 12.54%)
len=256, pos=192, align=0: 32.39 23.90 ( 26.20%)
len=448, pos=256, align=0: 40.54 28.82 ( 28.92%)
len=256, pos=64, align=0: 28.85 25.81 ( 10.54%)
len=64, pos=192, align=0: 17.40 14.40 ( 17.25%)
len=64, pos=256, align=0: 16.45 15.42 ( 6.28%)
len=256, pos=240, align=0: 30.98 23.93 ( 22.77%)
len=496, pos=256, align=0: 39.61 29.92 ( 24.46%)
len=256, pos=16, align=0: 28.32 28.48 ( -0.57%)
len=16, pos=240, align=0: 10.01 10.80 ( -7.99%)
len=16, pos=256, align=0: 9.63 10.00 ( -3.85%)
len=256, pos=288, align=0: 27.24 29.46 ( -8.14%)
len=544, pos=256, align=0: 44.03 36.02 ( 18.20%)
len=512, pos=0, align=0: 39.80 37.25 ( 6.39%)
len=512, pos=512, align=0: 40.67 33.61 ( 17.36%)
len=512, pos=512, align=0: 39.21 34.65 ( 11.62%)
len=512, pos=0, align=0: 40.11 36.33 ( 9.42%)
len=512, pos=512, align=0: 39.64 34.54 ( 12.85%)
len=512, pos=48, align=0: 38.94 36.36 ( 6.62%)
len=560, pos=512, align=0: 42.54 32.74 ( 23.03%)
len=512, pos=464, align=0: 46.72 38.25 ( 18.13%)
len=464, pos=48, align=0: 37.79 33.61 ( 11.05%)
len=464, pos=512, align=0: 35.32 33.41 ( 5.41%)
len=512, pos=96, align=0: 36.89 36.02 ( 2.36%)
len=608, pos=512, align=0: 45.69 28.91 ( 36.74%)
len=512, pos=416, align=0: 42.40 36.33 ( 14.31%)
len=416, pos=96, align=0: 32.11 26.41 ( 17.74%)
len=416, pos=512, align=0: 34.11 30.94 ( 9.29%)
len=512, pos=144, align=0: 40.82 33.15 ( 18.79%)
len=656, pos=512, align=0: 53.56 39.62 ( 26.02%)
len=512, pos=368, align=0: 40.43 34.15 ( 15.53%)
len=368, pos=144, align=0: 34.40 23.90 ( 30.52%)
len=368, pos=512, align=0: 30.88 30.12 ( 2.46%)
len=512, pos=192, align=0: 42.84 33.62 ( 21.52%)
len=704, pos=512, align=0: 54.55 40.69 ( 25.40%)
len=512, pos=320, align=0: 43.83 34.67 ( 20.88%)
len=320, pos=192, align=0: 36.72 22.81 ( 37.88%)
len=320, pos=512, align=0: 31.38 29.92 ( 4.65%)
len=512, pos=240, align=0: 41.21 36.32 ( 11.86%)
len=752, pos=512, align=0: 49.48 37.11 ( 25.00%)
len=512, pos=272, align=0: 42.59 33.99 ( 20.19%)
len=272, pos=240, align=0: 30.72 23.89 ( 22.22%)
len=272, pos=512, align=0: 29.03 28.74 ( 1.01%)
len=512, pos=288, align=0: 41.55 33.01 ( 20.57%)
len=800, pos=512, align=0: 57.90 44.56 ( 23.03%)
len=512, pos=224, align=0: 39.93 33.46 ( 16.20%)
len=224, pos=288, align=0: 26.76 23.41 ( 12.53%)
len=224, pos=512, align=0: 24.73 24.45 ( 1.16%)
len=1024, pos=0, align=0: 65.43 52.79 ( 19.32%)
len=1024, pos=1024, align=0: 65.38 51.83 ( 20.73%)
len=1024, pos=1024, align=0: 65.39 51.73 ( 20.89%)
len=1024, pos=0, align=0: 65.29 48.32 ( 26.00%)
len=1024, pos=1024, align=0: 65.21 51.36 ( 21.24%)
len=1024, pos=48, align=0: 65.97 48.20 ( 26.94%)
len=1072, pos=1024, align=0: 74.95 54.02 ( 27.93%)
len=1024, pos=976, align=0: 71.64 57.28 ( 20.05%)
len=976, pos=48, align=0: 61.61 49.47 ( 19.70%)
len=976, pos=1024, align=0: 62.26 46.66 ( 25.06%)
len=1024, pos=96, align=0: 63.84 49.21 ( 22.91%)
len=1120, pos=1024, align=0: 74.30 46.98 ( 36.78%)
len=1024, pos=928, align=0: 78.38 52.31 ( 33.27%)
len=928, pos=96, align=0: 55.64 45.46 ( 18.29%)
len=928, pos=1024, align=0: 59.88 43.21 ( 27.84%)
len=1024, pos=144, align=0: 67.80 50.30 ( 25.81%)
len=1168, pos=1024, align=0: 83.47 62.71 ( 24.87%)
len=1024, pos=880, align=0: 74.44 55.51 ( 25.42%)
len=880, pos=144, align=0: 58.45 39.97 ( 31.61%)
len=880, pos=1024, align=0: 55.23 42.24 ( 23.52%)
len=1024, pos=192, align=0: 67.03 50.13 ( 25.21%)
len=1216, pos=1024, align=0: 81.46 55.36 ( 32.04%)
len=1024, pos=832, align=0: 70.44 50.59 ( 28.18%)
len=832, pos=192, align=0: 58.43 42.01 ( 28.11%)
len=832, pos=1024, align=0: 55.57 44.06 ( 20.72%)
len=1024, pos=240, align=0: 66.62 51.70 ( 22.40%)
len=1264, pos=1024, align=0: 80.98 55.45 ( 31.52%)
len=1024, pos=784, align=0: 70.79 53.96 ( 23.78%)
len=784, pos=240, align=0: 50.96 42.09 ( 17.41%)
len=784, pos=1024, align=0: 54.35 42.72 ( 21.39%)
len=1024, pos=288, align=0: 64.82 51.25 ( 20.94%)
len=1312, pos=1024, align=0: 86.49 64.61 ( 25.30%)
len=1024, pos=736, align=0: 67.51 52.79 ( 21.81%)
len=736, pos=288, align=0: 48.79 37.09 ( 23.98%)
len=736, pos=1024, align=0: 51.84 38.41 ( 25.90%)
len=2048, pos=0, align=0: 116.87 82.46 ( 29.45%)
len=2048, pos=2048, align=0: 115.13 79.50 ( 30.95%)
len=2048, pos=2048, align=0: 117.07 79.44 ( 32.15%)
len=2048, pos=0, align=0: 117.02 76.37 ( 34.74%)
len=2048, pos=2048, align=0: 115.31 72.77 ( 36.89%)
len=2048, pos=48, align=0: 119.55 72.79 ( 39.11%)
len=2096, pos=2048, align=0: 145.64 97.43 ( 33.10%)
len=2048, pos=2000, align=0: 133.63 99.04 ( 25.89%)
len=2000, pos=48, align=0: 115.95 78.33 ( 32.44%)
len=2000, pos=2048, align=0: 113.77 76.89 ( 32.41%)
len=2048, pos=96, align=0: 112.32 81.92 ( 27.06%)
len=2144, pos=2048, align=0: 135.52 89.49 ( 33.97%)
len=2048, pos=1952, align=0: 131.08 90.38 ( 31.04%)
len=1952, pos=96, align=0: 106.53 75.85 ( 28.80%)
len=1952, pos=2048, align=0: 110.67 75.82 ( 31.49%)
len=2048, pos=144, align=0: 121.10 82.98 ( 31.48%)
len=2192, pos=2048, align=0: 138.26 97.54 ( 29.45%)
len=2048, pos=1904, align=0: 134.33 103.76 ( 22.76%)
len=1904, pos=144, align=0: 109.71 72.16 ( 34.23%)
len=1904, pos=2048, align=0: 104.05 72.19 ( 30.61%)
len=2048, pos=192, align=0: 117.44 80.00 ( 31.88%)
len=2240, pos=2048, align=0: 142.29 97.02 ( 31.82%)
len=2048, pos=1856, align=0: 129.75 94.01 ( 27.54%)
len=1856, pos=192, align=0: 112.26 71.18 ( 36.60%)
len=1856, pos=2048, align=0: 106.34 71.11 ( 33.13%)
len=2048, pos=240, align=0: 116.59 79.52 ( 31.80%)
len=2288, pos=2048, align=0: 141.98 100.37 ( 29.31%)
len=2048, pos=1808, align=0: 129.63 90.55 ( 30.14%)
len=1808, pos=240, align=0: 104.42 72.33 ( 30.73%)
len=1808, pos=2048, align=0: 102.03 61.48 ( 39.74%)
len=2048, pos=288, align=0: 120.42 82.97 ( 31.10%)
len=2336, pos=2048, align=0: 142.21 102.39 ( 28.00%)
len=2048, pos=1760, align=0: 132.71 100.33 ( 24.40%)
len=1760, pos=288, align=0: 102.92 69.78 ( 32.20%)
len=1760, pos=2048, align=0: 101.42 69.86 ( 31.12%)
len=2048, pos=32, align=0: 119.13 80.24 ( 32.65%)
len=2048, pos=32, align=1: 120.36 81.89 ( 31.97%)
len=2048, pos=64, align=0: 118.45 80.53 ( 32.01%)
len=2048, pos=64, align=2: 118.82 73.69 ( 37.98%)
len=2048, pos=128, align=0: 119.20 80.21 ( 32.71%)
len=2048, pos=128, align=3: 120.57 79.47 ( 34.08%)
len=2048, pos=256, align=0: 119.95 83.07 ( 30.75%)
len=2048, pos=256, align=4: 121.51 83.09 ( 31.62%)
len=2048, pos=512, align=0: 129.58 85.47 ( 34.04%)
len=2048, pos=512, align=5: 124.29 87.02 ( 29.99%)
len=2048, pos=1024, align=0: 127.70 94.21 ( 26.22%)
len=2048, pos=1024, align=6: 127.68 85.79 ( 32.81%)
len=2048, pos=2048, align=0: 123.04 85.18 ( 30.78%)
len=2048, pos=2048, align=7: 123.91 86.64 ( 30.07%)
len=2048, pos=4096, align=0: 119.20 72.89 ( 38.86%)
len=2048, pos=4096, align=8: 118.45 80.63 ( 31.93%)
len=256, pos=64, align=1: 28.67 27.34 ( 4.66%)
len=256, pos=64, align=1: 28.44 27.22 ( 4.29%)
len=256, pos=64, align=15: 27.20 27.09 ( 0.42%)
len=256, pos=64, align=15: 27.28 26.78 ( 1.84%)
len=256, pos=64, align=2: 26.73 26.15 ( 2.15%)
len=256, pos=64, align=2: 28.39 26.12 ( 8.00%)
len=256, pos=64, align=30: 27.22 27.06 ( 0.60%)
len=256, pos=64, align=30: 28.09 25.80 ( 8.16%)
len=256, pos=64, align=3: 27.49 26.75 ( 2.70%)
len=256, pos=64, align=3: 28.41 25.80 ( 9.17%)
len=256, pos=64, align=45: 27.25 27.68 ( -1.61%)
len=256, pos=64, align=45: 28.20 25.80 ( 8.50%)
len=256, pos=64, align=4: 27.43 26.15 ( 4.64%)
len=256, pos=64, align=4: 28.27 25.80 ( 8.74%)
len=256, pos=64, align=60: 27.22 27.06 ( 0.61%)
len=256, pos=64, align=60: 26.41 27.14 ( -2.76%)
len=256, pos=64, align=5: 27.26 26.78 ( 1.73%)
len=256, pos=64, align=5: 27.50 26.77 ( 2.66%)
len=256, pos=64, align=75: 28.25 24.99 ( 11.53%)
len=256, pos=64, align=75: 27.20 24.41 ( 10.25%)
len=256, pos=64, align=6: 28.33 25.81 ( 8.91%)
len=256, pos=64, align=6: 27.56 26.10 ( 5.32%)
len=256, pos=64, align=90: 28.33 24.92 ( 12.02%)
len=256, pos=64, align=90: 27.17 26.03 ( 4.21%)
len=256, pos=64, align=7: 28.31 25.81 ( 8.85%)
len=256, pos=64, align=7: 26.73 26.68 ( 0.16%)
len=256, pos=64, align=105: 28.07 24.78 ( 11.70%)
len=256, pos=64, align=105: 27.16 24.39 ( 10.20%)
len=1, pos=0, align=0: 9.61 9.61 ( 0.00%)
len=1, pos=0, align=0: 8.40 8.40 ( 0.00%)
len=1, pos=0, align=4095: 42.81 42.38 ( 1.01%)
len=2, pos=1, align=0: 8.40 8.40 ( -0.03%)
len=2, pos=1, align=0: 8.72 8.40 ( 3.61%)
len=2, pos=1, align=4095: 42.00 43.39 ( -3.31%)
len=3, pos=2, align=0: 8.40 8.77 ( -4.41%)
len=3, pos=2, align=0: 8.40 8.40 ( 0.00%)
len=3, pos=2, align=4094: 42.32 42.00 ( 0.74%)
len=4, pos=3, align=0: 8.40 8.42 ( -0.21%)
len=4, pos=3, align=0: 8.40 8.73 ( -3.92%)
len=4, pos=3, align=4094: 42.00 42.42 ( -1.00%)
len=5, pos=4, align=0: 8.40 8.73 ( -3.94%)
len=5, pos=4, align=0: 8.40 8.42 ( -0.20%)
len=5, pos=4, align=4093: 42.31 42.41 ( -0.22%)
len=6, pos=5, align=0: 8.40 8.42 ( -0.22%)
len=6, pos=5, align=0: 8.40 8.42 ( -0.19%)
len=6, pos=5, align=4093: 42.78 42.00 ( 1.82%)
len=7, pos=6, align=0: 8.40 8.42 ( -0.21%)
len=7, pos=6, align=0: 8.76 8.42 ( 3.81%)
len=7, pos=6, align=4092: 42.49 42.00 ( 1.14%)
len=8, pos=7, align=0: 8.40 8.42 ( -0.20%)
len=8, pos=7, align=0: 8.40 8.73 ( -3.92%)
len=8, pos=7, align=4092: 43.23 42.00 ( 2.83%)
len=9, pos=8, align=0: 8.40 8.42 ( -0.22%)
len=9, pos=8, align=0: 8.72 8.42 ( 3.34%)
len=9, pos=8, align=4091: 42.36 42.00 ( 0.84%)
len=10, pos=9, align=0: 8.40 8.42 ( -0.21%)
len=10, pos=9, align=0: 8.40 8.42 ( -0.21%)
len=10, pos=9, align=4091: 42.62 42.00 ( 1.44%)
len=11, pos=10, align=0: 8.40 8.42 ( -0.22%)
len=11, pos=10, align=0: 8.40 8.42 ( -0.21%)
len=11, pos=10, align=4090: 42.01 42.75 ( -1.76%)
len=12, pos=11, align=0: 8.40 8.77 ( -4.41%)
len=12, pos=11, align=0: 8.40 8.42 ( -0.20%)
len=12, pos=11, align=4090: 42.32 42.00 ( 0.74%)
len=13, pos=12, align=0: 8.40 8.42 ( -0.20%)
len=13, pos=12, align=0: 8.40 8.42 ( -0.19%)
len=13, pos=12, align=4089: 42.45 42.33 ( 0.29%)
len=14, pos=13, align=0: 8.40 8.42 ( -0.21%)
len=14, pos=13, align=0: 8.40 8.42 ( -0.20%)
len=14, pos=13, align=4089: 43.04 42.00 ( 2.40%)
len=15, pos=14, align=0: 8.40 8.42 ( -0.20%)
len=15, pos=14, align=0: 8.40 8.42 ( -0.20%)
len=15, pos=14, align=4088: 42.00 42.36 ( -0.85%)
len=16, pos=15, align=0: 8.40 8.42 ( -0.20%)
len=16, pos=15, align=0: 8.75 8.42 ( 3.75%)
len=16, pos=15, align=4088: 42.32 42.36 ( -0.08%)
len=17, pos=16, align=0: 9.60 9.82 ( -2.31%)
len=17, pos=16, align=0: 9.59 9.66 ( -0.69%)
len=17, pos=16, align=4087: 42.77 42.77 ( 0.02%)
len=18, pos=17, align=0: 9.38 9.89 ( -5.48%)
len=18, pos=17, align=0: 9.33 9.53 ( -2.12%)
len=18, pos=17, align=4087: 42.71 42.77 ( -0.14%)
len=19, pos=18, align=0: 9.68 9.76 ( -0.77%)
len=19, pos=18, align=0: 9.71 9.56 ( 1.52%)
len=19, pos=18, align=4086: 42.34 42.83 ( -1.15%)
len=20, pos=19, align=0: 9.29 9.53 ( -2.58%)
len=20, pos=19, align=0: 8.40 8.42 ( -0.21%)
len=20, pos=19, align=4086: 42.81 42.41 ( 0.93%)
len=21, pos=20, align=0: 8.40 8.42 ( -0.19%)
len=21, pos=20, align=0: 8.40 8.42 ( -0.17%)
len=21, pos=20, align=4085: 42.37 42.00 ( 0.87%)
len=22, pos=21, align=0: 8.40 8.42 ( -0.18%)
len=22, pos=21, align=0: 9.31 10.20 ( -9.60%)
len=22, pos=21, align=4085: 42.70 42.75 ( -0.13%)
len=23, pos=22, align=0: 9.35 9.52 ( -1.86%)
len=23, pos=22, align=0: 8.40 8.42 ( -0.18%)
len=23, pos=22, align=4084: 42.00 42.37 ( -0.86%)
len=24, pos=23, align=0: 8.40 8.42 ( -0.20%)
len=24, pos=23, align=0: 9.22 10.09 ( -9.48%)
len=24, pos=23, align=4084: 42.32 42.77 ( -1.06%)
len=25, pos=24, align=0: 8.40 9.53 (-13.37%)
len=25, pos=24, align=0: 8.40 8.42 ( -0.20%)
len=25, pos=24, align=4083: 42.69 42.00 ( 1.60%)
len=26, pos=25, align=0: 9.62 9.56 ( 0.58%)
len=26, pos=25, align=0: 9.51 9.55 ( -0.38%)
len=26, pos=25, align=4083: 42.94 42.00 ( 2.19%)
len=27, pos=26, align=0: 10.13 8.77 ( 13.39%)
len=27, pos=26, align=0: 9.31 9.57 ( -2.81%)
len=27, pos=26, align=4082: 42.32 42.05 ( 0.62%)
len=28, pos=27, align=0: 9.26 9.58 ( -3.42%)
len=28, pos=27, align=0: 9.28 9.53 ( -2.62%)
len=28, pos=27, align=4082: 43.07 42.06 ( 2.35%)
len=29, pos=28, align=0: 10.11 8.73 ( 13.65%)
len=29, pos=28, align=0: 9.30 9.54 ( -2.63%)
len=29, pos=28, align=4081: 42.32 43.04 ( -1.70%)
len=30, pos=29, align=0: 9.60 9.59 ( 0.12%)
len=30, pos=29, align=0: 9.19 9.44 ( -2.72%)
len=30, pos=29, align=4081: 42.65 42.90 ( -0.58%)
len=31, pos=30, align=0: 10.13 8.42 ( 16.88%)
len=31, pos=30, align=0: 10.14 8.42 ( 16.96%)
len=31, pos=30, align=4080: 42.81 42.81 ( -0.01%)
len=32, pos=31, align=0: 15.61 8.42 ( 46.05%)
len=32, pos=31, align=0: 15.10 9.52 ( 36.95%)
len=32, pos=31, align=4080: 40.05 42.82 ( -6.92%)
len=16, pos=0, align=0: 9.61 8.42 ( 12.37%)
len=32, pos=16, align=0: 15.21 9.56 ( 37.17%)
len=48, pos=32, align=0: 14.70 8.42 ( 42.72%)
len=64, pos=48, align=0: 16.48 14.96 ( 9.24%)
len=80, pos=64, align=0: 16.86 13.20 ( 21.67%)
len=96, pos=80, align=0: 17.59 14.51 ( 17.50%)
len=112, pos=96, align=0: 17.19 13.20 ( 23.20%)
len=128, pos=112, align=0: 24.74 20.56 ( 16.91%)
len=144, pos=128, align=0: 23.58 18.16 ( 23.00%)
len=160, pos=144, align=0: 23.56 17.77 ( 24.56%)
len=176, pos=160, align=0: 23.69 17.79 ( 24.89%)
len=192, pos=176, align=0: 29.09 18.36 ( 36.88%)
len=208, pos=192, align=0: 28.24 18.22 ( 35.49%)
len=224, pos=208, align=0: 27.61 16.73 ( 39.43%)
len=240, pos=224, align=0: 28.37 16.62 ( 41.42%)
len=256, pos=240, align=0: 32.28 25.09 ( 22.28%)
len=272, pos=256, align=0: 32.98 23.12 ( 29.88%)
len=288, pos=272, align=0: 32.09 23.87 ( 25.61%)
len=16, pos=0, align=0: 9.60 8.40 ( 12.49%)
len=16, pos=16, align=0: 8.40 8.40 ( -0.01%)
len=16, pos=16, align=0: 8.40 8.40 ( 0.02%)
len=16, pos=0, align=0: 8.40 8.40 ( 0.01%)
len=16, pos=16, align=0: 8.40 8.40 ( 0.03%)
len=16, pos=48, align=0: 8.40 8.40 ( 0.03%)
len=64, pos=16, align=0: 16.42 14.99 ( 8.74%)
len=16, pos=96, align=0: 10.01 10.81 ( -7.99%)
len=112, pos=16, align=0: 17.58 16.09 ( 8.50%)
len=16, pos=144, align=0: 10.28 9.62 ( 6.46%)
len=160, pos=16, align=0: 26.03 23.81 ( 8.52%)
len=16, pos=192, align=0: 9.63 10.03 ( -4.17%)
len=208, pos=16, align=0: 25.94 25.03 ( 3.49%)
len=16, pos=240, align=0: 9.63 9.98 ( -3.65%)
len=256, pos=16, align=0: 32.86 28.56 ( 13.09%)
len=16, pos=288, align=0: 9.60 10.04 ( -4.51%)
len=304, pos=16, align=0: 27.23 28.84 ( -5.91%)
len=32, pos=0, align=0: 15.95 9.63 ( 39.60%)
len=32, pos=32, align=0: 15.63 9.46 ( 39.48%)
len=32, pos=32, align=0: 15.91 8.43 ( 47.00%)
len=32, pos=0, align=0: 14.77 9.56 ( 35.29%)
len=32, pos=32, align=0: 15.26 10.12 ( 33.66%)
len=32, pos=48, align=0: 15.89 8.40 ( 47.14%)
len=80, pos=32, align=0: 16.90 14.24 ( 15.76%)
len=32, pos=96, align=0: 14.40 8.40 ( 41.66%)
len=128, pos=32, align=0: 24.87 21.61 ( 13.14%)
len=32, pos=144, align=0: 14.44 10.04 ( 30.48%)
len=176, pos=32, align=0: 23.57 22.57 ( 4.25%)
len=32, pos=192, align=0: 15.11 11.11 ( 26.47%)
len=224, pos=32, align=0: 24.85 25.42 ( -2.29%)
len=32, pos=240, align=0: 15.99 9.95 ( 37.79%)
len=272, pos=32, align=0: 27.22 28.90 ( -6.16%)
len=32, pos=288, align=0: 15.97 10.04 ( 37.17%)
len=320, pos=32, align=0: 30.00 29.78 ( 0.73%)
len=64, pos=0, align=0: 16.45 15.91 ( 3.24%)
len=64, pos=64, align=0: 15.23 16.06 ( -5.48%)
len=64, pos=64, align=0: 15.21 14.92 ( 1.86%)
len=64, pos=0, align=0: 16.37 14.94 ( 8.76%)
len=64, pos=64, align=0: 15.51 14.98 ( 3.41%)
len=64, pos=48, align=0: 15.95 14.92 ( 6.50%)
len=112, pos=64, align=0: 17.63 14.14 ( 19.77%)
len=64, pos=16, align=0: 16.45 14.90 ( 9.45%)
len=16, pos=48, align=0: 8.41 9.63 (-14.49%)
len=16, pos=64, align=0: 9.63 10.04 ( -4.18%)
len=64, pos=96, align=0: 15.59 14.86 ( 4.63%)
len=160, pos=64, align=0: 24.68 21.61 ( 12.45%)
len=64, pos=144, align=0: 15.15 15.98 ( -5.48%)
len=208, pos=64, align=0: 24.38 21.41 ( 12.17%)
len=64, pos=192, align=0: 16.53 13.92 ( 15.76%)
len=256, pos=64, align=0: 27.23 27.09 ( 0.52%)
len=64, pos=240, align=0: 16.31 14.40 ( 11.70%)
len=304, pos=64, align=0: 27.28 27.06 ( 0.83%)
len=64, pos=288, align=0: 18.53 13.98 ( 24.56%)
len=352, pos=64, align=0: 30.29 28.50 ( 5.91%)
len=128, pos=0, align=0: 24.01 23.77 ( 1.01%)
len=128, pos=128, align=0: 22.13 20.41 ( 7.80%)
len=128, pos=128, align=0: 21.15 21.82 ( -3.15%)
len=128, pos=0, align=0: 24.39 22.80 ( 6.51%)
len=128, pos=128, align=0: 21.15 21.21 ( -0.28%)
len=128, pos=48, align=0: 24.53 24.00 ( 2.14%)
len=176, pos=128, align=0: 23.54 17.83 ( 24.29%)
len=128, pos=80, align=0: 23.60 21.83 ( 7.49%)
len=80, pos=48, align=0: 16.32 13.92 ( 14.68%)
len=80, pos=128, align=0: 16.00 13.21 ( 17.44%)
len=128, pos=96, align=0: 21.96 20.40 ( 7.09%)
len=224, pos=128, align=0: 29.13 19.24 ( 33.95%)
len=128, pos=32, align=0: 24.28 21.61 ( 11.02%)
len=32, pos=96, align=0: 15.09 9.57 ( 36.58%)
len=32, pos=128, align=0: 15.21 11.44 ( 24.78%)
len=128, pos=144, align=0: 22.26 20.40 ( 8.33%)
len=272, pos=128, align=0: 32.01 25.09 ( 21.63%)
len=128, pos=192, align=0: 21.42 21.46 ( -0.16%)
len=320, pos=128, align=0: 35.86 24.01 ( 33.06%)
len=128, pos=240, align=0: 21.20 21.43 ( -1.06%)
len=368, pos=128, align=0: 34.43 26.05 ( 24.33%)
len=128, pos=288, align=0: 24.52 20.40 ( 16.78%)
len=416, pos=128, align=0: 36.79 30.10 ( 18.18%)
len=256, pos=0, align=0: 30.09 27.61 ( 8.25%)
len=256, pos=256, align=0: 32.78 23.87 ( 27.18%)
len=256, pos=256, align=0: 33.46 23.89 ( 28.62%)
len=256, pos=0, align=0: 27.26 28.79 ( -5.60%)
len=256, pos=256, align=0: 33.21 24.42 ( 26.47%)
len=256, pos=48, align=0: 28.34 27.60 ( 2.59%)
len=304, pos=256, align=0: 31.95 24.75 ( 22.54%)
len=256, pos=208, align=0: 34.28 23.32 ( 31.97%)
len=208, pos=48, align=0: 25.96 24.29 ( 6.46%)
len=208, pos=256, align=0: 29.60 18.01 ( 39.16%)
len=256, pos=96, align=0: 27.20 27.15 ( 0.18%)
len=352, pos=256, align=0: 37.63 25.57 ( 32.05%)
len=256, pos=160, align=0: 30.01 23.91 ( 20.33%)
len=160, pos=96, align=0: 21.43 20.29 ( 5.29%)
len=160, pos=256, align=0: 24.28 16.81 ( 30.76%)
len=256, pos=144, align=0: 32.30 22.81 ( 29.38%)
len=400, pos=256, align=0: 40.18 31.74 ( 21.00%)
len=256, pos=112, align=0: 25.90 27.05 ( -4.41%)
len=112, pos=144, align=0: 17.12 13.20 ( 22.88%)
len=112, pos=256, align=0: 17.64 14.20 ( 19.48%)
len=256, pos=192, align=0: 33.24 24.26 ( 27.02%)
len=448, pos=256, align=0: 43.02 33.01 ( 23.27%)
len=256, pos=64, align=0: 27.46 26.75 ( 2.58%)
len=64, pos=192, align=0: 17.49 15.00 ( 14.20%)
len=64, pos=256, align=0: 17.69 13.99 ( 20.95%)
len=256, pos=240, align=0: 32.60 22.87 ( 29.85%)
len=496, pos=256, align=0: 43.04 32.21 ( 25.18%)
len=256, pos=16, align=0: 29.46 27.61 ( 6.27%)
len=16, pos=240, align=0: 10.80 10.00 ( 7.39%)
len=16, pos=256, align=0: 10.80 10.01 ( 7.38%)
len=256, pos=288, align=0: 33.49 25.06 ( 25.18%)
len=544, pos=256, align=0: 46.64 36.54 ( 21.64%)
len=512, pos=0, align=0: 40.75 36.01 ( 11.64%)
len=512, pos=512, align=0: 44.42 39.39 ( 11.32%)
len=512, pos=512, align=0: 46.53 38.41 ( 17.45%)
len=512, pos=0, align=0: 39.37 37.20 ( 5.53%)
len=512, pos=512, align=0: 46.47 34.91 ( 24.88%)
len=512, pos=48, align=0: 41.04 36.01 ( 12.26%)
len=560, pos=512, align=0: 49.18 37.02 ( 24.72%)
len=512, pos=464, align=0: 44.76 39.71 ( 11.27%)
len=464, pos=48, align=0: 37.20 32.72 ( 12.06%)
len=464, pos=512, align=0: 41.67 30.99 ( 25.64%)
len=512, pos=96, align=0: 36.90 34.59 ( 6.27%)
len=608, pos=512, align=0: 53.20 40.70 ( 23.49%)
len=512, pos=416, align=0: 45.86 36.69 ( 20.01%)
len=416, pos=96, align=0: 31.11 30.88 ( 0.74%)
len=416, pos=512, align=0: 38.25 27.61 ( 27.82%)
len=512, pos=144, align=0: 41.53 33.20 ( 20.07%)
len=656, pos=512, align=0: 54.93 40.82 ( 25.69%)
len=512, pos=368, align=0: 43.96 37.45 ( 14.82%)
len=368, pos=144, align=0: 34.54 24.33 ( 29.55%)
len=368, pos=512, align=0: 35.98 22.81 ( 36.60%)
len=512, pos=192, align=0: 43.82 35.69 ( 18.55%)
len=704, pos=512, align=0: 59.90 41.50 ( 30.71%)
len=512, pos=320, align=0: 46.26 34.82 ( 24.73%)
len=320, pos=192, align=0: 36.34 27.74 ( 23.65%)
len=320, pos=512, align=0: 35.62 25.32 ( 28.91%)
len=512, pos=240, align=0: 42.88 33.61 ( 21.61%)
len=752, pos=512, align=0: 62.03 46.00 ( 25.84%)
len=512, pos=272, align=0: 46.43 37.23 ( 19.81%)
len=272, pos=240, align=0: 32.23 23.95 ( 25.71%)
len=272, pos=512, align=0: 32.81 22.81 ( 30.49%)
len=512, pos=288, align=0: 46.71 37.07 ( 20.63%)
len=800, pos=512, align=0: 62.83 47.23 ( 24.82%)
len=512, pos=224, align=0: 42.83 33.60 ( 21.53%)
len=224, pos=288, align=0: 28.37 18.36 ( 35.29%)
len=224, pos=512, align=0: 30.30 18.01 ( 40.56%)
len=1024, pos=0, align=0: 70.24 51.37 ( 26.87%)
len=1024, pos=1024, align=0: 73.49 56.74 ( 22.80%)
len=1024, pos=1024, align=0: 74.20 53.92 ( 27.34%)
len=1024, pos=0, align=0: 69.71 52.11 ( 25.25%)
len=1024, pos=1024, align=0: 73.72 55.48 ( 24.74%)
len=1024, pos=48, align=0: 69.93 50.40 ( 27.92%)
len=1072, pos=1024, align=0: 74.82 56.94 ( 23.90%)
len=1024, pos=976, align=0: 80.33 58.81 ( 26.79%)
len=976, pos=48, align=0: 62.79 49.38 ( 21.35%)
len=976, pos=1024, align=0: 66.88 51.50 ( 22.99%)
len=1024, pos=96, align=0: 63.37 49.22 ( 22.34%)
len=1120, pos=1024, align=0: 87.08 59.76 ( 31.38%)
len=1024, pos=928, align=0: 74.85 61.43 ( 17.93%)
len=928, pos=96, align=0: 56.92 45.84 ( 19.46%)
len=928, pos=1024, align=0: 65.15 49.17 ( 24.53%)
len=1024, pos=144, align=0: 68.12 48.63 ( 28.61%)
len=1168, pos=1024, align=0: 89.01 65.26 ( 26.69%)
len=1024, pos=880, align=0: 79.04 60.51 ( 23.44%)
len=880, pos=144, align=0: 56.90 39.53 ( 30.52%)
len=880, pos=1024, align=0: 62.75 42.02 ( 33.04%)
len=1024, pos=192, align=0: 68.55 51.78 ( 24.46%)
len=1216, pos=1024, align=0: 88.41 64.78 ( 26.73%)
len=1024, pos=832, align=0: 77.59 63.33 ( 18.39%)
len=832, pos=192, align=0: 59.79 42.01 ( 29.75%)
len=832, pos=1024, align=0: 60.63 41.32 ( 31.85%)
len=1024, pos=240, align=0: 68.96 50.19 ( 27.22%)
len=1264, pos=1024, align=0: 95.13 64.75 ( 31.93%)
len=1024, pos=784, align=0: 74.21 55.95 ( 24.61%)
len=784, pos=240, align=0: 55.58 43.48 ( 21.78%)
len=784, pos=1024, align=0: 58.57 40.82 ( 30.30%)
len=1024, pos=288, align=0: 68.99 55.30 ( 19.84%)
len=1312, pos=1024, align=0: 90.42 66.30 ( 26.68%)
len=1024, pos=736, align=0: 76.65 62.15 ( 18.92%)
len=736, pos=288, align=0: 53.70 39.55 ( 26.35%)
len=736, pos=1024, align=0: 54.24 37.31 ( 31.21%)
len=2048, pos=0, align=0: 114.91 79.56 ( 30.76%)
len=2048, pos=2048, align=0: 123.45 83.89 ( 32.05%)
len=2048, pos=2048, align=0: 121.73 83.00 ( 31.81%)
len=2048, pos=0, align=0: 115.19 79.42 ( 31.06%)
len=2048, pos=2048, align=0: 122.30 86.70 ( 29.11%)
len=2048, pos=48, align=0: 119.26 83.34 ( 30.12%)
len=2096, pos=2048, align=0: 137.97 93.70 ( 32.09%)
len=2048, pos=2000, align=0: 142.49 101.60 ( 28.70%)
len=2000, pos=48, align=0: 117.56 78.49 ( 33.24%)
len=2000, pos=2048, align=0: 121.34 79.43 ( 34.54%)
len=2048, pos=96, align=0: 113.34 81.84 ( 27.79%)
len=2144, pos=2048, align=0: 156.85 97.91 ( 37.58%)
len=2048, pos=1952, align=0: 136.36 96.41 ( 29.30%)
len=1952, pos=96, align=0: 107.36 75.79 ( 29.40%)
len=1952, pos=2048, align=0: 119.75 77.60 ( 35.20%)
len=2048, pos=144, align=0: 117.58 80.14 ( 31.85%)
len=2192, pos=2048, align=0: 146.38 100.61 ( 31.27%)
len=2048, pos=1904, align=0: 135.51 101.31 ( 25.24%)
len=1904, pos=144, align=0: 111.28 72.17 ( 35.15%)
len=1904, pos=2048, align=0: 111.16 76.47 ( 31.20%)
len=2048, pos=192, align=0: 121.05 80.52 ( 33.48%)
len=2240, pos=2048, align=0: 144.91 96.62 ( 33.32%)
len=2048, pos=1856, align=0: 135.94 103.58 ( 23.81%)
len=1856, pos=192, align=0: 112.07 72.27 ( 35.52%)
len=1856, pos=2048, align=0: 113.06 77.09 ( 31.81%)
len=2048, pos=240, align=0: 119.70 80.65 ( 32.62%)
len=2288, pos=2048, align=0: 143.57 94.11 ( 34.45%)
len=2048, pos=1808, align=0: 132.39 93.93 ( 29.05%)
len=1808, pos=240, align=0: 106.68 73.40 ( 31.20%)
len=1808, pos=2048, align=0: 110.77 77.09 ( 30.40%)
len=2048, pos=288, align=0: 121.40 82.12 ( 32.35%)
len=2336, pos=2048, align=0: 145.91 104.56 ( 28.34%)
len=2048, pos=1760, align=0: 132.01 97.85 ( 25.88%)
len=1760, pos=288, align=0: 106.39 62.69 ( 41.07%)
len=1760, pos=2048, align=0: 103.83 71.01 ( 31.60%)
len=2048, pos=32, align=0: 118.33 83.04 ( 29.82%)
len=2048, pos=32, align=1: 120.22 83.03 ( 30.93%)
len=2048, pos=64, align=0: 118.17 81.26 ( 31.24%)
len=2048, pos=64, align=2: 116.94 81.46 ( 30.34%)
len=2048, pos=128, align=0: 118.86 79.77 ( 32.89%)
len=2048, pos=128, align=3: 119.22 82.58 ( 30.74%)
len=2048, pos=256, align=0: 123.18 71.04 ( 42.33%)
len=2048, pos=256, align=4: 118.34 83.05 ( 29.83%)
len=2048, pos=512, align=0: 130.65 88.46 ( 32.30%)
len=2048, pos=512, align=5: 130.19 88.19 ( 32.26%)
len=2048, pos=1024, align=0: 145.91 100.33 ( 31.24%)
len=2048, pos=1024, align=6: 145.96 100.75 ( 30.97%)
len=2048, pos=2048, align=0: 147.83 119.49 ( 19.17%)
len=2048, pos=2048, align=7: 146.27 119.52 ( 18.29%)
len=2048, pos=4096, align=0: 129.78 91.45 ( 29.54%)
len=2048, pos=4096, align=8: 129.76 91.45 ( 29.52%)
len=256, pos=64, align=1: 33.51 26.74 ( 20.21%)
len=256, pos=64, align=1: 32.40 27.34 ( 15.62%)
len=256, pos=64, align=15: 27.96 26.42 ( 5.50%)
len=256, pos=64, align=15: 27.16 26.76 ( 1.48%)
len=256, pos=64, align=2: 27.45 26.73 ( 2.60%)
len=256, pos=64, align=2: 27.52 26.83 ( 2.51%)
len=256, pos=64, align=30: 27.23 26.99 ( 0.89%)
len=256, pos=64, align=30: 28.03 26.15 ( 6.69%)
len=256, pos=64, align=3: 27.27 26.77 ( 1.82%)
len=256, pos=64, align=3: 27.59 26.09 ( 5.42%)
len=256, pos=64, align=45: 26.41 27.12 ( -2.71%)
len=256, pos=64, align=45: 27.20 27.08 ( 0.45%)
len=256, pos=64, align=4: 28.38 25.80 ( 9.08%)
len=256, pos=64, align=4: 27.62 26.87 ( 2.72%)
len=256, pos=64, align=60: 27.59 26.78 ( 2.93%)
len=256, pos=64, align=60: 27.21 27.11 ( 0.38%)
len=256, pos=64, align=5: 28.37 25.80 ( 9.04%)
len=256, pos=64, align=5: 27.48 26.72 ( 2.77%)
len=256, pos=64, align=75: 27.49 26.25 ( 4.53%)
len=256, pos=64, align=75: 27.30 26.02 ( 4.69%)
len=256, pos=64, align=6: 26.41 27.07 ( -2.49%)
len=256, pos=64, align=6: 27.24 26.77 ( 1.75%)
len=256, pos=64, align=90: 27.47 24.74 ( 9.97%)
len=256, pos=64, align=90: 27.26 25.69 ( 5.79%)
len=256, pos=64, align=7: 27.21 27.18 ( 0.11%)
len=256, pos=64, align=7: 29.40 25.80 ( 12.22%)
len=256, pos=64, align=105: 27.46 23.91 ( 12.90%)
len=256, pos=64, align=105: 28.38 23.23 ( 18.15%)
len=1, pos=0, align=0: 9.61 9.61 ( 0.04%)
len=1, pos=0, align=0: 8.76 8.40 ( 4.09%)
len=1, pos=0, align=4095: 42.01 42.32 ( -0.75%)
len=2, pos=1, align=0: 8.40 8.40 ( 0.01%)
len=2, pos=1, align=0: 8.40 8.40 ( 0.00%)
len=2, pos=1, align=4095: 42.36 43.15 ( -1.87%)
len=3, pos=2, align=0: 8.41 8.42 ( -0.18%)
len=3, pos=2, align=0: 8.40 8.42 ( -0.22%)
len=3, pos=2, align=4094: 42.81 42.34 ( 1.09%)
len=4, pos=3, align=0: 8.40 8.42 ( -0.22%)
len=4, pos=3, align=0: 8.40 8.42 ( -0.20%)
len=4, pos=3, align=4094: 42.32 42.06 ( 0.61%)
len=5, pos=4, align=0: 8.40 8.42 ( -0.20%)
len=5, pos=4, align=0: 8.40 8.42 ( -0.21%)
len=5, pos=4, align=4093: 42.81 43.26 ( -1.06%)
len=6, pos=5, align=0: 8.40 8.73 ( -3.91%)
len=6, pos=5, align=0: 8.40 8.40 ( 0.00%)
len=6, pos=5, align=4093: 42.31 42.51 ( -0.47%)
len=7, pos=6, align=0: 8.40 8.42 ( -0.22%)
len=7, pos=6, align=0: 8.40 8.42 ( -0.22%)
len=7, pos=6, align=4092: 42.32 42.36 ( -0.11%)
len=8, pos=7, align=0: 8.40 8.42 ( -0.22%)
len=8, pos=7, align=0: 8.40 8.42 ( -0.20%)
len=8, pos=7, align=4092: 42.32 42.00 ( 0.75%)
len=9, pos=8, align=0: 8.40 8.42 ( -0.21%)
len=9, pos=8, align=0: 8.40 8.42 ( -0.22%)
len=9, pos=8, align=4091: 42.36 42.31 ( 0.11%)
len=10, pos=9, align=0: 8.40 8.42 ( -0.20%)
len=10, pos=9, align=0: 8.40 8.42 ( -0.21%)
len=10, pos=9, align=4091: 42.00 43.03 ( -2.45%)
len=11, pos=10, align=0: 8.40 8.74 ( -3.99%)
len=11, pos=10, align=0: 8.40 8.42 ( -0.21%)
len=11, pos=10, align=4090: 42.81 43.38 ( -1.34%)
len=12, pos=11, align=0: 8.40 8.42 ( -0.21%)
len=12, pos=11, align=0: 8.72 8.42 ( 3.39%)
len=12, pos=11, align=4090: 42.67 42.00 ( 1.57%)
len=13, pos=12, align=0: 8.40 8.42 ( -0.18%)
len=13, pos=12, align=0: 8.40 8.42 ( -0.17%)
len=13, pos=12, align=4089: 42.01 42.83 ( -1.95%)
len=14, pos=13, align=0: 8.40 8.42 ( -0.20%)
len=14, pos=13, align=0: 8.72 8.42 ( 3.41%)
len=14, pos=13, align=4089: 43.11 42.06 ( 2.44%)
len=15, pos=14, align=0: 8.40 8.42 ( -0.22%)
len=15, pos=14, align=0: 8.40 8.42 ( -0.17%)
len=15, pos=14, align=4088: 42.32 42.00 ( 0.74%)
len=16, pos=15, align=0: 8.40 8.42 ( -0.20%)
len=16, pos=15, align=0: 8.40 8.42 ( -0.21%)
len=16, pos=15, align=4088: 42.01 42.74 ( -1.75%)
len=17, pos=16, align=0: 8.40 8.42 ( -0.19%)
len=17, pos=16, align=0: 8.40 8.42 ( -0.18%)
len=17, pos=16, align=4087: 42.81 42.92 ( -0.27%)
len=18, pos=17, align=0: 8.40 8.42 ( -0.19%)
len=18, pos=17, align=0: 8.40 8.42 ( -0.19%)
len=18, pos=17, align=4087: 42.81 42.94 ( -0.32%)
len=19, pos=18, align=0: 8.40 8.42 ( -0.18%)
len=19, pos=18, align=0: 8.40 8.42 ( -0.17%)
len=19, pos=18, align=4086: 42.00 42.38 ( -0.89%)
len=20, pos=19, align=0: 8.40 8.42 ( -0.21%)
len=20, pos=19, align=0: 8.40 8.42 ( -0.17%)
len=20, pos=19, align=4086: 42.81 42.37 ( 1.03%)
len=21, pos=20, align=0: 8.40 8.42 ( -0.18%)
len=21, pos=20, align=0: 8.40 8.42 ( -0.18%)
len=21, pos=20, align=4085: 43.12 42.06 ( 2.46%)
len=22, pos=21, align=0: 10.11 8.42 ( 16.68%)
len=22, pos=21, align=0: 9.69 9.51 ( 1.86%)
len=22, pos=21, align=4085: 42.91 42.53 ( 0.86%)
len=23, pos=22, align=0: 9.18 9.56 ( -4.16%)
len=23, pos=22, align=0: 8.40 8.42 ( -0.19%)
len=23, pos=22, align=4084: 42.90 42.00 ( 2.09%)
len=24, pos=23, align=0: 10.12 8.42 ( 16.80%)
len=24, pos=23, align=0: 9.55 9.53 ( 0.28%)
len=24, pos=23, align=4084: 42.65 42.71 ( -0.14%)
len=25, pos=24, align=0: 8.40 8.42 ( -0.19%)
len=25, pos=24, align=0: 8.40 8.42 ( -0.17%)
len=25, pos=24, align=4083: 42.84 42.79 ( 0.11%)
len=26, pos=25, align=0: 10.04 8.42 ( 16.19%)
len=26, pos=25, align=0: 8.40 8.42 ( -0.18%)
len=26, pos=25, align=4083: 43.36 43.62 ( -0.60%)
len=27, pos=26, align=0: 9.55 9.53 ( 0.19%)
len=27, pos=26, align=0: 9.18 9.54 ( -3.93%)
len=27, pos=26, align=4082: 42.87 42.00 ( 2.01%)
len=28, pos=27, align=0: 10.34 8.42 ( 18.54%)
len=28, pos=27, align=0: 9.19 9.55 ( -3.98%)
len=28, pos=27, align=4082: 43.12 42.06 ( 2.45%)
len=29, pos=28, align=0: 10.41 8.42 ( 19.11%)
len=29, pos=28, align=0: 9.27 9.57 ( -3.30%)
len=29, pos=28, align=4081: 42.66 42.50 ( 0.38%)
len=30, pos=29, align=0: 9.17 9.52 ( -3.86%)
len=30, pos=29, align=0: 8.40 8.42 ( -0.20%)
len=30, pos=29, align=4081: 42.68 42.80 ( -0.29%)
len=31, pos=30, align=0: 9.28 9.49 ( -2.27%)
len=31, pos=30, align=0: 10.12 8.76 ( 13.39%)
len=31, pos=30, align=4080: 42.35 43.05 ( -1.63%)
len=32, pos=31, align=0: 16.31 8.77 ( 46.21%)
len=32, pos=31, align=0: 15.97 8.42 ( 47.27%)
len=32, pos=31, align=4080: 40.06 42.49 ( -6.08%)
len=16, pos=0, align=0: 9.61 8.42 ( 12.35%)
len=32, pos=16, align=0: 15.86 8.42 ( 46.90%)
len=48, pos=32, align=0: 13.97 9.52 ( 31.89%)
len=64, pos=48, align=0: 15.48 14.95 ( 3.46%)
len=80, pos=64, align=0: 15.97 13.52 ( 15.35%)
len=96, pos=80, align=0: 17.89 14.56 ( 18.60%)
len=112, pos=96, align=0: 15.61 13.20 ( 15.42%)
len=128, pos=112, align=0: 24.62 22.60 ( 8.23%)
len=144, pos=128, align=0: 24.74 16.81 ( 32.08%)
len=160, pos=144, align=0: 23.59 17.75 ( 24.74%)
len=176, pos=160, align=0: 23.48 17.77 ( 24.30%)
len=192, pos=176, align=0: 28.66 19.04 ( 33.55%)
len=208, pos=192, align=0: 29.74 16.81 ( 43.49%)
len=224, pos=208, align=0: 28.35 16.73 ( 40.97%)
len=240, pos=224, align=0: 28.41 17.00 ( 40.15%)
len=256, pos=240, align=0: 31.98 23.81 ( 25.54%)
len=272, pos=256, align=0: 32.07 24.51 ( 23.56%)
len=288, pos=272, align=0: 32.99 23.13 ( 29.90%)
len=16, pos=0, align=0: 8.43 8.76 ( -3.90%)
len=16, pos=16, align=0: 8.43 8.40 ( 0.30%)
len=16, pos=16, align=0: 8.43 8.40 ( 0.32%)
len=16, pos=0, align=0: 8.43 8.40 ( 0.30%)
len=16, pos=16, align=0: 8.43 8.40 ( 0.35%)
len=16, pos=48, align=0: 8.43 8.40 ( 0.33%)
len=64, pos=16, align=0: 16.44 14.87 ( 9.59%)
len=16, pos=96, align=0: 8.43 8.40 ( 0.30%)
len=112, pos=16, align=0: 16.86 15.05 ( 10.70%)
len=16, pos=144, align=0: 9.01 8.43 ( 6.44%)
len=160, pos=16, align=0: 26.81 22.81 ( 14.94%)
len=16, pos=192, align=0: 8.43 8.43 ( 0.03%)
len=208, pos=16, align=0: 29.62 23.96 ( 19.12%)
len=16, pos=240, align=0: 8.43 8.43 ( 0.03%)
len=256, pos=16, align=0: 33.07 29.11 ( 11.99%)
len=16, pos=288, align=0: 10.02 10.01 ( 0.07%)
len=304, pos=16, align=0: 27.78 28.80 ( -3.67%)
len=32, pos=0, align=0: 15.87 8.43 ( 46.86%)
len=32, pos=32, align=0: 15.50 9.56 ( 38.35%)
len=32, pos=32, align=0: 15.87 8.43 ( 46.89%)
len=32, pos=0, align=0: 15.23 9.53 ( 37.40%)
len=32, pos=32, align=0: 14.40 8.43 ( 41.49%)
len=32, pos=48, align=0: 15.18 9.57 ( 36.98%)
len=80, pos=32, align=0: 15.29 15.06 ( 1.46%)
len=32, pos=96, align=0: 15.12 9.52 ( 37.00%)
len=128, pos=32, align=0: 23.49 23.12 ( 1.57%)
len=32, pos=144, align=0: 15.96 8.43 ( 47.19%)
len=176, pos=32, align=0: 23.60 22.62 ( 4.15%)
len=32, pos=192, align=0: 15.17 9.57 ( 36.88%)
len=224, pos=32, align=0: 24.81 24.61 ( 0.84%)
len=32, pos=240, align=0: 15.93 8.43 ( 47.08%)
len=272, pos=32, align=0: 27.27 28.84 ( -5.78%)
len=32, pos=288, align=0: 16.00 8.43 ( 47.31%)
len=320, pos=32, align=0: 29.15 29.80 ( -2.23%)
len=64, pos=0, align=0: 17.47 13.94 ( 20.19%)
len=64, pos=64, align=0: 15.12 15.56 ( -2.89%)
len=64, pos=64, align=0: 16.02 15.00 ( 6.36%)
len=64, pos=0, align=0: 16.48 14.94 ( 9.35%)
len=64, pos=64, align=0: 15.44 16.01 ( -3.67%)
len=64, pos=48, align=0: 16.01 13.92 ( 13.04%)
len=112, pos=64, align=0: 17.51 14.17 ( 19.10%)
len=64, pos=16, align=0: 16.73 15.99 ( 4.41%)
len=16, pos=48, align=0: 8.41 8.43 ( -0.27%)
len=16, pos=64, align=0: 8.40 8.43 ( -0.32%)
len=64, pos=96, align=0: 15.18 16.26 ( -7.13%)
len=160, pos=64, align=0: 24.59 22.81 ( 7.24%)
len=64, pos=144, align=0: 15.52 14.93 ( 3.80%)
len=208, pos=64, align=0: 25.82 21.01 ( 18.64%)
len=64, pos=192, align=0: 16.28 14.86 ( 8.76%)
len=256, pos=64, align=0: 28.10 25.82 ( 8.12%)
len=64, pos=240, align=0: 15.24 14.86 ( 2.50%)
len=304, pos=64, align=0: 27.28 26.78 ( 1.80%)
len=64, pos=288, align=0: 15.24 14.99 ( 1.65%)
len=352, pos=64, align=0: 29.93 27.44 ( 8.32%)
len=128, pos=0, align=0: 24.45 23.13 ( 5.42%)
len=128, pos=128, align=0: 21.48 22.66 ( -5.47%)
len=128, pos=128, align=0: 21.98 19.20 ( 12.62%)
len=128, pos=0, align=0: 23.84 22.62 ( 5.11%)
len=128, pos=128, align=0: 22.08 20.40 ( 7.62%)
len=128, pos=48, align=0: 23.83 22.66 ( 4.90%)
len=176, pos=128, align=0: 24.00 17.75 ( 26.03%)
len=128, pos=80, align=0: 23.47 21.46 ( 8.57%)
len=80, pos=48, align=0: 15.14 16.02 ( -5.81%)
len=80, pos=128, align=0: 15.09 14.46 ( 4.23%)
len=128, pos=96, align=0: 22.05 19.20 ( 12.92%)
len=224, pos=128, align=0: 30.21 17.94 ( 40.60%)
len=128, pos=32, align=0: 23.33 23.75 ( -1.79%)
len=32, pos=96, align=0: 15.45 9.56 ( 38.12%)
len=32, pos=128, align=0: 15.95 8.43 ( 47.16%)
len=128, pos=144, align=0: 21.25 21.83 ( -2.75%)
len=272, pos=128, align=0: 33.08 24.01 ( 27.41%)
len=128, pos=192, align=0: 21.24 21.81 ( -2.69%)
len=320, pos=128, align=0: 35.10 22.81 ( 35.02%)
len=128, pos=240, align=0: 21.53 20.18 ( 6.24%)
len=368, pos=128, align=0: 33.61 23.92 ( 28.83%)
len=128, pos=288, align=0: 21.54 21.40 ( 0.66%)
len=416, pos=128, align=0: 37.89 28.81 ( 23.96%)
len=256, pos=0, align=0: 28.09 28.57 ( -1.69%)
len=256, pos=256, align=0: 32.81 24.45 ( 25.47%)
len=256, pos=256, align=0: 32.01 24.58 ( 23.21%)
len=256, pos=0, align=0: 28.05 27.61 ( 1.59%)
len=256, pos=256, align=0: 32.28 23.87 ( 26.05%)
len=256, pos=48, align=0: 28.52 27.61 ( 3.22%)
len=304, pos=256, align=0: 32.05 23.77 ( 25.82%)
len=256, pos=208, align=0: 33.50 23.90 ( 28.66%)
len=208, pos=48, align=0: 26.99 26.52 ( 1.73%)
len=208, pos=256, align=0: 28.31 17.81 ( 37.08%)
len=256, pos=96, align=0: 26.52 26.81 ( -1.12%)
len=352, pos=256, align=0: 38.06 24.01 ( 36.92%)
len=256, pos=160, align=0: 31.06 23.91 ( 23.00%)
len=160, pos=96, align=0: 21.89 19.20 ( 12.27%)
len=160, pos=256, align=0: 23.84 17.77 ( 25.46%)
len=256, pos=144, align=0: 31.91 24.52 ( 23.15%)
len=400, pos=256, align=0: 39.59 32.26 ( 18.51%)
len=256, pos=112, align=0: 26.65 26.75 ( -0.35%)
len=112, pos=144, align=0: 16.38 14.23 ( 13.14%)
len=112, pos=256, align=0: 16.41 14.49 ( 11.69%)
len=256, pos=192, align=0: 33.18 23.31 ( 29.76%)
len=448, pos=256, align=0: 43.09 33.33 ( 22.66%)
len=256, pos=64, align=0: 28.41 27.18 ( 4.31%)
len=64, pos=192, align=0: 15.23 14.87 ( 2.32%)
len=64, pos=256, align=0: 15.24 14.90 ( 2.23%)
len=256, pos=240, align=0: 32.33 23.89 ( 26.09%)
len=496, pos=256, align=0: 43.16 28.81 ( 33.25%)
len=256, pos=16, align=0: 27.20 28.91 ( -6.28%)
len=16, pos=240, align=0: 9.59 8.43 ( 12.09%)
len=16, pos=256, align=0: 11.12 10.81 ( 2.79%)
len=256, pos=288, align=0: 32.00 23.81 ( 25.61%)
len=544, pos=256, align=0: 45.03 38.21 ( 15.15%)
len=512, pos=0, align=0: 40.04 36.72 ( 8.28%)
len=512, pos=512, align=0: 50.35 37.12 ( 26.28%)
len=512, pos=512, align=0: 50.37 37.02 ( 26.50%)
len=512, pos=0, align=0: 39.28 37.20 ( 5.29%)
len=512, pos=512, align=0: 49.52 39.39 ( 20.47%)
len=512, pos=48, align=0: 38.92 37.38 ( 3.98%)
len=560, pos=512, align=0: 53.95 37.31 ( 30.85%)
len=512, pos=464, align=0: 54.35 37.87 ( 30.32%)
len=464, pos=48, align=0: 35.54 33.71 ( 5.16%)
len=464, pos=512, align=0: 47.63 28.06 ( 41.09%)
len=512, pos=96, align=0: 36.27 34.51 ( 4.87%)
len=608, pos=512, align=0: 57.52 34.66 ( 39.74%)
len=512, pos=416, align=0: 48.87 39.53 ( 19.12%)
len=416, pos=96, align=0: 30.51 30.98 ( -1.52%)
len=416, pos=512, align=0: 41.36 27.94 ( 32.46%)
len=512, pos=144, align=0: 41.94 33.54 ( 20.04%)
len=656, pos=512, align=0: 60.92 47.00 ( 22.84%)
len=512, pos=368, align=0: 48.01 39.77 ( 17.18%)
len=368, pos=144, align=0: 35.75 24.61 ( 31.15%)
len=368, pos=512, align=0: 36.87 24.22 ( 34.32%)
len=512, pos=192, align=0: 44.09 33.62 ( 23.75%)
len=704, pos=512, align=0: 63.79 45.92 ( 28.02%)
len=512, pos=320, align=0: 48.98 38.41 ( 21.59%)
len=320, pos=192, align=0: 36.37 27.55 ( 24.23%)
len=320, pos=512, align=0: 36.34 24.01 ( 33.94%)
len=512, pos=240, align=0: 41.77 37.27 ( 10.77%)
len=752, pos=512, align=0: 64.59 42.18 ( 34.70%)
len=512, pos=272, align=0: 45.05 36.82 ( 18.27%)
len=272, pos=240, align=0: 32.31 23.93 ( 25.94%)
len=272, pos=512, align=0: 32.39 23.83 ( 26.41%)
len=512, pos=288, align=0: 47.14 36.49 ( 22.59%)
len=800, pos=512, align=0: 67.06 51.84 ( 22.70%)
len=512, pos=224, align=0: 42.91 33.01 ( 23.07%)
len=224, pos=288, align=0: 28.81 17.11 ( 40.61%)
len=224, pos=512, align=0: 28.38 17.10 ( 39.73%)
len=1024, pos=0, align=0: 70.09 52.64 ( 24.89%)
len=1024, pos=1024, align=0: 99.27 62.71 ( 36.83%)
len=1024, pos=1024, align=0: 98.61 59.09 ( 40.08%)
len=1024, pos=0, align=0: 70.92 50.76 ( 28.43%)
len=1024, pos=1024, align=0: 100.03 58.83 ( 41.19%)
len=1024, pos=48, align=0: 70.20 51.52 ( 26.61%)
len=1072, pos=1024, align=0: 96.23 56.69 ( 41.09%)
len=1024, pos=976, align=0: 95.97 55.70 ( 41.96%)
len=976, pos=48, align=0: 61.20 48.97 ( 19.99%)
len=976, pos=1024, align=0: 91.24 54.22 ( 40.57%)
len=1024, pos=96, align=0: 64.21 48.02 ( 25.22%)
len=1120, pos=1024, align=0: 100.04 61.06 ( 38.96%)
len=1024, pos=928, align=0: 93.73 59.20 ( 36.84%)
len=928, pos=96, align=0: 57.28 44.27 ( 22.70%)
len=928, pos=1024, align=0: 85.86 51.57 ( 39.94%)
len=1024, pos=144, align=0: 67.35 50.26 ( 25.37%)
len=1168, pos=1024, align=0: 104.03 70.33 ( 32.39%)
len=1024, pos=880, align=0: 91.46 59.91 ( 34.49%)
len=880, pos=144, align=0: 57.25 40.72 ( 28.89%)
len=880, pos=1024, align=0: 80.31 46.41 ( 42.20%)
len=1024, pos=192, align=0: 68.02 50.60 ( 25.61%)
len=1216, pos=1024, align=0: 106.87 71.08 ( 33.49%)
len=1024, pos=832, align=0: 90.43 59.11 ( 34.64%)
len=832, pos=192, align=0: 60.29 42.01 ( 30.33%)
len=832, pos=1024, align=0: 79.24 45.93 ( 42.04%)
len=1024, pos=240, align=0: 68.94 51.51 ( 25.29%)
len=1264, pos=1024, align=0: 107.21 67.83 ( 36.74%)
len=1024, pos=784, align=0: 90.35 58.63 ( 35.11%)
len=784, pos=240, align=0: 54.05 44.17 ( 18.28%)
len=784, pos=1024, align=0: 75.47 46.70 ( 38.12%)
len=1024, pos=288, align=0: 70.91 51.51 ( 27.36%)
len=1312, pos=1024, align=0: 110.21 74.65 ( 32.26%)
len=1024, pos=736, align=0: 86.67 59.91 ( 30.87%)
len=736, pos=288, align=0: 54.44 41.02 ( 24.65%)
len=736, pos=1024, align=0: 70.77 38.43 ( 45.70%)
len=2048, pos=0, align=0: 117.06 83.01 ( 29.08%)
len=2048, pos=2048, align=0: 146.48 127.65 ( 12.85%)
len=2048, pos=2048, align=0: 146.29 119.44 ( 18.35%)
len=2048, pos=0, align=0: 118.48 81.53 ( 31.18%)
len=2048, pos=2048, align=0: 146.36 119.52 ( 18.34%)
len=2048, pos=48, align=0: 120.97 81.74 ( 32.43%)
len=2096, pos=2048, align=0: 147.64 119.10 ( 19.33%)
len=2048, pos=2000, align=0: 155.48 108.82 ( 30.01%)
len=2000, pos=48, align=0: 115.61 78.29 ( 32.28%)
len=2000, pos=2048, align=0: 144.76 114.63 ( 20.81%)
len=2048, pos=96, align=0: 113.26 79.34 ( 29.95%)
len=2144, pos=2048, align=0: 160.44 117.64 ( 26.67%)
len=2048, pos=1952, align=0: 158.73 113.24 ( 28.66%)
len=1952, pos=96, align=0: 106.75 76.55 ( 28.28%)
len=1952, pos=2048, align=0: 139.10 112.08 ( 19.43%)
len=2048, pos=144, align=0: 120.11 80.07 ( 33.33%)
len=2192, pos=2048, align=0: 167.38 122.37 ( 26.89%)
len=2048, pos=1904, align=0: 156.70 113.41 ( 27.63%)
len=1904, pos=144, align=0: 108.97 70.99 ( 34.86%)
len=1904, pos=2048, align=0: 136.28 107.40 ( 21.19%)
len=2048, pos=192, align=0: 121.11 79.72 ( 34.18%)
len=2240, pos=2048, align=0: 167.52 125.06 ( 25.35%)
len=2048, pos=1856, align=0: 157.57 109.47 ( 30.52%)
len=1856, pos=192, align=0: 110.49 72.19 ( 34.66%)
len=1856, pos=2048, align=0: 136.69 107.91 ( 21.05%)
len=2048, pos=240, align=0: 121.57 79.28 ( 34.79%)
len=2288, pos=2048, align=0: 169.34 122.70 ( 27.54%)
len=2048, pos=1808, align=0: 149.49 108.59 ( 27.36%)
len=1808, pos=240, align=0: 107.64 117.86 ( -9.50%)
len=1808, pos=2048, align=0: 131.58 104.75 ( 20.39%)
len=2048, pos=288, align=0: 121.24 82.48 ( 31.97%)
len=2336, pos=2048, align=0: 177.60 124.06 ( 30.15%)
len=2048, pos=1760, align=0: 150.63 105.41 ( 30.02%)
len=1760, pos=288, align=0: 104.90 70.24 ( 33.04%)
len=1760, pos=2048, align=0: 128.78 100.11 ( 22.27%)
len=2048, pos=32, align=0: 119.61 83.02 ( 30.59%)
len=2048, pos=32, align=1: 119.45 83.04 ( 30.48%)
len=2048, pos=64, align=0: 120.44 79.39 ( 34.09%)
len=2048, pos=64, align=2: 120.20 66.67 ( 44.54%)
len=2048, pos=128, align=0: 117.56 79.71 ( 32.20%)
len=2048, pos=128, align=3: 118.84 79.67 ( 32.96%)
len=2048, pos=256, align=0: 122.54 81.29 ( 33.67%)
len=2048, pos=256, align=4: 122.70 81.81 ( 33.33%)
len=2048, pos=512, align=0: 132.23 87.04 ( 34.18%)
len=2048, pos=512, align=5: 130.40 88.42 ( 32.19%)
len=2048, pos=1024, align=0: 148.12 98.84 ( 33.27%)
len=2048, pos=1024, align=6: 148.27 99.27 ( 33.05%)
len=2048, pos=2048, align=0: 179.54 103.85 ( 42.16%)
len=2048, pos=2048, align=7: 179.51 103.98 ( 42.08%)
len=2048, pos=4096, align=0: 181.77 103.59 ( 43.01%)
len=2048, pos=4096, align=8: 183.31 103.54 ( 43.52%)
len=256, pos=64, align=1: 34.99 26.41 ( 24.52%)
len=256, pos=64, align=1: 32.07 27.09 ( 15.54%)
len=256, pos=64, align=15: 28.09 26.13 ( 6.98%)
len=256, pos=64, align=15: 27.19 26.69 ( 1.86%)
len=256, pos=64, align=2: 27.50 26.77 ( 2.67%)
len=256, pos=64, align=2: 27.56 27.23 ( 1.20%)
len=256, pos=64, align=30: 27.26 27.02 ( 0.86%)
len=256, pos=64, align=30: 28.03 25.80 ( 7.95%)
len=256, pos=64, align=3: 27.16 26.77 ( 1.41%)
len=256, pos=64, align=3: 27.60 26.77 ( 3.00%)
len=256, pos=64, align=45: 27.24 27.09 ( 0.53%)
len=256, pos=64, align=45: 27.19 27.12 ( 0.28%)
len=256, pos=64, align=4: 27.15 26.74 ( 1.48%)
len=256, pos=64, align=4: 26.73 26.75 ( -0.08%)
len=256, pos=64, align=60: 28.39 25.80 ( 9.10%)
len=256, pos=64, align=60: 27.25 27.03 ( 0.81%)
len=256, pos=64, align=5: 28.23 26.23 ( 7.06%)
len=256, pos=64, align=5: 27.16 26.67 ( 1.81%)
len=256, pos=64, align=75: 27.63 23.83 ( 13.73%)
len=256, pos=64, align=75: 27.22 26.17 ( 3.86%)
len=256, pos=64, align=6: 27.20 27.06 ( 0.51%)
len=256, pos=64, align=6: 27.99 25.80 ( 7.81%)
len=256, pos=64, align=90: 27.56 25.73 ( 6.67%)
len=256, pos=64, align=90: 28.64 22.81 ( 20.36%)
len=256, pos=64, align=7: 26.40 27.09 ( -2.60%)
len=256, pos=64, align=7: 27.22 26.67 ( 2.03%)
len=256, pos=64, align=105: 27.55 25.73 ( 6.59%)
len=256, pos=64, align=105: 28.66 24.06 ( 16.03%)
len=1, pos=0, align=0: 9.61 9.61 ( 0.02%)
len=1, pos=0, align=0: 8.40 8.40 ( 0.01%)
len=1, pos=0, align=4095: 42.32 42.00 ( 0.75%)
len=2, pos=1, align=0: 8.40 8.72 ( -3.79%)
len=2, pos=1, align=0: 8.40 8.40 ( 0.01%)
len=2, pos=1, align=4095: 42.32 42.46 ( -0.33%)
len=3, pos=2, align=0: 8.40 8.42 ( -0.18%)
len=3, pos=2, align=0: 8.40 8.42 ( -0.20%)
len=3, pos=2, align=4094: 42.01 42.92 ( -2.19%)
len=4, pos=3, align=0: 8.40 8.42 ( -0.20%)
len=4, pos=3, align=0: 8.40 8.42 ( -0.18%)
len=4, pos=3, align=4094: 42.32 42.06 ( 0.61%)
len=5, pos=4, align=0: 8.40 8.40 ( 0.00%)
len=5, pos=4, align=0: 8.40 8.40 ( -0.02%)
len=5, pos=4, align=4093: 42.83 42.50 ( 0.77%)
len=6, pos=5, align=0: 8.40 8.72 ( -3.76%)
len=6, pos=5, align=0: 8.40 8.40 ( 0.00%)
len=6, pos=5, align=4093: 42.00 42.37 ( -0.87%)
len=7, pos=6, align=0: 8.40 8.40 ( -0.01%)
len=7, pos=6, align=0: 8.40 8.40 ( 0.03%)
len=7, pos=6, align=4092: 42.98 42.32 ( 1.55%)
len=8, pos=7, align=0: 8.40 8.42 ( -0.20%)
len=8, pos=7, align=0: 8.40 8.42 ( -0.19%)
len=8, pos=7, align=4092: 43.27 42.42 ( 1.95%)
len=9, pos=8, align=0: 8.40 8.42 ( -0.19%)
len=9, pos=8, align=0: 8.40 8.42 ( -0.19%)
len=9, pos=8, align=4091: 42.35 42.33 ( 0.07%)
len=10, pos=9, align=0: 8.40 8.42 ( -0.20%)
len=10, pos=9, align=0: 8.40 8.42 ( -0.20%)
len=10, pos=9, align=4091: 42.01 42.95 ( -2.24%)
len=11, pos=10, align=0: 8.40 8.74 ( -3.97%)
len=11, pos=10, align=0: 8.40 8.40 ( -0.01%)
len=11, pos=10, align=4090: 43.18 42.00 ( 2.73%)
len=12, pos=11, align=0: 8.40 8.42 ( -0.19%)
len=12, pos=11, align=0: 8.73 8.42 ( 3.50%)
len=12, pos=11, align=4090: 42.86 42.00 ( 1.99%)
len=13, pos=12, align=0: 8.40 8.42 ( -0.20%)
len=13, pos=12, align=0: 8.40 8.42 ( -0.19%)
len=13, pos=12, align=4089: 42.01 42.32 ( -0.75%)
len=14, pos=13, align=0: 8.40 8.42 ( -0.19%)
len=14, pos=13, align=0: 8.71 8.42 ( 3.33%)
len=14, pos=13, align=4089: 42.54 42.42 ( 0.28%)
len=15, pos=14, align=0: 8.40 8.42 ( -0.21%)
len=15, pos=14, align=0: 8.40 8.42 ( -0.20%)
len=15, pos=14, align=4088: 43.14 42.00 ( 2.63%)
len=16, pos=15, align=0: 8.40 8.42 ( -0.21%)
len=16, pos=15, align=0: 8.40 8.42 ( -0.18%)
len=16, pos=15, align=4088: 42.01 42.37 ( -0.86%)
len=17, pos=16, align=0: 8.40 8.42 ( -0.18%)
len=17, pos=16, align=0: 8.40 8.42 ( -0.18%)
len=17, pos=16, align=4087: 42.01 42.33 ( -0.78%)
len=18, pos=17, align=0: 8.40 8.42 ( -0.21%)
len=18, pos=17, align=0: 8.40 8.42 ( -0.18%)
len=18, pos=17, align=4087: 42.01 42.41 ( -0.96%)
len=19, pos=18, align=0: 8.40 8.42 ( -0.19%)
len=19, pos=18, align=0: 9.58 9.55 ( 0.29%)
len=19, pos=18, align=4086: 42.99 42.00 ( 2.29%)
len=20, pos=19, align=0: 9.29 9.87 ( -6.28%)
len=20, pos=19, align=0: 10.01 8.42 ( 15.92%)
len=20, pos=19, align=4086: 42.65 42.82 ( -0.39%)
len=21, pos=20, align=0: 10.68 9.53 ( 10.78%)
len=21, pos=20, align=0: 10.02 8.42 ( 15.97%)
len=21, pos=20, align=4085: 42.00 42.37 ( -0.87%)
len=22, pos=21, align=0: 8.40 8.42 ( -0.18%)
len=22, pos=21, align=0: 8.40 8.42 ( -0.17%)
len=22, pos=21, align=4085: 42.36 42.00 ( 0.84%)
len=23, pos=22, align=0: 9.24 9.45 ( -2.23%)
len=23, pos=22, align=0: 9.72 9.52 ( 2.00%)
len=23, pos=22, align=4084: 42.31 42.76 ( -1.08%)
len=24, pos=23, align=0: 8.40 8.42 ( -0.20%)
len=24, pos=23, align=0: 8.40 8.42 ( -0.18%)
len=24, pos=23, align=4084: 43.52 42.79 ( 1.68%)
len=25, pos=24, align=0: 9.62 9.53 ( 0.86%)
len=25, pos=24, align=0: 9.18 9.44 ( -2.89%)
len=25, pos=24, align=4083: 42.36 42.06 ( 0.71%)
len=26, pos=25, align=0: 8.40 8.42 ( -0.19%)
len=26, pos=25, align=0: 9.57 9.90 ( -3.43%)
len=26, pos=25, align=4083: 42.36 43.61 ( -2.94%)
len=27, pos=26, align=0: 8.40 8.42 ( -0.18%)
len=27, pos=26, align=0: 9.28 9.91 ( -6.84%)
len=27, pos=26, align=4082: 42.68 43.26 ( -1.37%)
len=28, pos=27, align=0: 8.40 8.40 ( 0.01%)
len=28, pos=27, align=0: 9.28 9.85 ( -6.19%)
len=28, pos=27, align=4082: 42.81 42.59 ( 0.51%)
len=29, pos=28, align=0: 8.40 8.42 ( -0.18%)
len=29, pos=28, align=0: 9.17 9.52 ( -3.90%)
len=29, pos=28, align=4081: 42.68 42.37 ( 0.73%)
len=30, pos=29, align=0: 8.40 8.42 ( -0.18%)
len=30, pos=29, align=0: 9.26 9.67 ( -4.40%)
len=30, pos=29, align=4081: 43.05 42.00 ( 2.43%)
len=31, pos=30, align=0: 10.06 8.70 ( 13.52%)
len=31, pos=30, align=0: 9.37 9.56 ( -2.06%)
len=31, pos=30, align=4080: 42.83 43.62 ( -1.85%)
len=32, pos=31, align=0: 15.92 8.42 ( 47.11%)
len=32, pos=31, align=0: 15.59 9.57 ( 38.60%)
len=32, pos=31, align=4080: 39.79 42.36 ( -6.47%)
len=16, pos=0, align=0: 8.41 8.42 ( -0.16%)
len=32, pos=16, align=0: 15.94 8.73 ( 45.22%)
len=48, pos=32, align=0: 15.06 8.42 ( 44.08%)
len=64, pos=48, align=0: 15.22 15.91 ( -4.53%)
len=80, pos=64, align=0: 15.21 14.17 ( 6.82%)
len=96, pos=80, align=0: 17.51 14.17 ( 19.08%)
len=112, pos=96, align=0: 16.32 14.17 ( 13.19%)
len=128, pos=112, align=0: 24.74 21.35 ( 13.70%)
len=144, pos=128, align=0: 23.56 17.78 ( 24.52%)
len=160, pos=144, align=0: 23.90 17.79 ( 25.54%)
len=176, pos=160, align=0: 23.55 17.84 ( 24.23%)
len=192, pos=176, align=0: 27.61 19.39 ( 29.77%)
len=208, pos=192, align=0: 28.38 16.66 ( 41.30%)
len=224, pos=208, align=0: 28.69 16.72 ( 41.73%)
len=240, pos=224, align=0: 28.40 16.73 ( 41.10%)
len=256, pos=240, align=0: 33.07 22.81 ( 31.02%)
len=272, pos=256, align=0: 33.19 22.82 ( 31.24%)
len=288, pos=272, align=0: 33.47 22.81 ( 31.85%)
len=16, pos=0, align=0: 8.41 8.43 ( -0.26%)
len=16, pos=16, align=0: 8.40 8.43 ( -0.30%)
len=16, pos=16, align=0: 8.40 8.43 ( -0.29%)
len=16, pos=0, align=0: 8.40 8.43 ( -0.30%)
len=16, pos=16, align=0: 8.40 8.43 ( -0.28%)
len=16, pos=48, align=0: 8.40 8.43 ( -0.31%)
len=64, pos=16, align=0: 17.01 15.50 ( 8.86%)
len=16, pos=96, align=0: 8.43 8.88 ( -5.40%)
len=112, pos=16, align=0: 18.76 15.00 ( 20.03%)
len=16, pos=144, align=0: 8.43 8.40 ( 0.34%)
len=160, pos=16, align=0: 27.15 23.12 ( 14.86%)
len=16, pos=192, align=0: 8.72 8.43 ( 3.28%)
len=208, pos=16, align=0: 31.67 23.02 ( 27.31%)
len=16, pos=240, align=0: 8.40 8.43 ( -0.29%)
len=256, pos=16, align=0: 32.77 28.81 ( 12.08%)
len=16, pos=288, align=0: 9.51 8.43 ( 11.38%)
len=304, pos=16, align=0: 28.27 27.60 ( 2.37%)
len=32, pos=0, align=0: 15.51 9.54 ( 38.48%)
len=32, pos=32, align=0: 14.40 8.43 ( 41.47%)
len=32, pos=32, align=0: 15.41 9.52 ( 38.21%)
len=32, pos=0, align=0: 14.40 8.43 ( 41.49%)
len=32, pos=32, align=0: 15.10 9.56 ( 36.68%)
len=32, pos=48, align=0: 15.17 10.34 ( 31.83%)
len=80, pos=32, align=0: 16.18 15.00 ( 7.26%)
len=32, pos=96, align=0: 14.87 9.51 ( 36.03%)
len=128, pos=32, align=0: 24.28 22.81 ( 6.05%)
len=32, pos=144, align=0: 15.18 9.59 ( 36.83%)
len=176, pos=32, align=0: 23.92 22.56 ( 5.70%)
len=32, pos=192, align=0: 15.46 10.15 ( 34.36%)
len=224, pos=32, align=0: 24.90 23.97 ( 3.72%)
len=32, pos=240, align=0: 16.34 8.40 ( 48.55%)
len=272, pos=32, align=0: 27.48 28.60 ( -4.06%)
len=32, pos=288, align=0: 16.19 8.43 ( 47.93%)
len=320, pos=32, align=0: 29.57 30.08 ( -1.72%)
len=64, pos=0, align=0: 17.17 15.00 ( 12.62%)
len=64, pos=64, align=0: 15.21 15.90 ( -4.54%)
len=64, pos=64, align=0: 15.53 15.01 ( 3.37%)
len=64, pos=0, align=0: 17.22 15.52 ( 9.87%)
len=64, pos=64, align=0: 15.18 15.93 ( -4.99%)
len=64, pos=48, align=0: 15.33 14.93 ( 2.60%)
len=112, pos=64, align=0: 17.94 14.11 ( 21.38%)
len=64, pos=16, align=0: 17.19 15.65 ( 8.95%)
len=16, pos=48, align=0: 8.40 8.43 ( -0.32%)
len=16, pos=64, align=0: 8.40 8.43 ( -0.33%)
len=64, pos=96, align=0: 14.64 14.98 ( -2.31%)
len=160, pos=64, align=0: 24.35 20.60 ( 15.40%)
len=64, pos=144, align=0: 15.13 14.93 ( 1.35%)
len=208, pos=64, align=0: 24.73 22.08 ( 10.71%)
len=64, pos=192, align=0: 15.25 15.97 ( -4.72%)
len=256, pos=64, align=0: 27.57 26.75 ( 2.97%)
len=64, pos=240, align=0: 16.35 15.34 ( 6.22%)
len=304, pos=64, align=0: 27.58 26.76 ( 2.99%)
len=64, pos=288, align=0: 16.64 13.92 ( 16.34%)
len=352, pos=64, align=0: 29.56 27.74 ( 6.15%)
len=128, pos=0, align=0: 24.40 24.09 ( 1.27%)
len=128, pos=128, align=0: 21.13 22.54 ( -6.67%)
len=128, pos=128, align=0: 22.00 19.20 ( 12.71%)
len=128, pos=0, align=0: 23.52 23.21 ( 1.35%)
len=128, pos=128, align=0: 22.29 20.40 ( 8.45%)
len=128, pos=48, align=0: 23.83 22.67 ( 4.86%)
len=176, pos=128, align=0: 23.57 17.76 ( 24.64%)
len=128, pos=80, align=0: 23.12 21.39 ( 7.47%)
len=80, pos=48, align=0: 15.39 16.05 ( -4.32%)
len=80, pos=128, align=0: 15.52 13.21 ( 14.91%)
len=128, pos=96, align=0: 21.19 21.80 ( -2.86%)
len=224, pos=128, align=0: 29.52 19.19 ( 35.01%)
len=128, pos=32, align=0: 23.50 23.93 ( -1.83%)
len=32, pos=96, align=0: 14.40 8.43 ( 41.49%)
len=32, pos=128, align=0: 15.09 9.53 ( 36.85%)
len=128, pos=144, align=0: 21.18 21.40 ( -1.03%)
len=272, pos=128, align=0: 32.88 23.33 ( 29.06%)
len=128, pos=192, align=0: 21.24 21.34 ( -0.51%)
len=320, pos=128, align=0: 35.41 24.01 ( 32.18%)
len=128, pos=240, align=0: 22.00 20.71 ( 5.84%)
len=368, pos=128, align=0: 34.67 23.83 ( 31.27%)
len=128, pos=288, align=0: 22.00 20.71 ( 5.88%)
len=416, pos=128, align=0: 36.01 29.25 ( 18.79%)
len=256, pos=0, align=0: 27.86 28.80 ( -3.35%)
len=256, pos=256, align=0: 32.80 24.01 ( 26.79%)
len=256, pos=256, align=0: 32.29 23.82 ( 26.23%)
len=256, pos=0, align=0: 29.90 27.60 ( 7.68%)
len=256, pos=256, align=0: 32.03 23.88 ( 25.44%)
len=256, pos=48, align=0: 28.05 27.92 ( 0.48%)
len=304, pos=256, align=0: 32.33 23.81 ( 26.36%)
len=256, pos=208, align=0: 34.64 22.81 ( 34.16%)
len=208, pos=48, align=0: 26.34 23.97 ( 8.98%)
len=208, pos=256, align=0: 29.51 16.81 ( 43.04%)
len=256, pos=96, align=0: 25.22 27.10 ( -7.48%)
len=352, pos=256, align=0: 36.81 26.24 ( 28.70%)
len=256, pos=160, align=0: 31.53 24.33 ( 22.85%)
len=160, pos=96, align=0: 21.12 21.36 ( -1.10%)
len=160, pos=256, align=0: 23.58 18.21 ( 22.77%)
len=256, pos=144, align=0: 32.79 22.81 ( 30.44%)
len=400, pos=256, align=0: 40.23 31.09 ( 22.72%)
len=256, pos=112, align=0: 26.87 25.80 ( 3.96%)
len=112, pos=144, align=0: 16.41 14.52 ( 11.55%)
len=112, pos=256, align=0: 17.32 13.20 ( 23.76%)
len=256, pos=192, align=0: 33.42 23.85 ( 28.63%)
len=448, pos=256, align=0: 44.97 34.43 ( 23.43%)
len=256, pos=64, align=0: 28.42 26.71 ( 5.99%)
len=64, pos=192, align=0: 15.21 14.86 ( 2.27%)
len=64, pos=256, align=0: 16.10 14.92 ( 7.29%)
len=256, pos=240, align=0: 31.99 25.33 ( 20.82%)
len=496, pos=256, align=0: 43.69 32.03 ( 26.70%)
len=256, pos=16, align=0: 28.05 27.61 ( 1.59%)
len=16, pos=240, align=0: 8.40 8.40 ( -0.02%)
len=16, pos=256, align=0: 8.40 8.40 ( 0.02%)
len=256, pos=288, align=0: 32.32 23.80 ( 26.36%)
len=544, pos=256, align=0: 46.34 37.65 ( 18.76%)
len=512, pos=0, align=0: 39.19 35.72 ( 8.85%)
len=512, pos=512, align=0: 51.38 37.06 ( 27.87%)
len=512, pos=512, align=0: 50.50 38.76 ( 23.25%)
len=512, pos=0, align=0: 40.26 35.72 ( 11.28%)
len=512, pos=512, align=0: 51.16 39.44 ( 22.90%)
len=512, pos=48, align=0: 38.63 36.30 ( 6.03%)
len=560, pos=512, align=0: 51.64 37.50 ( 27.38%)
len=512, pos=464, align=0: 54.32 37.53 ( 30.91%)
len=464, pos=48, align=0: 37.24 32.73 ( 12.11%)
len=464, pos=512, align=0: 48.84 30.02 ( 38.54%)
len=512, pos=96, align=0: 36.67 33.66 ( 8.22%)
len=608, pos=512, align=0: 57.62 35.09 ( 39.09%)
len=512, pos=416, align=0: 49.19 38.86 ( 21.01%)
len=416, pos=96, align=0: 31.62 26.77 ( 15.35%)
len=416, pos=512, align=0: 42.80 28.81 ( 32.68%)
len=512, pos=144, align=0: 42.56 32.80 ( 22.95%)
len=656, pos=512, align=0: 61.69 46.66 ( 24.37%)
len=512, pos=368, align=0: 46.85 36.20 ( 22.73%)
len=368, pos=144, align=0: 34.35 25.40 ( 26.05%)
len=368, pos=512, align=0: 36.88 24.01 ( 34.90%)
len=512, pos=192, align=0: 43.88 35.28 ( 19.59%)
len=704, pos=512, align=0: 66.12 42.32 ( 35.99%)
len=512, pos=320, align=0: 49.13 36.27 ( 26.18%)
len=320, pos=192, align=0: 34.81 24.96 ( 28.30%)
len=320, pos=512, align=0: 36.42 24.32 ( 33.23%)
len=512, pos=240, align=0: 42.11 35.22 ( 16.36%)
len=752, pos=512, align=0: 65.60 45.54 ( 30.59%)
len=512, pos=272, align=0: 46.15 36.37 ( 21.19%)
len=272, pos=240, align=0: 33.31 22.81 ( 31.53%)
len=272, pos=512, align=0: 33.17 25.23 ( 23.92%)
len=512, pos=288, align=0: 45.92 37.09 ( 19.24%)
len=800, pos=512, align=0: 67.51 51.74 ( 23.35%)
len=512, pos=224, align=0: 42.03 33.44 ( 20.42%)
len=224, pos=288, align=0: 29.40 16.81 ( 42.83%)
len=224, pos=512, align=0: 28.42 17.63 ( 37.98%)
len=1024, pos=0, align=0: 69.13 52.69 ( 23.78%)
len=1024, pos=1024, align=0: 99.39 56.92 ( 42.73%)
len=1024, pos=1024, align=0: 99.68 57.91 ( 41.90%)
len=1024, pos=0, align=0: 69.45 51.81 ( 25.40%)
len=1024, pos=1024, align=0: 100.00 56.88 ( 43.12%)
len=1024, pos=48, align=0: 69.25 52.05 ( 24.84%)
len=1072, pos=1024, align=0: 96.33 56.69 ( 41.15%)
len=1024, pos=976, align=0: 96.24 58.74 ( 38.96%)
len=976, pos=48, align=0: 62.95 49.35 ( 21.59%)
len=976, pos=1024, align=0: 92.35 50.20 ( 45.64%)
len=1024, pos=96, align=0: 63.25 48.37 ( 23.52%)
len=1120, pos=1024, align=0: 101.83 60.44 ( 40.65%)
len=1024, pos=928, align=0: 91.58 60.20 ( 34.27%)
len=928, pos=96, align=0: 57.34 44.72 ( 22.01%)
len=928, pos=1024, align=0: 87.50 52.73 ( 39.74%)
len=1024, pos=144, align=0: 66.55 50.56 ( 24.02%)
len=1168, pos=1024, align=0: 106.17 69.80 ( 34.26%)
len=1024, pos=880, align=0: 89.17 60.25 ( 32.43%)
len=880, pos=144, align=0: 58.42 40.72 ( 30.30%)
len=880, pos=1024, align=0: 80.49 47.82 ( 40.59%)
len=1024, pos=192, align=0: 68.39 49.40 ( 27.77%)
len=1216, pos=1024, align=0: 110.90 64.33 ( 41.99%)
len=1024, pos=832, align=0: 92.27 59.93 ( 35.05%)
len=832, pos=192, align=0: 57.83 43.36 ( 25.02%)
len=832, pos=1024, align=0: 78.46 45.05 ( 42.59%)
len=1024, pos=240, align=0: 68.39 50.19 ( 26.61%)
len=1264, pos=1024, align=0: 106.70 68.59 ( 35.72%)
len=1024, pos=784, align=0: 89.64 57.93 ( 35.38%)
len=784, pos=240, align=0: 54.95 42.80 ( 22.12%)
len=784, pos=1024, align=0: 73.60 49.98 ( 32.10%)
len=1024, pos=288, align=0: 70.40 55.06 ( 21.78%)
len=1312, pos=1024, align=0: 110.73 74.61 ( 32.62%)
len=1024, pos=736, align=0: 84.68 59.87 ( 29.30%)
len=736, pos=288, align=0: 55.04 38.89 ( 29.33%)
len=736, pos=1024, align=0: 67.80 40.16 ( 40.76%)
len=2048, pos=0, align=0: 116.91 81.34 ( 30.42%)
len=2048, pos=2048, align=0: 180.02 103.47 ( 42.52%)
len=2048, pos=2048, align=0: 182.66 107.47 ( 41.16%)
len=2048, pos=0, align=0: 115.97 82.97 ( 28.46%)
len=2048, pos=2048, align=0: 181.76 109.53 ( 39.74%)
len=2048, pos=48, align=0: 120.20 79.32 ( 34.01%)
len=2096, pos=2048, align=0: 183.27 109.37 ( 40.33%)
len=2048, pos=2000, align=0: 181.09 103.89 ( 42.63%)
len=2000, pos=48, align=0: 117.54 78.41 ( 33.29%)
len=2000, pos=2048, align=0: 177.11 114.20 ( 35.52%)
len=2048, pos=96, align=0: 113.46 79.39 ( 30.03%)
len=2144, pos=2048, align=0: 189.05 126.45 ( 33.11%)
len=2048, pos=1952, align=0: 178.23 112.20 ( 37.05%)
len=1952, pos=96, align=0: 107.75 75.81 ( 29.64%)
len=1952, pos=2048, align=0: 173.93 103.42 ( 40.54%)
len=2048, pos=144, align=0: 118.98 79.52 ( 33.17%)
len=2192, pos=2048, align=0: 190.59 116.85 ( 38.69%)
len=2048, pos=1904, align=0: 175.94 100.66 ( 42.79%)
len=1904, pos=144, align=0: 110.06 73.04 ( 33.64%)
len=1904, pos=2048, align=0: 166.64 97.06 ( 41.76%)
len=2048, pos=192, align=0: 119.50 80.58 ( 32.57%)
len=2240, pos=2048, align=0: 194.68 116.28 ( 40.27%)
len=2048, pos=1856, align=0: 178.91 100.32 ( 43.93%)
len=1856, pos=192, align=0: 110.28 72.14 ( 34.59%)
len=1856, pos=2048, align=0: 165.86 96.62 ( 41.75%)
len=2048, pos=240, align=0: 119.67 80.68 ( 32.58%)
len=2288, pos=2048, align=0: 194.33 117.98 ( 39.29%)
len=2048, pos=1808, align=0: 176.40 110.92 ( 37.12%)
len=1808, pos=240, align=0: 105.44 73.34 ( 30.45%)
len=1808, pos=2048, align=0: 161.48 97.47 ( 39.64%)
len=2048, pos=288, align=0: 122.04 83.07 ( 31.93%)
len=2336, pos=2048, align=0: 196.84 122.63 ( 37.70%)
len=2048, pos=1760, align=0: 171.20 97.26 ( 43.19%)
len=1760, pos=288, align=0: 105.79 71.05 ( 32.84%)
len=1760, pos=2048, align=0: 155.55 90.71 ( 41.69%)
len=2048, pos=32, align=0: 119.45 82.83 ( 30.66%)
len=2048, pos=32, align=1: 119.47 83.33 ( 30.25%)
len=2048, pos=64, align=0: 118.59 79.45 ( 33.01%)
len=2048, pos=64, align=2: 118.86 79.80 ( 32.86%)
len=2048, pos=128, align=0: 118.01 68.67 ( 41.81%)
len=2048, pos=128, align=3: 117.88 79.36 ( 32.68%)
len=2048, pos=256, align=0: 122.42 82.94 ( 32.25%)
len=2048, pos=256, align=4: 123.20 82.97 ( 32.65%)
len=2048, pos=512, align=0: 131.09 87.93 ( 32.92%)
len=2048, pos=512, align=5: 130.63 88.31 ( 32.40%)
len=2048, pos=1024, align=0: 148.44 99.06 ( 33.27%)
len=2048, pos=1024, align=6: 148.26 100.39 ( 32.28%)
len=2048, pos=2048, align=0: 181.14 103.39 ( 42.92%)
len=2048, pos=2048, align=7: 180.36 103.89 ( 42.40%)
len=2048, pos=4096, align=0: 181.20 103.81 ( 42.71%)
len=2048, pos=4096, align=8: 181.56 104.37 ( 42.51%)
len=256, pos=64, align=1: 34.05 26.12 ( 23.28%)
len=256, pos=64, align=1: 32.03 27.50 ( 14.16%)
len=256, pos=64, align=15: 32.89 25.80 ( 21.54%)
len=256, pos=64, align=15: 32.38 26.76 ( 17.36%)
len=256, pos=64, align=2: 32.35 26.68 ( 17.54%)
len=256, pos=64, align=2: 31.56 26.19 ( 17.03%)
len=256, pos=64, align=30: 32.83 26.12 ( 20.43%)
len=256, pos=64, align=30: 32.04 27.09 ( 15.47%)
len=256, pos=64, align=3: 32.98 25.80 ( 21.75%)
len=256, pos=64, align=3: 32.08 26.74 ( 16.65%)
len=256, pos=64, align=45: 32.25 26.80 ( 16.90%)
len=256, pos=64, align=45: 33.34 25.80 ( 22.60%)
len=256, pos=64, align=4: 32.14 26.88 ( 16.37%)
len=256, pos=64, align=4: 33.02 26.11 ( 20.92%)
len=256, pos=64, align=60: 27.26 26.73 ( 1.94%)
len=256, pos=64, align=60: 27.21 26.68 ( 1.92%)
len=256, pos=64, align=5: 26.73 26.79 ( -0.24%)
len=256, pos=64, align=5: 28.00 26.16 ( 6.58%)
len=256, pos=64, align=75: 31.93 27.06 ( 15.25%)
len=256, pos=64, align=75: 32.88 24.61 ( 25.16%)
len=256, pos=64, align=6: 27.06 26.86 ( 0.73%)
len=256, pos=64, align=6: 28.36 25.80 ( 9.00%)
len=256, pos=64, align=90: 32.05 25.71 ( 19.77%)
len=256, pos=64, align=90: 32.65 25.00 ( 23.44%)
len=256, pos=64, align=7: 27.18 26.76 ( 1.55%)
len=256, pos=64, align=7: 28.18 26.74 ( 5.09%)
len=256, pos=64, align=105: 31.84 23.97 ( 24.74%)
len=256, pos=64, align=105: 33.20 24.06 ( 27.52%)
len=1, pos=0, align=0: 9.61 9.60 ( 0.02%)
len=1, pos=0, align=0: 8.40 8.40 ( 0.02%)
len=1, pos=0, align=4095: 42.32 42.06 ( 0.62%)
len=2, pos=1, align=0: 8.40 8.79 ( -4.65%)
len=2, pos=1, align=0: 8.40 8.40 ( -0.00%)
len=2, pos=1, align=4095: 42.38 42.00 ( 0.89%)
len=3, pos=2, align=0: 8.40 8.40 ( 0.01%)
len=3, pos=2, align=0: 8.40 8.40 ( 0.00%)
len=3, pos=2, align=4094: 42.83 42.44 ( 0.90%)
len=4, pos=3, align=0: 8.40 8.40 ( -0.01%)
len=4, pos=3, align=0: 8.40 8.40 ( 0.02%)
len=4, pos=3, align=4094: 42.85 42.00 ( 1.99%)
len=5, pos=4, align=0: 8.40 8.40 ( 0.01%)
len=5, pos=4, align=0: 8.40 8.40 ( 0.00%)
len=5, pos=4, align=4093: 42.82 43.48 ( -1.54%)
len=6, pos=5, align=0: 8.40 8.72 ( -3.80%)
len=6, pos=5, align=0: 8.40 8.40 ( 0.00%)
len=6, pos=5, align=4093: 42.83 42.98 ( -0.36%)
len=7, pos=6, align=0: 8.40 8.40 ( 0.00%)
len=7, pos=6, align=0: 8.40 8.40 ( 0.03%)
len=7, pos=6, align=4092: 42.41 42.51 ( -0.23%)
len=8, pos=7, align=0: 8.40 8.40 ( 0.00%)
len=8, pos=7, align=0: 8.40 8.40 ( 0.02%)
len=8, pos=7, align=4092: 43.18 42.44 ( 1.71%)
len=9, pos=8, align=0: 8.40 8.40 ( 0.00%)
len=9, pos=8, align=0: 8.40 8.40 ( 0.02%)
len=9, pos=8, align=4091: 42.32 42.39 ( -0.17%)
len=10, pos=9, align=0: 8.40 8.40 ( 0.00%)
len=10, pos=9, align=0: 8.40 8.40 ( 0.02%)
len=10, pos=9, align=4091: 42.00 42.96 ( -2.29%)
len=11, pos=10, align=0: 8.40 8.78 ( -4.46%)
len=11, pos=10, align=0: 8.40 8.40 ( 0.00%)
len=11, pos=10, align=4090: 42.35 42.00 ( 0.81%)
len=12, pos=11, align=0: 8.40 8.40 ( 0.03%)
len=12, pos=11, align=0: 8.40 8.40 ( -0.02%)
len=12, pos=11, align=4090: 42.88 42.06 ( 1.91%)
len=13, pos=12, align=0: 8.40 8.40 ( 0.00%)
len=13, pos=12, align=0: 8.40 8.40 ( 0.02%)
len=13, pos=12, align=4089: 42.01 42.37 ( -0.87%)
len=14, pos=13, align=0: 8.40 8.40 ( 0.02%)
len=14, pos=13, align=0: 8.71 8.40 ( 3.52%)
len=14, pos=13, align=4089: 42.95 42.37 ( 1.35%)
len=15, pos=14, align=0: 8.40 8.40 ( 0.00%)
len=15, pos=14, align=0: 8.40 8.40 ( 0.00%)
len=15, pos=14, align=4088: 42.33 42.00 ( 0.76%)
len=16, pos=15, align=0: 8.40 8.40 ( 0.03%)
len=16, pos=15, align=0: 8.40 8.40 ( 0.03%)
len=16, pos=15, align=4088: 42.00 42.47 ( -1.10%)
len=17, pos=16, align=0: 8.40 9.60 (-14.25%)
len=17, pos=16, align=0: 8.40 8.40 ( 0.03%)
len=17, pos=16, align=4087: 42.01 43.04 ( -2.46%)
len=18, pos=17, align=0: 8.40 8.40 ( 0.02%)
len=18, pos=17, align=0: 8.40 8.40 ( 0.03%)
len=18, pos=17, align=4087: 42.83 42.34 ( 1.14%)
len=19, pos=18, align=0: 8.40 8.40 ( 0.01%)
len=19, pos=18, align=0: 8.40 8.40 ( 0.03%)
len=19, pos=18, align=4086: 42.83 42.41 ( 0.97%)
len=20, pos=19, align=0: 8.40 8.40 ( 0.01%)
len=20, pos=19, align=0: 9.19 9.43 ( -2.54%)
len=20, pos=19, align=4086: 42.67 42.48 ( 0.43%)
len=21, pos=20, align=0: 10.09 8.40 ( 16.69%)
len=21, pos=20, align=0: 9.74 9.59 ( 1.56%)
len=21, pos=20, align=4085: 42.74 43.26 ( -1.22%)
len=22, pos=21, align=0: 10.07 8.40 ( 16.58%)
len=22, pos=21, align=0: 8.40 8.40 ( 0.03%)
len=22, pos=21, align=4085: 42.31 42.06 ( 0.60%)
len=23, pos=22, align=0: 8.40 8.40 ( 0.01%)
len=23, pos=22, align=0: 9.31 9.44 ( -1.40%)
len=23, pos=22, align=4084: 42.69 42.77 ( -0.18%)
len=24, pos=23, align=0: 10.93 8.40 ( 23.13%)
len=24, pos=23, align=0: 8.40 8.40 ( 0.02%)
len=24, pos=23, align=4084: 42.36 42.00 ( 0.84%)
len=25, pos=24, align=0: 10.10 8.40 ( 16.83%)
len=25, pos=24, align=0: 9.68 9.43 ( 2.60%)
len=25, pos=24, align=4083: 42.68 43.08 ( -0.93%)
len=26, pos=25, align=0: 8.40 8.40 ( 0.02%)
len=26, pos=25, align=0: 9.31 10.76 (-15.67%)
len=26, pos=25, align=4083: 43.53 42.97 ( 1.27%)
len=27, pos=26, align=0: 9.28 9.43 ( -1.53%)
len=27, pos=26, align=0: 9.74 9.52 ( 2.22%)
len=27, pos=26, align=4082: 42.31 42.82 ( -1.22%)
len=28, pos=27, align=0: 9.26 9.53 ( -2.91%)
len=28, pos=27, align=0: 9.74 9.51 ( 2.36%)
len=28, pos=27, align=4082: 42.83 42.35 ( 1.11%)
len=29, pos=28, align=0: 10.09 8.40 ( 16.75%)
len=29, pos=28, align=0: 9.28 9.83 ( -5.89%)
len=29, pos=28, align=4081: 42.74 42.39 ( 0.83%)
len=30, pos=29, align=0: 8.40 8.40 ( 0.03%)
len=30, pos=29, align=0: 9.57 9.47 ( 1.00%)
len=30, pos=29, align=4081: 42.65 42.43 ( 0.51%)
len=31, pos=30, align=0: 9.24 9.73 ( -5.30%)
len=31, pos=30, align=0: 10.02 8.40 ( 16.19%)
len=31, pos=30, align=4080: 42.78 42.54 ( 0.57%)
len=32, pos=31, align=0: 16.09 8.40 ( 47.78%)
len=32, pos=31, align=0: 15.17 9.84 ( 35.16%)
len=32, pos=31, align=4080: 39.80 42.35 ( -6.43%)
len=16, pos=0, align=0: 9.63 8.40 ( 12.73%)
len=32, pos=16, align=0: 14.40 8.40 ( 41.67%)
len=48, pos=32, align=0: 13.94 9.79 ( 29.77%)
len=64, pos=48, align=0: 16.32 15.01 ( 8.03%)
len=80, pos=64, align=0: 15.21 14.19 ( 6.72%)
len=96, pos=80, align=0: 17.59 14.18 ( 19.35%)
len=112, pos=96, align=0: 16.71 14.10 ( 15.63%)
len=128, pos=112, align=0: 24.39 22.81 ( 6.48%)
len=144, pos=128, align=0: 23.54 17.85 ( 24.15%)
len=160, pos=144, align=0: 23.56 18.14 ( 23.00%)
len=176, pos=160, align=0: 24.44 17.11 ( 29.98%)
len=192, pos=176, align=0: 28.31 18.14 ( 35.92%)
len=208, pos=192, align=0: 28.41 17.79 ( 37.39%)
len=224, pos=208, align=0: 28.67 16.92 ( 40.97%)
len=240, pos=224, align=0: 27.92 16.62 ( 40.47%)
len=256, pos=240, align=0: 31.92 24.28 ( 23.93%)
len=272, pos=256, align=0: 33.13 22.82 ( 31.14%)
len=288, pos=272, align=0: 32.31 24.43 ( 24.37%)
len=16, pos=0, align=0: 8.40 8.43 ( -0.29%)
len=16, pos=16, align=0: 8.40 8.43 ( -0.29%)
len=16, pos=16, align=0: 8.40 8.43 ( -0.30%)
len=16, pos=0, align=0: 8.40 8.43 ( -0.27%)
len=16, pos=16, align=0: 8.40 8.43 ( -0.28%)
len=16, pos=48, align=0: 8.72 8.43 ( 3.29%)
len=64, pos=16, align=0: 17.23 15.01 ( 12.91%)
len=16, pos=96, align=0: 8.43 8.40 ( 0.30%)
len=112, pos=16, align=0: 17.59 14.93 ( 15.15%)
len=16, pos=144, align=0: 8.43 8.43 ( 0.03%)
len=160, pos=16, align=0: 25.93 23.56 ( 9.14%)
len=16, pos=192, align=0: 8.43 8.76 ( -3.97%)
len=208, pos=16, align=0: 30.42 24.08 ( 20.85%)
len=16, pos=240, align=0: 9.65 8.43 ( 12.63%)
len=256, pos=16, align=0: 33.44 27.93 ( 16.48%)
len=16, pos=288, align=0: 8.40 8.74 ( -4.07%)
len=304, pos=16, align=0: 28.45 26.40 ( 7.20%)
len=32, pos=0, align=0: 14.40 8.43 ( 41.48%)
len=32, pos=32, align=0: 15.16 9.53 ( 37.16%)
len=32, pos=32, align=0: 15.42 9.54 ( 38.14%)
len=32, pos=0, align=0: 15.19 9.51 ( 37.36%)
len=32, pos=32, align=0: 15.54 9.53 ( 38.67%)
len=32, pos=48, align=0: 14.40 8.43 ( 41.48%)
len=80, pos=32, align=0: 15.61 15.97 ( -2.36%)
len=32, pos=96, align=0: 15.39 9.57 ( 37.82%)
len=128, pos=32, align=0: 23.60 24.95 ( -5.73%)
len=32, pos=144, align=0: 15.47 9.74 ( 37.04%)
len=176, pos=32, align=0: 24.29 22.80 ( 6.11%)
len=32, pos=192, align=0: 14.40 8.43 ( 41.49%)
len=224, pos=32, align=0: 25.09 24.05 ( 4.16%)
len=32, pos=240, align=0: 15.17 9.77 ( 35.58%)
len=272, pos=32, align=0: 27.58 28.66 ( -3.95%)
len=32, pos=288, align=0: 15.87 8.73 ( 44.97%)
len=320, pos=32, align=0: 34.42 29.31 ( 14.85%)
len=64, pos=0, align=0: 16.37 15.95 ( 2.52%)
len=64, pos=64, align=0: 15.20 16.11 ( -5.98%)
len=64, pos=64, align=0: 15.52 15.41 ( 0.74%)
len=64, pos=0, align=0: 17.21 13.93 ( 19.04%)
len=64, pos=64, align=0: 15.25 15.98 ( -4.76%)
len=64, pos=48, align=0: 15.23 14.96 ( 1.75%)
len=112, pos=64, align=0: 17.93 14.18 ( 20.90%)
len=64, pos=16, align=0: 17.25 13.92 ( 19.30%)
len=16, pos=48, align=0: 8.43 9.63 (-14.20%)
len=16, pos=64, align=0: 8.43 8.43 ( -0.01%)
len=64, pos=96, align=0: 15.17 15.97 ( -5.26%)
len=160, pos=64, align=0: 23.59 22.44 ( 4.90%)
len=64, pos=144, align=0: 16.33 13.92 ( 14.77%)
len=208, pos=64, align=0: 26.11 21.01 ( 19.56%)
len=64, pos=192, align=0: 15.21 14.96 ( 1.69%)
len=256, pos=64, align=0: 26.73 26.70 ( 0.11%)
len=64, pos=240, align=0: 15.26 15.92 ( -4.32%)
len=304, pos=64, align=0: 27.53 26.85 ( 2.45%)
len=64, pos=288, align=0: 15.54 16.00 ( -2.99%)
len=352, pos=64, align=0: 34.42 27.68 ( 19.58%)
len=128, pos=0, align=0: 23.64 22.67 ( 4.11%)
len=128, pos=128, align=0: 21.20 21.80 ( -2.83%)
len=128, pos=128, align=0: 21.37 21.35 ( 0.13%)
len=128, pos=0, align=0: 24.42 23.25 ( 4.80%)
len=128, pos=128, align=0: 21.57 21.35 ( 1.00%)
len=128, pos=48, align=0: 24.69 21.60 ( 12.52%)
len=176, pos=128, align=0: 23.53 17.77 ( 24.50%)
len=128, pos=80, align=0: 23.97 21.36 ( 10.87%)
len=80, pos=48, align=0: 15.25 15.87 ( -4.05%)
len=80, pos=128, align=0: 16.25 13.20 ( 18.75%)
len=128, pos=96, align=0: 21.22 22.06 ( -3.96%)
len=224, pos=128, align=0: 29.57 19.08 ( 35.48%)
len=128, pos=32, align=0: 23.12 22.78 ( 1.48%)
len=32, pos=96, align=0: 14.40 8.43 ( 41.48%)
len=32, pos=128, align=0: 15.14 9.55 ( 36.88%)
len=128, pos=144, align=0: 21.12 21.46 ( -1.64%)
len=272, pos=128, align=0: 31.89 25.49 ( 20.06%)
len=128, pos=192, align=0: 22.28 20.40 ( 8.45%)
len=320, pos=128, align=0: 35.87 23.83 ( 33.57%)
len=128, pos=240, align=0: 21.12 21.83 ( -3.36%)
len=368, pos=128, align=0: 35.86 25.72 ( 28.29%)
len=128, pos=288, align=0: 21.15 21.70 ( -2.60%)
len=416, pos=128, align=0: 39.20 28.81 ( 26.51%)
len=256, pos=0, align=0: 27.26 28.91 ( -6.05%)
len=256, pos=256, align=0: 32.93 23.24 ( 29.43%)
len=256, pos=256, align=0: 31.20 23.90 ( 23.42%)
len=256, pos=0, align=0: 28.69 28.54 ( 0.53%)
len=256, pos=256, align=0: 33.36 22.80 ( 31.65%)
len=256, pos=48, align=0: 28.55 27.95 ( 2.10%)
len=304, pos=256, align=0: 33.21 22.81 ( 31.32%)
len=256, pos=208, align=0: 34.65 22.81 ( 34.19%)
len=208, pos=48, align=0: 27.34 22.97 ( 16.00%)
len=208, pos=256, align=0: 28.39 20.15 ( 29.03%)
len=256, pos=96, align=0: 25.94 26.19 ( -0.97%)
len=352, pos=256, align=0: 38.00 24.01 ( 36.81%)
len=256, pos=160, align=0: 30.01 24.73 ( 17.61%)
len=160, pos=96, align=0: 22.00 19.21 ( 12.69%)
len=160, pos=256, align=0: 23.55 18.10 ( 23.11%)
len=256, pos=144, align=0: 32.77 24.01 ( 26.72%)
len=400, pos=256, align=0: 41.93 32.23 ( 23.14%)
len=256, pos=112, align=0: 26.98 25.81 ( 4.35%)
len=112, pos=144, align=0: 16.75 14.10 ( 15.84%)
len=112, pos=256, align=0: 17.46 13.20 ( 24.39%)
len=256, pos=192, align=0: 33.01 23.87 ( 27.70%)
len=448, pos=256, align=0: 43.92 31.71 ( 27.81%)
len=256, pos=64, align=0: 29.21 26.12 ( 10.56%)
len=64, pos=192, align=0: 16.05 13.92 ( 13.26%)
len=64, pos=256, align=0: 15.14 16.01 ( -5.71%)
len=256, pos=240, align=0: 31.21 24.16 ( 22.59%)
len=496, pos=256, align=0: 44.64 33.92 ( 24.01%)
len=256, pos=16, align=0: 27.81 28.95 ( -4.10%)
len=16, pos=240, align=0: 9.61 9.57 ( 0.32%)
len=16, pos=256, align=0: 8.40 8.76 ( -4.29%)
len=256, pos=288, align=0: 32.76 25.20 ( 23.07%)
len=544, pos=256, align=0: 47.95 36.54 ( 23.79%)
len=512, pos=0, align=0: 44.26 36.32 ( 17.93%)
len=512, pos=512, align=0: 55.18 40.63 ( 26.36%)
len=512, pos=512, align=0: 53.29 39.49 ( 25.90%)
len=512, pos=0, align=0: 44.36 36.33 ( 18.10%)
len=512, pos=512, align=0: 54.12 37.73 ( 30.28%)
len=512, pos=48, align=0: 43.60 36.99 ( 15.15%)
len=560, pos=512, align=0: 54.29 39.92 ( 26.46%)
len=512, pos=464, align=0: 56.37 36.01 ( 36.11%)
len=464, pos=48, align=0: 37.23 33.39 ( 10.30%)
len=464, pos=512, align=0: 48.84 28.81 ( 41.00%)
len=512, pos=96, align=0: 41.23 33.67 ( 18.33%)
len=608, pos=512, align=0: 61.18 33.77 ( 44.80%)
len=512, pos=416, align=0: 49.93 37.22 ( 25.47%)
len=416, pos=96, align=0: 30.01 31.43 ( -4.71%)
len=416, pos=512, align=0: 41.65 31.11 ( 25.30%)
len=512, pos=144, align=0: 41.85 32.79 ( 21.65%)
len=656, pos=512, align=0: 64.73 46.65 ( 27.93%)
len=512, pos=368, align=0: 47.63 36.29 ( 23.82%)
len=368, pos=144, align=0: 34.33 25.10 ( 26.88%)
len=368, pos=512, align=0: 35.69 23.93 ( 32.95%)
len=512, pos=192, align=0: 43.07 34.91 ( 18.96%)
len=704, pos=512, align=0: 67.32 45.91 ( 31.80%)
len=512, pos=320, align=0: 49.78 33.97 ( 31.75%)
len=320, pos=192, align=0: 35.64 28.15 ( 21.00%)
len=320, pos=512, align=0: 36.44 24.32 ( 33.26%)
len=512, pos=240, align=0: 41.29 35.18 ( 14.80%)
len=752, pos=512, align=0: 67.70 46.70 ( 31.01%)
len=512, pos=272, align=0: 46.79 38.41 ( 17.90%)
len=272, pos=240, align=0: 32.76 24.91 ( 23.97%)
len=272, pos=512, align=0: 32.03 24.10 ( 24.76%)
len=512, pos=288, align=0: 47.54 36.01 ( 24.27%)
len=800, pos=512, align=0: 69.73 50.73 ( 27.24%)
len=512, pos=224, align=0: 42.87 34.04 ( 20.61%)
len=224, pos=288, align=0: 30.54 15.65 ( 48.75%)
len=224, pos=512, align=0: 28.73 17.97 ( 37.44%)
len=1024, pos=0, align=0: 71.21 52.06 ( 26.90%)
len=1024, pos=1024, align=0: 98.72 62.65 ( 36.54%)
len=1024, pos=1024, align=0: 99.53 62.52 ( 37.18%)
len=1024, pos=0, align=0: 70.56 50.41 ( 28.57%)
len=1024, pos=1024, align=0: 97.86 59.48 ( 39.22%)
len=1024, pos=48, align=0: 70.04 52.45 ( 25.11%)
len=1072, pos=1024, align=0: 96.45 55.61 ( 42.35%)
len=1024, pos=976, align=0: 100.03 54.83 ( 45.18%)
len=976, pos=48, align=0: 63.54 49.38 ( 22.29%)
len=976, pos=1024, align=0: 90.39 60.62 ( 32.94%)
len=1024, pos=96, align=0: 68.63 49.44 ( 27.97%)
len=1120, pos=1024, align=0: 104.49 56.86 ( 45.58%)
len=1024, pos=928, align=0: 91.86 62.31 ( 32.16%)
len=928, pos=96, align=0: 56.42 44.52 ( 21.09%)
len=928, pos=1024, align=0: 86.33 51.77 ( 40.03%)
len=1024, pos=144, align=0: 66.57 50.25 ( 24.52%)
len=1168, pos=1024, align=0: 107.11 69.82 ( 34.82%)
len=1024, pos=880, align=0: 90.94 60.03 ( 33.99%)
len=880, pos=144, align=0: 58.22 39.62 ( 31.95%)
len=880, pos=1024, align=0: 81.22 46.75 ( 42.44%)
len=1024, pos=192, align=0: 69.65 50.71 ( 27.19%)
len=1216, pos=1024, align=0: 109.23 71.08 ( 34.92%)
len=1024, pos=832, align=0: 92.51 58.70 ( 36.55%)
len=832, pos=192, align=0: 59.18 43.36 ( 26.73%)
len=832, pos=1024, align=0: 77.14 48.22 ( 37.50%)
len=1024, pos=240, align=0: 68.14 50.67 ( 25.64%)
len=1264, pos=1024, align=0: 110.65 68.55 ( 38.05%)
len=1024, pos=784, align=0: 89.98 62.62 ( 30.41%)
len=784, pos=240, align=0: 54.91 42.46 ( 22.66%)
len=784, pos=1024, align=0: 77.20 49.11 ( 36.38%)
len=1024, pos=288, align=0: 68.98 51.41 ( 25.47%)
len=1312, pos=1024, align=0: 114.18 74.53 ( 34.73%)
len=1024, pos=736, align=0: 86.40 59.83 ( 30.75%)
len=736, pos=288, align=0: 53.99 40.95 ( 24.16%)
len=736, pos=1024, align=0: 70.58 38.56 ( 45.36%)
len=2048, pos=0, align=0: 115.65 83.02 ( 28.22%)
len=2048, pos=2048, align=0: 181.83 109.44 ( 39.81%)
len=2048, pos=2048, align=0: 179.42 103.46 ( 42.34%)
len=2048, pos=0, align=0: 116.03 82.41 ( 28.98%)
len=2048, pos=2048, align=0: 181.43 103.77 ( 42.80%)
len=2048, pos=48, align=0: 118.75 79.99 ( 32.64%)
len=2096, pos=2048, align=0: 182.17 108.25 ( 40.58%)
len=2048, pos=2000, align=0: 181.55 103.67 ( 42.90%)
len=2000, pos=48, align=0: 115.23 78.23 ( 32.11%)
len=2000, pos=2048, align=0: 176.44 98.96 ( 43.91%)
len=2048, pos=96, align=0: 114.11 79.39 ( 30.42%)
len=2144, pos=2048, align=0: 188.66 106.46 ( 43.57%)
len=2048, pos=1952, align=0: 178.61 111.73 ( 37.45%)
len=1952, pos=96, align=0: 107.94 75.87 ( 29.71%)
len=1952, pos=2048, align=0: 174.58 97.40 ( 44.21%)
len=2048, pos=144, align=0: 119.14 80.70 ( 32.26%)
len=2192, pos=2048, align=0: 190.90 118.10 ( 38.14%)
len=2048, pos=1904, align=0: 177.92 100.68 ( 43.42%)
len=1904, pos=144, align=0: 108.06 70.95 ( 34.35%)
len=1904, pos=2048, align=0: 168.29 95.45 ( 43.29%)
len=2048, pos=192, align=0: 121.77 79.88 ( 34.40%)
len=2240, pos=2048, align=0: 194.70 114.60 ( 41.14%)
len=2048, pos=1856, align=0: 177.08 109.75 ( 38.02%)
len=1856, pos=192, align=0: 111.80 72.20 ( 35.42%)
len=1856, pos=2048, align=0: 165.94 96.97 ( 41.56%)
len=2048, pos=240, align=0: 121.03 80.02 ( 33.88%)
len=2288, pos=2048, align=0: 193.75 116.07 ( 40.09%)
len=2048, pos=1808, align=0: 176.61 112.18 ( 36.49%)
len=1808, pos=240, align=0: 105.40 118.03 (-11.99%)
len=1808, pos=2048, align=0: 162.78 97.47 ( 40.13%)
len=2048, pos=288, align=0: 122.02 83.00 ( 31.98%)
len=2336, pos=2048, align=0: 197.18 121.43 ( 38.42%)
len=2048, pos=1760, align=0: 171.26 98.67 ( 42.38%)
len=1760, pos=288, align=0: 106.67 68.31 ( 35.96%)
len=1760, pos=2048, align=0: 156.39 87.35 ( 44.15%)
[-- Attachment #3: wcsrchr_10.txt --]
[-- Type: text/plain, Size: 140642 bytes --]
Function: wcsrchr
Variant:
__wcsrchr_evex __wcsrchr_evex512
========================================================================================================================
len=256, pos=64, align=1: 26.00 20.23 ( 22.20%)
len=256, pos=64, align=1: 26.99 20.27 ( 24.90%)
len=256, pos=64, align=15: 26.48 20.33 ( 23.21%)
len=256, pos=64, align=15: 26.38 20.61 ( 21.88%)
len=256, pos=64, align=2: 25.11 21.91 ( 12.78%)
len=256, pos=64, align=2: 25.98 21.62 ( 16.77%)
len=256, pos=64, align=30: 26.50 20.74 ( 21.73%)
len=256, pos=64, align=30: 26.52 18.00 ( 32.10%)
len=256, pos=64, align=3: 25.14 20.28 ( 19.35%)
len=256, pos=64, align=3: 24.93 20.19 ( 19.02%)
len=256, pos=64, align=45: 26.72 20.23 ( 24.32%)
len=256, pos=64, align=45: 26.78 20.15 ( 24.74%)
len=256, pos=64, align=4: 25.28 20.32 ( 19.61%)
len=256, pos=64, align=4: 26.96 20.16 ( 25.24%)
len=256, pos=64, align=60: 26.20 22.01 ( 16.00%)
len=256, pos=64, align=60: 26.27 21.99 ( 16.30%)
len=256, pos=64, align=5: 25.60 20.22 ( 20.99%)
len=256, pos=64, align=5: 26.86 19.20 ( 28.51%)
len=256, pos=64, align=75: 25.67 20.16 ( 21.45%)
len=256, pos=64, align=75: 27.64 21.60 ( 21.84%)
len=256, pos=64, align=6: 25.33 20.26 ( 20.00%)
len=256, pos=64, align=6: 26.16 21.96 ( 16.05%)
len=256, pos=64, align=90: 25.72 19.63 ( 23.67%)
len=256, pos=64, align=90: 24.83 19.46 ( 21.65%)
len=256, pos=64, align=7: 26.84 27.08 ( -0.89%)
len=256, pos=64, align=7: 27.29 21.20 ( 22.32%)
len=256, pos=64, align=105: 25.84 21.91 ( 15.20%)
len=256, pos=64, align=105: 25.68 21.60 ( 15.90%)
len=1, pos=0, align=0: 7.21 8.41 (-16.66%)
len=1, pos=0, align=0: 7.20 8.41 (-16.68%)
len=2, pos=1, align=0: 7.53 8.40 (-11.61%)
len=2, pos=1, align=0: 7.20 8.40 (-16.67%)
len=3, pos=2, align=0: 7.20 8.77 (-21.83%)
len=3, pos=2, align=0: 7.20 8.40 (-16.69%)
len=4, pos=3, align=0: 7.20 8.74 (-21.27%)
len=4, pos=3, align=0: 7.20 8.40 (-16.66%)
len=5, pos=4, align=0: 7.20 8.73 (-21.21%)
len=5, pos=4, align=0: 7.20 8.40 (-16.69%)
len=6, pos=5, align=0: 7.56 8.40 (-11.13%)
len=6, pos=5, align=0: 7.20 8.40 (-16.67%)
len=7, pos=6, align=0: 7.20 8.40 (-16.69%)
len=7, pos=6, align=0: 7.20 8.72 (-21.14%)
len=8, pos=7, align=0: 7.20 8.40 (-16.70%)
len=8, pos=7, align=0: 7.20 8.40 (-16.70%)
len=9, pos=8, align=0: 11.17 8.40 ( 24.79%)
len=9, pos=8, align=0: 10.80 8.40 ( 22.20%)
len=10, pos=9, align=0: 10.81 8.40 ( 22.23%)
len=10, pos=9, align=0: 10.80 8.40 ( 22.22%)
len=11, pos=10, align=0: 10.81 8.40 ( 22.22%)
len=11, pos=10, align=0: 10.81 8.40 ( 22.25%)
len=12, pos=11, align=0: 10.81 8.40 ( 22.23%)
len=12, pos=11, align=0: 11.12 9.60 ( 13.67%)
len=13, pos=12, align=0: 11.16 8.40 ( 24.68%)
len=13, pos=12, align=0: 11.12 8.40 ( 24.42%)
len=14, pos=13, align=0: 12.46 8.40 ( 32.55%)
len=14, pos=13, align=0: 10.81 8.40 ( 22.22%)
len=15, pos=14, align=0: 10.80 8.40 ( 22.23%)
len=15, pos=14, align=0: 10.80 8.40 ( 22.22%)
len=16, pos=15, align=0: 10.81 8.40 ( 22.22%)
len=16, pos=15, align=0: 10.80 8.40 ( 22.22%)
len=17, pos=16, align=0: 12.01 10.81 ( 10.00%)
len=17, pos=16, align=0: 13.18 11.88 ( 9.86%)
len=18, pos=17, align=0: 13.97 10.80 ( 22.70%)
len=18, pos=17, align=0: 12.00 10.80 ( 9.99%)
len=19, pos=18, align=0: 12.84 12.00 ( 6.54%)
len=19, pos=18, align=0: 13.72 10.80 ( 21.29%)
len=20, pos=19, align=0: 12.01 10.80 ( 10.03%)
len=20, pos=19, align=0: 13.05 11.86 ( 9.07%)
len=21, pos=20, align=0: 12.00 10.80 ( 10.00%)
len=21, pos=20, align=0: 13.18 11.94 ( 9.43%)
len=22, pos=21, align=0: 12.00 10.80 ( 9.99%)
len=22, pos=21, align=0: 12.76 11.93 ( 6.56%)
len=23, pos=22, align=0: 13.96 10.80 ( 22.62%)
len=23, pos=22, align=0: 13.16 11.87 ( 9.84%)
len=24, pos=23, align=0: 12.87 11.84 ( 7.98%)
len=24, pos=23, align=0: 12.87 11.87 ( 7.74%)
len=25, pos=24, align=0: 14.09 12.21 ( 13.33%)
len=25, pos=24, align=0: 14.88 10.80 ( 27.41%)
len=26, pos=25, align=0: 14.07 11.93 ( 15.16%)
len=26, pos=25, align=0: 14.45 11.92 ( 17.48%)
len=27, pos=26, align=0: 15.22 10.80 ( 29.02%)
len=27, pos=26, align=0: 14.91 10.80 ( 27.56%)
len=28, pos=27, align=0: 14.04 11.93 ( 15.05%)
len=28, pos=27, align=0: 14.06 12.32 ( 12.34%)
len=29, pos=28, align=0: 14.35 11.87 ( 17.29%)
len=29, pos=28, align=0: 14.82 11.15 ( 24.74%)
len=30, pos=29, align=0: 14.83 11.12 ( 25.02%)
len=30, pos=29, align=0: 13.21 11.79 ( 10.73%)
len=31, pos=30, align=0: 13.98 11.82 ( 15.43%)
len=31, pos=30, align=0: 13.98 11.85 ( 15.29%)
len=32, pos=31, align=0: 14.01 11.94 ( 14.76%)
len=32, pos=31, align=0: 14.02 11.87 ( 15.33%)
len=4, pos=18446744073709551604, align=0: 7.21 8.41 (-16.65%)
len=20, pos=4, align=0: 7.20 9.92 (-37.68%)
len=36, pos=20, align=0: 14.01 10.80 ( 22.88%)
len=52, pos=36, align=0: 20.03 15.50 ( 22.63%)
len=68, pos=52, align=0: 22.10 17.00 ( 23.11%)
len=84, pos=68, align=0: 25.61 21.92 ( 14.41%)
len=4, pos=0, align=0: 7.21 9.63 (-33.58%)
len=4, pos=4, align=0: 7.53 9.63 (-27.83%)
len=4, pos=4, align=0: 7.20 9.63 (-33.66%)
len=4, pos=0, align=0: 7.57 9.63 (-27.20%)
len=4, pos=4, align=0: 7.20 9.62 (-33.64%)
len=4, pos=12, align=0: 7.20 8.43 (-17.06%)
len=16, pos=4, align=0: 7.20 8.43 (-17.03%)
len=4, pos=24, align=0: 7.20 8.43 (-17.01%)
len=28, pos=4, align=0: 7.20 8.43 (-17.04%)
len=4, pos=36, align=0: 7.20 8.43 (-17.05%)
len=40, pos=4, align=0: 7.20 8.43 (-17.08%)
len=4, pos=48, align=0: 7.20 8.43 (-17.01%)
len=52, pos=4, align=0: 7.20 8.43 (-17.03%)
len=4, pos=60, align=0: 7.20 8.43 (-17.04%)
len=64, pos=4, align=0: 7.20 8.79 (-22.08%)
len=4, pos=72, align=0: 7.20 8.40 (-16.67%)
len=76, pos=4, align=0: 7.20 8.72 (-21.01%)
len=8, pos=0, align=0: 7.20 8.40 (-16.67%)
len=8, pos=8, align=0: 10.80 8.40 ( 22.21%)
len=8, pos=8, align=0: 10.80 8.72 ( 19.28%)
len=8, pos=0, align=0: 7.21 8.40 (-16.64%)
len=8, pos=8, align=0: 11.12 8.40 ( 24.40%)
len=8, pos=12, align=0: 10.80 8.40 ( 22.22%)
len=20, pos=8, align=0: 10.80 8.40 ( 22.22%)
len=8, pos=24, align=0: 10.80 8.40 ( 22.20%)
len=32, pos=8, align=0: 10.80 8.40 ( 22.23%)
len=8, pos=36, align=0: 11.13 9.60 ( 13.73%)
len=44, pos=8, align=0: 10.80 8.40 ( 22.20%)
len=8, pos=48, align=0: 10.80 8.40 ( 22.19%)
len=56, pos=8, align=0: 10.81 8.40 ( 22.22%)
len=8, pos=60, align=0: 10.81 8.40 ( 22.25%)
len=68, pos=8, align=0: 10.80 8.72 ( 19.24%)
len=8, pos=72, align=0: 10.81 8.40 ( 22.22%)
len=80, pos=8, align=0: 10.80 8.40 ( 22.19%)
len=16, pos=0, align=0: 7.20 8.72 (-21.07%)
len=16, pos=16, align=0: 13.20 11.89 ( 9.94%)
len=16, pos=16, align=0: 13.95 10.80 ( 22.56%)
len=16, pos=0, align=0: 7.20 8.41 (-16.70%)
len=16, pos=16, align=0: 12.76 11.94 ( 6.42%)
len=16, pos=12, align=0: 11.12 8.43 ( 24.17%)
len=28, pos=16, align=0: 13.92 10.80 ( 22.37%)
len=16, pos=4, align=0: 7.20 8.43 (-17.01%)
len=4, pos=12, align=0: 7.20 8.43 (-17.06%)
len=4, pos=16, align=0: 7.20 8.43 (-17.07%)
len=16, pos=24, align=0: 13.25 11.97 ( 9.66%)
len=40, pos=16, align=0: 13.72 10.80 ( 21.29%)
len=16, pos=36, align=0: 12.00 10.80 ( 10.00%)
len=52, pos=16, align=0: 12.00 10.80 ( 10.01%)
len=16, pos=48, align=0: 13.14 11.91 ( 9.34%)
len=64, pos=16, align=0: 14.15 10.80 ( 23.68%)
len=16, pos=60, align=0: 12.00 10.80 ( 10.00%)
len=76, pos=16, align=0: 12.01 10.80 ( 10.03%)
len=16, pos=72, align=0: 13.23 11.96 ( 9.62%)
len=88, pos=16, align=0: 13.87 10.80 ( 22.10%)
len=32, pos=0, align=0: 7.20 9.63 (-33.62%)
len=32, pos=32, align=0: 20.07 15.77 ( 21.43%)
len=32, pos=32, align=0: 21.13 14.41 ( 31.83%)
len=32, pos=0, align=0: 7.20 9.63 (-33.60%)
len=32, pos=32, align=0: 20.02 15.54 ( 22.37%)
len=32, pos=12, align=0: 10.81 8.43 ( 21.97%)
len=44, pos=32, align=0: 20.02 15.88 ( 20.72%)
len=32, pos=20, align=0: 14.00 10.81 ( 22.82%)
len=20, pos=12, align=0: 10.81 9.62 ( 10.93%)
len=20, pos=32, align=0: 13.12 11.79 ( 10.15%)
len=32, pos=24, align=0: 15.17 10.80 ( 28.77%)
len=56, pos=32, align=0: 20.00 15.86 ( 20.70%)
len=32, pos=8, align=0: 10.80 9.63 ( 10.88%)
len=8, pos=24, align=0: 10.80 8.43 ( 21.97%)
len=8, pos=32, align=0: 10.80 9.63 ( 10.88%)
len=32, pos=36, align=0: 20.03 15.53 ( 22.44%)
len=68, pos=32, align=0: 20.07 15.53 ( 22.62%)
len=32, pos=48, align=0: 20.06 15.85 ( 20.98%)
len=80, pos=32, align=0: 21.22 14.41 ( 32.12%)
len=32, pos=60, align=0: 21.10 14.41 ( 31.72%)
len=92, pos=32, align=0: 20.01 15.55 ( 22.30%)
len=32, pos=72, align=0: 20.10 15.42 ( 23.31%)
len=104, pos=32, align=0: 19.21 20.01 ( -4.17%)
len=64, pos=0, align=0: 7.21 9.60 (-33.25%)
len=64, pos=64, align=0: 24.51 20.27 ( 17.31%)
len=64, pos=64, align=0: 26.15 20.35 ( 22.18%)
len=64, pos=0, align=0: 7.20 8.43 (-17.02%)
len=64, pos=64, align=0: 24.86 20.24 ( 18.57%)
len=64, pos=12, align=0: 10.80 9.63 ( 10.88%)
len=76, pos=64, align=0: 24.92 20.21 ( 18.91%)
len=64, pos=52, align=0: 22.06 16.62 ( 24.66%)
len=52, pos=12, align=0: 10.80 9.63 ( 10.88%)
len=52, pos=64, align=0: 22.38 17.07 ( 23.72%)
len=64, pos=24, align=0: 15.24 10.81 ( 29.09%)
len=88, pos=64, align=0: 26.66 20.23 ( 24.11%)
len=64, pos=40, align=0: 19.99 15.49 ( 22.52%)
len=40, pos=24, align=0: 14.10 11.88 ( 15.72%)
len=40, pos=64, align=0: 20.03 15.42 ( 22.98%)
len=64, pos=36, align=0: 20.04 15.43 ( 23.00%)
len=100, pos=64, align=0: 24.81 20.18 ( 18.65%)
len=64, pos=28, align=0: 13.97 12.07 ( 13.59%)
len=28, pos=36, align=0: 14.01 11.80 ( 15.76%)
len=28, pos=64, align=0: 14.06 11.81 ( 16.02%)
len=64, pos=48, align=0: 22.52 16.76 ( 25.58%)
len=112, pos=64, align=0: 27.08 21.60 ( 20.23%)
len=64, pos=16, align=0: 12.01 10.80 ( 10.02%)
len=16, pos=48, align=0: 12.00 10.80 ( 10.00%)
len=16, pos=64, align=0: 12.86 12.16 ( 5.47%)
len=64, pos=60, align=0: 23.23 15.60 ( 32.85%)
len=124, pos=64, align=0: 25.93 20.22 ( 22.04%)
len=64, pos=4, align=0: 7.23 9.63 (-33.23%)
len=4, pos=60, align=0: 7.23 9.63 (-33.24%)
len=4, pos=64, align=0: 7.22 8.43 (-16.69%)
len=64, pos=72, align=0: 25.08 22.61 ( 9.82%)
len=136, pos=64, align=0: 24.95 22.40 ( 10.21%)
len=128, pos=0, align=0: 7.22 9.63 (-33.22%)
len=128, pos=128, align=0: 39.72 25.09 ( 36.82%)
len=128, pos=128, align=0: 39.29 25.46 ( 35.19%)
len=128, pos=0, align=0: 7.23 8.43 (-16.70%)
len=128, pos=128, align=0: 39.74 25.09 ( 36.87%)
len=128, pos=12, align=0: 10.81 9.63 ( 10.90%)
len=140, pos=128, align=0: 40.04 25.41 ( 36.53%)
len=128, pos=116, align=0: 35.65 22.66 ( 36.45%)
len=116, pos=12, align=0: 10.81 8.43 ( 21.96%)
len=116, pos=128, align=0: 35.59 22.71 ( 36.20%)
len=128, pos=24, align=0: 14.43 12.01 ( 16.74%)
len=152, pos=128, align=0: 40.47 26.27 ( 35.09%)
len=128, pos=104, align=0: 32.81 22.60 ( 31.11%)
len=104, pos=24, align=0: 14.35 11.84 ( 17.47%)
len=104, pos=128, align=0: 32.79 22.70 ( 30.78%)
len=128, pos=36, align=0: 20.00 15.82 ( 20.90%)
len=164, pos=128, align=0: 38.89 25.08 ( 35.52%)
len=128, pos=92, align=0: 29.68 20.21 ( 31.91%)
len=92, pos=36, align=0: 20.75 14.41 ( 30.56%)
len=92, pos=128, align=0: 29.38 20.09 ( 31.61%)
len=128, pos=48, align=0: 23.32 15.93 ( 31.71%)
len=176, pos=128, align=0: 40.20 24.00 ( 40.29%)
len=128, pos=80, align=0: 29.38 20.89 ( 28.88%)
len=80, pos=48, align=0: 22.90 15.93 ( 30.44%)
len=80, pos=128, align=0: 30.47 18.01 ( 40.90%)
len=128, pos=60, align=0: 22.47 16.75 ( 25.47%)
len=188, pos=128, align=0: 39.83 25.03 ( 37.16%)
len=128, pos=68, align=0: 26.69 20.25 ( 24.12%)
len=68, pos=60, align=0: 23.36 16.66 ( 28.67%)
len=68, pos=128, align=0: 25.06 20.17 ( 19.54%)
len=128, pos=72, align=0: 26.16 20.95 ( 19.91%)
len=200, pos=128, align=0: 39.90 25.04 ( 37.25%)
len=128, pos=56, align=0: 22.89 16.74 ( 26.86%)
len=56, pos=72, align=0: 22.51 16.62 ( 26.15%)
len=56, pos=128, align=0: 22.56 17.08 ( 24.29%)
len=256, pos=0, align=0: 7.23 9.63 (-33.18%)
len=256, pos=256, align=0: 64.22 37.39 ( 41.77%)
len=256, pos=256, align=0: 64.15 37.09 ( 42.18%)
len=256, pos=0, align=0: 7.21 8.43 (-16.93%)
len=256, pos=256, align=0: 64.21 37.05 ( 42.30%)
len=256, pos=12, align=0: 10.80 8.43 ( 21.97%)
len=268, pos=256, align=0: 64.22 37.20 ( 42.08%)
len=256, pos=244, align=0: 60.28 35.26 ( 41.50%)
len=244, pos=12, align=0: 10.81 9.63 ( 10.92%)
len=244, pos=256, align=0: 61.17 35.33 ( 42.25%)
len=256, pos=24, align=0: 13.88 11.91 ( 14.19%)
len=280, pos=256, align=0: 64.12 37.48 ( 41.55%)
len=256, pos=232, align=0: 57.88 33.80 ( 41.61%)
len=232, pos=24, align=0: 14.06 12.29 ( 12.62%)
len=232, pos=256, align=0: 57.87 33.90 ( 41.42%)
len=256, pos=36, align=0: 20.03 15.56 ( 22.32%)
len=292, pos=256, align=0: 64.28 37.14 ( 42.23%)
len=256, pos=220, align=0: 54.61 32.19 ( 41.05%)
len=220, pos=36, align=0: 20.03 15.41 ( 23.05%)
len=220, pos=256, align=0: 54.32 32.22 ( 40.68%)
len=256, pos=48, align=0: 22.61 16.65 ( 26.35%)
len=304, pos=256, align=0: 64.23 37.49 ( 41.63%)
len=256, pos=208, align=0: 55.29 32.30 ( 41.59%)
len=208, pos=48, align=0: 22.53 16.98 ( 24.64%)
len=208, pos=256, align=0: 54.60 32.20 ( 41.02%)
len=256, pos=60, align=0: 22.20 16.76 ( 24.50%)
len=316, pos=256, align=0: 64.26 37.07 ( 42.30%)
len=256, pos=196, align=0: 51.90 30.02 ( 42.15%)
len=196, pos=60, align=0: 22.55 16.63 ( 26.26%)
len=196, pos=256, align=0: 52.05 30.36 ( 41.66%)
len=256, pos=72, align=0: 26.84 20.22 ( 24.67%)
len=328, pos=256, align=0: 63.54 37.48 ( 41.02%)
len=256, pos=184, align=0: 49.41 28.66 ( 42.00%)
len=184, pos=72, align=0: 26.23 21.87 ( 16.63%)
len=184, pos=256, align=0: 49.40 28.74 ( 41.82%)
len=512, pos=0, align=0: 7.23 9.63 (-33.13%)
len=512, pos=512, align=0: 115.09 66.00 ( 42.65%)
len=512, pos=512, align=0: 115.48 66.02 ( 42.83%)
len=512, pos=0, align=0: 7.23 8.43 (-16.66%)
len=512, pos=512, align=0: 114.62 66.07 ( 42.36%)
len=512, pos=12, align=0: 11.13 8.43 ( 24.21%)
len=524, pos=512, align=0: 115.99 66.00 ( 43.10%)
len=512, pos=500, align=0: 111.14 63.92 ( 42.49%)
len=500, pos=12, align=0: 10.81 8.43 ( 21.97%)
len=500, pos=512, align=0: 112.94 63.91 ( 43.41%)
len=512, pos=24, align=0: 14.26 11.84 ( 17.00%)
len=536, pos=512, align=0: 132.63 65.98 ( 50.25%)
len=512, pos=488, align=0: 108.61 62.40 ( 42.55%)
len=488, pos=24, align=0: 14.13 11.90 ( 15.77%)
len=488, pos=512, align=0: 108.67 62.49 ( 42.50%)
len=512, pos=36, align=0: 20.02 15.51 ( 22.52%)
len=548, pos=512, align=0: 114.81 66.12 ( 42.41%)
len=512, pos=476, align=0: 104.82 60.37 ( 42.40%)
len=476, pos=36, align=0: 19.94 15.77 ( 20.92%)
len=476, pos=512, align=0: 105.32 60.57 ( 42.49%)
len=512, pos=48, align=0: 22.37 16.62 ( 25.68%)
len=560, pos=512, align=0: 113.20 65.94 ( 41.75%)
len=512, pos=464, align=0: 104.93 60.09 ( 42.74%)
len=464, pos=48, align=0: 22.18 16.68 ( 24.79%)
len=464, pos=512, align=0: 105.13 60.13 ( 42.80%)
len=512, pos=60, align=0: 22.47 16.63 ( 25.96%)
len=572, pos=512, align=0: 115.65 65.63 ( 43.25%)
len=512, pos=452, align=0: 101.51 58.78 ( 42.10%)
len=452, pos=60, align=0: 22.21 16.67 ( 24.95%)
len=452, pos=512, align=0: 101.68 58.58 ( 42.39%)
len=512, pos=72, align=0: 27.68 21.60 ( 21.95%)
len=584, pos=512, align=0: 115.20 66.06 ( 42.65%)
len=512, pos=440, align=0: 98.72 56.78 ( 42.48%)
len=440, pos=72, align=0: 26.70 20.24 ( 24.22%)
len=440, pos=512, align=0: 98.97 56.82 ( 42.59%)
len=256, pos=64, align=1: 66.80 40.66 ( 39.12%)
len=256, pos=64, align=1: 66.42 40.76 ( 38.63%)
len=256, pos=64, align=15: 64.34 41.05 ( 36.21%)
len=256, pos=64, align=15: 64.33 41.12 ( 36.08%)
len=256, pos=64, align=2: 67.42 39.60 ( 41.25%)
len=256, pos=64, align=2: 67.15 42.11 ( 37.29%)
len=256, pos=64, align=30: 65.35 41.27 ( 36.85%)
len=256, pos=64, align=30: 64.51 41.08 ( 36.33%)
len=256, pos=64, align=3: 67.54 39.61 ( 41.36%)
len=256, pos=64, align=3: 67.21 39.96 ( 40.55%)
len=256, pos=64, align=45: 66.38 41.30 ( 37.79%)
len=256, pos=64, align=45: 66.32 39.60 ( 40.29%)
len=256, pos=64, align=4: 66.33 40.67 ( 38.68%)
len=256, pos=64, align=4: 65.81 41.09 ( 37.56%)
len=256, pos=64, align=60: 64.58 42.10 ( 34.81%)
len=256, pos=64, align=60: 64.44 42.02 ( 34.79%)
len=256, pos=64, align=5: 66.73 40.73 ( 38.96%)
len=256, pos=64, align=5: 67.09 41.15 ( 38.66%)
len=256, pos=64, align=75: 65.74 39.92 ( 39.27%)
len=256, pos=64, align=75: 65.99 40.95 ( 37.94%)
len=256, pos=64, align=6: 67.29 39.95 ( 40.63%)
len=256, pos=64, align=6: 67.90 41.11 ( 39.45%)
len=256, pos=64, align=90: 65.25 39.91 ( 38.83%)
len=256, pos=64, align=90: 63.54 40.83 ( 35.74%)
len=256, pos=64, align=7: 67.37 41.10 ( 38.99%)
len=256, pos=64, align=7: 66.68 41.04 ( 38.45%)
len=256, pos=64, align=105: 64.66 39.60 ( 38.75%)
len=256, pos=64, align=105: 63.05 40.77 ( 35.33%)
len=1, pos=0, align=0: 7.20 8.72 (-21.03%)
len=1, pos=0, align=0: 7.20 8.40 (-16.70%)
len=2, pos=1, align=0: 7.20 8.40 (-16.69%)
len=2, pos=1, align=0: 7.20 8.40 (-16.70%)
len=3, pos=2, align=0: 7.20 8.40 (-16.67%)
len=3, pos=2, align=0: 7.20 8.40 (-16.67%)
len=4, pos=3, align=0: 7.20 8.40 (-16.70%)
len=4, pos=3, align=0: 7.20 8.40 (-16.67%)
len=5, pos=4, align=0: 7.20 8.40 (-16.70%)
len=5, pos=4, align=0: 7.20 8.40 (-16.70%)
len=6, pos=5, align=0: 7.52 9.60 (-27.59%)
len=6, pos=5, align=0: 7.20 8.40 (-16.67%)
len=7, pos=6, align=0: 7.20 8.40 (-16.70%)
len=7, pos=6, align=0: 7.52 9.60 (-27.64%)
len=8, pos=7, align=0: 12.01 8.73 ( 27.35%)
len=8, pos=7, align=0: 12.01 8.40 ( 30.00%)
len=9, pos=8, align=0: 10.81 8.40 ( 22.23%)
len=9, pos=8, align=0: 10.81 8.40 ( 22.22%)
len=10, pos=9, align=0: 10.81 8.40 ( 22.22%)
len=10, pos=9, align=0: 11.12 9.60 ( 13.69%)
len=11, pos=10, align=0: 11.12 8.40 ( 24.43%)
len=11, pos=10, align=0: 11.17 8.40 ( 24.73%)
len=12, pos=11, align=0: 10.81 8.72 ( 19.28%)
len=12, pos=11, align=0: 10.81 8.73 ( 19.21%)
len=13, pos=12, align=0: 12.02 9.54 ( 20.69%)
len=13, pos=12, align=0: 11.98 9.51 ( 20.61%)
len=14, pos=13, align=0: 12.71 8.40 ( 33.86%)
len=14, pos=13, align=0: 10.80 8.40 ( 22.20%)
len=15, pos=14, align=0: 10.81 8.40 ( 22.22%)
len=15, pos=14, align=0: 10.80 8.40 ( 22.19%)
len=16, pos=15, align=0: 12.61 13.24 ( -5.03%)
len=16, pos=15, align=0: 13.76 13.00 ( 5.51%)
len=17, pos=16, align=0: 12.83 11.89 ( 7.31%)
len=17, pos=16, align=0: 12.00 10.80 ( 9.99%)
len=18, pos=17, align=0: 12.82 12.23 ( 4.57%)
len=18, pos=17, align=0: 13.99 10.80 ( 22.78%)
len=19, pos=18, align=0: 12.01 10.80 ( 10.01%)
len=19, pos=18, align=0: 13.19 11.89 ( 9.84%)
len=20, pos=19, align=0: 13.96 10.80 ( 22.62%)
len=20, pos=19, align=0: 12.80 11.87 ( 7.23%)
len=21, pos=20, align=0: 12.83 12.02 ( 6.29%)
len=21, pos=20, align=0: 13.21 11.80 ( 10.67%)
len=22, pos=21, align=0: 12.85 11.86 ( 7.76%)
len=22, pos=21, align=0: 13.18 11.90 ( 9.73%)
len=23, pos=22, align=0: 12.01 10.80 ( 10.01%)
len=23, pos=22, align=0: 12.89 11.89 ( 7.73%)
len=24, pos=23, align=0: 15.20 12.14 ( 20.15%)
len=24, pos=23, align=0: 15.27 11.79 ( 22.80%)
len=25, pos=24, align=0: 14.05 11.89 ( 15.39%)
len=25, pos=24, align=0: 14.29 11.80 ( 17.43%)
len=26, pos=25, align=0: 13.98 12.22 ( 12.62%)
len=26, pos=25, align=0: 14.05 11.99 ( 14.60%)
len=27, pos=26, align=0: 14.09 11.88 ( 15.64%)
len=27, pos=26, align=0: 13.98 11.85 ( 15.23%)
len=28, pos=27, align=0: 14.29 11.92 ( 16.63%)
len=28, pos=27, align=0: 14.51 11.80 ( 18.68%)
len=29, pos=28, align=0: 14.05 12.20 ( 13.16%)
len=29, pos=28, align=0: 14.10 12.11 ( 14.11%)
len=30, pos=29, align=0: 13.96 11.78 ( 15.60%)
len=30, pos=29, align=0: 14.04 11.90 ( 15.24%)
len=31, pos=30, align=0: 14.05 11.91 ( 15.24%)
len=31, pos=30, align=0: 14.09 11.80 ( 16.27%)
len=32, pos=31, align=0: 19.59 18.36 ( 6.26%)
len=32, pos=31, align=0: 20.14 18.00 ( 10.62%)
len=4, pos=18446744073709551604, align=0: 9.63 10.97 (-13.91%)
len=20, pos=4, align=0: 14.13 14.30 ( -1.22%)
len=36, pos=20, align=0: 21.21 19.07 ( 10.10%)
len=52, pos=36, align=0: 28.58 15.61 ( 45.39%)
len=68, pos=52, align=0: 32.59 22.82 ( 29.97%)
len=84, pos=68, align=0: 32.61 21.52 ( 34.01%)
len=4, pos=0, align=0: 7.21 9.63 (-33.62%)
len=4, pos=4, align=0: 9.95 10.81 ( -8.68%)
len=4, pos=4, align=0: 9.62 10.80 (-12.22%)
len=4, pos=0, align=0: 7.21 9.60 (-33.29%)
len=4, pos=4, align=0: 9.60 10.80 (-12.49%)
len=4, pos=12, align=0: 9.60 9.64 ( -0.38%)
len=16, pos=4, align=0: 13.21 13.24 ( -0.21%)
len=4, pos=24, align=0: 9.63 9.64 ( -0.07%)
len=28, pos=4, align=0: 15.51 14.22 ( 8.35%)
len=4, pos=36, align=0: 9.66 10.80 (-11.85%)
len=40, pos=4, align=0: 22.13 18.33 ( 17.19%)
len=4, pos=48, align=0: 9.64 10.81 (-12.10%)
len=52, pos=4, align=0: 23.60 18.01 ( 23.69%)
len=4, pos=60, align=0: 9.64 9.64 ( 0.04%)
len=64, pos=4, align=0: 30.17 23.78 ( 21.17%)
len=4, pos=72, align=0: 9.65 10.29 ( -6.62%)
len=76, pos=4, align=0: 27.98 24.29 ( 13.19%)
len=8, pos=0, align=0: 12.01 9.63 ( 19.81%)
len=8, pos=8, align=0: 12.01 10.80 ( 10.01%)
len=8, pos=8, align=0: 12.01 9.64 ( 19.72%)
len=8, pos=0, align=0: 12.01 9.60 ( 20.03%)
len=8, pos=8, align=0: 12.34 10.80 ( 12.47%)
len=8, pos=12, align=0: 12.00 9.97 ( 16.90%)
len=20, pos=8, align=0: 14.51 13.24 ( 8.76%)
len=8, pos=24, align=0: 12.00 9.64 ( 19.71%)
len=32, pos=8, align=0: 21.29 19.14 ( 10.10%)
len=8, pos=36, align=0: 12.01 9.64 ( 19.73%)
len=44, pos=8, align=0: 21.15 19.16 ( 9.40%)
len=8, pos=48, align=0: 12.00 9.64 ( 19.70%)
len=56, pos=8, align=0: 22.81 19.16 ( 16.00%)
len=8, pos=60, align=0: 12.01 9.64 ( 19.73%)
len=68, pos=8, align=0: 24.89 23.84 ( 4.21%)
len=8, pos=72, align=0: 12.01 10.80 ( 10.05%)
len=80, pos=8, align=0: 29.41 22.62 ( 23.06%)
len=16, pos=0, align=0: 14.47 13.00 ( 10.17%)
len=16, pos=16, align=0: 15.87 15.38 ( 3.14%)
len=16, pos=16, align=0: 14.40 13.24 ( 8.10%)
len=16, pos=0, align=0: 14.40 13.00 ( 9.72%)
len=16, pos=16, align=0: 16.60 13.24 ( 20.28%)
len=16, pos=12, align=0: 13.20 13.24 ( -0.25%)
len=28, pos=16, align=0: 15.31 11.91 ( 22.20%)
len=16, pos=4, align=0: 14.40 13.23 ( 8.12%)
len=4, pos=12, align=0: 9.66 9.64 ( 0.17%)
len=4, pos=16, align=0: 10.00 10.80 ( -8.04%)
len=16, pos=24, align=0: 15.32 14.44 ( 5.71%)
len=40, pos=16, align=0: 21.20 19.07 ( 10.06%)
len=16, pos=36, align=0: 13.20 13.23 ( -0.23%)
len=52, pos=16, align=0: 22.89 18.21 ( 20.43%)
len=16, pos=48, align=0: 17.18 14.44 ( 15.95%)
len=64, pos=16, align=0: 26.09 25.21 ( 3.36%)
len=16, pos=60, align=0: 13.21 14.44 ( -9.33%)
len=76, pos=16, align=0: 24.80 23.84 ( 3.87%)
len=16, pos=72, align=0: 14.01 15.67 (-11.85%)
len=88, pos=16, align=0: 29.53 21.61 ( 26.82%)
len=32, pos=0, align=0: 22.45 19.04 ( 15.19%)
len=32, pos=32, align=0: 22.39 21.58 ( 3.60%)
len=32, pos=32, align=0: 21.31 21.50 ( -0.90%)
len=32, pos=0, align=0: 21.37 19.14 ( 10.42%)
len=32, pos=32, align=0: 22.47 23.28 ( -3.61%)
len=32, pos=12, align=0: 21.57 19.04 ( 11.72%)
len=44, pos=32, align=0: 21.23 14.41 ( 32.11%)
len=32, pos=20, align=0: 21.60 19.01 ( 11.97%)
len=20, pos=12, align=0: 13.65 14.25 ( -4.43%)
len=20, pos=32, align=0: 14.62 15.40 ( -5.35%)
len=32, pos=24, align=0: 19.65 18.01 ( 8.36%)
len=56, pos=32, align=0: 27.12 17.04 ( 37.15%)
len=32, pos=8, align=0: 22.40 18.01 ( 19.62%)
len=8, pos=24, align=0: 12.00 9.64 ( 19.69%)
len=8, pos=32, align=0: 12.00 10.80 ( 10.01%)
len=32, pos=36, align=0: 21.27 21.76 ( -2.30%)
len=68, pos=32, align=0: 30.69 21.61 ( 29.59%)
len=32, pos=48, align=0: 22.24 20.41 ( 8.27%)
len=80, pos=32, align=0: 31.94 23.14 ( 27.54%)
len=32, pos=60, align=0: 21.20 21.56 ( -1.72%)
len=92, pos=32, align=0: 32.25 22.71 ( 29.58%)
len=32, pos=72, align=0: 21.19 21.82 ( -2.94%)
len=104, pos=32, align=0: 35.40 28.67 ( 19.00%)
len=64, pos=0, align=0: 27.06 23.88 ( 11.74%)
len=64, pos=64, align=0: 26.68 28.60 ( -7.19%)
len=64, pos=64, align=0: 27.53 28.60 ( -3.89%)
len=64, pos=0, align=0: 27.15 23.80 ( 12.33%)
len=64, pos=64, align=0: 25.98 28.50 ( -9.67%)
len=64, pos=12, align=0: 24.85 23.77 ( 4.35%)
len=76, pos=64, align=0: 26.48 20.22 ( 23.67%)
len=64, pos=52, align=0: 29.63 23.85 ( 19.48%)
len=52, pos=12, align=0: 23.76 19.52 ( 17.86%)
len=52, pos=64, align=0: 24.81 19.21 ( 22.57%)
len=64, pos=24, align=0: 23.96 26.28 ( -9.70%)
len=88, pos=64, align=0: 31.81 21.97 ( 30.91%)
len=64, pos=40, align=0: 28.53 23.07 ( 19.13%)
len=40, pos=24, align=0: 19.63 19.00 ( 3.18%)
len=40, pos=64, align=0: 22.41 20.76 ( 7.39%)
len=64, pos=36, align=0: 30.45 21.92 ( 28.02%)
len=100, pos=64, align=0: 34.96 28.70 ( 17.91%)
len=64, pos=28, align=0: 24.82 22.80 ( 8.13%)
len=28, pos=36, align=0: 18.21 14.42 ( 20.84%)
len=28, pos=64, align=0: 17.07 15.39 ( 9.83%)
len=64, pos=48, align=0: 31.25 24.39 ( 21.95%)
len=112, pos=64, align=0: 39.12 25.21 ( 35.54%)
len=64, pos=16, align=0: 27.60 22.80 ( 17.37%)
len=16, pos=48, align=0: 14.40 14.44 ( -0.24%)
len=16, pos=64, align=0: 15.61 15.34 ( 1.75%)
len=64, pos=60, align=0: 29.40 23.16 ( 21.23%)
len=124, pos=64, align=0: 39.10 25.21 ( 35.52%)
len=64, pos=4, align=0: 27.36 22.80 ( 16.65%)
len=4, pos=60, align=0: 9.63 9.64 ( -0.11%)
len=4, pos=64, align=0: 9.63 9.95 ( -3.40%)
len=64, pos=72, align=0: 28.32 27.98 ( 1.21%)
len=136, pos=64, align=0: 41.91 29.22 ( 30.28%)
len=128, pos=0, align=0: 40.19 29.15 ( 27.49%)
len=128, pos=128, align=0: 40.17 30.37 ( 24.40%)
len=128, pos=128, align=0: 39.42 30.32 ( 23.09%)
len=128, pos=0, align=0: 39.66 28.80 ( 27.38%)
len=128, pos=128, align=0: 41.40 30.01 ( 27.53%)
len=128, pos=12, align=0: 39.63 28.73 ( 27.50%)
len=140, pos=128, align=0: 39.49 25.43 ( 35.60%)
len=128, pos=116, align=0: 40.85 32.67 ( 20.04%)
len=116, pos=12, align=0: 34.85 25.40 ( 27.10%)
len=116, pos=128, align=0: 36.05 27.59 ( 23.46%)
len=128, pos=24, align=0: 38.05 28.39 ( 25.38%)
len=152, pos=128, align=0: 45.59 25.60 ( 43.84%)
len=128, pos=104, align=0: 39.80 29.81 ( 25.10%)
len=104, pos=24, align=0: 31.98 27.61 ( 13.69%)
len=104, pos=128, align=0: 33.04 30.04 ( 9.06%)
len=128, pos=36, align=0: 41.44 31.47 ( 24.05%)
len=164, pos=128, align=0: 51.46 33.91 ( 34.11%)
len=128, pos=92, align=0: 39.31 33.76 ( 14.11%)
len=92, pos=36, align=0: 33.42 21.61 ( 35.34%)
len=92, pos=128, align=0: 31.74 24.36 ( 23.26%)
len=128, pos=48, align=0: 40.34 33.62 ( 16.64%)
len=176, pos=128, align=0: 50.96 32.72 ( 35.80%)
len=128, pos=80, align=0: 41.48 33.15 ( 20.08%)
len=80, pos=48, align=0: 32.55 22.72 ( 30.22%)
len=80, pos=128, align=0: 30.62 26.46 ( 13.59%)
len=128, pos=60, align=0: 38.71 33.41 ( 13.69%)
len=188, pos=128, align=0: 51.87 31.20 ( 39.84%)
len=128, pos=68, align=0: 41.52 29.92 ( 27.94%)
len=68, pos=60, align=0: 29.50 24.38 ( 17.34%)
len=68, pos=128, align=0: 27.25 29.06 ( -6.61%)
len=128, pos=72, align=0: 39.13 30.32 ( 22.53%)
len=200, pos=128, align=0: 54.59 33.62 ( 38.42%)
len=128, pos=56, align=0: 38.97 33.46 ( 14.14%)
len=56, pos=72, align=0: 24.50 19.60 ( 19.99%)
len=56, pos=128, align=0: 24.48 19.20 ( 21.56%)
len=256, pos=0, align=0: 65.93 39.89 ( 39.49%)
len=256, pos=256, align=0: 65.81 39.96 ( 39.27%)
len=256, pos=256, align=0: 65.71 39.60 ( 39.73%)
len=256, pos=0, align=0: 67.84 38.41 ( 43.38%)
len=256, pos=256, align=0: 65.47 41.15 ( 37.14%)
len=256, pos=12, align=0: 66.18 39.81 ( 39.84%)
len=268, pos=256, align=0: 65.17 37.49 ( 42.47%)
len=256, pos=244, align=0: 67.48 39.94 ( 40.82%)
len=244, pos=12, align=0: 64.45 36.98 ( 42.63%)
len=244, pos=256, align=0: 64.11 37.53 ( 41.47%)
len=256, pos=24, align=0: 63.23 37.22 ( 41.14%)
len=280, pos=256, align=0: 69.11 39.13 ( 43.39%)
len=256, pos=232, align=0: 63.93 41.12 ( 35.67%)
len=232, pos=24, align=0: 57.91 40.81 ( 29.53%)
len=232, pos=256, align=0: 59.73 38.58 ( 35.41%)
len=256, pos=36, align=0: 67.19 41.02 ( 38.95%)
len=292, pos=256, align=0: 72.77 43.33 ( 40.46%)
len=256, pos=220, align=0: 65.30 41.03 ( 37.17%)
len=220, pos=36, align=0: 58.04 35.34 ( 39.10%)
len=220, pos=256, align=0: 56.12 34.86 ( 37.89%)
len=256, pos=48, align=0: 66.47 40.73 ( 38.72%)
len=304, pos=256, align=0: 76.11 46.00 ( 39.56%)
len=256, pos=208, align=0: 66.63 40.77 ( 38.81%)
len=208, pos=48, align=0: 58.15 34.81 ( 40.13%)
len=208, pos=256, align=0: 57.60 35.10 ( 39.05%)
len=256, pos=60, align=0: 64.86 40.65 ( 37.32%)
len=316, pos=256, align=0: 75.18 45.57 ( 39.38%)
len=256, pos=196, align=0: 67.13 41.13 ( 38.73%)
len=196, pos=60, align=0: 53.24 34.81 ( 34.61%)
len=196, pos=256, align=0: 53.60 36.26 ( 32.34%)
len=256, pos=72, align=0: 65.29 40.01 ( 38.72%)
len=328, pos=256, align=0: 78.90 46.69 ( 40.83%)
len=256, pos=184, align=0: 64.88 41.06 ( 36.72%)
len=184, pos=72, align=0: 47.79 32.67 ( 31.63%)
len=184, pos=256, align=0: 52.05 33.60 ( 35.45%)
len=512, pos=0, align=0: 116.60 68.62 ( 41.15%)
len=512, pos=512, align=0: 115.64 68.18 ( 41.04%)
len=512, pos=512, align=0: 114.34 68.19 ( 40.36%)
len=512, pos=0, align=0: 116.20 68.59 ( 40.97%)
len=512, pos=512, align=0: 112.41 68.31 ( 39.23%)
len=512, pos=12, align=0: 120.64 68.71 ( 43.04%)
len=524, pos=512, align=0: 115.22 67.50 ( 41.42%)
len=512, pos=500, align=0: 117.13 67.85 ( 42.07%)
len=500, pos=12, align=0: 109.79 66.68 ( 39.27%)
len=500, pos=512, align=0: 114.55 66.24 ( 42.17%)
len=512, pos=24, align=0: 112.35 67.39 ( 40.02%)
len=536, pos=512, align=0: 176.33 67.91 ( 61.49%)
len=512, pos=488, align=0: 115.56 68.71 ( 40.55%)
len=488, pos=24, align=0: 107.93 64.01 ( 40.69%)
len=488, pos=512, align=0: 105.42 64.80 ( 38.54%)
len=512, pos=36, align=0: 119.09 68.61 ( 42.39%)
len=548, pos=512, align=0: 124.90 72.26 ( 42.15%)
len=512, pos=476, align=0: 115.09 67.41 ( 41.43%)
len=476, pos=36, align=0: 108.86 64.03 ( 41.18%)
len=476, pos=512, align=0: 106.78 62.64 ( 41.34%)
len=512, pos=48, align=0: 117.96 67.46 ( 42.81%)
len=560, pos=512, align=0: 126.28 74.89 ( 40.69%)
len=512, pos=464, align=0: 118.23 67.47 ( 42.94%)
len=464, pos=48, align=0: 107.92 62.69 ( 41.91%)
len=464, pos=512, align=0: 106.85 62.61 ( 41.40%)
len=512, pos=60, align=0: 114.11 67.53 ( 40.83%)
len=572, pos=512, align=0: 127.34 74.65 ( 41.38%)
len=512, pos=452, align=0: 118.80 68.78 ( 42.10%)
len=452, pos=60, align=0: 103.69 60.20 ( 41.95%)
len=452, pos=512, align=0: 100.82 60.94 ( 39.55%)
len=512, pos=72, align=0: 116.47 68.74 ( 40.98%)
len=584, pos=512, align=0: 131.46 75.80 ( 42.34%)
len=512, pos=440, align=0: 113.73 67.44 ( 40.71%)
len=440, pos=72, align=0: 100.63 60.30 ( 40.07%)
len=440, pos=512, align=0: 102.12 59.09 ( 42.14%)
len=256, pos=64, align=1: 72.48 44.60 ( 38.47%)
len=256, pos=64, align=1: 72.42 47.17 ( 34.86%)
len=256, pos=64, align=15: 68.76 46.46 ( 32.43%)
len=256, pos=64, align=15: 67.69 44.73 ( 33.92%)
len=256, pos=64, align=2: 71.61 44.82 ( 37.41%)
len=256, pos=64, align=2: 71.68 44.39 ( 38.08%)
len=256, pos=64, align=30: 70.43 43.33 ( 38.47%)
len=256, pos=64, align=30: 68.10 43.67 ( 35.88%)
len=256, pos=64, align=3: 72.94 47.07 ( 35.47%)
len=256, pos=64, align=3: 73.02 44.63 ( 38.87%)
len=256, pos=64, align=45: 68.42 45.39 ( 33.65%)
len=256, pos=64, align=45: 70.30 44.38 ( 36.87%)
len=256, pos=64, align=4: 72.42 44.33 ( 38.79%)
len=256, pos=64, align=4: 72.39 44.26 ( 38.85%)
len=256, pos=64, align=60: 68.68 43.91 ( 36.07%)
len=256, pos=64, align=60: 69.77 43.94 ( 37.03%)
len=256, pos=64, align=5: 71.95 45.94 ( 36.14%)
len=256, pos=64, align=5: 73.57 47.15 ( 35.91%)
len=256, pos=64, align=75: 69.40 47.13 ( 32.09%)
len=256, pos=64, align=75: 69.37 46.80 ( 32.54%)
len=256, pos=64, align=6: 72.50 44.47 ( 38.66%)
len=256, pos=64, align=6: 72.95 44.34 ( 39.23%)
len=256, pos=64, align=90: 68.29 43.61 ( 36.15%)
len=256, pos=64, align=90: 68.42 42.43 ( 37.99%)
len=256, pos=64, align=7: 70.94 45.15 ( 36.35%)
len=256, pos=64, align=7: 72.44 44.39 ( 38.73%)
len=256, pos=64, align=105: 68.56 46.80 ( 31.74%)
len=256, pos=64, align=105: 70.64 44.37 ( 37.20%)
len=1, pos=0, align=0: 7.21 8.73 (-21.07%)
len=1, pos=0, align=0: 7.20 8.40 (-16.69%)
len=2, pos=1, align=0: 7.20 8.40 (-16.67%)
len=2, pos=1, align=0: 7.20 8.40 (-16.70%)
len=3, pos=2, align=0: 7.20 8.40 (-16.70%)
len=3, pos=2, align=0: 7.20 8.40 (-16.70%)
len=4, pos=3, align=0: 7.20 8.40 (-16.67%)
len=4, pos=3, align=0: 7.20 8.40 (-16.70%)
len=5, pos=4, align=0: 7.20 8.76 (-21.63%)
len=5, pos=4, align=0: 7.20 8.40 (-16.67%)
len=6, pos=5, align=0: 7.20 8.40 (-16.67%)
len=6, pos=5, align=0: 7.20 8.40 (-16.67%)
len=7, pos=6, align=0: 7.20 8.40 (-16.67%)
len=7, pos=6, align=0: 7.20 8.40 (-16.70%)
len=8, pos=7, align=0: 12.01 8.76 ( 27.02%)
len=8, pos=7, align=0: 12.00 8.40 ( 29.98%)
len=9, pos=8, align=0: 10.81 8.40 ( 22.22%)
len=9, pos=8, align=0: 10.80 9.60 ( 11.12%)
len=10, pos=9, align=0: 10.80 8.40 ( 22.20%)
len=10, pos=9, align=0: 10.81 9.60 ( 11.16%)
len=11, pos=10, align=0: 10.81 9.60 ( 11.15%)
len=11, pos=10, align=0: 11.12 9.60 ( 13.69%)
len=12, pos=11, align=0: 11.16 8.40 ( 24.71%)
len=12, pos=11, align=0: 11.12 8.40 ( 24.43%)
len=13, pos=12, align=0: 11.98 9.51 ( 20.67%)
len=13, pos=12, align=0: 12.78 8.40 ( 34.25%)
len=14, pos=13, align=0: 10.80 8.40 ( 22.23%)
len=14, pos=13, align=0: 10.80 8.40 ( 22.20%)
len=15, pos=14, align=0: 10.80 9.60 ( 11.12%)
len=15, pos=14, align=0: 10.81 8.40 ( 22.25%)
len=16, pos=15, align=0: 13.91 13.73 ( 1.25%)
len=16, pos=15, align=0: 13.35 14.26 ( -6.84%)
len=17, pos=16, align=0: 12.01 10.80 ( 10.04%)
len=17, pos=16, align=0: 12.01 10.80 ( 10.03%)
len=18, pos=17, align=0: 13.09 11.86 ( 9.40%)
len=18, pos=17, align=0: 12.85 11.88 ( 7.55%)
len=19, pos=18, align=0: 12.00 11.79 ( 1.80%)
len=19, pos=18, align=0: 12.83 11.86 ( 7.57%)
len=20, pos=19, align=0: 12.00 10.80 ( 10.00%)
len=20, pos=19, align=0: 13.20 11.87 ( 10.04%)
len=21, pos=20, align=0: 12.01 10.81 ( 10.00%)
len=21, pos=20, align=0: 13.06 11.87 ( 9.08%)
len=22, pos=21, align=0: 12.86 11.85 ( 7.83%)
len=22, pos=21, align=0: 12.77 11.90 ( 6.82%)
len=23, pos=22, align=0: 12.01 10.80 ( 10.02%)
len=23, pos=22, align=0: 12.87 11.87 ( 7.76%)
len=24, pos=23, align=0: 15.60 11.92 ( 23.56%)
len=24, pos=23, align=0: 14.41 11.80 ( 18.08%)
len=25, pos=24, align=0: 14.10 12.52 ( 11.20%)
len=25, pos=24, align=0: 14.12 11.87 ( 15.92%)
len=26, pos=25, align=0: 13.97 12.20 ( 12.69%)
len=26, pos=25, align=0: 13.80 11.84 ( 14.21%)
len=27, pos=26, align=0: 14.05 11.80 ( 16.04%)
len=27, pos=26, align=0: 14.07 11.90 ( 15.46%)
len=28, pos=27, align=0: 14.03 11.91 ( 15.16%)
len=28, pos=27, align=0: 14.47 11.87 ( 17.97%)
len=29, pos=28, align=0: 14.62 11.80 ( 19.32%)
len=29, pos=28, align=0: 14.07 12.15 ( 13.66%)
len=30, pos=29, align=0: 13.98 12.16 ( 13.00%)
len=30, pos=29, align=0: 13.99 12.15 ( 13.12%)
len=31, pos=30, align=0: 14.08 12.11 ( 14.00%)
len=31, pos=30, align=0: 14.06 12.16 ( 13.51%)
len=32, pos=31, align=0: 21.56 19.15 ( 11.16%)
len=32, pos=31, align=0: 21.25 19.11 ( 10.07%)
len=4, pos=18446744073709551604, align=0: 9.94 10.81 ( -8.68%)
len=20, pos=4, align=0: 14.11 13.04 ( 7.59%)
len=36, pos=20, align=0: 22.94 19.06 ( 16.89%)
len=52, pos=36, align=0: 29.54 16.80 ( 43.14%)
len=68, pos=52, align=0: 33.57 23.86 ( 28.92%)
len=84, pos=68, align=0: 35.10 22.86 ( 34.88%)
len=4, pos=0, align=0: 7.21 9.55 (-32.46%)
len=4, pos=4, align=0: 7.21 9.60 (-33.25%)
len=4, pos=4, align=0: 7.62 9.60 (-26.05%)
len=4, pos=0, align=0: 7.20 8.40 (-16.70%)
len=4, pos=4, align=0: 7.20 8.40 (-16.66%)
len=4, pos=12, align=0: 7.20 8.40 (-16.67%)
len=16, pos=4, align=0: 14.06 14.08 ( -0.17%)
len=4, pos=24, align=0: 9.63 9.64 ( -0.12%)
len=28, pos=4, align=0: 16.31 13.24 ( 18.84%)
len=4, pos=36, align=0: 9.94 10.80 ( -8.62%)
len=40, pos=4, align=0: 22.47 22.81 ( -1.53%)
len=4, pos=48, align=0: 9.64 9.64 ( 0.02%)
len=52, pos=4, align=0: 22.80 19.43 ( 14.78%)
len=4, pos=60, align=0: 9.64 9.64 ( -0.01%)
len=64, pos=4, align=0: 29.65 23.83 ( 19.62%)
len=4, pos=72, align=0: 9.64 9.63 ( 0.08%)
len=76, pos=4, align=0: 26.88 23.76 ( 11.60%)
len=8, pos=0, align=0: 12.34 9.60 ( 22.16%)
len=8, pos=8, align=0: 12.01 9.05 ( 24.65%)
len=8, pos=8, align=0: 12.00 8.40 ( 29.98%)
len=8, pos=0, align=0: 12.00 8.40 ( 29.98%)
len=8, pos=8, align=0: 12.01 8.40 ( 30.00%)
len=8, pos=12, align=0: 12.31 9.60 ( 22.02%)
len=20, pos=8, align=0: 13.49 13.18 ( 2.27%)
len=8, pos=24, align=0: 12.00 8.40 ( 29.99%)
len=32, pos=8, align=0: 21.27 19.35 ( 9.01%)
len=8, pos=36, align=0: 12.01 10.73 ( 10.67%)
len=44, pos=8, align=0: 21.20 19.14 ( 9.73%)
len=8, pos=48, align=0: 12.01 10.80 ( 10.04%)
len=56, pos=8, align=0: 22.91 19.57 ( 14.56%)
len=8, pos=60, align=0: 12.01 10.79 ( 10.12%)
len=68, pos=8, align=0: 24.86 24.17 ( 2.77%)
len=8, pos=72, align=0: 12.01 9.95 ( 17.10%)
len=80, pos=8, align=0: 29.62 22.99 ( 22.40%)
len=16, pos=0, align=0: 13.20 13.11 ( 0.75%)
len=16, pos=16, align=0: 12.60 13.23 ( -5.01%)
len=16, pos=16, align=0: 13.45 14.16 ( -5.33%)
len=16, pos=0, align=0: 14.45 13.07 ( 9.54%)
len=16, pos=16, align=0: 12.60 13.23 ( -5.01%)
len=16, pos=12, align=0: 12.01 13.23 (-10.22%)
len=28, pos=16, align=0: 15.35 11.89 ( 22.53%)
len=16, pos=4, align=0: 14.01 14.57 ( -4.05%)
len=4, pos=12, align=0: 7.21 9.60 (-33.23%)
len=4, pos=16, align=0: 9.95 10.80 ( -8.55%)
len=16, pos=24, align=0: 12.01 13.23 (-10.22%)
len=40, pos=16, align=0: 21.18 19.69 ( 7.05%)
len=16, pos=36, align=0: 12.01 13.23 (-10.21%)
len=52, pos=16, align=0: 23.68 18.27 ( 22.85%)
len=16, pos=48, align=0: 12.81 14.24 (-11.17%)
len=64, pos=16, align=0: 25.37 23.84 ( 6.04%)
len=16, pos=60, align=0: 12.01 13.23 (-10.21%)
len=76, pos=16, align=0: 26.22 23.82 ( 9.15%)
len=16, pos=72, align=0: 14.39 14.43 ( -0.26%)
len=88, pos=16, align=0: 30.36 21.42 ( 29.46%)
len=32, pos=0, align=0: 21.31 19.20 ( 9.91%)
len=32, pos=32, align=0: 18.85 19.31 ( -2.45%)
len=32, pos=32, align=0: 19.21 19.06 ( 0.75%)
len=32, pos=0, align=0: 21.17 19.21 ( 9.27%)
len=32, pos=32, align=0: 18.77 19.14 ( -1.95%)
len=32, pos=12, align=0: 21.23 21.32 ( -0.45%)
len=44, pos=32, align=0: 20.07 15.42 ( 23.17%)
len=32, pos=20, align=0: 21.18 19.43 ( 8.27%)
len=20, pos=12, align=0: 13.47 13.35 ( 0.89%)
len=20, pos=32, align=0: 12.87 11.92 ( 7.36%)
len=32, pos=24, align=0: 18.88 19.36 ( -2.54%)
len=56, pos=32, align=0: 27.22 16.79 ( 38.31%)
len=32, pos=8, align=0: 21.17 19.16 ( 9.47%)
len=8, pos=24, align=0: 12.00 9.60 ( 20.01%)
len=8, pos=32, align=0: 12.00 9.64 ( 19.70%)
len=32, pos=36, align=0: 18.80 19.04 ( -1.28%)
len=68, pos=32, align=0: 29.62 22.70 ( 23.36%)
len=32, pos=48, align=0: 18.90 19.38 ( -2.57%)
len=80, pos=32, align=0: 32.31 22.71 ( 29.72%)
len=32, pos=60, align=0: 18.83 19.05 ( -1.17%)
len=92, pos=32, align=0: 32.04 23.18 ( 27.65%)
len=32, pos=72, align=0: 21.46 19.01 ( 11.41%)
len=104, pos=32, align=0: 35.05 28.95 ( 17.40%)
len=64, pos=0, align=0: 25.82 24.23 ( 6.16%)
len=64, pos=64, align=0: 30.81 24.22 ( 21.38%)
len=64, pos=64, align=0: 30.81 24.80 ( 19.49%)
len=64, pos=0, align=0: 26.61 24.17 ( 9.18%)
len=64, pos=64, align=0: 30.86 24.14 ( 21.77%)
len=64, pos=12, align=0: 24.87 24.17 ( 2.80%)
len=76, pos=64, align=0: 29.65 22.92 ( 22.69%)
len=64, pos=52, align=0: 30.77 24.12 ( 21.62%)
len=52, pos=12, align=0: 23.23 19.18 ( 17.44%)
len=52, pos=64, align=0: 23.96 16.74 ( 30.17%)
len=64, pos=24, align=0: 23.99 23.73 ( 1.07%)
len=88, pos=64, align=0: 35.15 22.85 ( 34.98%)
len=64, pos=40, align=0: 28.70 22.72 ( 20.85%)
len=40, pos=24, align=0: 19.97 18.00 ( 9.85%)
len=40, pos=64, align=0: 19.94 15.41 ( 22.70%)
len=64, pos=36, align=0: 29.94 22.67 ( 24.28%)
len=100, pos=64, align=0: 39.25 30.52 ( 22.24%)
len=64, pos=28, align=0: 24.89 25.53 ( -2.54%)
len=28, pos=36, align=0: 14.00 11.86 ( 15.29%)
len=28, pos=64, align=0: 15.20 11.85 ( 22.07%)
len=64, pos=48, align=0: 30.82 23.88 ( 22.53%)
len=112, pos=64, align=0: 45.28 29.11 ( 35.72%)
len=64, pos=16, align=0: 27.73 23.12 ( 16.62%)
len=16, pos=48, align=0: 13.58 13.08 ( 3.63%)
len=16, pos=64, align=0: 15.00 13.24 ( 11.74%)
len=64, pos=60, align=0: 30.00 23.80 ( 20.67%)
len=124, pos=64, align=0: 42.19 28.53 ( 32.38%)
len=64, pos=4, align=0: 27.76 22.81 ( 17.86%)
len=4, pos=60, align=0: 9.65 9.64 ( 0.14%)
len=4, pos=64, align=0: 9.66 9.64 ( 0.20%)
len=64, pos=72, align=0: 31.20 23.80 ( 23.72%)
len=136, pos=64, align=0: 49.72 35.10 ( 29.41%)
len=128, pos=0, align=0: 47.43 31.47 ( 33.65%)
len=128, pos=128, align=0: 48.85 34.98 ( 28.41%)
len=128, pos=128, align=0: 50.27 33.92 ( 32.53%)
len=128, pos=0, align=0: 44.97 28.04 ( 37.66%)
len=128, pos=128, align=0: 50.26 33.93 ( 32.49%)
len=128, pos=12, align=0: 43.61 28.00 ( 35.79%)
len=140, pos=128, align=0: 47.89 33.04 ( 31.00%)
len=128, pos=116, align=0: 46.34 33.01 ( 28.77%)
len=116, pos=12, align=0: 39.05 26.36 ( 32.49%)
len=116, pos=128, align=0: 41.01 30.22 ( 26.31%)
len=128, pos=24, align=0: 36.21 29.02 ( 19.85%)
len=152, pos=128, align=0: 55.46 37.22 ( 32.90%)
len=128, pos=104, align=0: 43.90 35.12 ( 19.99%)
len=104, pos=24, align=0: 31.76 25.27 ( 20.43%)
len=104, pos=128, align=0: 37.59 26.44 ( 29.67%)
len=128, pos=36, align=0: 42.93 30.10 ( 29.90%)
len=164, pos=128, align=0: 57.40 41.57 ( 27.59%)
len=128, pos=92, align=0: 44.44 32.83 ( 26.12%)
len=92, pos=36, align=0: 32.01 23.12 ( 27.76%)
len=92, pos=128, align=0: 34.35 22.81 ( 33.60%)
len=128, pos=48, align=0: 44.28 32.42 ( 26.80%)
len=176, pos=128, align=0: 57.91 43.16 ( 25.47%)
len=128, pos=80, align=0: 45.79 35.30 ( 22.91%)
len=80, pos=48, align=0: 33.68 22.73 ( 32.51%)
len=80, pos=128, align=0: 32.77 23.97 ( 26.85%)
len=128, pos=60, align=0: 42.37 33.41 ( 21.15%)
len=188, pos=128, align=0: 57.96 43.16 ( 25.54%)
len=128, pos=68, align=0: 45.65 32.72 ( 28.33%)
len=68, pos=60, align=0: 29.61 25.06 ( 15.38%)
len=68, pos=128, align=0: 29.41 21.01 ( 28.56%)
len=128, pos=72, align=0: 43.41 32.77 ( 24.51%)
len=200, pos=128, align=0: 60.69 44.79 ( 26.20%)
len=128, pos=56, align=0: 41.64 33.78 ( 18.88%)
len=56, pos=72, align=0: 24.96 16.76 ( 32.83%)
len=56, pos=128, align=0: 27.53 16.70 ( 39.34%)
len=256, pos=0, align=0: 65.67 39.56 ( 39.76%)
len=256, pos=256, align=0: 70.61 47.28 ( 33.04%)
len=256, pos=256, align=0: 67.84 46.96 ( 30.77%)
len=256, pos=0, align=0: 65.50 39.87 ( 39.13%)
len=256, pos=256, align=0: 71.33 47.48 ( 33.43%)
len=256, pos=12, align=0: 66.95 39.88 ( 40.43%)
len=268, pos=256, align=0: 71.47 47.41 ( 33.66%)
len=256, pos=244, align=0: 73.61 51.90 ( 29.49%)
len=244, pos=12, align=0: 64.29 37.51 ( 41.65%)
len=244, pos=256, align=0: 66.41 46.10 ( 30.59%)
len=256, pos=24, align=0: 62.28 38.68 ( 37.89%)
len=280, pos=256, align=0: 77.09 49.82 ( 35.37%)
len=256, pos=232, align=0: 69.96 50.82 ( 27.35%)
len=232, pos=24, align=0: 56.74 35.85 ( 36.82%)
len=232, pos=256, align=0: 63.10 44.82 ( 28.97%)
len=256, pos=36, align=0: 67.30 41.02 ( 39.06%)
len=292, pos=256, align=0: 78.21 55.41 ( 29.15%)
len=256, pos=220, align=0: 70.22 50.24 ( 28.45%)
len=220, pos=36, align=0: 57.86 35.10 ( 39.33%)
len=220, pos=256, align=0: 59.25 39.11 ( 33.98%)
len=256, pos=48, align=0: 69.95 41.03 ( 41.35%)
len=304, pos=256, align=0: 83.11 57.07 ( 31.33%)
len=256, pos=208, align=0: 73.39 51.86 ( 29.34%)
len=208, pos=48, align=0: 58.40 36.26 ( 37.91%)
len=208, pos=256, align=0: 60.71 39.80 ( 34.45%)
len=256, pos=60, align=0: 67.15 42.17 ( 37.20%)
len=316, pos=256, align=0: 82.23 57.11 ( 30.55%)
len=256, pos=196, align=0: 71.72 51.20 ( 28.61%)
len=196, pos=60, align=0: 56.02 35.88 ( 35.96%)
len=196, pos=256, align=0: 56.30 37.09 ( 34.12%)
len=256, pos=72, align=0: 66.82 46.62 ( 30.23%)
len=328, pos=256, align=0: 85.35 57.95 ( 32.11%)
len=256, pos=184, align=0: 70.90 52.67 ( 25.70%)
len=184, pos=72, align=0: 53.86 35.22 ( 34.61%)
len=184, pos=256, align=0: 54.27 35.31 ( 34.93%)
len=512, pos=0, align=0: 116.29 68.78 ( 40.85%)
len=512, pos=512, align=0: 120.81 76.41 ( 36.75%)
len=512, pos=512, align=0: 123.49 75.91 ( 38.53%)
len=512, pos=0, align=0: 116.13 68.66 ( 40.87%)
len=512, pos=512, align=0: 121.24 75.96 ( 37.35%)
len=512, pos=12, align=0: 120.57 68.56 ( 43.14%)
len=524, pos=512, align=0: 122.91 75.79 ( 38.34%)
len=512, pos=500, align=0: 125.24 79.41 ( 36.59%)
len=500, pos=12, align=0: 116.36 66.50 ( 42.85%)
len=500, pos=512, align=0: 119.11 74.74 ( 37.25%)
len=512, pos=24, align=0: 115.31 67.40 ( 41.55%)
len=536, pos=512, align=0: 126.31 78.29 ( 38.02%)
len=512, pos=488, align=0: 124.40 77.11 ( 38.02%)
len=488, pos=24, align=0: 105.80 63.82 ( 39.68%)
len=488, pos=512, align=0: 116.08 72.35 ( 37.67%)
len=512, pos=36, align=0: 119.86 68.70 ( 42.68%)
len=548, pos=512, align=0: 129.38 83.22 ( 35.68%)
len=512, pos=476, align=0: 122.19 77.16 ( 36.86%)
len=476, pos=36, align=0: 109.81 63.90 ( 41.81%)
len=476, pos=512, align=0: 115.47 71.13 ( 38.40%)
len=512, pos=48, align=0: 121.56 67.50 ( 44.47%)
len=560, pos=512, align=0: 136.12 85.47 ( 37.21%)
len=512, pos=464, align=0: 123.85 76.70 ( 38.07%)
len=464, pos=48, align=0: 109.27 62.78 ( 42.54%)
len=464, pos=512, align=0: 114.63 71.12 ( 37.96%)
len=512, pos=60, align=0: 120.25 67.59 ( 43.79%)
len=572, pos=512, align=0: 136.53 85.44 ( 37.42%)
len=512, pos=452, align=0: 123.34 77.09 ( 37.50%)
len=452, pos=60, align=0: 104.68 60.29 ( 42.41%)
len=452, pos=512, align=0: 108.07 68.74 ( 36.40%)
len=512, pos=72, align=0: 119.38 71.18 ( 40.37%)
len=584, pos=512, align=0: 136.28 86.69 ( 36.39%)
len=512, pos=440, align=0: 120.39 77.15 ( 35.92%)
len=440, pos=72, align=0: 101.08 62.73 ( 37.94%)
len=440, pos=512, align=0: 105.16 67.49 ( 35.82%)
len=256, pos=64, align=1: 70.55 44.34 ( 37.15%)
len=256, pos=64, align=1: 70.56 48.22 ( 31.67%)
len=256, pos=64, align=15: 68.41 48.16 ( 29.60%)
len=256, pos=64, align=15: 68.38 45.10 ( 34.05%)
len=256, pos=64, align=2: 70.49 44.98 ( 36.18%)
len=256, pos=64, align=2: 72.00 44.34 ( 38.41%)
len=256, pos=64, align=30: 66.39 43.30 ( 34.78%)
len=256, pos=64, align=30: 68.02 43.60 ( 35.90%)
len=256, pos=64, align=3: 70.79 46.68 ( 34.07%)
len=256, pos=64, align=3: 71.04 46.03 ( 35.21%)
len=256, pos=64, align=45: 69.32 45.08 ( 34.97%)
len=256, pos=64, align=45: 69.94 44.31 ( 36.65%)
len=256, pos=64, align=4: 70.47 44.25 ( 37.20%)
len=256, pos=64, align=4: 69.83 44.34 ( 36.50%)
len=256, pos=64, align=60: 71.78 43.98 ( 38.73%)
len=256, pos=64, align=60: 70.25 44.12 ( 37.20%)
len=256, pos=64, align=5: 71.74 46.51 ( 35.16%)
len=256, pos=64, align=5: 73.11 46.08 ( 36.97%)
len=256, pos=64, align=75: 70.42 46.80 ( 33.54%)
len=256, pos=64, align=75: 71.55 46.80 ( 34.59%)
len=256, pos=64, align=6: 69.75 44.25 ( 36.55%)
len=256, pos=64, align=6: 72.06 45.85 ( 36.37%)
len=256, pos=64, align=90: 68.88 43.53 ( 36.80%)
len=256, pos=64, align=90: 69.31 43.62 ( 37.07%)
len=256, pos=64, align=7: 71.45 44.75 ( 37.37%)
len=256, pos=64, align=7: 71.65 44.39 ( 38.06%)
len=256, pos=64, align=105: 69.32 44.38 ( 35.97%)
len=256, pos=64, align=105: 67.76 45.81 ( 32.40%)
len=1, pos=0, align=0: 7.21 9.60 (-33.18%)
len=1, pos=0, align=0: 7.20 9.60 (-33.31%)
len=2, pos=1, align=0: 7.20 8.40 (-16.67%)
len=2, pos=1, align=0: 7.20 8.40 (-16.67%)
len=3, pos=2, align=0: 7.20 8.40 (-16.67%)
len=3, pos=2, align=0: 7.20 8.40 (-16.67%)
len=4, pos=3, align=0: 7.20 8.40 (-16.67%)
len=4, pos=3, align=0: 7.20 8.40 (-16.67%)
len=5, pos=4, align=0: 7.20 8.72 (-21.07%)
len=5, pos=4, align=0: 7.20 8.40 (-16.66%)
len=6, pos=5, align=0: 7.20 9.60 (-33.27%)
len=6, pos=5, align=0: 7.20 8.40 (-16.67%)
len=7, pos=6, align=0: 7.20 8.40 (-16.67%)
len=7, pos=6, align=0: 7.20 8.40 (-16.66%)
len=8, pos=7, align=0: 12.01 9.47 ( 21.17%)
len=8, pos=7, align=0: 12.00 8.40 ( 29.98%)
len=9, pos=8, align=0: 10.81 8.40 ( 22.23%)
len=9, pos=8, align=0: 10.80 8.40 ( 22.20%)
len=10, pos=9, align=0: 10.80 9.60 ( 11.12%)
len=10, pos=9, align=0: 10.81 9.60 ( 11.15%)
len=11, pos=10, align=0: 11.16 9.60 ( 13.97%)
len=11, pos=10, align=0: 11.12 8.40 ( 24.45%)
len=12, pos=11, align=0: 11.12 8.40 ( 24.41%)
len=12, pos=11, align=0: 11.12 8.40 ( 24.43%)
len=13, pos=12, align=0: 12.04 9.54 ( 20.79%)
len=13, pos=12, align=0: 11.95 9.51 ( 20.38%)
len=14, pos=13, align=0: 11.67 9.52 ( 18.43%)
len=14, pos=13, align=0: 10.80 8.40 ( 22.19%)
len=15, pos=14, align=0: 10.81 8.40 ( 22.22%)
len=15, pos=14, align=0: 10.81 8.40 ( 22.22%)
len=16, pos=15, align=0: 12.61 13.24 ( -4.99%)
len=16, pos=15, align=0: 13.19 13.08 ( 0.78%)
len=17, pos=16, align=0: 12.85 11.88 ( 7.52%)
len=17, pos=16, align=0: 12.00 10.80 ( 9.98%)
len=18, pos=17, align=0: 13.15 11.89 ( 9.62%)
len=18, pos=17, align=0: 12.85 11.82 ( 7.99%)
len=19, pos=18, align=0: 12.00 10.80 ( 9.98%)
len=19, pos=18, align=0: 13.15 12.03 ( 8.47%)
len=20, pos=19, align=0: 12.01 10.80 ( 10.01%)
len=20, pos=19, align=0: 13.12 11.85 ( 9.69%)
len=21, pos=20, align=0: 12.84 11.82 ( 7.98%)
len=21, pos=20, align=0: 13.11 11.87 ( 9.45%)
len=22, pos=21, align=0: 12.80 11.81 ( 7.74%)
len=22, pos=21, align=0: 13.09 11.90 ( 9.03%)
len=23, pos=22, align=0: 12.01 10.80 ( 10.00%)
len=23, pos=22, align=0: 12.86 11.89 ( 7.56%)
len=24, pos=23, align=0: 15.58 11.87 ( 23.85%)
len=24, pos=23, align=0: 15.29 11.94 ( 21.89%)
len=25, pos=24, align=0: 14.06 11.93 ( 15.14%)
len=25, pos=24, align=0: 14.26 11.91 ( 16.53%)
len=26, pos=25, align=0: 14.10 12.27 ( 12.96%)
len=26, pos=25, align=0: 14.31 11.79 ( 17.59%)
len=27, pos=26, align=0: 14.08 11.89 ( 15.54%)
len=27, pos=26, align=0: 14.04 11.88 ( 15.39%)
len=28, pos=27, align=0: 14.44 11.87 ( 17.78%)
len=28, pos=27, align=0: 14.30 11.89 ( 16.80%)
len=29, pos=28, align=0: 14.08 12.23 ( 13.18%)
len=29, pos=28, align=0: 14.09 12.11 ( 14.04%)
len=30, pos=29, align=0: 13.98 11.79 ( 15.68%)
len=30, pos=29, align=0: 14.00 11.81 ( 15.66%)
len=31, pos=30, align=0: 14.04 11.94 ( 15.00%)
len=31, pos=30, align=0: 13.97 11.84 ( 15.27%)
len=32, pos=31, align=0: 21.20 19.15 ( 9.66%)
len=32, pos=31, align=0: 21.46 19.09 ( 11.07%)
len=4, pos=18446744073709551604, align=0: 9.63 11.16 (-15.90%)
len=20, pos=4, align=0: 14.12 13.11 ( 7.18%)
len=36, pos=20, align=0: 22.98 19.11 ( 16.83%)
len=52, pos=36, align=0: 27.75 17.27 ( 37.76%)
len=68, pos=52, align=0: 33.13 24.67 ( 25.53%)
len=84, pos=68, align=0: 35.63 22.86 ( 35.83%)
len=4, pos=0, align=0: 7.21 9.52 (-32.06%)
len=4, pos=4, align=0: 7.20 8.40 (-16.70%)
len=4, pos=4, align=0: 7.20 9.60 (-33.34%)
len=4, pos=0, align=0: 7.20 8.40 (-16.66%)
len=4, pos=4, align=0: 7.20 9.60 (-33.26%)
len=4, pos=12, align=0: 7.20 8.40 (-16.70%)
len=16, pos=4, align=0: 14.44 13.60 ( 5.85%)
len=4, pos=24, align=0: 7.23 9.60 (-32.88%)
len=28, pos=4, align=0: 16.15 13.23 ( 18.04%)
len=4, pos=36, align=0: 7.21 9.92 (-37.58%)
len=40, pos=4, align=0: 23.36 18.33 ( 21.53%)
len=4, pos=48, align=0: 7.23 9.60 (-32.86%)
len=52, pos=4, align=0: 27.28 19.59 ( 28.18%)
len=4, pos=60, align=0: 7.23 9.63 (-33.22%)
len=64, pos=4, align=0: 29.95 23.87 ( 20.29%)
len=4, pos=72, align=0: 9.99 9.64 ( 3.46%)
len=76, pos=4, align=0: 26.41 26.38 ( 0.13%)
len=8, pos=0, align=0: 12.34 8.43 ( 31.65%)
len=8, pos=8, align=0: 12.00 8.43 ( 29.75%)
len=8, pos=8, align=0: 12.00 8.43 ( 29.75%)
len=8, pos=0, align=0: 12.01 8.43 ( 29.76%)
len=8, pos=8, align=0: 12.01 8.43 ( 29.79%)
len=8, pos=12, align=0: 12.00 9.60 ( 19.99%)
len=20, pos=8, align=0: 13.50 13.07 ( 3.18%)
len=8, pos=24, align=0: 12.01 8.40 ( 30.03%)
len=32, pos=8, align=0: 21.28 19.09 ( 10.27%)
len=8, pos=36, align=0: 12.01 8.43 ( 29.79%)
len=44, pos=8, align=0: 21.35 19.13 ( 10.40%)
len=8, pos=48, align=0: 12.01 8.43 ( 29.78%)
len=56, pos=8, align=0: 24.23 18.01 ( 25.69%)
len=8, pos=60, align=0: 12.00 8.43 ( 29.76%)
len=68, pos=8, align=0: 24.97 23.86 ( 4.43%)
len=8, pos=72, align=0: 12.01 8.43 ( 29.76%)
len=80, pos=8, align=0: 29.49 22.74 ( 22.89%)
len=16, pos=0, align=0: 14.00 14.41 ( -2.93%)
len=16, pos=16, align=0: 15.03 13.23 ( 11.95%)
len=16, pos=16, align=0: 12.01 13.23 (-10.22%)
len=16, pos=0, align=0: 13.20 13.55 ( -2.63%)
len=16, pos=16, align=0: 14.48 13.13 ( 9.28%)
len=16, pos=12, align=0: 12.60 13.23 ( -5.01%)
len=28, pos=16, align=0: 15.18 12.00 ( 20.91%)
len=16, pos=4, align=0: 13.20 13.23 ( -0.24%)
len=4, pos=12, align=0: 7.23 9.63 (-33.09%)
len=4, pos=16, align=0: 7.21 9.63 (-33.56%)
len=16, pos=24, align=0: 13.10 13.43 ( -2.55%)
len=40, pos=16, align=0: 22.36 18.45 ( 17.45%)
len=16, pos=36, align=0: 13.39 13.14 ( 1.85%)
len=52, pos=16, align=0: 24.73 16.81 ( 32.03%)
len=16, pos=48, align=0: 12.90 13.39 ( -3.81%)
len=64, pos=16, align=0: 25.69 25.74 ( -0.19%)
len=16, pos=60, align=0: 13.27 13.12 ( 1.11%)
len=76, pos=16, align=0: 24.89 24.68 ( 0.83%)
len=16, pos=72, align=0: 12.60 13.23 ( -5.00%)
len=88, pos=16, align=0: 29.30 24.18 ( 17.47%)
len=32, pos=0, align=0: 22.28 18.01 ( 19.20%)
len=32, pos=32, align=0: 18.75 19.13 ( -2.03%)
len=32, pos=32, align=0: 18.83 19.04 ( -1.12%)
len=32, pos=0, align=0: 21.16 19.10 ( 9.73%)
len=32, pos=32, align=0: 20.01 18.00 ( 10.01%)
len=32, pos=12, align=0: 20.41 19.16 ( 6.09%)
len=44, pos=32, align=0: 20.01 15.54 ( 22.37%)
len=32, pos=20, align=0: 21.28 19.10 ( 10.22%)
len=20, pos=12, align=0: 12.81 13.01 ( -1.56%)
len=20, pos=32, align=0: 12.77 11.79 ( 7.73%)
len=32, pos=24, align=0: 18.00 20.40 (-13.33%)
len=56, pos=32, align=0: 27.59 17.34 ( 37.13%)
len=32, pos=8, align=0: 22.50 18.00 ( 19.98%)
len=8, pos=24, align=0: 12.00 9.62 ( 19.83%)
len=8, pos=32, align=0: 12.32 9.62 ( 21.89%)
len=32, pos=36, align=0: 20.05 18.00 ( 10.22%)
len=68, pos=32, align=0: 30.69 21.61 ( 29.56%)
len=32, pos=48, align=0: 18.80 19.12 ( -1.67%)
len=80, pos=32, align=0: 31.94 23.11 ( 27.64%)
len=32, pos=60, align=0: 19.15 19.12 ( 0.14%)
len=92, pos=32, align=0: 33.10 21.63 ( 34.64%)
len=32, pos=72, align=0: 20.14 18.00 ( 10.59%)
len=104, pos=32, align=0: 38.36 28.76 ( 25.04%)
len=64, pos=0, align=0: 27.75 22.81 ( 17.82%)
len=64, pos=64, align=0: 30.70 23.41 ( 23.75%)
len=64, pos=64, align=0: 31.01 24.00 ( 22.60%)
len=64, pos=0, align=0: 27.87 25.21 ( 9.55%)
len=64, pos=64, align=0: 30.70 24.00 ( 21.82%)
len=64, pos=12, align=0: 27.81 22.80 ( 18.00%)
len=76, pos=64, align=0: 29.65 22.72 ( 23.38%)
len=64, pos=52, align=0: 30.88 23.88 ( 22.66%)
len=52, pos=12, align=0: 23.56 19.49 ( 17.28%)
len=52, pos=64, align=0: 25.22 15.61 ( 38.11%)
len=64, pos=24, align=0: 25.13 25.21 ( -0.31%)
len=88, pos=64, align=0: 35.26 23.93 ( 32.14%)
len=64, pos=40, align=0: 29.11 21.93 ( 24.66%)
len=40, pos=24, align=0: 18.91 19.42 ( -2.68%)
len=40, pos=64, align=0: 20.38 15.63 ( 23.31%)
len=64, pos=36, align=0: 30.41 24.11 ( 20.73%)
len=100, pos=64, align=0: 42.06 27.61 ( 34.34%)
len=64, pos=28, align=0: 24.67 24.01 ( 2.70%)
len=28, pos=36, align=0: 14.08 11.88 ( 15.60%)
len=28, pos=64, align=0: 14.04 11.84 ( 15.71%)
len=64, pos=48, align=0: 31.36 23.90 ( 23.79%)
len=112, pos=64, align=0: 46.73 28.28 ( 39.48%)
len=64, pos=16, align=0: 28.18 25.20 ( 10.57%)
len=16, pos=48, align=0: 12.01 13.56 (-12.91%)
len=16, pos=64, align=0: 13.32 14.25 ( -6.92%)
len=64, pos=60, align=0: 30.74 22.81 ( 25.78%)
len=124, pos=64, align=0: 46.64 28.58 ( 38.73%)
len=64, pos=4, align=0: 27.55 23.16 ( 15.91%)
len=4, pos=60, align=0: 7.23 9.63 (-33.17%)
len=4, pos=64, align=0: 9.95 9.64 ( 3.10%)
len=64, pos=72, align=0: 30.75 24.00 ( 21.94%)
len=136, pos=64, align=0: 50.22 31.22 ( 37.84%)
len=128, pos=0, align=0: 47.43 27.68 ( 41.64%)
len=128, pos=128, align=0: 57.69 36.02 ( 37.57%)
len=128, pos=128, align=0: 58.52 33.40 ( 42.92%)
len=128, pos=0, align=0: 48.28 27.69 ( 42.65%)
len=128, pos=128, align=0: 54.24 35.75 ( 34.09%)
len=128, pos=12, align=0: 42.41 29.05 ( 31.51%)
len=140, pos=128, align=0: 51.92 32.37 ( 37.66%)
len=128, pos=116, align=0: 53.29 34.22 ( 35.78%)
len=116, pos=12, align=0: 38.03 25.36 ( 33.32%)
len=116, pos=128, align=0: 46.45 28.80 ( 37.99%)
len=128, pos=24, align=0: 38.77 28.91 ( 25.43%)
len=152, pos=128, align=0: 58.76 34.76 ( 40.84%)
len=128, pos=104, align=0: 49.39 37.16 ( 24.76%)
len=104, pos=24, align=0: 31.29 26.57 ( 15.06%)
len=104, pos=128, align=0: 42.40 25.81 ( 39.12%)
len=128, pos=36, align=0: 41.46 31.24 ( 24.66%)
len=164, pos=128, align=0: 62.61 41.42 ( 33.84%)
len=128, pos=92, align=0: 45.95 33.88 ( 26.27%)
len=92, pos=36, align=0: 33.12 21.65 ( 34.63%)
len=92, pos=128, align=0: 35.75 21.77 ( 39.09%)
len=128, pos=48, align=0: 43.98 32.41 ( 26.30%)
len=176, pos=128, align=0: 64.30 41.51 ( 35.45%)
len=128, pos=80, align=0: 47.88 33.71 ( 29.59%)
len=80, pos=48, align=0: 34.28 21.93 ( 36.03%)
len=80, pos=128, align=0: 35.63 21.68 ( 39.15%)
len=128, pos=60, align=0: 40.60 32.82 ( 19.17%)
len=188, pos=128, align=0: 64.64 40.44 ( 37.43%)
len=128, pos=68, align=0: 46.45 33.62 ( 27.61%)
len=68, pos=60, align=0: 30.35 24.01 ( 20.90%)
len=68, pos=128, align=0: 28.92 21.36 ( 26.14%)
len=128, pos=72, align=0: 44.71 33.22 ( 25.70%)
len=200, pos=128, align=0: 65.29 43.89 ( 32.78%)
len=128, pos=56, align=0: 42.88 33.74 ( 21.32%)
len=56, pos=72, align=0: 25.61 15.61 ( 39.04%)
len=56, pos=128, align=0: 23.95 17.04 ( 28.86%)
len=256, pos=0, align=0: 66.86 39.49 ( 40.94%)
len=256, pos=256, align=0: 95.65 58.77 ( 38.56%)
len=256, pos=256, align=0: 95.90 58.80 ( 38.69%)
len=256, pos=0, align=0: 66.40 41.67 ( 37.24%)
len=256, pos=256, align=0: 94.73 58.84 ( 37.89%)
len=256, pos=12, align=0: 66.36 39.85 ( 39.95%)
len=268, pos=256, align=0: 95.65 58.53 ( 38.81%)
len=256, pos=244, align=0: 94.93 58.66 ( 38.20%)
len=244, pos=12, align=0: 63.60 37.77 ( 40.61%)
len=244, pos=256, align=0: 88.76 54.77 ( 38.30%)
len=256, pos=24, align=0: 62.97 39.85 ( 36.72%)
len=280, pos=256, align=0: 101.09 60.91 ( 39.75%)
len=256, pos=232, align=0: 90.51 59.69 ( 34.05%)
len=232, pos=24, align=0: 56.38 36.00 ( 36.15%)
len=232, pos=256, align=0: 85.37 52.32 ( 38.71%)
len=256, pos=36, align=0: 67.20 41.13 ( 38.80%)
len=292, pos=256, align=0: 103.25 65.68 ( 36.39%)
len=256, pos=220, align=0: 88.99 55.11 ( 38.07%)
len=220, pos=36, align=0: 57.31 35.08 ( 38.79%)
len=220, pos=256, align=0: 77.13 47.99 ( 37.78%)
len=256, pos=48, align=0: 68.89 40.78 ( 40.80%)
len=304, pos=256, align=0: 105.82 67.35 ( 36.36%)
len=256, pos=208, align=0: 90.27 55.18 ( 38.88%)
len=208, pos=48, align=0: 59.33 36.19 ( 39.00%)
len=208, pos=256, align=0: 79.14 48.66 ( 38.51%)
len=256, pos=60, align=0: 67.98 41.92 ( 38.33%)
len=316, pos=256, align=0: 105.04 67.35 ( 35.88%)
len=256, pos=196, align=0: 87.88 55.82 ( 36.48%)
len=196, pos=60, align=0: 56.37 34.81 ( 38.24%)
len=196, pos=256, align=0: 74.46 44.66 ( 40.03%)
len=256, pos=72, align=0: 68.62 44.54 ( 35.10%)
len=328, pos=256, align=0: 109.21 68.51 ( 37.26%)
len=256, pos=184, align=0: 83.87 54.23 ( 35.34%)
len=184, pos=72, align=0: 53.25 34.79 ( 34.66%)
len=184, pos=256, align=0: 67.32 42.34 ( 37.11%)
len=512, pos=0, align=0: 116.65 68.77 ( 41.04%)
len=512, pos=512, align=0: 148.06 121.68 ( 17.82%)
len=512, pos=512, align=0: 147.84 121.94 ( 17.51%)
len=512, pos=0, align=0: 117.30 68.72 ( 41.42%)
len=512, pos=512, align=0: 148.44 121.80 ( 17.94%)
len=512, pos=12, align=0: 113.23 68.74 ( 39.29%)
len=524, pos=512, align=0: 147.07 120.55 ( 18.04%)
len=512, pos=500, align=0: 147.20 110.27 ( 25.09%)
len=500, pos=12, align=0: 117.82 66.62 ( 43.45%)
len=500, pos=512, align=0: 145.28 116.74 ( 19.65%)
len=512, pos=24, align=0: 109.94 67.33 ( 38.76%)
len=536, pos=512, align=0: 153.21 123.94 ( 19.11%)
len=512, pos=488, align=0: 144.38 115.80 ( 19.80%)
len=488, pos=24, align=0: 107.71 114.44 ( -6.26%)
len=488, pos=512, align=0: 138.99 114.08 ( 17.92%)
len=512, pos=36, align=0: 118.15 68.68 ( 41.87%)
len=548, pos=512, align=0: 199.51 129.03 ( 35.33%)
len=512, pos=476, align=0: 143.53 109.78 ( 23.51%)
len=476, pos=36, align=0: 110.78 63.93 ( 42.29%)
len=476, pos=512, align=0: 135.07 108.99 ( 19.31%)
len=512, pos=48, align=0: 120.49 67.42 ( 44.05%)
len=560, pos=512, align=0: 159.17 131.10 ( 17.63%)
len=512, pos=464, align=0: 147.11 109.51 ( 25.56%)
len=464, pos=48, align=0: 112.46 62.81 ( 44.15%)
len=464, pos=512, align=0: 133.64 108.91 ( 18.51%)
len=512, pos=60, align=0: 117.40 67.46 ( 42.54%)
len=572, pos=512, align=0: 158.12 130.74 ( 17.32%)
len=512, pos=452, align=0: 145.90 111.72 ( 23.43%)
len=452, pos=60, align=0: 104.52 60.36 ( 42.25%)
len=452, pos=512, align=0: 129.43 106.82 ( 17.47%)
len=512, pos=72, align=0: 120.18 71.24 ( 40.72%)
len=584, pos=512, align=0: 161.39 131.16 ( 18.73%)
len=512, pos=440, align=0: 145.32 105.83 ( 27.17%)
len=440, pos=72, align=0: 100.75 62.50 ( 37.96%)
len=440, pos=512, align=0: 127.66 101.78 ( 20.27%)
len=256, pos=64, align=1: 71.68 45.16 ( 37.00%)
len=256, pos=64, align=1: 70.87 44.82 ( 36.76%)
len=256, pos=64, align=15: 68.80 44.37 ( 35.51%)
len=256, pos=64, align=15: 68.42 44.27 ( 35.30%)
len=256, pos=64, align=2: 72.33 44.26 ( 38.80%)
len=256, pos=64, align=2: 72.59 47.57 ( 34.47%)
len=256, pos=64, align=30: 69.09 45.17 ( 34.63%)
len=256, pos=64, align=30: 68.07 43.68 ( 35.83%)
len=256, pos=64, align=3: 70.87 44.74 ( 36.87%)
len=256, pos=64, align=3: 72.20 44.26 ( 38.69%)
len=256, pos=64, align=45: 70.25 46.80 ( 33.37%)
len=256, pos=64, align=45: 70.80 44.27 ( 37.47%)
len=256, pos=64, align=4: 72.88 44.70 ( 38.66%)
len=256, pos=64, align=4: 72.65 45.43 ( 37.48%)
len=256, pos=64, align=60: 69.59 42.79 ( 38.51%)
len=256, pos=64, align=60: 67.89 43.84 ( 35.44%)
len=256, pos=64, align=5: 72.82 46.80 ( 35.73%)
len=256, pos=64, align=5: 73.02 44.31 ( 39.32%)
len=256, pos=64, align=75: 69.14 44.79 ( 35.21%)
len=256, pos=64, align=75: 69.76 44.67 ( 35.96%)
len=256, pos=64, align=6: 72.85 44.62 ( 38.75%)
len=256, pos=64, align=6: 72.85 47.11 ( 35.33%)
len=256, pos=64, align=90: 66.61 43.61 ( 34.52%)
len=256, pos=64, align=90: 70.76 43.28 ( 38.83%)
len=256, pos=64, align=7: 73.49 46.80 ( 36.32%)
len=256, pos=64, align=7: 73.23 44.59 ( 39.12%)
len=256, pos=64, align=105: 68.22 47.27 ( 30.71%)
len=256, pos=64, align=105: 68.42 46.48 ( 32.06%)
len=1, pos=0, align=0: 7.21 8.41 (-16.61%)
len=1, pos=0, align=0: 7.52 8.41 (-11.73%)
len=2, pos=1, align=0: 7.20 8.40 (-16.66%)
len=2, pos=1, align=0: 7.20 8.87 (-23.17%)
len=3, pos=2, align=0: 7.20 8.40 (-16.67%)
len=3, pos=2, align=0: 7.20 8.73 (-21.24%)
len=4, pos=3, align=0: 7.20 8.40 (-16.67%)
len=4, pos=3, align=0: 7.52 8.41 (-11.81%)
len=5, pos=4, align=0: 7.20 8.41 (-16.67%)
len=5, pos=4, align=0: 7.20 9.60 (-33.31%)
len=6, pos=5, align=0: 7.20 8.40 (-16.66%)
len=6, pos=5, align=0: 7.20 8.40 (-16.67%)
len=7, pos=6, align=0: 7.20 8.40 (-16.61%)
len=7, pos=6, align=0: 7.20 8.40 (-16.66%)
len=8, pos=7, align=0: 12.01 8.40 ( 30.01%)
len=8, pos=7, align=0: 12.00 8.40 ( 29.97%)
len=9, pos=8, align=0: 10.80 8.40 ( 22.22%)
len=9, pos=8, align=0: 11.13 9.60 ( 13.72%)
len=10, pos=9, align=0: 11.12 8.40 ( 24.42%)
len=10, pos=9, align=0: 10.81 8.76 ( 18.91%)
len=11, pos=10, align=0: 10.80 8.40 ( 22.19%)
len=11, pos=10, align=0: 10.80 8.40 ( 22.19%)
len=12, pos=11, align=0: 10.80 9.60 ( 11.12%)
len=12, pos=11, align=0: 10.81 8.40 ( 22.25%)
len=13, pos=12, align=0: 10.81 9.60 ( 11.15%)
len=13, pos=12, align=0: 12.04 9.44 ( 21.61%)
len=14, pos=13, align=0: 11.62 9.82 ( 15.56%)
len=14, pos=13, align=0: 11.94 9.54 ( 20.13%)
len=15, pos=14, align=0: 11.65 9.53 ( 18.21%)
len=15, pos=14, align=0: 10.81 8.40 ( 22.22%)
len=16, pos=15, align=0: 12.01 13.24 (-10.26%)
len=16, pos=15, align=0: 12.60 13.55 ( -7.48%)
len=17, pos=16, align=0: 13.15 11.90 ( 9.50%)
len=17, pos=16, align=0: 12.00 10.81 ( 9.98%)
len=18, pos=17, align=0: 12.01 10.80 ( 10.03%)
len=18, pos=17, align=0: 13.22 11.89 ( 10.00%)
len=19, pos=18, align=0: 12.83 12.16 ( 5.21%)
len=19, pos=18, align=0: 13.93 11.16 ( 19.88%)
len=20, pos=19, align=0: 13.66 10.80 ( 20.88%)
len=20, pos=19, align=0: 12.00 10.80 ( 10.00%)
len=21, pos=20, align=0: 12.87 11.92 ( 7.38%)
len=21, pos=20, align=0: 12.00 10.80 ( 9.99%)
len=22, pos=21, align=0: 12.86 11.93 ( 7.23%)
len=22, pos=21, align=0: 12.01 10.80 ( 10.03%)
len=23, pos=22, align=0: 12.01 11.86 ( 1.22%)
len=23, pos=22, align=0: 12.86 12.16 ( 5.47%)
len=24, pos=23, align=0: 16.02 10.80 ( 32.58%)
len=24, pos=23, align=0: 15.31 11.86 ( 22.53%)
len=25, pos=24, align=0: 14.36 11.79 ( 17.89%)
len=25, pos=24, align=0: 13.97 11.86 ( 15.11%)
len=26, pos=25, align=0: 14.05 11.92 ( 15.13%)
len=26, pos=25, align=0: 14.03 11.90 ( 15.15%)
len=27, pos=26, align=0: 14.37 11.87 ( 17.39%)
len=27, pos=26, align=0: 14.03 12.15 ( 13.44%)
len=28, pos=27, align=0: 15.17 10.80 ( 28.78%)
len=28, pos=27, align=0: 14.08 11.79 ( 16.31%)
len=29, pos=28, align=0: 14.12 11.91 ( 15.64%)
len=29, pos=28, align=0: 14.05 11.90 ( 15.29%)
len=30, pos=29, align=0: 14.05 11.84 ( 15.69%)
len=30, pos=29, align=0: 14.05 12.01 ( 14.52%)
len=31, pos=30, align=0: 14.08 11.99 ( 14.83%)
len=31, pos=30, align=0: 14.08 11.87 ( 15.74%)
len=32, pos=31, align=0: 21.22 19.14 ( 9.80%)
len=32, pos=31, align=0: 21.12 19.31 ( 8.58%)
len=4, pos=18446744073709551604, align=0: 9.61 10.81 (-12.47%)
len=20, pos=4, align=0: 15.62 13.24 ( 15.22%)
len=36, pos=20, align=0: 23.45 18.00 ( 23.21%)
len=52, pos=36, align=0: 29.61 17.09 ( 42.27%)
len=68, pos=52, align=0: 34.78 22.81 ( 34.39%)
len=84, pos=68, align=0: 35.99 21.61 ( 39.95%)
len=4, pos=0, align=0: 7.23 9.61 (-32.84%)
len=4, pos=4, align=0: 7.23 9.60 (-32.87%)
len=4, pos=4, align=0: 7.23 8.40 (-16.28%)
len=4, pos=0, align=0: 7.23 8.76 (-21.24%)
len=4, pos=4, align=0: 7.23 8.40 (-16.23%)
len=4, pos=12, align=0: 7.54 8.40 (-11.50%)
len=16, pos=4, align=0: 14.05 14.26 ( -1.48%)
len=4, pos=24, align=0: 7.21 8.72 (-21.04%)
len=28, pos=4, align=0: 14.41 13.23 ( 8.16%)
len=4, pos=36, align=0: 7.23 8.40 (-16.27%)
len=40, pos=4, align=0: 22.47 19.15 ( 14.79%)
len=4, pos=48, align=0: 7.23 8.73 (-20.72%)
len=52, pos=4, align=0: 28.44 18.01 ( 36.68%)
len=4, pos=60, align=0: 7.23 8.43 (-16.64%)
len=64, pos=4, align=0: 30.58 25.52 ( 16.54%)
len=4, pos=72, align=0: 7.23 8.43 (-16.70%)
len=76, pos=4, align=0: 25.75 23.89 ( 7.21%)
len=8, pos=0, align=0: 12.01 8.41 ( 29.99%)
len=8, pos=8, align=0: 12.32 9.60 ( 22.08%)
len=8, pos=8, align=0: 12.00 8.72 ( 27.30%)
len=8, pos=0, align=0: 12.01 8.40 ( 30.00%)
len=8, pos=8, align=0: 12.00 8.40 ( 29.97%)
len=8, pos=12, align=0: 12.00 8.40 ( 29.97%)
len=20, pos=8, align=0: 14.31 14.41 ( -0.69%)
len=8, pos=24, align=0: 12.36 8.41 ( 32.00%)
len=32, pos=8, align=0: 22.37 18.01 ( 19.51%)
len=8, pos=36, align=0: 12.32 8.41 ( 31.78%)
len=44, pos=8, align=0: 22.06 18.33 ( 16.91%)
len=8, pos=48, align=0: 12.00 8.41 ( 29.96%)
len=56, pos=8, align=0: 24.31 20.41 ( 16.03%)
len=8, pos=60, align=0: 12.36 8.43 ( 31.81%)
len=68, pos=8, align=0: 25.58 22.81 ( 10.85%)
len=8, pos=72, align=0: 12.32 8.43 ( 31.59%)
len=80, pos=8, align=0: 30.81 22.69 ( 26.35%)
len=16, pos=0, align=0: 13.20 13.23 ( -0.23%)
len=16, pos=16, align=0: 12.60 13.23 ( -4.99%)
len=16, pos=16, align=0: 13.24 13.13 ( 0.83%)
len=16, pos=0, align=0: 14.88 13.23 ( 11.06%)
len=16, pos=16, align=0: 12.01 13.23 (-10.20%)
len=16, pos=12, align=0: 12.95 13.82 ( -6.71%)
len=28, pos=16, align=0: 16.17 10.81 ( 33.18%)
len=16, pos=4, align=0: 14.46 13.01 ( 10.02%)
len=4, pos=12, align=0: 7.21 8.40 (-16.65%)
len=4, pos=16, align=0: 7.20 9.60 (-33.31%)
len=16, pos=24, align=0: 12.01 13.23 (-10.21%)
len=40, pos=16, align=0: 21.28 19.01 ( 10.65%)
len=16, pos=36, align=0: 12.01 13.23 (-10.21%)
len=52, pos=16, align=0: 22.78 18.16 ( 20.27%)
len=16, pos=48, align=0: 14.34 13.23 ( 7.71%)
len=64, pos=16, align=0: 25.32 23.79 ( 6.06%)
len=16, pos=60, align=0: 12.01 13.23 (-10.20%)
len=76, pos=16, align=0: 24.85 23.79 ( 4.25%)
len=16, pos=72, align=0: 12.01 13.23 (-10.21%)
len=88, pos=16, align=0: 29.86 23.74 ( 20.48%)
len=32, pos=0, align=0: 22.11 18.00 ( 18.59%)
len=32, pos=32, align=0: 18.94 19.38 ( -2.32%)
len=32, pos=32, align=0: 20.23 18.00 ( 11.00%)
len=32, pos=0, align=0: 21.27 19.04 ( 10.46%)
len=32, pos=32, align=0: 18.85 19.12 ( -1.41%)
len=32, pos=12, align=0: 21.26 19.45 ( 8.49%)
len=44, pos=32, align=0: 19.97 15.53 ( 22.24%)
len=32, pos=20, align=0: 21.23 19.43 ( 8.48%)
len=20, pos=12, align=0: 13.48 13.08 ( 2.96%)
len=20, pos=32, align=0: 13.21 11.80 ( 10.71%)
len=32, pos=24, align=0: 18.85 19.13 ( -1.50%)
len=56, pos=32, align=0: 27.14 17.09 ( 37.02%)
len=32, pos=8, align=0: 21.62 19.07 ( 11.83%)
len=8, pos=24, align=0: 12.01 8.80 ( 26.69%)
len=8, pos=32, align=0: 12.00 9.60 ( 20.00%)
len=32, pos=36, align=0: 18.01 19.35 ( -7.47%)
len=68, pos=32, align=0: 30.03 24.83 ( 17.30%)
len=32, pos=48, align=0: 18.86 19.00 ( -0.74%)
len=80, pos=32, align=0: 31.97 22.84 ( 28.56%)
len=32, pos=60, align=0: 18.84 19.31 ( -2.50%)
len=92, pos=32, align=0: 33.14 21.64 ( 34.70%)
len=32, pos=72, align=0: 19.91 18.01 ( 9.55%)
len=104, pos=32, align=0: 37.48 28.73 ( 23.34%)
len=64, pos=0, align=0: 27.77 22.81 ( 17.86%)
len=64, pos=64, align=0: 30.79 22.81 ( 25.91%)
len=64, pos=64, align=0: 30.85 24.00 ( 22.20%)
len=64, pos=0, align=0: 27.80 22.81 ( 17.96%)
len=64, pos=64, align=0: 30.76 22.83 ( 25.78%)
len=64, pos=12, align=0: 26.39 25.20 ( 4.51%)
len=76, pos=64, align=0: 30.84 21.61 ( 29.94%)
len=64, pos=52, align=0: 32.00 24.01 ( 24.98%)
len=52, pos=12, align=0: 24.69 18.01 ( 27.02%)
len=52, pos=64, align=0: 23.65 17.37 ( 26.57%)
len=64, pos=24, align=0: 24.09 24.87 ( -3.25%)
len=88, pos=64, align=0: 35.71 21.68 ( 39.29%)
len=64, pos=40, align=0: 29.43 21.61 ( 26.57%)
len=40, pos=24, align=0: 18.85 19.13 ( -1.51%)
len=40, pos=64, align=0: 19.99 15.49 ( 22.55%)
len=64, pos=36, align=0: 29.55 22.70 ( 23.17%)
len=100, pos=64, align=0: 41.20 28.73 ( 30.27%)
len=64, pos=28, align=0: 25.10 22.80 ( 9.15%)
len=28, pos=36, align=0: 13.61 11.92 ( 12.44%)
len=28, pos=64, align=0: 14.34 11.92 ( 16.85%)
len=64, pos=48, align=0: 31.56 23.14 ( 26.68%)
len=112, pos=64, align=0: 46.38 28.51 ( 38.52%)
len=64, pos=16, align=0: 26.45 22.80 ( 13.80%)
len=16, pos=48, align=0: 12.01 13.24 (-10.19%)
len=16, pos=64, align=0: 12.60 12.00 ( 4.76%)
len=64, pos=60, align=0: 29.60 23.79 ( 19.64%)
len=124, pos=64, align=0: 45.87 28.74 ( 37.33%)
len=64, pos=4, align=0: 27.78 22.80 ( 17.91%)
len=4, pos=60, align=0: 7.52 9.63 (-28.03%)
len=4, pos=64, align=0: 7.20 9.62 (-33.60%)
len=64, pos=72, align=0: 30.47 24.00 ( 21.22%)
len=136, pos=64, align=0: 48.55 33.84 ( 30.30%)
len=128, pos=0, align=0: 46.73 28.01 ( 40.06%)
len=128, pos=128, align=0: 55.95 34.50 ( 38.35%)
len=128, pos=128, align=0: 55.78 34.21 ( 38.67%)
len=128, pos=0, align=0: 46.45 28.80 ( 37.99%)
len=128, pos=128, align=0: 55.79 36.25 ( 35.02%)
len=128, pos=12, align=0: 43.12 28.83 ( 33.15%)
len=140, pos=128, align=0: 50.71 32.78 ( 35.37%)
len=128, pos=116, align=0: 53.09 34.41 ( 35.19%)
len=116, pos=12, align=0: 37.29 25.19 ( 32.46%)
len=116, pos=128, align=0: 46.31 28.70 ( 38.03%)
len=128, pos=24, align=0: 39.53 28.72 ( 27.35%)
len=152, pos=128, align=0: 60.00 35.02 ( 41.63%)
len=128, pos=104, align=0: 49.75 36.81 ( 26.01%)
len=104, pos=24, align=0: 32.28 25.27 ( 21.71%)
len=104, pos=128, align=0: 42.78 25.81 ( 39.67%)
len=128, pos=36, align=0: 41.30 31.25 ( 24.35%)
len=164, pos=128, align=0: 62.72 40.07 ( 36.10%)
len=128, pos=92, align=0: 47.24 35.04 ( 25.84%)
len=92, pos=36, align=0: 32.05 23.02 ( 28.19%)
len=92, pos=128, align=0: 34.89 22.86 ( 34.48%)
len=128, pos=48, align=0: 42.60 33.34 ( 21.72%)
len=176, pos=128, align=0: 63.26 41.86 ( 33.83%)
len=128, pos=80, align=0: 48.24 33.22 ( 31.13%)
len=80, pos=48, align=0: 33.70 22.76 ( 32.45%)
len=80, pos=128, align=0: 35.45 22.81 ( 35.65%)
len=128, pos=60, align=0: 42.59 33.41 ( 21.56%)
len=188, pos=128, align=0: 63.30 41.80 ( 33.97%)
len=128, pos=68, align=0: 45.38 33.18 ( 26.88%)
len=68, pos=60, align=0: 29.93 23.79 ( 20.50%)
len=68, pos=128, align=0: 30.73 21.44 ( 30.25%)
len=128, pos=72, align=0: 43.85 32.32 ( 26.28%)
len=200, pos=128, align=0: 66.70 44.23 ( 33.68%)
len=128, pos=56, align=0: 42.74 33.49 ( 21.65%)
len=56, pos=72, align=0: 23.91 16.62 ( 30.49%)
len=56, pos=128, align=0: 23.49 16.86 ( 28.22%)
len=256, pos=0, align=0: 66.14 39.90 ( 39.67%)
len=256, pos=256, align=0: 93.58 58.72 ( 37.25%)
len=256, pos=256, align=0: 93.91 58.63 ( 37.57%)
len=256, pos=0, align=0: 65.54 39.59 ( 39.60%)
len=256, pos=256, align=0: 93.88 58.45 ( 37.74%)
len=256, pos=12, align=0: 66.88 39.62 ( 40.76%)
len=268, pos=256, align=0: 94.26 58.41 ( 38.04%)
len=256, pos=244, align=0: 95.14 58.54 ( 38.47%)
len=244, pos=12, align=0: 65.99 37.84 ( 42.66%)
len=244, pos=256, align=0: 88.68 54.86 ( 38.13%)
len=256, pos=24, align=0: 62.32 38.71 ( 37.89%)
len=280, pos=256, align=0: 100.99 60.74 ( 39.86%)
len=256, pos=232, align=0: 91.32 59.64 ( 34.69%)
len=232, pos=24, align=0: 55.98 35.86 ( 35.94%)
len=232, pos=256, align=0: 84.26 52.24 ( 38.00%)
len=256, pos=36, align=0: 68.08 41.04 ( 39.72%)
len=292, pos=256, align=0: 103.21 65.60 ( 36.44%)
len=256, pos=220, align=0: 90.05 54.36 ( 39.63%)
len=220, pos=36, align=0: 58.69 33.97 ( 42.12%)
len=220, pos=256, align=0: 79.59 47.03 ( 40.91%)
len=256, pos=48, align=0: 68.67 40.95 ( 40.38%)
len=304, pos=256, align=0: 105.81 67.41 ( 36.29%)
len=256, pos=208, align=0: 91.21 55.82 ( 38.80%)
len=208, pos=48, align=0: 59.20 36.28 ( 38.72%)
len=208, pos=256, align=0: 78.29 48.67 ( 37.84%)
len=256, pos=60, align=0: 67.05 40.77 ( 39.20%)
len=316, pos=256, align=0: 106.12 67.40 ( 36.49%)
len=256, pos=196, align=0: 86.77 55.90 ( 35.58%)
len=196, pos=60, align=0: 56.21 36.63 ( 34.83%)
len=196, pos=256, align=0: 73.16 45.18 ( 38.24%)
len=256, pos=72, align=0: 67.65 44.32 ( 34.49%)
len=328, pos=256, align=0: 109.45 68.49 ( 37.42%)
len=256, pos=184, align=0: 84.01 53.58 ( 36.22%)
len=184, pos=72, align=0: 54.13 35.46 ( 34.49%)
len=184, pos=256, align=0: 67.21 42.36 ( 36.97%)
len=512, pos=0, align=0: 115.85 68.59 ( 40.79%)
len=512, pos=512, align=0: 180.79 110.05 ( 39.13%)
len=512, pos=512, align=0: 180.70 110.01 ( 39.12%)
len=512, pos=0, align=0: 116.20 69.47 ( 40.22%)
len=512, pos=512, align=0: 180.53 110.28 ( 38.91%)
len=512, pos=12, align=0: 121.00 68.68 ( 43.24%)
len=524, pos=512, align=0: 182.37 109.47 ( 39.97%)
len=512, pos=500, align=0: 180.79 110.28 ( 39.00%)
len=500, pos=12, align=0: 114.71 66.62 ( 41.92%)
len=500, pos=512, align=0: 175.38 105.91 ( 39.61%)
len=512, pos=24, align=0: 111.99 67.39 ( 39.82%)
len=536, pos=512, align=0: 186.83 111.96 ( 40.07%)
len=512, pos=488, align=0: 178.12 110.47 ( 37.98%)
len=488, pos=24, align=0: 107.57 63.47 ( 41.00%)
len=488, pos=512, align=0: 169.92 103.12 ( 39.31%)
len=512, pos=36, align=0: 118.69 68.75 ( 42.07%)
len=548, pos=512, align=0: 190.21 117.03 ( 38.47%)
len=512, pos=476, align=0: 175.72 106.62 ( 39.33%)
len=476, pos=36, align=0: 111.34 63.78 ( 42.71%)
len=476, pos=512, align=0: 165.67 99.46 ( 39.97%)
len=512, pos=48, align=0: 120.52 67.50 ( 43.99%)
len=560, pos=512, align=0: 191.99 119.19 ( 37.92%)
len=512, pos=464, align=0: 176.69 106.73 ( 39.60%)
len=464, pos=48, align=0: 111.88 62.28 ( 44.33%)
len=464, pos=512, align=0: 166.24 100.10 ( 39.78%)
len=512, pos=60, align=0: 116.91 67.48 ( 42.28%)
len=572, pos=512, align=0: 193.07 119.02 ( 38.35%)
len=512, pos=452, align=0: 174.75 106.82 ( 38.87%)
len=452, pos=60, align=0: 104.87 60.02 ( 42.77%)
len=452, pos=512, align=0: 160.25 96.17 ( 39.99%)
len=512, pos=72, align=0: 120.28 71.16 ( 40.84%)
len=584, pos=512, align=0: 196.24 119.88 ( 38.91%)
len=512, pos=440, align=0: 170.27 102.28 ( 39.93%)
len=440, pos=72, align=0: 101.48 62.65 ( 38.26%)
len=440, pos=512, align=0: 153.98 92.91 ( 39.66%)
len=256, pos=64, align=1: 74.14 47.91 ( 35.39%)
len=256, pos=64, align=1: 74.26 44.38 ( 40.24%)
len=256, pos=64, align=15: 69.46 44.39 ( 36.09%)
len=256, pos=64, align=15: 69.59 47.79 ( 31.33%)
len=256, pos=64, align=2: 71.69 47.19 ( 34.17%)
len=256, pos=64, align=2: 72.10 46.60 ( 35.36%)
len=256, pos=64, align=30: 67.40 43.74 ( 35.10%)
len=256, pos=64, align=30: 67.29 43.35 ( 35.57%)
len=256, pos=64, align=3: 70.56 44.34 ( 37.17%)
len=256, pos=64, align=3: 69.69 44.39 ( 36.31%)
len=256, pos=64, align=45: 69.37 47.51 ( 31.52%)
len=256, pos=64, align=45: 69.86 45.37 ( 35.05%)
len=256, pos=64, align=4: 71.22 46.09 ( 35.28%)
len=256, pos=64, align=4: 72.12 45.12 ( 37.44%)
len=256, pos=64, align=60: 68.33 43.54 ( 36.29%)
len=256, pos=64, align=60: 70.34 43.61 ( 38.00%)
len=256, pos=64, align=5: 70.39 45.85 ( 34.86%)
len=256, pos=64, align=5: 72.15 45.69 ( 36.68%)
len=256, pos=64, align=75: 71.51 46.74 ( 34.63%)
len=256, pos=64, align=75: 70.68 45.94 ( 35.01%)
len=256, pos=64, align=6: 70.62 45.27 ( 35.90%)
len=256, pos=64, align=6: 71.44 44.39 ( 37.86%)
len=256, pos=64, align=90: 68.54 43.28 ( 36.86%)
len=256, pos=64, align=90: 70.16 43.29 ( 38.30%)
len=256, pos=64, align=7: 71.82 47.64 ( 33.67%)
len=256, pos=64, align=7: 71.74 46.98 ( 34.51%)
len=256, pos=64, align=105: 69.80 46.15 ( 33.89%)
len=256, pos=64, align=105: 70.38 47.12 ( 33.04%)
len=1, pos=0, align=0: 7.21 8.41 (-16.60%)
len=1, pos=0, align=0: 7.20 8.40 (-16.66%)
len=2, pos=1, align=0: 7.20 8.40 (-16.67%)
len=2, pos=1, align=0: 7.20 8.40 (-16.67%)
len=3, pos=2, align=0: 7.20 8.40 (-16.66%)
len=3, pos=2, align=0: 7.20 8.40 (-16.67%)
len=4, pos=3, align=0: 7.20 8.40 (-16.67%)
len=4, pos=3, align=0: 7.20 8.40 (-16.66%)
len=5, pos=4, align=0: 7.20 8.40 (-16.67%)
len=5, pos=4, align=0: 7.20 8.73 (-21.19%)
len=6, pos=5, align=0: 7.20 8.40 (-16.66%)
len=6, pos=5, align=0: 7.20 8.40 (-16.70%)
len=7, pos=6, align=0: 7.20 8.77 (-21.73%)
len=7, pos=6, align=0: 7.20 8.40 (-16.67%)
len=8, pos=7, align=0: 12.01 9.60 ( 20.07%)
len=8, pos=7, align=0: 12.00 9.60 ( 20.01%)
len=9, pos=8, align=0: 11.20 8.40 ( 24.93%)
len=9, pos=8, align=0: 10.81 8.73 ( 19.18%)
len=10, pos=9, align=0: 10.81 8.40 ( 22.22%)
len=10, pos=9, align=0: 10.81 8.40 ( 22.25%)
len=11, pos=10, align=0: 10.81 8.40 ( 22.25%)
len=11, pos=10, align=0: 10.81 8.40 ( 22.25%)
len=12, pos=11, align=0: 10.81 8.40 ( 22.25%)
len=12, pos=11, align=0: 10.81 8.40 ( 22.25%)
len=13, pos=12, align=0: 10.81 8.40 ( 22.25%)
len=13, pos=12, align=0: 10.81 8.40 ( 22.25%)
len=14, pos=13, align=0: 10.81 8.40 ( 22.22%)
len=14, pos=13, align=0: 10.81 8.40 ( 22.25%)
len=15, pos=14, align=0: 11.67 9.51 ( 18.51%)
len=15, pos=14, align=0: 12.00 8.41 ( 29.96%)
len=16, pos=15, align=0: 14.31 13.24 ( 7.47%)
len=16, pos=15, align=0: 12.60 13.23 ( -5.01%)
len=17, pos=16, align=0: 12.01 10.80 ( 10.03%)
len=17, pos=16, align=0: 13.23 11.91 ( 10.04%)
len=18, pos=17, align=0: 12.00 10.80 ( 9.99%)
len=18, pos=17, align=0: 12.01 10.80 ( 10.01%)
len=19, pos=18, align=0: 13.02 11.85 ( 8.93%)
len=19, pos=18, align=0: 12.01 10.80 ( 10.01%)
len=20, pos=19, align=0: 13.28 11.79 ( 11.28%)
len=20, pos=19, align=0: 12.88 11.88 ( 7.78%)
len=21, pos=20, align=0: 12.89 11.97 ( 7.13%)
len=21, pos=20, align=0: 12.89 11.91 ( 7.61%)
len=22, pos=21, align=0: 13.16 11.90 ( 9.58%)
len=22, pos=21, align=0: 12.86 11.86 ( 7.76%)
len=23, pos=22, align=0: 12.89 11.93 ( 7.49%)
len=23, pos=22, align=0: 12.01 10.80 ( 10.01%)
len=24, pos=23, align=0: 16.43 10.80 ( 34.26%)
len=24, pos=23, align=0: 15.56 11.90 ( 23.55%)
len=25, pos=24, align=0: 14.57 11.17 ( 23.29%)
len=25, pos=24, align=0: 14.06 11.87 ( 15.59%)
len=26, pos=25, align=0: 14.04 11.90 ( 15.29%)
len=26, pos=25, align=0: 14.30 11.83 ( 17.22%)
len=27, pos=26, align=0: 15.05 11.16 ( 25.81%)
len=27, pos=26, align=0: 14.10 11.87 ( 15.79%)
len=28, pos=27, align=0: 14.07 11.87 ( 15.69%)
len=28, pos=27, align=0: 13.99 11.86 ( 15.21%)
len=29, pos=28, align=0: 14.06 11.89 ( 15.42%)
len=29, pos=28, align=0: 14.06 11.91 ( 15.29%)
len=30, pos=29, align=0: 14.17 11.85 ( 16.40%)
len=30, pos=29, align=0: 14.10 11.91 ( 15.55%)
len=31, pos=30, align=0: 14.00 11.80 ( 15.77%)
len=31, pos=30, align=0: 14.08 11.93 ( 15.31%)
len=32, pos=31, align=0: 21.13 19.07 ( 9.74%)
len=32, pos=31, align=0: 21.25 19.00 ( 10.59%)
len=4, pos=18446744073709551604, align=0: 9.61 10.81 (-12.49%)
len=20, pos=4, align=0: 14.07 13.20 ( 6.15%)
len=36, pos=20, align=0: 22.59 19.07 ( 15.60%)
len=52, pos=36, align=0: 29.65 16.74 ( 43.53%)
len=68, pos=52, align=0: 33.76 25.12 ( 25.58%)
len=84, pos=68, align=0: 35.34 22.83 ( 35.38%)
len=4, pos=0, align=0: 7.21 8.43 (-17.02%)
len=4, pos=4, align=0: 7.20 9.63 (-33.62%)
len=4, pos=4, align=0: 7.20 9.63 (-33.64%)
len=4, pos=0, align=0: 7.20 9.62 (-33.64%)
len=4, pos=4, align=0: 7.20 9.63 (-33.64%)
len=4, pos=12, align=0: 7.20 8.74 (-21.35%)
len=16, pos=4, align=0: 14.57 13.05 ( 10.46%)
len=4, pos=24, align=0: 7.23 8.41 (-16.32%)
len=28, pos=4, align=0: 15.31 13.02 ( 14.93%)
len=4, pos=36, align=0: 7.23 8.41 (-16.30%)
len=40, pos=4, align=0: 22.82 19.03 ( 16.62%)
len=4, pos=48, align=0: 7.23 8.43 (-16.65%)
len=52, pos=4, align=0: 29.40 18.01 ( 38.74%)
len=4, pos=60, align=0: 7.23 8.43 (-16.65%)
len=64, pos=4, align=0: 30.39 25.21 ( 17.04%)
len=4, pos=72, align=0: 7.23 8.43 (-16.59%)
len=76, pos=4, align=0: 27.00 23.89 ( 11.50%)
len=8, pos=0, align=0: 12.32 8.43 ( 31.58%)
len=8, pos=8, align=0: 12.00 8.74 ( 27.14%)
len=8, pos=8, align=0: 12.01 8.43 ( 29.76%)
len=8, pos=0, align=0: 12.01 8.43 ( 29.78%)
len=8, pos=8, align=0: 12.01 8.43 ( 29.79%)
len=8, pos=12, align=0: 12.32 9.63 ( 21.86%)
len=20, pos=8, align=0: 13.50 13.09 ( 3.05%)
len=8, pos=24, align=0: 12.01 9.63 ( 19.82%)
len=32, pos=8, align=0: 22.20 18.36 ( 17.29%)
len=8, pos=36, align=0: 12.00 9.94 ( 17.22%)
len=44, pos=8, align=0: 21.97 18.01 ( 18.04%)
len=8, pos=48, align=0: 12.00 9.63 ( 19.80%)
len=56, pos=8, align=0: 23.17 19.49 ( 15.87%)
len=8, pos=60, align=0: 12.00 9.61 ( 19.94%)
len=68, pos=8, align=0: 24.92 25.72 ( -3.20%)
len=8, pos=72, align=0: 12.01 9.95 ( 17.11%)
len=80, pos=8, align=0: 30.21 25.14 ( 16.77%)
len=16, pos=0, align=0: 13.21 12.01 ( 9.08%)
len=16, pos=16, align=0: 12.60 12.00 ( 4.77%)
len=16, pos=16, align=0: 13.49 14.26 ( -5.77%)
len=16, pos=0, align=0: 14.01 14.26 ( -1.82%)
len=16, pos=16, align=0: 12.01 13.23 (-10.22%)
len=16, pos=12, align=0: 12.00 13.23 (-10.27%)
len=28, pos=16, align=0: 15.41 11.95 ( 22.43%)
len=16, pos=4, align=0: 14.20 14.58 ( -2.71%)
len=4, pos=12, align=0: 7.23 9.63 (-33.25%)
len=4, pos=16, align=0: 7.23 9.63 (-33.23%)
len=16, pos=24, align=0: 12.85 14.20 (-10.56%)
len=40, pos=16, align=0: 21.15 19.05 ( 9.93%)
len=16, pos=36, align=0: 12.01 13.23 (-10.20%)
len=52, pos=16, align=0: 23.11 18.25 ( 21.05%)
len=16, pos=48, align=0: 12.92 13.04 ( -0.95%)
len=64, pos=16, align=0: 25.68 23.81 ( 7.28%)
len=16, pos=60, align=0: 12.60 13.24 ( -5.03%)
len=76, pos=16, align=0: 24.84 23.81 ( 4.18%)
len=16, pos=72, align=0: 12.01 13.23 (-10.23%)
len=88, pos=16, align=0: 30.52 21.47 ( 29.67%)
len=32, pos=0, align=0: 22.00 21.61 ( 1.81%)
len=32, pos=32, align=0: 18.85 19.46 ( -3.24%)
len=32, pos=32, align=0: 20.28 18.01 ( 11.20%)
len=32, pos=0, align=0: 22.09 18.00 ( 18.51%)
len=32, pos=32, align=0: 18.87 19.12 ( -1.36%)
len=32, pos=12, align=0: 21.29 19.47 ( 8.55%)
len=44, pos=32, align=0: 20.01 15.52 ( 22.44%)
len=32, pos=20, align=0: 21.31 19.45 ( 8.72%)
len=20, pos=12, align=0: 14.69 13.55 ( 7.73%)
len=20, pos=32, align=0: 12.86 11.90 ( 7.48%)
len=32, pos=24, align=0: 18.90 19.39 ( -2.62%)
len=56, pos=32, align=0: 28.13 15.61 ( 44.52%)
len=32, pos=8, align=0: 21.22 19.10 ( 10.00%)
len=8, pos=24, align=0: 12.01 9.62 ( 19.86%)
len=8, pos=32, align=0: 12.00 9.62 ( 19.81%)
len=32, pos=36, align=0: 18.76 19.00 ( -1.27%)
len=68, pos=32, align=0: 29.52 23.98 ( 18.75%)
len=32, pos=48, align=0: 19.14 19.14 ( 0.02%)
len=80, pos=32, align=0: 33.45 21.64 ( 35.31%)
len=32, pos=60, align=0: 18.76 19.04 ( -1.52%)
len=92, pos=32, align=0: 31.20 23.09 ( 26.02%)
len=32, pos=72, align=0: 19.12 19.02 ( 0.54%)
len=104, pos=32, align=0: 37.72 29.05 ( 22.98%)
len=64, pos=0, align=0: 27.66 24.20 ( 12.54%)
len=64, pos=64, align=0: 29.54 24.23 ( 17.97%)
len=64, pos=64, align=0: 29.59 25.03 ( 15.41%)
len=64, pos=0, align=0: 26.53 24.14 ( 9.00%)
len=64, pos=64, align=0: 29.66 25.04 ( 15.56%)
len=64, pos=12, align=0: 24.78 24.18 ( 2.41%)
len=76, pos=64, align=0: 29.64 22.88 ( 22.83%)
len=64, pos=52, align=0: 30.86 25.36 ( 17.84%)
len=52, pos=12, align=0: 23.62 19.14 ( 18.95%)
len=52, pos=64, align=0: 23.95 16.76 ( 30.05%)
len=64, pos=24, align=0: 24.04 23.77 ( 1.13%)
len=88, pos=64, align=0: 35.50 22.80 ( 35.78%)
len=64, pos=40, align=0: 28.71 23.90 ( 16.76%)
len=40, pos=24, align=0: 18.89 19.04 ( -0.81%)
len=40, pos=64, align=0: 20.02 15.55 ( 22.32%)
len=64, pos=36, align=0: 29.84 22.75 ( 23.74%)
len=100, pos=64, align=0: 40.69 30.54 ( 24.96%)
len=64, pos=28, align=0: 23.99 26.21 ( -9.22%)
len=28, pos=36, align=0: 15.22 11.14 ( 26.81%)
len=28, pos=64, align=0: 14.07 11.80 ( 16.13%)
len=64, pos=48, align=0: 30.85 23.81 ( 22.84%)
len=112, pos=64, align=0: 45.76 29.16 ( 36.28%)
len=64, pos=16, align=0: 27.00 24.10 ( 10.77%)
len=16, pos=48, align=0: 12.86 14.26 (-10.90%)
len=16, pos=64, align=0: 12.60 13.23 ( -5.00%)
len=64, pos=60, align=0: 29.67 23.83 ( 19.71%)
len=124, pos=64, align=0: 45.84 28.77 ( 37.24%)
len=64, pos=4, align=0: 27.80 25.21 ( 9.34%)
len=4, pos=60, align=0: 7.23 8.73 (-20.84%)
len=4, pos=64, align=0: 7.23 8.41 (-16.33%)
len=64, pos=72, align=0: 29.93 23.91 ( 20.11%)
len=136, pos=64, align=0: 49.21 32.84 ( 33.27%)
len=128, pos=0, align=0: 44.77 27.69 ( 38.16%)
len=128, pos=128, align=0: 58.53 37.46 ( 35.99%)
len=128, pos=128, align=0: 57.28 34.45 ( 39.86%)
len=128, pos=0, align=0: 42.55 29.03 ( 31.76%)
len=128, pos=128, align=0: 56.40 34.25 ( 39.27%)
len=128, pos=12, align=0: 42.59 28.89 ( 32.17%)
len=140, pos=128, align=0: 51.94 32.64 ( 37.16%)
len=128, pos=116, align=0: 53.33 34.53 ( 35.25%)
len=116, pos=12, align=0: 37.52 25.04 ( 33.26%)
len=116, pos=128, align=0: 46.38 28.80 ( 37.90%)
len=128, pos=24, align=0: 41.16 28.71 ( 30.24%)
len=152, pos=128, align=0: 58.81 35.15 ( 40.23%)
len=128, pos=104, align=0: 49.40 35.33 ( 28.48%)
len=104, pos=24, align=0: 31.28 26.29 ( 15.95%)
len=104, pos=128, align=0: 41.36 27.88 ( 32.61%)
len=128, pos=36, align=0: 41.39 31.42 ( 24.07%)
len=164, pos=128, align=0: 62.38 42.06 ( 32.57%)
len=128, pos=92, align=0: 47.10 32.73 ( 30.52%)
len=92, pos=36, align=0: 32.13 22.74 ( 29.22%)
len=92, pos=128, align=0: 34.62 22.90 ( 33.85%)
len=128, pos=48, align=0: 42.58 33.73 ( 20.79%)
len=176, pos=128, align=0: 63.51 41.98 ( 33.90%)
len=128, pos=80, align=0: 47.35 34.11 ( 27.98%)
len=80, pos=48, align=0: 33.79 22.65 ( 32.97%)
len=80, pos=128, align=0: 34.75 22.74 ( 34.56%)
len=128, pos=60, align=0: 41.57 33.35 ( 19.78%)
len=188, pos=128, align=0: 62.73 41.68 ( 33.56%)
len=128, pos=68, align=0: 45.70 32.39 ( 29.12%)
len=68, pos=60, align=0: 29.59 24.22 ( 18.14%)
len=68, pos=128, align=0: 30.09 21.43 ( 28.80%)
len=128, pos=72, align=0: 43.76 34.22 ( 21.81%)
len=200, pos=128, align=0: 65.89 45.00 ( 31.70%)
len=128, pos=56, align=0: 41.33 33.74 ( 18.36%)
len=56, pos=72, align=0: 25.65 16.63 ( 35.15%)
len=56, pos=128, align=0: 24.05 16.85 ( 29.96%)
len=256, pos=0, align=0: 66.30 39.53 ( 40.37%)
len=256, pos=256, align=0: 92.98 58.80 ( 36.75%)
len=256, pos=256, align=0: 93.77 58.70 ( 37.40%)
len=256, pos=0, align=0: 66.18 39.85 ( 39.79%)
len=256, pos=256, align=0: 93.81 58.82 ( 37.29%)
len=256, pos=12, align=0: 73.08 39.59 ( 45.83%)
len=268, pos=256, align=0: 94.69 58.23 ( 38.51%)
len=256, pos=244, align=0: 94.29 58.43 ( 38.03%)
len=244, pos=12, align=0: 66.03 37.65 ( 42.98%)
len=244, pos=256, align=0: 88.71 54.87 ( 38.15%)
len=256, pos=24, align=0: 63.01 38.61 ( 38.73%)
len=280, pos=256, align=0: 100.43 60.61 ( 39.65%)
len=256, pos=232, align=0: 91.22 59.62 ( 34.64%)
len=232, pos=24, align=0: 56.83 35.96 ( 36.73%)
len=232, pos=256, align=0: 85.40 52.30 ( 38.76%)
len=256, pos=36, align=0: 67.04 41.68 ( 37.82%)
len=292, pos=256, align=0: 103.11 72.10 ( 30.07%)
len=256, pos=220, align=0: 88.69 55.46 ( 37.47%)
len=220, pos=36, align=0: 56.99 35.10 ( 38.40%)
len=220, pos=256, align=0: 77.99 48.15 ( 38.26%)
len=256, pos=48, align=0: 68.74 40.76 ( 40.70%)
len=304, pos=256, align=0: 104.91 67.35 ( 35.80%)
len=256, pos=208, align=0: 90.01 55.51 ( 38.34%)
len=208, pos=48, align=0: 59.35 36.30 ( 38.83%)
len=208, pos=256, align=0: 78.12 48.62 ( 37.77%)
len=256, pos=60, align=0: 67.06 40.74 ( 39.24%)
len=316, pos=256, align=0: 106.12 67.35 ( 36.54%)
len=256, pos=196, align=0: 87.55 55.83 ( 36.23%)
len=196, pos=60, align=0: 55.54 36.42 ( 34.42%)
len=196, pos=256, align=0: 73.09 45.69 ( 37.49%)
len=256, pos=72, align=0: 68.60 44.30 ( 35.42%)
len=328, pos=256, align=0: 110.65 68.64 ( 37.97%)
len=256, pos=184, align=0: 84.00 53.07 ( 36.82%)
len=184, pos=72, align=0: 54.81 35.20 ( 35.77%)
len=184, pos=256, align=0: 67.24 42.42 ( 36.91%)
len=512, pos=0, align=0: 116.59 68.70 ( 41.07%)
len=512, pos=512, align=0: 180.91 109.96 ( 39.22%)
len=512, pos=512, align=0: 180.99 109.99 ( 39.23%)
len=512, pos=0, align=0: 116.78 68.59 ( 41.26%)
len=512, pos=512, align=0: 179.67 110.35 ( 38.58%)
len=512, pos=12, align=0: 121.78 68.71 ( 43.58%)
len=524, pos=512, align=0: 181.53 109.86 ( 39.48%)
len=512, pos=500, align=0: 182.18 110.30 ( 39.46%)
len=500, pos=12, align=0: 117.79 66.70 ( 43.37%)
len=500, pos=512, align=0: 176.70 105.78 ( 40.14%)
len=512, pos=24, align=0: 113.98 67.64 ( 40.66%)
len=536, pos=512, align=0: 186.56 112.21 ( 39.85%)
len=512, pos=488, align=0: 179.11 110.32 ( 38.41%)
len=488, pos=24, align=0: 108.11 63.80 ( 40.99%)
len=488, pos=512, align=0: 171.80 103.11 ( 39.98%)
len=512, pos=36, align=0: 119.27 68.76 ( 42.35%)
len=548, pos=512, align=0: 190.22 117.22 ( 38.38%)
len=512, pos=476, align=0: 177.09 105.39 ( 40.49%)
len=476, pos=36, align=0: 108.46 63.95 ( 41.04%)
len=476, pos=512, align=0: 164.99 99.77 ( 39.53%)
len=512, pos=48, align=0: 120.43 67.45 ( 43.99%)
len=560, pos=512, align=0: 192.24 119.70 ( 37.74%)
len=512, pos=464, align=0: 176.08 106.85 ( 39.32%)
len=464, pos=48, align=0: 110.44 62.59 ( 43.32%)
len=464, pos=512, align=0: 167.49 99.68 ( 40.49%)
len=512, pos=60, align=0: 117.56 67.81 ( 42.32%)
len=572, pos=512, align=0: 192.66 119.08 ( 38.19%)
len=512, pos=452, align=0: 174.32 106.83 ( 38.71%)
len=452, pos=60, align=0: 107.50 60.29 ( 43.92%)
len=452, pos=512, align=0: 159.98 96.78 ( 39.51%)
len=512, pos=72, align=0: 119.48 71.11 ( 40.49%)
len=584, pos=512, align=0: 196.59 120.08 ( 38.92%)
len=512, pos=440, align=0: 169.90 102.48 ( 39.68%)
len=440, pos=72, align=0: 100.85 62.64 ( 37.89%)
len=440, pos=512, align=0: 154.43 93.17 ( 39.67%)
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] x86_64: Implement evex512 version of strrchr and wcsrchr
2022-11-03 20:08 [PATCH v2] x86_64: Implement evex512 version of strrchr and wcsrchr Sunil K Pandey
2022-11-03 22:45 ` Sunil Pandey
@ 2022-11-03 22:47 ` Noah Goldstein
1 sibling, 0 replies; 3+ messages in thread
From: Noah Goldstein @ 2022-11-03 22:47 UTC (permalink / raw)
To: Sunil K Pandey; +Cc: libc-alpha
On Thu, Nov 3, 2022 at 1:08 PM Sunil K Pandey via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
> Changes from v1:
> Use vec api for register.
> Replace VPCMP with VPCMPEQ
> Restructure and remove 1 unconditional jump.
> Change page cross logic to use sall.
>
> This patch implements following evex512 version of string functions.
> evex512 version takes up to 30% less cycle as compared to evex,
> depending on length and alignment.
>
> - strrchr function using 512 bit vectors.
> - wcsrchr function using 512 bit vectors.
>
> Code size data:
>
> strrchr-evex.o 879 byte
> strrchr-evex512.o 601 byte (-32%)
>
> wcsrchr-evex.o 882 byte
> wcsrchr-evex512.o 572 byte (-35%)
>
> Placeholder function, not used by any processor at the moment.
> ---
> sysdeps/x86_64/multiarch/Makefile | 2 +
> sysdeps/x86_64/multiarch/ifunc-impl-list.c | 10 +
> sysdeps/x86_64/multiarch/strrchr-evex-base.S | 264 +++++++++++++++++++
> sysdeps/x86_64/multiarch/strrchr-evex512.S | 8 +
> sysdeps/x86_64/multiarch/wcsrchr-evex512.S | 13 +
> 5 files changed, 297 insertions(+)
> create mode 100644 sysdeps/x86_64/multiarch/strrchr-evex-base.S
> create mode 100644 sysdeps/x86_64/multiarch/strrchr-evex512.S
> create mode 100644 sysdeps/x86_64/multiarch/wcsrchr-evex512.S
>
> diff --git a/sysdeps/x86_64/multiarch/Makefile b/sysdeps/x86_64/multiarch/Makefile
> index 597ac9d5e9..066bfa48d9 100644
> --- a/sysdeps/x86_64/multiarch/Makefile
> +++ b/sysdeps/x86_64/multiarch/Makefile
> @@ -114,6 +114,7 @@ sysdep_routines += \
> strrchr-avx2 \
> strrchr-avx2-rtm \
> strrchr-evex \
> + strrchr-evex512 \
> strrchr-sse2 \
> strspn-sse4 \
> strstr-avx512 \
> @@ -157,6 +158,7 @@ sysdep_routines += \
> wcsrchr-avx2 \
> wcsrchr-avx2-rtm \
> wcsrchr-evex \
> + wcsrchr-evex512 \
> wcsrchr-sse2 \
> wmemchr-avx2 \
> wmemchr-avx2-rtm \
> diff --git a/sysdeps/x86_64/multiarch/ifunc-impl-list.c b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
> index c3d75a09f4..7cebee7ec7 100644
> --- a/sysdeps/x86_64/multiarch/ifunc-impl-list.c
> +++ b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
> @@ -600,6 +600,11 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
> && CPU_FEATURE_USABLE (BMI1)
> && CPU_FEATURE_USABLE (BMI2)),
> __strrchr_evex)
> + X86_IFUNC_IMPL_ADD_V4 (array, i, strrchr,
> + (CPU_FEATURE_USABLE (AVX512VL)
> + && CPU_FEATURE_USABLE (AVX512BW)
> + && CPU_FEATURE_USABLE (BMI2)),
> + __strrchr_evex512)
> X86_IFUNC_IMPL_ADD_V3 (array, i, strrchr,
> (CPU_FEATURE_USABLE (AVX2)
> && CPU_FEATURE_USABLE (BMI1)
> @@ -828,6 +833,11 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
> && CPU_FEATURE_USABLE (BMI1)
> && CPU_FEATURE_USABLE (BMI2)),
> __wcsrchr_evex)
> + X86_IFUNC_IMPL_ADD_V4 (array, i, wcsrchr,
> + (CPU_FEATURE_USABLE (AVX512VL)
> + && CPU_FEATURE_USABLE (AVX512BW)
> + && CPU_FEATURE_USABLE (BMI2)),
> + __wcsrchr_evex512)
> X86_IFUNC_IMPL_ADD_V3 (array, i, wcsrchr,
> (CPU_FEATURE_USABLE (AVX2)
> && CPU_FEATURE_USABLE (BMI1)
> diff --git a/sysdeps/x86_64/multiarch/strrchr-evex-base.S b/sysdeps/x86_64/multiarch/strrchr-evex-base.S
> new file mode 100644
> index 0000000000..6698fe8b78
> --- /dev/null
> +++ b/sysdeps/x86_64/multiarch/strrchr-evex-base.S
> @@ -0,0 +1,264 @@
> +/* Placeholder function, not used by any processor at the moment.
> + Copyright (C) 2022 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, see
> + <https://www.gnu.org/licenses/>. */
> +
> +/* UNUSED. Exists purely as reference implementation. */
> +
> +#include <isa-level.h>
> +
> +#if ISA_SHOULD_BUILD (4)
> +
> +# include <sysdep.h>
> +
> +# ifdef USE_AS_WCSRCHR
> +# define CHAR_SIZE 4
> +# define VPBROADCAST vpbroadcastd
> +# define VPCMPEQ vpcmpeqd
> +# define VPMINU vpminud
> +# define VPTESTN vptestnmd
> +# else
> +# define CHAR_SIZE 1
> +# define VPBROADCAST vpbroadcastb
> +# define VPCMPEQ vpcmpeqb
> +# define VPMINU vpminub
> +# define VPTESTN vptestnmb
> +# endif
> +
> +# define PAGE_SIZE 4096
> +# define CHAR_PER_VEC (VEC_SIZE / CHAR_SIZE)
> +
> + .section SECTION(.text), "ax", @progbits
> +/* Aligning entry point to 64 byte, provides better performance for
> + one vector length string. */
> +ENTRY_P2ALIGN (STRRCHR, 6)
> +
> + /* Broadcast CHAR to VMM(0). */
> + VPBROADCAST %esi, %VMM(0)
> + movl %edi, %eax
> + sall $20, %eax
> + cmpl $((PAGE_SIZE - VEC_SIZE) << 20), %eax
> + ja L(page_cross)
> +
> +L(page_cross_continue):
> + /* Compare [w]char for null, mask bit will be set for match. */
> + VMOVU (%rdi), %VMM(1)
> +
> + VPTESTN %VMM(1), %VMM(1), %k1
> + KMOV %k1, %VRCX
> + test %VRCX, %VRCX
> + jz L(align_more)
> +
> + VPCMPEQ %VMM(1), %VMM(0), %k0
> + KMOV %k0, %VRAX
> + BLSMSK %VRCX, %VRCX
> + and %VRCX, %VRAX
> + jz L(ret)
> +
> + BSR %VRAX, %VRAX
> +# ifdef USE_AS_WCSRCHR
> + leaq (%rdi, %rax, CHAR_SIZE), %rax
> +# else
> + add %rdi, %rax
> +# endif
> +L(ret):
> + ret
> +
> +L(vector_x2_end):
> + VPCMPEQ %VMM(2), %VMM(0), %k2
> + KMOV %k2, %VRAX
> + BLSMSK %VRCX, %VRCX
> + and %VRCX, %VRAX
> + jz L(vector_x1_ret)
> +
> + BSR %VRAX, %VRAX
> + leaq (VEC_SIZE)(%rdi, %rax, CHAR_SIZE), %rax
> + ret
> +
> + /* Check the first vector at very last to look for match. */
> +L(vector_x1_ret):
> + VPCMPEQ %VMM(1), %VMM(0), %k2
> + KMOV %k2, %VRAX
> + test %VRAX, %VRAX
> + jz L(ret)
> +
> + BSR %VRAX, %VRAX
> +# ifdef USE_AS_WCSRCHR
> + leaq (%rsi, %rax, CHAR_SIZE), %rax
> +# else
> + add %rsi, %rax
> +# endif
> + ret
> +
> +L(align_more):
> + /* Zero r8 to store match result. */
> + xorl %r8d, %r8d
> + /* Save pointer of first vector, in case if no match found. */
> + movq %rdi, %rsi
> + /* Align pointer to vector size. */
> + andq $-VEC_SIZE, %rdi
> + /* Loop unroll 2 times for 2 vector loop. */
> + VMOVA (VEC_SIZE)(%rdi), %VMM(2)
> + VPTESTN %VMM(2), %VMM(2), %k0
> + KMOV %k0, %VRCX
> + test %VRCX, %VRCX
> + jnz L(vector_x2_end)
> +
> + /* Save pointer of second vector, in case if no match
> + found. */
> + movq %rdi, %r9
> + /* Align address to VEC_SIZE * 2 for loop. */
> + andq $-(VEC_SIZE * 2), %rdi
> +
> + .p2align 4,,11
> +L(loop):
> + /* 2 vector loop, as it provide better performance as compared
> + to 4 vector loop. */
> + VMOVA (VEC_SIZE * 2)(%rdi), %VMM(3)
> + VMOVA (VEC_SIZE * 3)(%rdi), %VMM(4)
> + VPCMPEQ %VMM(3), %VMM(0), %k1
> + VPCMPEQ %VMM(4), %VMM(0), %k2
> + VPMINU %VMM(3), %VMM(4), %VMM(5)
> + VPTESTN %VMM(5), %VMM(5), %k0
> + KOR %k1, %k2, %k3
> + subq $-(VEC_SIZE * 2), %rdi
> + /* If k0 and k3 zero, match and end of string not found. */
> + KORTEST %k0, %k3
> + jz L(loop)
> +
> + /* If k0 is non zero, end of string found. */
> + KORTEST %k0, %k0
> + jnz L(endloop)
> +
> + lea VEC_SIZE(%rdi), %r8
> + /* A match found, it need to be stored in r8 before loop
> + continue. */
> + /* Check second vector first. */
> + KMOV %k2, %VRDX
> + test %VRDX, %VRDX
> + jnz L(loop_vec_x2_match)
> +
> + KMOV %k1, %VRDX
> + /* Match is in first vector, rdi offset need to be substracted
> + by VEC_SIZE. */
> + sub $VEC_SIZE, %r8
> +
> + /* If second vector doesn't have match, first vector must
> + have match. */
> +L(loop_vec_x2_match):
> + BSR %VRDX, %VRDX
> +# ifdef USE_AS_WCSRCHR
> + sal $2, %rdx
> +# endif
> + add %rdx, %r8
> + jmp L(loop)
> +
> +L(endloop):
> + /* Check if string end in first loop vector. */
> + VPTESTN %VMM(3), %VMM(3), %k0
> + KMOV %k0, %VRCX
> + test %VRCX, %VRCX
> + jnz L(loop_vector_x1_end)
> +
> + /* Check if it has match in first loop vector. */
> + KMOV %k1, %VRAX
> + test %VRAX, %VRAX
> + jz L(loop_vector_x2_end)
> +
> + BSR %VRAX, %VRAX
> + leaq (%rdi, %rax, CHAR_SIZE), %r8
> +
> + /* String must end in second loop vector. */
> +L(loop_vector_x2_end):
> + VPTESTN %VMM(4), %VMM(4), %k0
> + KMOV %k0, %VRCX
> + KMOV %k2, %VRAX
> + BLSMSK %VRCX, %VRCX
> + /* Check if it has match in second loop vector. */
> + and %VRCX, %VRAX
> + jz L(check_last_match)
> +
> + BSR %VRAX, %VRAX
> + leaq (VEC_SIZE)(%rdi, %rax, CHAR_SIZE), %rax
> + ret
> +
> + /* String end in first loop vector. */
> +L(loop_vector_x1_end):
> + KMOV %k1, %VRAX
> + BLSMSK %VRCX, %VRCX
> + /* Check if it has match in second loop vector. */
> + and %VRCX, %VRAX
> + jz L(check_last_match)
> +
> + BSR %VRAX, %VRAX
> + leaq (%rdi, %rax, CHAR_SIZE), %rax
> + ret
> +
> + /* No match in first and second loop vector. */
> +L(check_last_match):
> + /* Check if any match recorded in r8. */
> + test %r8, %r8
> + jz L(vector_x2_ret)
> + movq %r8, %rax
> + ret
> +
> + /* No match recorded in r8. Check the second saved vector
> + in begining. */
> +L(vector_x2_ret):
> + VPCMPEQ %VMM(2), %VMM(0), %k2
> + KMOV %k2, %VRAX
> + test %VRAX, %VRAX
> + jz L(vector_x1_ret)
> +
> + /* Match found in the second saved vector. */
> + BSR %VRAX, %VRAX
> + leaq (VEC_SIZE)(%r9, %rax, CHAR_SIZE), %rax
> + ret
> +
> +L(page_cross):
> + mov %rdi, %rax
> + movl %edi, %ecx
> +
> +# ifdef USE_AS_WCSRCHR
> + /* Calculate number of compare result bits to be skipped for
> + wide string alignment adjustment. */
> + andl $(VEC_SIZE - 1), %ecx
> + sarl $2, %ecx
> +# endif
> + /* ecx contains number of w[char] to be skipped as a result
> + of address alignment. */
> + andq $-VEC_SIZE, %rax
> + VMOVA (%rax), %VMM(1)
> + VPTESTN %VMM(1), %VMM(1), %k1
> + KMOV %k1, %VRAX
> + SHR %cl, %VRAX
> + jz L(page_cross_continue)
> + VPCMPEQ %VMM(1), %VMM(0), %k0
> + KMOV %k0, %VRDX
> + SHR %cl, %VRDX
> + BLSMSK %VRAX, %VRAX
> + and %VRDX, %VRAX
> + jz L(ret)
> + BSR %VRAX, %VRAX
> +# ifdef USE_AS_WCSRCHR
> + leaq (%rdi, %rax, CHAR_SIZE), %rax
> +# else
> + add %rdi, %rax
> +# endif
> +
> + ret
> +END (STRRCHR)
> +#endif
> diff --git a/sysdeps/x86_64/multiarch/strrchr-evex512.S b/sysdeps/x86_64/multiarch/strrchr-evex512.S
> new file mode 100644
> index 0000000000..7d81e66375
> --- /dev/null
> +++ b/sysdeps/x86_64/multiarch/strrchr-evex512.S
> @@ -0,0 +1,8 @@
> +# ifndef STRRCHR
> +# define STRRCHR __strrchr_evex512
> +# endif
> +
> +#include "x86-evex512-vecs.h"
> +#include "reg-macros.h"
> +
> +#include "strrchr-evex-base.S"
> diff --git a/sysdeps/x86_64/multiarch/wcsrchr-evex512.S b/sysdeps/x86_64/multiarch/wcsrchr-evex512.S
> new file mode 100644
> index 0000000000..f241f63716
> --- /dev/null
> +++ b/sysdeps/x86_64/multiarch/wcsrchr-evex512.S
> @@ -0,0 +1,13 @@
> +#ifndef WCSRCHR
> +# define WCSRCHR __wcsrchr_evex512
> +#endif
> +
> +#define STRRCHR WCSRCHR
> +#define USE_AS_WCSRCHR 1
> +
> +#define USE_WIDE_CHAR 1
> +
> +#include "x86-evex512-vecs.h"
> +#include "reg-macros.h"
> +
> +#include "strrchr-evex512.S"
> --
> 2.38.1
>
LGTM.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-11-03 22:47 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-03 20:08 [PATCH v2] x86_64: Implement evex512 version of strrchr and wcsrchr Sunil K Pandey
2022-11-03 22:45 ` Sunil Pandey
2022-11-03 22:47 ` Noah Goldstein
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).