[PATCH v1 6/8] x86: Optimize memrchr-avx2.S
Noah Goldstein
goldstein.w.n@gmail.com
Fri Jun 3 04:50:24 GMT 2022
On Thu, Jun 2, 2022 at 11:42 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
>
> The new code:
> 1. prioritizes smaller user-arg lengths more.
> 2. optimizes target placement more carefully
> 3. reuses logic more
> 4. fixes up various inefficiencies in the logic. The biggest
> case here is the `lzcnt` logic for checking returns which
> saves either a branch or multiple instructions.
>
> The total code size saving is: 306 bytes
> Geometric Mean of all benchmarks New / Old: 0.760
>
> Regressions:
> There are some regressions. Particularly where the length (user arg
> length) is large but the position of the match char is near the
> begining of the string (in first VEC). This case has roughly a
> 10-20% regression.
>
> This is because the new logic gives the hot path for immediate matches
> to shorter lengths (the more common input). This case has roughly
> a 15-45% speedup.
>
> Full xcheck passes on x86_64.
> ---
> sysdeps/x86_64/multiarch/memrchr-avx2-rtm.S | 1 +
> sysdeps/x86_64/multiarch/memrchr-avx2.S | 538 ++++++++++----------
> 2 files changed, 260 insertions(+), 279 deletions(-)
>
> diff --git a/sysdeps/x86_64/multiarch/memrchr-avx2-rtm.S b/sysdeps/x86_64/multiarch/memrchr-avx2-rtm.S
> index cea2d2a72d..5e9beeeef2 100644
> --- a/sysdeps/x86_64/multiarch/memrchr-avx2-rtm.S
> +++ b/sysdeps/x86_64/multiarch/memrchr-avx2-rtm.S
> @@ -2,6 +2,7 @@
> # define MEMRCHR __memrchr_avx2_rtm
> #endif
>
> +#define COND_VZEROUPPER COND_VZEROUPPER_XTEST
> #define ZERO_UPPER_VEC_REGISTERS_RETURN \
> ZERO_UPPER_VEC_REGISTERS_RETURN_XTEST
>
> diff --git a/sysdeps/x86_64/multiarch/memrchr-avx2.S b/sysdeps/x86_64/multiarch/memrchr-avx2.S
> index ba2ce7cb03..6915e1c373 100644
> --- a/sysdeps/x86_64/multiarch/memrchr-avx2.S
> +++ b/sysdeps/x86_64/multiarch/memrchr-avx2.S
> @@ -21,340 +21,320 @@
> # include <sysdep.h>
>
> # ifndef MEMRCHR
> -# define MEMRCHR __memrchr_avx2
> +# define MEMRCHR __memrchr_avx2
> # endif
>
> # ifndef VZEROUPPER
> -# define VZEROUPPER vzeroupper
> +# define VZEROUPPER vzeroupper
> # endif
>
> +// abf-off
> # ifndef SECTION
> # define SECTION(p) p##.avx
> # endif
> +// abf-on
> +
> +# define VEC_SIZE 32
> +# define PAGE_SIZE 4096
> + .section SECTION(.text), "ax", @progbits
> +ENTRY(MEMRCHR)
> +# ifdef __ILP32__
> + /* Clear upper bits. */
> + and %RDX_LP, %RDX_LP
> +# else
> + test %RDX_LP, %RDX_LP
> +# endif
> + jz L(zero_0)
>
> -# define VEC_SIZE 32
> -
> - .section SECTION(.text),"ax",@progbits
> -ENTRY (MEMRCHR)
> - /* Broadcast CHAR to YMM0. */
> vmovd %esi, %xmm0
> - vpbroadcastb %xmm0, %ymm0
> -
> - sub $VEC_SIZE, %RDX_LP
> - jbe L(last_vec_or_less)
> -
> - add %RDX_LP, %RDI_LP
> + /* Get end pointer. Minus one for two reasons. 1) It is necessary for a
> + correct page cross check and 2) it correctly sets up end ptr to be
> + subtract by lzcnt aligned. */
> + leaq -1(%rdx, %rdi), %rax
>
> - /* Check the last VEC_SIZE bytes. */
> - vpcmpeqb (%rdi), %ymm0, %ymm1
> - vpmovmskb %ymm1, %eax
> - testl %eax, %eax
> - jnz L(last_vec_x0)
> -
> - subq $(VEC_SIZE * 4), %rdi
> - movl %edi, %ecx
> - andl $(VEC_SIZE - 1), %ecx
> - jz L(aligned_more)
> + vpbroadcastb %xmm0, %ymm0
>
> - /* Align data for aligned loads in the loop. */
> - addq $VEC_SIZE, %rdi
> - addq $VEC_SIZE, %rdx
> - andq $-VEC_SIZE, %rdi
> - subq %rcx, %rdx
> + /* Check if we can load 1x VEC without cross a page. */
> + testl $(PAGE_SIZE - VEC_SIZE), %eax
> + jz L(page_cross)
> +
> + vpcmpeqb -(VEC_SIZE - 1)(%rax), %ymm0, %ymm1
> + vpmovmskb %ymm1, %ecx
> + cmpq $VEC_SIZE, %rdx
> + ja L(more_1x_vec)
> +
> +L(ret_vec_x0_test):
> + /* If ecx is zero (no matches) lzcnt will set it 32 (VEC_SIZE) which
> + will gurantee edx (len) is less than it. */
> + lzcntl %ecx, %ecx
> +
> + /* Hoist vzeroupper (not great for RTM) to save code size. This allows
> + all logic for edx (len) <= VEC_SIZE to fit in first cache line. */
> + COND_VZEROUPPER
> + cmpl %ecx, %edx
> + jle L(zero_0)
> + subq %rcx, %rax
> + ret
>
> - .p2align 4
> -L(aligned_more):
> - subq $(VEC_SIZE * 4), %rdx
> - jbe L(last_4x_vec_or_less)
> -
> - /* Check the last 4 * VEC_SIZE. Only one VEC_SIZE at a time
> - since data is only aligned to VEC_SIZE. */
> - vpcmpeqb (VEC_SIZE * 3)(%rdi), %ymm0, %ymm1
> - vpmovmskb %ymm1, %eax
> - testl %eax, %eax
> - jnz L(last_vec_x3)
> -
> - vpcmpeqb (VEC_SIZE * 2)(%rdi), %ymm0, %ymm2
> - vpmovmskb %ymm2, %eax
> - testl %eax, %eax
> - jnz L(last_vec_x2)
> -
> - vpcmpeqb VEC_SIZE(%rdi), %ymm0, %ymm3
> - vpmovmskb %ymm3, %eax
> - testl %eax, %eax
> - jnz L(last_vec_x1)
> -
> - vpcmpeqb (%rdi), %ymm0, %ymm4
> - vpmovmskb %ymm4, %eax
> - testl %eax, %eax
> - jnz L(last_vec_x0)
> -
> - /* Align data to 4 * VEC_SIZE for loop with fewer branches.
> - There are some overlaps with above if data isn't aligned
> - to 4 * VEC_SIZE. */
> - movl %edi, %ecx
> - andl $(VEC_SIZE * 4 - 1), %ecx
> - jz L(loop_4x_vec)
> -
> - addq $(VEC_SIZE * 4), %rdi
> - addq $(VEC_SIZE * 4), %rdx
> - andq $-(VEC_SIZE * 4), %rdi
> - subq %rcx, %rdx
> + /* Fits in aligning bytes of first cache line. */
> +L(zero_0):
> + xorl %eax, %eax
> + ret
>
> - .p2align 4
> -L(loop_4x_vec):
> - /* Compare 4 * VEC at a time forward. */
> - subq $(VEC_SIZE * 4), %rdi
> - subq $(VEC_SIZE * 4), %rdx
> - jbe L(last_4x_vec_or_less)
> -
> - vmovdqa (%rdi), %ymm1
> - vmovdqa VEC_SIZE(%rdi), %ymm2
> - vmovdqa (VEC_SIZE * 2)(%rdi), %ymm3
> - vmovdqa (VEC_SIZE * 3)(%rdi), %ymm4
> -
> - vpcmpeqb %ymm1, %ymm0, %ymm1
> - vpcmpeqb %ymm2, %ymm0, %ymm2
> - vpcmpeqb %ymm3, %ymm0, %ymm3
> - vpcmpeqb %ymm4, %ymm0, %ymm4
> -
> - vpor %ymm1, %ymm2, %ymm5
> - vpor %ymm3, %ymm4, %ymm6
> - vpor %ymm5, %ymm6, %ymm5
> -
> - vpmovmskb %ymm5, %eax
> - testl %eax, %eax
> - jz L(loop_4x_vec)
> -
> - /* There is a match. */
> - vpmovmskb %ymm4, %eax
> - testl %eax, %eax
> - jnz L(last_vec_x3)
> -
> - vpmovmskb %ymm3, %eax
> - testl %eax, %eax
> - jnz L(last_vec_x2)
> -
> - vpmovmskb %ymm2, %eax
> - testl %eax, %eax
> - jnz L(last_vec_x1)
> -
> - vpmovmskb %ymm1, %eax
> - bsrl %eax, %eax
> - addq %rdi, %rax
> + .p2align 4,, 9
> +L(ret_vec_x0):
> + lzcntl %ecx, %ecx
> + subq %rcx, %rax
> L(return_vzeroupper):
> ZERO_UPPER_VEC_REGISTERS_RETURN
>
> - .p2align 4
> -L(last_4x_vec_or_less):
> - addl $(VEC_SIZE * 4), %edx
> - cmpl $(VEC_SIZE * 2), %edx
> - jbe L(last_2x_vec)
> -
> - vpcmpeqb (VEC_SIZE * 3)(%rdi), %ymm0, %ymm1
> - vpmovmskb %ymm1, %eax
> - testl %eax, %eax
> - jnz L(last_vec_x3)
> -
> - vpcmpeqb (VEC_SIZE * 2)(%rdi), %ymm0, %ymm2
> - vpmovmskb %ymm2, %eax
> - testl %eax, %eax
> - jnz L(last_vec_x2)
> -
> - vpcmpeqb VEC_SIZE(%rdi), %ymm0, %ymm3
> - vpmovmskb %ymm3, %eax
> - testl %eax, %eax
> - jnz L(last_vec_x1_check)
> - cmpl $(VEC_SIZE * 3), %edx
> - jbe L(zero)
> -
> - vpcmpeqb (%rdi), %ymm0, %ymm4
> - vpmovmskb %ymm4, %eax
> - testl %eax, %eax
> - jz L(zero)
> - bsrl %eax, %eax
> - subq $(VEC_SIZE * 4), %rdx
> - addq %rax, %rdx
> - jl L(zero)
> - addq %rdi, %rax
> - VZEROUPPER_RETURN
> -
> - .p2align 4
> + .p2align 4,, 10
> +L(more_1x_vec):
> + testl %ecx, %ecx
> + jnz L(ret_vec_x0)
> +
> + /* Align rax (string pointer). */
> + andq $-VEC_SIZE, %rax
> +
> + /* Recompute remaining length after aligning. */
> + movq %rax, %rdx
> + /* Need this comparison next no matter what. */
> + vpcmpeqb -(VEC_SIZE)(%rax), %ymm0, %ymm1
> + subq %rdi, %rdx
> + decq %rax
> + vpmovmskb %ymm1, %ecx
> + /* Fall through for short (hotter than length). */
> + cmpq $(VEC_SIZE * 2), %rdx
> + ja L(more_2x_vec)
> L(last_2x_vec):
> - vpcmpeqb (VEC_SIZE * 3)(%rdi), %ymm0, %ymm1
> - vpmovmskb %ymm1, %eax
> - testl %eax, %eax
> - jnz L(last_vec_x3_check)
> cmpl $VEC_SIZE, %edx
> - jbe L(zero)
> -
> - vpcmpeqb (VEC_SIZE * 2)(%rdi), %ymm0, %ymm1
> - vpmovmskb %ymm1, %eax
> - testl %eax, %eax
> - jz L(zero)
> - bsrl %eax, %eax
> - subq $(VEC_SIZE * 2), %rdx
> - addq %rax, %rdx
> - jl L(zero)
> - addl $(VEC_SIZE * 2), %eax
> - addq %rdi, %rax
> - VZEROUPPER_RETURN
> -
> - .p2align 4
> -L(last_vec_x0):
> - bsrl %eax, %eax
> - addq %rdi, %rax
> - VZEROUPPER_RETURN
> + jbe L(ret_vec_x0_test)
> +
> + testl %ecx, %ecx
> + jnz L(ret_vec_x0)
> +
> + vpcmpeqb -(VEC_SIZE * 2 - 1)(%rax), %ymm0, %ymm1
> + vpmovmskb %ymm1, %ecx
> + /* 64-bit lzcnt. This will naturally add 32 to position. */
> + lzcntq %rcx, %rcx
> + COND_VZEROUPPER
> + cmpl %ecx, %edx
> + jle L(zero_0)
> + subq %rcx, %rax
> + ret
>
> - .p2align 4
> -L(last_vec_x1):
> - bsrl %eax, %eax
> - addl $VEC_SIZE, %eax
> - addq %rdi, %rax
> - VZEROUPPER_RETURN
>
> - .p2align 4
> -L(last_vec_x2):
> - bsrl %eax, %eax
> - addl $(VEC_SIZE * 2), %eax
> - addq %rdi, %rax
> + /* Inexpensive place to put this regarding code size / target alignments
> + / ICache NLP. Necessary for 2-byte encoding of jump to page cross
> + case which inturn in necessray for hot path (len <= VEC_SIZE) to fit
> + in first cache line. */
> +L(page_cross):
> + movq %rax, %rsi
> + andq $-VEC_SIZE, %rsi
> + vpcmpeqb (%rsi), %ymm0, %ymm1
> + vpmovmskb %ymm1, %ecx
> + /* Shift out negative alignment (because we are starting from endptr and
> + working backwards). */
> + movl %eax, %r8d
> + /* notl because eax already has endptr - 1. (-x = ~(x - 1)). */
> + notl %r8d
> + shlxl %r8d, %ecx, %ecx
> + cmpq %rdi, %rsi
> + ja L(more_1x_vec)
> + lzcntl %ecx, %ecx
> + COND_VZEROUPPER
> + cmpl %ecx, %edx
> + jle L(zero_0)
> + subq %rcx, %rax
> + ret
> + .p2align 4,, 11
> +L(ret_vec_x1):
> + /* This will naturally add 32 to position. */
> + lzcntq %rcx, %rcx
> + subq %rcx, %rax
> VZEROUPPER_RETURN
> + .p2align 4,, 10
> +L(more_2x_vec):
> + testl %ecx, %ecx
> + jnz L(ret_vec_x0)
>
> - .p2align 4
> -L(last_vec_x3):
> - bsrl %eax, %eax
> - addl $(VEC_SIZE * 3), %eax
> - addq %rdi, %rax
> - ret
> + vpcmpeqb -(VEC_SIZE * 2 - 1)(%rax), %ymm0, %ymm1
> + vpmovmskb %ymm1, %ecx
> + testl %ecx, %ecx
> + jnz L(ret_vec_x1)
>
> - .p2align 4
> -L(last_vec_x1_check):
> - bsrl %eax, %eax
> - subq $(VEC_SIZE * 3), %rdx
> - addq %rax, %rdx
> - jl L(zero)
> - addl $VEC_SIZE, %eax
> - addq %rdi, %rax
> - VZEROUPPER_RETURN
>
> - .p2align 4
> -L(last_vec_x3_check):
> - bsrl %eax, %eax
> - subq $VEC_SIZE, %rdx
> - addq %rax, %rdx
> - jl L(zero)
> - addl $(VEC_SIZE * 3), %eax
> - addq %rdi, %rax
> - VZEROUPPER_RETURN
> + /* Needed no matter what. */
> + vpcmpeqb -(VEC_SIZE * 3 - 1)(%rax), %ymm0, %ymm1
> + vpmovmskb %ymm1, %ecx
>
> - .p2align 4
> -L(zero):
> - xorl %eax, %eax
> - VZEROUPPER_RETURN
> + subq $(VEC_SIZE * 4), %rdx
> + ja L(more_4x_vec)
> +
> + cmpl $(VEC_SIZE * -1), %edx
> + jle L(ret_vec_x2_test)
> +
> +L(last_vec):
> + testl %ecx, %ecx
> + jnz L(ret_vec_x2)
> +
> + /* Needed no matter what. */
> + vpcmpeqb -(VEC_SIZE * 4 - 1)(%rax), %ymm0, %ymm1
> + vpmovmskb %ymm1, %ecx
> + lzcntl %ecx, %ecx
> + subq $(VEC_SIZE * 3), %rax
> + COND_VZEROUPPER
> + subq %rcx, %rax
> + cmpq %rax, %rdi
> + ja L(zero_2)
> + ret
>
> - .p2align 4
> -L(null):
> + /* First in aligning bytes. */
> +L(zero_2):
> xorl %eax, %eax
> ret
>
> - .p2align 4
> -L(last_vec_or_less_aligned):
> - movl %edx, %ecx
> + .p2align 4,, 4
> +L(ret_vec_x2_test):
> + lzcntl %ecx, %ecx
> + subq $(VEC_SIZE * 2), %rax
> + COND_VZEROUPPER
> + subq %rcx, %rax
> + cmpq %rax, %rdi
> + ja L(zero_2)
> + ret
>
> - vpcmpeqb (%rdi), %ymm0, %ymm1
>
> - movl $1, %edx
> - /* Support rdx << 32. */
> - salq %cl, %rdx
> - subq $1, %rdx
> + .p2align 4,, 11
> +L(ret_vec_x2):
> + /* ecx must be non-zero. */
> + bsrl %ecx, %ecx
> + leaq (VEC_SIZE * -3 + 1)(%rcx, %rax), %rax
> + VZEROUPPER_RETURN
>
> - vpmovmskb %ymm1, %eax
> + .p2align 4,, 14
> +L(ret_vec_x3):
> + /* ecx must be non-zero. */
> + bsrl %ecx, %ecx
> + leaq (VEC_SIZE * -4 + 1)(%rcx, %rax), %rax
> + VZEROUPPER_RETURN
>
> - /* Remove the trailing bytes. */
> - andl %edx, %eax
> - testl %eax, %eax
> - jz L(zero)
>
> - bsrl %eax, %eax
> - addq %rdi, %rax
> - VZEROUPPER_RETURN
>
> .p2align 4
> -L(last_vec_or_less):
> - addl $VEC_SIZE, %edx
> +L(more_4x_vec):
> + testl %ecx, %ecx
> + jnz L(ret_vec_x2)
>
> - /* Check for zero length. */
> - testl %edx, %edx
> - jz L(null)
> + vpcmpeqb -(VEC_SIZE * 4 - 1)(%rax), %ymm0, %ymm1
> + vpmovmskb %ymm1, %ecx
>
> - movl %edi, %ecx
> - andl $(VEC_SIZE - 1), %ecx
> - jz L(last_vec_or_less_aligned)
> + testl %ecx, %ecx
> + jnz L(ret_vec_x3)
>
> - movl %ecx, %esi
> - movl %ecx, %r8d
> - addl %edx, %esi
> - andq $-VEC_SIZE, %rdi
> + /* Check if near end before re-aligning (otherwise might do an
> + unnecissary loop iteration). */
> + addq $-(VEC_SIZE * 4), %rax
> + cmpq $(VEC_SIZE * 4), %rdx
> + jbe L(last_4x_vec)
>
> - subl $VEC_SIZE, %esi
> - ja L(last_vec_2x_aligned)
> + /* Align rax to (VEC_SIZE - 1). */
> + orq $(VEC_SIZE * 4 - 1), %rax
> + movq %rdi, %rdx
> + /* Get endptr for loop in rdx. NB: Can't just do while rax > rdi because
> + lengths that overflow can be valid and break the comparison. */
> + orq $(VEC_SIZE * 4 - 1), %rdx
>
> - /* Check the last VEC. */
> - vpcmpeqb (%rdi), %ymm0, %ymm1
> - vpmovmskb %ymm1, %eax
> -
> - /* Remove the leading and trailing bytes. */
> - sarl %cl, %eax
> - movl %edx, %ecx
> + .p2align 4
> +L(loop_4x_vec):
> + /* Need this comparison next no matter what. */
> + vpcmpeqb -(VEC_SIZE * 1 - 1)(%rax), %ymm0, %ymm1
> + vpcmpeqb -(VEC_SIZE * 2 - 1)(%rax), %ymm0, %ymm2
> + vpcmpeqb -(VEC_SIZE * 3 - 1)(%rax), %ymm0, %ymm3
> + vpcmpeqb -(VEC_SIZE * 4 - 1)(%rax), %ymm0, %ymm4
>
> - movl $1, %edx
> - sall %cl, %edx
> - subl $1, %edx
> + vpor %ymm1, %ymm2, %ymm2
> + vpor %ymm3, %ymm4, %ymm4
> + vpor %ymm2, %ymm4, %ymm4
> + vpmovmskb %ymm4, %esi
>
> - andl %edx, %eax
> - testl %eax, %eax
> - jz L(zero)
> + testl %esi, %esi
> + jnz L(loop_end)
>
> - bsrl %eax, %eax
> - addq %rdi, %rax
> - addq %r8, %rax
> - VZEROUPPER_RETURN
> + addq $(VEC_SIZE * -4), %rax
> + cmpq %rdx, %rax
> + jne L(loop_4x_vec)
>
> - .p2align 4
> -L(last_vec_2x_aligned):
> - movl %esi, %ecx
> + subl %edi, %edx
> + incl %edx
>
> - /* Check the last VEC. */
> - vpcmpeqb VEC_SIZE(%rdi), %ymm0, %ymm1
> +L(last_4x_vec):
> + /* Used no matter what. */
> + vpcmpeqb -(VEC_SIZE * 1 - 1)(%rax), %ymm0, %ymm1
> + vpmovmskb %ymm1, %ecx
>
> - movl $1, %edx
> - sall %cl, %edx
> - subl $1, %edx
> + cmpl $(VEC_SIZE * 2), %edx
> + jbe L(last_2x_vec)
>
> - vpmovmskb %ymm1, %eax
> + testl %ecx, %ecx
> + jnz L(ret_vec_x0_end)
>
> - /* Remove the trailing bytes. */
> - andl %edx, %eax
> + vpcmpeqb -(VEC_SIZE * 2 - 1)(%rax), %ymm0, %ymm1
> + vpmovmskb %ymm1, %ecx
> + testl %ecx, %ecx
> + jnz L(ret_vec_x1_end)
>
> - testl %eax, %eax
> - jnz L(last_vec_x1)
> + /* Used no matter what. */
> + vpcmpeqb -(VEC_SIZE * 3 - 1)(%rax), %ymm0, %ymm1
> + vpmovmskb %ymm1, %ecx
>
> - /* Check the second last VEC. */
> - vpcmpeqb (%rdi), %ymm0, %ymm1
> + cmpl $(VEC_SIZE * 3), %edx
> + ja L(last_vec)
> +
> + lzcntl %ecx, %ecx
> + subq $(VEC_SIZE * 2), %rax
> + COND_VZEROUPPER
> + subq %rcx, %rax
> + cmpq %rax, %rdi
> + jbe L(ret0)
> + xorl %eax, %eax
> +L(ret0):
> + ret
>
> - movl %r8d, %ecx
>
> - vpmovmskb %ymm1, %eax
> + .p2align 4
> +L(loop_end):
> + vpmovmskb %ymm1, %ecx
> + testl %ecx, %ecx
> + jnz L(ret_vec_x0_end)
> +
> + vpmovmskb %ymm2, %ecx
> + testl %ecx, %ecx
> + jnz L(ret_vec_x1_end)
> +
> + vpmovmskb %ymm3, %ecx
> + /* Combine last 2 VEC matches. If ecx (VEC3) is zero (no CHAR in VEC3)
> + then it won't affect the result in esi (VEC4). If ecx is non-zero
> + then CHAR in VEC3 and bsrq will use that position. */
> + salq $32, %rcx
> + orq %rsi, %rcx
> + bsrq %rcx, %rcx
> + leaq (VEC_SIZE * -4 + 1)(%rcx, %rax), %rax
> + VZEROUPPER_RETURN
>
> - /* Remove the leading bytes. Must use unsigned right shift for
> - bsrl below. */
> - shrl %cl, %eax
> - testl %eax, %eax
> - jz L(zero)
> + .p2align 4,, 4
> +L(ret_vec_x1_end):
> + /* 64-bit version will automatically add 32 (VEC_SIZE). */
> + lzcntq %rcx, %rcx
> + subq %rcx, %rax
> + VZEROUPPER_RETURN
>
> - bsrl %eax, %eax
> - addq %rdi, %rax
> - addq %r8, %rax
> + .p2align 4,, 4
> +L(ret_vec_x0_end):
> + lzcntl %ecx, %ecx
> + subq %rcx, %rax
> VZEROUPPER_RETURN
> -END (MEMRCHR)
> +
> + /* 2 bytes until next cache line. */
> +END(MEMRCHR)
> #endif
> --
> 2.34.1
>
-------------- next part --------------
Geometric mean of N = 30 runs.
Benchmarked on Tigerlake: https://ark.intel.com/content/www/us/en/ark/products/208921/intel-core-i71165g7-processor-12m-cache-up-to-4-70-ghz-with-ipu.html
Aggregate Geometric Mean of New / Old: 0.7606704539854201
Results For: memrchr
len, align, pos, seek_char, invert_pos, New / Old
2048, 0, 32, 23, 0, 0.938
256, 1, 64, 23, 0, 0.813
2048, 0, 32, 0, 0, 0.948
256, 1, 64, 0, 0, 0.811
256, 4081, 64, 0, 0, 0.642
256, 0, 1, 23, 0, 0.77
256, 0, 1, 0, 0, 0.771
256, 1, 1, 23, 0, 0.788
256, 1, 1, 0, 0, 0.788
2048, 0, 64, 23, 0, 0.95
256, 2, 64, 23, 0, 0.817
2048, 0, 64, 0, 0, 0.96
256, 2, 64, 0, 0, 0.811
256, 0, 2, 23, 0, 0.772
256, 0, 2, 0, 0, 0.772
256, 2, 2, 23, 0, 0.789
256, 2, 2, 0, 0, 0.789
2048, 0, 128, 23, 0, 0.979
256, 3, 64, 23, 0, 0.811
2048, 0, 128, 0, 0, 0.971
256, 3, 64, 0, 0, 0.816
256, 0, 3, 23, 0, 0.772
256, 0, 3, 0, 0, 0.772
256, 3, 3, 23, 0, 0.788
256, 3, 3, 0, 0, 0.787
2048, 0, 256, 23, 0, 0.949
256, 4, 64, 23, 0, 0.808
2048, 0, 256, 0, 0, 0.952
256, 4, 64, 0, 0, 0.811
256, 0, 4, 23, 0, 0.778
256, 0, 4, 0, 0, 0.78
256, 4, 4, 23, 0, 0.79
256, 4, 4, 0, 0, 0.79
2048, 0, 512, 23, 0, 0.971
256, 5, 64, 23, 0, 0.817
2048, 0, 512, 0, 0, 0.969
256, 5, 64, 0, 0, 0.822
256, 0, 5, 23, 0, 0.78
256, 0, 5, 0, 0, 0.77
256, 5, 5, 23, 0, 0.791
256, 5, 5, 0, 0, 0.791
2048, 0, 1024, 23, 0, 1.007
256, 6, 64, 23, 0, 0.812
2048, 0, 1024, 0, 0, 1.002
256, 6, 64, 0, 0, 0.811
256, 0, 6, 23, 0, 0.773
256, 0, 6, 0, 0, 0.774
256, 6, 6, 23, 0, 0.791
256, 6, 6, 0, 0, 0.791
2048, 0, 2048, 23, 0, 0.969
256, 7, 64, 23, 0, 0.818
2048, 0, 2048, 0, 0, 0.959
256, 7, 64, 0, 0, 0.816
256, 0, 7, 23, 0, 0.773
256, 0, 7, 0, 0, 0.776
256, 7, 7, 23, 0, 0.791
256, 7, 7, 0, 0, 0.798
192, 1, 32, 23, 0, 0.647
192, 1, 32, 0, 0, 0.643
256, 1, 32, 23, 0, 0.803
256, 1, 32, 0, 0, 0.808
512, 1, 32, 23, 0, 0.838
512, 1, 32, 0, 0, 0.834
256, 4081, 32, 23, 0, 0.725
192, 2, 64, 23, 0, 0.919
192, 2, 64, 0, 0, 0.919
512, 2, 64, 23, 0, 0.878
512, 2, 64, 0, 0, 0.875
256, 4081, 64, 23, 0, 0.645
192, 3, 96, 23, 0, 0.919
192, 3, 96, 0, 0, 0.934
256, 3, 96, 23, 0, 0.829
256, 3, 96, 0, 0, 0.83
512, 3, 96, 23, 0, 0.883
512, 3, 96, 0, 0, 0.886
256, 4081, 96, 23, 0, 0.649
192, 4, 128, 23, 0, 0.877
192, 4, 128, 0, 0, 0.862
256, 4, 128, 23, 0, 0.915
256, 4, 128, 0, 0, 0.918
512, 4, 128, 23, 0, 0.892
512, 4, 128, 0, 0, 0.89
256, 4081, 128, 23, 0, 0.927
192, 5, 160, 23, 0, 1.164
192, 5, 160, 0, 0, 1.157
256, 5, 160, 23, 0, 0.928
256, 5, 160, 0, 0, 0.93
512, 5, 160, 23, 0, 0.857
512, 5, 160, 0, 0, 0.864
256, 4081, 160, 23, 0, 0.94
192, 6, 192, 23, 0, 0.699
192, 6, 192, 0, 0, 0.701
256, 6, 192, 23, 0, 0.865
256, 6, 192, 0, 0, 0.873
512, 6, 192, 23, 0, 0.836
512, 6, 192, 0, 0, 0.835
256, 4081, 192, 23, 0, 0.896
192, 7, 224, 23, 0, 0.702
192, 7, 224, 0, 0, 0.701
256, 7, 224, 23, 0, 1.16
256, 7, 224, 0, 0, 1.161
512, 7, 224, 23, 0, 0.854
512, 7, 224, 0, 0, 0.862
256, 4081, 224, 23, 0, 1.155
2, 0, 1, 23, 0, 0.812
2, 0, 1, 0, 0, 0.836
2, 1, 1, 23, 0, 0.72
2, 1, 1, 0, 0, 0.726
0, 0, 1, 23, 0, 0.857
0, 0, 1, 0, 0, 0.857
0, 1, 1, 23, 0, 0.857
0, 1, 1, 0, 0, 0.857
2, 2048, 1, 23, 0, 0.694
2, 2048, 1, 0, 0, 0.71
2, 2049, 1, 23, 0, 0.621
2, 2049, 1, 0, 0, 0.629
0, 2048, 1, 23, 0, 0.857
0, 2048, 1, 0, 0, 0.856
0, 2049, 1, 23, 0, 0.857
0, 2049, 1, 0, 0, 0.857
0, 4081, 1, 23, 0, 0.857
0, 4081, 1, 0, 0, 0.857
2, 4081, 1, 23, 0, 0.602
2, 4081, 1, 0, 0, 0.621
2, 0, 2, 0, 0, 0.777
3, 0, 2, 23, 0, 0.827
3, 0, 2, 0, 0, 0.819
3, 2, 2, 23, 0, 0.737
3, 2, 2, 0, 0, 0.731
1, 0, 2, 23, 0, 0.778
1, 0, 2, 0, 0, 0.778
1, 2, 2, 23, 0, 0.868
1, 2, 2, 0, 0, 0.868
3, 2048, 2, 23, 0, 0.716
3, 2048, 2, 0, 0, 0.719
3, 2050, 2, 23, 0, 0.625
3, 2050, 2, 0, 0, 0.632
1, 2048, 2, 23, 0, 0.667
1, 2048, 2, 0, 0, 0.667
1, 2050, 2, 23, 0, 0.749
1, 2050, 2, 0, 0, 0.752
1, 4081, 2, 23, 0, 0.743
1, 4081, 2, 0, 0, 0.745
3, 4081, 2, 23, 0, 0.601
3, 4081, 2, 0, 0, 0.613
3, 0, 1, 23, 0, 0.832
4, 0, 3, 23, 0, 0.834
4, 0, 3, 0, 0, 0.838
4, 3, 3, 23, 0, 0.728
4, 3, 3, 0, 0, 0.718
2, 0, 3, 23, 0, 0.778
2, 0, 3, 0, 0, 0.777
2, 3, 3, 23, 0, 0.868
2, 3, 3, 0, 0, 0.87
4, 2048, 3, 23, 0, 0.711
4, 2048, 3, 0, 0, 0.711
4, 2051, 3, 23, 0, 0.621
4, 2051, 3, 0, 0, 0.622
2, 2048, 3, 23, 0, 0.669
2, 2048, 3, 0, 0, 0.669
2, 2051, 3, 23, 0, 0.746
2, 2051, 3, 0, 0, 0.746
2, 4081, 3, 23, 0, 0.745
2, 4081, 3, 0, 0, 0.744
4, 4081, 3, 23, 0, 0.587
4, 4081, 3, 0, 0, 0.585
4, 0, 1, 23, 0, 0.846
4, 0, 2, 0, 0, 0.834
5, 0, 4, 23, 0, 0.84
5, 0, 4, 0, 0, 0.838
5, 4, 4, 23, 0, 0.736
5, 4, 4, 0, 0, 0.733
3, 0, 4, 23, 0, 0.779
3, 0, 4, 0, 0, 0.779
3, 4, 4, 23, 0, 0.869
3, 4, 4, 0, 0, 0.869
5, 2048, 4, 23, 0, 0.693
5, 2048, 4, 0, 0, 0.713
5, 2052, 4, 23, 0, 0.615
5, 2052, 4, 0, 0, 0.609
3, 2048, 4, 23, 0, 0.666
3, 2048, 4, 0, 0, 0.668
3, 2052, 4, 23, 0, 0.748
3, 2052, 4, 0, 0, 0.745
3, 4081, 4, 23, 0, 0.745
3, 4081, 4, 0, 0, 0.745
5, 4081, 4, 23, 0, 0.566
5, 4081, 4, 0, 0, 0.589
5, 0, 1, 23, 0, 0.841
5, 0, 2, 0, 0, 0.832
6, 0, 5, 23, 0, 0.832
6, 0, 5, 0, 0, 0.836
6, 5, 5, 23, 0, 0.736
6, 5, 5, 0, 0, 0.732
4, 0, 5, 23, 0, 0.778
4, 0, 5, 0, 0, 0.779
4, 5, 5, 23, 0, 0.871
4, 5, 5, 0, 0, 0.87
6, 2048, 5, 23, 0, 0.713
6, 2048, 5, 0, 0, 0.702
6, 2053, 5, 23, 0, 0.611
6, 2053, 5, 0, 0, 0.632
4, 2048, 5, 23, 0, 0.667
4, 2048, 5, 0, 0, 0.667
4, 2053, 5, 23, 0, 0.746
4, 2053, 5, 0, 0, 0.745
4, 4081, 5, 23, 0, 0.746
4, 4081, 5, 0, 0, 0.744
6, 4081, 5, 23, 0, 0.584
6, 4081, 5, 0, 0, 0.602
6, 0, 1, 23, 0, 0.842
6, 0, 2, 0, 0, 0.848
7, 0, 6, 23, 0, 0.837
7, 0, 6, 0, 0, 0.838
7, 6, 6, 23, 0, 0.739
7, 6, 6, 0, 0, 0.721
5, 0, 6, 23, 0, 0.778
5, 0, 6, 0, 0, 0.777
5, 6, 6, 23, 0, 0.869
5, 6, 6, 0, 0, 0.869
7, 2048, 6, 23, 0, 0.719
7, 2048, 6, 0, 0, 0.699
7, 2054, 6, 23, 0, 0.618
7, 2054, 6, 0, 0, 0.621
5, 2048, 6, 23, 0, 0.667
5, 2048, 6, 0, 0, 0.667
5, 2054, 6, 23, 0, 0.747
5, 2054, 6, 0, 0, 0.75
5, 4081, 6, 23, 0, 0.745
5, 4081, 6, 0, 0, 0.743
7, 4081, 6, 23, 0, 0.586
7, 4081, 6, 0, 0, 0.572
7, 0, 1, 23, 0, 0.836
7, 0, 2, 0, 0, 0.848
8, 0, 7, 23, 0, 0.843
8, 0, 7, 0, 0, 0.827
8, 7, 7, 23, 0, 0.733
8, 7, 7, 0, 0, 0.744
6, 0, 7, 23, 0, 0.778
6, 0, 7, 0, 0, 0.781
6, 7, 7, 23, 0, 0.869
6, 7, 7, 0, 0, 0.872
8, 2048, 7, 23, 0, 0.717
8, 2048, 7, 0, 0, 0.703
8, 2055, 7, 23, 0, 0.608
8, 2055, 7, 0, 0, 0.608
6, 2048, 7, 23, 0, 0.667
6, 2048, 7, 0, 0, 0.669
6, 2055, 7, 23, 0, 0.749
6, 2055, 7, 0, 0, 0.748
6, 4081, 7, 23, 0, 0.742
6, 4081, 7, 0, 0, 0.745
8, 4081, 7, 23, 0, 0.602
8, 4081, 7, 0, 0, 0.59
8, 0, 1, 23, 0, 0.833
8, 0, 2, 0, 0, 0.837
9, 0, 8, 23, 0, 0.822
9, 0, 8, 0, 0, 0.824
9, 8, 8, 23, 0, 0.725
9, 8, 8, 0, 0, 0.734
7, 0, 8, 23, 0, 0.778
7, 0, 8, 0, 0, 0.778
7, 8, 8, 23, 0, 0.871
7, 8, 8, 0, 0, 0.873
9, 2048, 8, 23, 0, 0.709
9, 2048, 8, 0, 0, 0.713
9, 2056, 8, 23, 0, 0.616
9, 2056, 8, 0, 0, 0.616
7, 2048, 8, 23, 0, 0.667
7, 2048, 8, 0, 0, 0.668
7, 2056, 8, 23, 0, 0.749
7, 2056, 8, 0, 0, 0.747
7, 4081, 8, 23, 0, 0.744
7, 4081, 8, 0, 0, 0.742
9, 4081, 8, 23, 0, 0.581
9, 4081, 8, 0, 0, 0.591
9, 0, 1, 23, 0, 0.842
9, 0, 2, 0, 0, 0.83
10, 0, 9, 23, 0, 0.834
10, 0, 9, 0, 0, 0.851
10, 9, 9, 23, 0, 0.728
10, 9, 9, 0, 0, 0.726
8, 0, 9, 23, 0, 0.778
8, 0, 9, 0, 0, 0.776
8, 9, 9, 23, 0, 0.872
8, 9, 9, 0, 0, 0.868
10, 2048, 9, 23, 0, 0.697
10, 2048, 9, 0, 0, 0.712
10, 2057, 9, 23, 0, 0.605
10, 2057, 9, 0, 0, 0.61
8, 2048, 9, 23, 0, 0.667
8, 2048, 9, 0, 0, 0.667
8, 2057, 9, 23, 0, 0.744
8, 2057, 9, 0, 0, 0.745
8, 4081, 9, 23, 0, 0.745
8, 4081, 9, 0, 0, 0.743
10, 4081, 9, 23, 0, 0.57
10, 4081, 9, 0, 0, 0.593
10, 0, 1, 23, 0, 0.841
10, 0, 2, 0, 0, 0.841
11, 0, 10, 23, 0, 0.815
11, 0, 10, 0, 0, 0.834
11, 10, 10, 23, 0, 0.735
11, 10, 10, 0, 0, 0.73
9, 0, 10, 23, 0, 0.778
9, 0, 10, 0, 0, 0.779
9, 10, 10, 23, 0, 0.867
9, 10, 10, 0, 0, 0.87
11, 2048, 10, 23, 0, 0.707
11, 2048, 10, 0, 0, 0.697
11, 2058, 10, 23, 0, 0.614
11, 2058, 10, 0, 0, 0.616
9, 2048, 10, 23, 0, 0.667
9, 2048, 10, 0, 0, 0.666
9, 2058, 10, 23, 0, 0.744
9, 2058, 10, 0, 0, 0.744
9, 4081, 10, 23, 0, 0.745
9, 4081, 10, 0, 0, 0.744
11, 4081, 10, 23, 0, 0.59
11, 4081, 10, 0, 0, 0.588
11, 0, 1, 23, 0, 0.84
11, 0, 2, 0, 0, 0.837
12, 0, 11, 23, 0, 0.831
12, 0, 11, 0, 0, 0.831
12, 11, 11, 23, 0, 0.725
12, 11, 11, 0, 0, 0.737
10, 0, 11, 23, 0, 0.78
10, 0, 11, 0, 0, 0.778
10, 11, 11, 23, 0, 0.867
10, 11, 11, 0, 0, 0.87
12, 2048, 11, 23, 0, 0.715
12, 2048, 11, 0, 0, 0.723
12, 2059, 11, 23, 0, 0.623
12, 2059, 11, 0, 0, 0.613
10, 2048, 11, 23, 0, 0.668
10, 2048, 11, 0, 0, 0.667
10, 2059, 11, 23, 0, 0.743
10, 2059, 11, 0, 0, 0.743
10, 4081, 11, 23, 0, 0.744
10, 4081, 11, 0, 0, 0.743
12, 4081, 11, 23, 0, 0.605
12, 4081, 11, 0, 0, 0.586
12, 0, 1, 23, 0, 0.843
12, 0, 2, 0, 0, 0.846
13, 0, 12, 23, 0, 0.829
13, 0, 12, 0, 0, 0.832
13, 12, 12, 23, 0, 0.731
13, 12, 12, 0, 0, 0.727
11, 0, 12, 23, 0, 0.778
11, 0, 12, 0, 0, 0.777
11, 12, 12, 23, 0, 0.87
11, 12, 12, 0, 0, 0.87
13, 2048, 12, 23, 0, 0.714
13, 2048, 12, 0, 0, 0.713
13, 2060, 12, 23, 0, 0.618
13, 2060, 12, 0, 0, 0.614
11, 2048, 12, 23, 0, 0.667
11, 2048, 12, 0, 0, 0.667
11, 2060, 12, 23, 0, 0.744
11, 2060, 12, 0, 0, 0.744
11, 4081, 12, 23, 0, 0.744
11, 4081, 12, 0, 0, 0.743
13, 4081, 12, 23, 0, 0.586
13, 4081, 12, 0, 0, 0.589
13, 0, 1, 23, 0, 0.838
13, 0, 2, 0, 0, 0.83
14, 0, 13, 23, 0, 0.838
14, 0, 13, 0, 0, 0.843
14, 13, 13, 23, 0, 0.739
14, 13, 13, 0, 0, 0.728
12, 0, 13, 23, 0, 0.778
12, 0, 13, 0, 0, 0.778
12, 13, 13, 23, 0, 0.868
12, 13, 13, 0, 0, 0.866
14, 2048, 13, 23, 0, 0.706
14, 2048, 13, 0, 0, 0.719
14, 2061, 13, 23, 0, 0.626
14, 2061, 13, 0, 0, 0.626
12, 2048, 13, 23, 0, 0.667
12, 2048, 13, 0, 0, 0.667
12, 2061, 13, 23, 0, 0.744
12, 2061, 13, 0, 0, 0.742
12, 4081, 13, 23, 0, 0.745
12, 4081, 13, 0, 0, 0.743
14, 4081, 13, 23, 0, 0.601
14, 4081, 13, 0, 0, 0.582
14, 0, 1, 23, 0, 0.851
14, 0, 2, 0, 0, 0.839
15, 0, 14, 23, 0, 0.833
15, 0, 14, 0, 0, 0.815
15, 14, 14, 23, 0, 0.723
15, 14, 14, 0, 0, 0.719
13, 0, 14, 23, 0, 0.777
13, 0, 14, 0, 0, 0.779
13, 14, 14, 23, 0, 0.867
13, 14, 14, 0, 0, 0.867
15, 2048, 14, 23, 0, 0.701
15, 2048, 14, 0, 0, 0.718
15, 2062, 14, 23, 0, 0.628
15, 2062, 14, 0, 0, 0.622
13, 2048, 14, 23, 0, 0.667
13, 2048, 14, 0, 0, 0.667
13, 2062, 14, 23, 0, 0.743
13, 2062, 14, 0, 0, 0.743
13, 4081, 14, 23, 0, 0.744
13, 4081, 14, 0, 0, 0.741
15, 4081, 14, 23, 0, 0.568
15, 4081, 14, 0, 0, 0.562
15, 0, 1, 23, 0, 0.842
15, 0, 2, 0, 0, 0.841
16, 0, 15, 23, 0, 0.834
16, 0, 15, 0, 0, 0.831
16, 15, 15, 23, 0, 0.737
16, 15, 15, 0, 0, 0.715
14, 0, 15, 23, 0, 0.793
14, 0, 15, 0, 0, 0.792
14, 15, 15, 23, 0, 0.878
14, 15, 15, 0, 0, 0.876
16, 2048, 15, 23, 0, 0.702
16, 2048, 15, 0, 0, 0.697
16, 2063, 15, 23, 0, 0.615
16, 2063, 15, 0, 0, 0.622
14, 2048, 15, 23, 0, 0.689
14, 2048, 15, 0, 0, 0.688
14, 2063, 15, 23, 0, 0.76
14, 2063, 15, 0, 0, 0.759
14, 4081, 15, 23, 0, 0.756
14, 4081, 15, 0, 0, 0.763
16, 4081, 15, 23, 0, 0.887
16, 4081, 15, 0, 0, 0.888
16, 0, 1, 23, 0, 0.84
16, 0, 2, 0, 0, 0.848
17, 0, 16, 23, 0, 0.833
17, 0, 16, 0, 0, 0.845
17, 16, 16, 23, 0, 0.616
17, 16, 16, 0, 0, 0.603
15, 0, 16, 23, 0, 0.829
15, 0, 16, 0, 0, 0.829
15, 16, 16, 23, 0, 0.907
15, 16, 16, 0, 0, 0.909
17, 2048, 16, 23, 0, 0.71
17, 2048, 16, 0, 0, 0.69
17, 2064, 16, 23, 0, 0.615
17, 2064, 16, 0, 0, 0.588
15, 2048, 16, 23, 0, 0.686
15, 2048, 16, 0, 0, 0.687
15, 2064, 16, 23, 0, 0.755
15, 2064, 16, 0, 0, 0.756
15, 4081, 16, 23, 0, 0.76
15, 4081, 16, 0, 0, 0.755
17, 4081, 16, 23, 0, 0.889
17, 4081, 16, 0, 0, 0.889
17, 0, 1, 23, 0, 0.849
17, 0, 2, 0, 0, 0.855
18, 0, 17, 23, 0, 0.83
18, 0, 17, 0, 0, 0.826
18, 17, 17, 23, 0, 0.612
18, 17, 17, 0, 0, 0.597
16, 0, 17, 23, 0, 0.8
16, 0, 17, 0, 0, 0.805
16, 17, 17, 23, 0, 0.669
16, 17, 17, 0, 0, 0.669
18, 2048, 17, 23, 0, 0.707
18, 2048, 17, 0, 0, 0.71
18, 2065, 17, 23, 0, 0.607
18, 2065, 17, 0, 0, 0.588
16, 2048, 17, 23, 0, 0.687
16, 2048, 17, 0, 0, 0.686
16, 2065, 17, 23, 0, 0.669
16, 2065, 17, 0, 0, 0.67
16, 4081, 17, 23, 0, 0.986
16, 4081, 17, 0, 0, 0.982
18, 4081, 17, 23, 0, 0.889
18, 4081, 17, 0, 0, 0.889
18, 0, 1, 23, 0, 0.857
18, 0, 2, 0, 0, 0.853
19, 0, 18, 23, 0, 0.842
19, 0, 18, 0, 0, 0.817
19, 18, 18, 23, 0, 0.599
19, 18, 18, 0, 0, 0.593
17, 0, 18, 23, 0, 0.795
17, 0, 18, 0, 0, 0.8
17, 18, 18, 23, 0, 0.67
17, 18, 18, 0, 0, 0.669
19, 2048, 18, 23, 0, 0.707
19, 2048, 18, 0, 0, 0.704
19, 2066, 18, 23, 0, 0.588
19, 2066, 18, 0, 0, 0.611
17, 2048, 18, 23, 0, 0.687
17, 2048, 18, 0, 0, 0.686
17, 2066, 18, 23, 0, 0.67
17, 2066, 18, 0, 0, 0.671
17, 4081, 18, 23, 0, 0.982
17, 4081, 18, 0, 0, 0.98
19, 4081, 18, 23, 0, 0.889
19, 4081, 18, 0, 0, 0.889
19, 0, 1, 23, 0, 0.844
19, 0, 2, 0, 0, 0.847
20, 0, 19, 23, 0, 0.83
20, 0, 19, 0, 0, 0.836
20, 19, 19, 23, 0, 0.588
20, 19, 19, 0, 0, 0.61
18, 0, 19, 23, 0, 0.829
18, 0, 19, 0, 0, 0.835
18, 19, 19, 23, 0, 0.669
18, 19, 19, 0, 0, 0.67
20, 2048, 19, 23, 0, 0.691
20, 2048, 19, 0, 0, 0.707
20, 2067, 19, 23, 0, 0.626
20, 2067, 19, 0, 0, 0.611
18, 2048, 19, 23, 0, 0.686
18, 2048, 19, 0, 0, 0.687
18, 2067, 19, 23, 0, 0.669
18, 2067, 19, 0, 0, 0.669
18, 4081, 19, 23, 0, 0.982
18, 4081, 19, 0, 0, 0.98
20, 4081, 19, 23, 0, 0.889
20, 4081, 19, 0, 0, 0.889
20, 0, 1, 23, 0, 0.85
20, 0, 2, 0, 0, 0.838
21, 0, 20, 23, 0, 0.839
21, 0, 20, 0, 0, 0.824
21, 20, 20, 23, 0, 0.593
21, 20, 20, 0, 0, 0.612
19, 0, 20, 23, 0, 0.833
19, 0, 20, 0, 0, 0.83
19, 20, 20, 23, 0, 0.669
19, 20, 20, 0, 0, 0.669
21, 2048, 20, 23, 0, 0.7
21, 2048, 20, 0, 0, 0.72
21, 2068, 20, 23, 0, 0.611
21, 2068, 20, 0, 0, 0.597
19, 2048, 20, 23, 0, 0.687
19, 2048, 20, 0, 0, 0.687
19, 2068, 20, 23, 0, 0.669
19, 2068, 20, 0, 0, 0.668
19, 4081, 20, 23, 0, 0.98
19, 4081, 20, 0, 0, 0.98
21, 4081, 20, 23, 0, 0.889
21, 4081, 20, 0, 0, 0.889
21, 0, 1, 23, 0, 0.856
21, 0, 2, 0, 0, 0.845
22, 0, 21, 23, 0, 0.833
22, 0, 21, 0, 0, 0.83
22, 21, 21, 23, 0, 0.607
22, 21, 21, 0, 0, 0.602
20, 0, 21, 23, 0, 0.807
20, 0, 21, 0, 0, 0.807
20, 21, 21, 23, 0, 0.666
20, 21, 21, 0, 0, 0.669
22, 2048, 21, 23, 0, 0.71
22, 2048, 21, 0, 0, 0.723
22, 2069, 21, 23, 0, 0.602
22, 2069, 21, 0, 0, 0.597
20, 2048, 21, 23, 0, 0.688
20, 2048, 21, 0, 0, 0.689
20, 2069, 21, 23, 0, 0.67
20, 2069, 21, 0, 0, 0.668
20, 4081, 21, 23, 0, 0.982
20, 4081, 21, 0, 0, 0.983
22, 4081, 21, 23, 0, 0.889
22, 4081, 21, 0, 0, 0.889
22, 0, 1, 23, 0, 0.851
22, 0, 2, 0, 0, 0.837
23, 0, 22, 23, 0, 0.833
23, 0, 22, 0, 0, 0.834
23, 22, 22, 23, 0, 0.626
23, 22, 22, 0, 0, 0.603
21, 0, 22, 23, 0, 0.828
21, 0, 22, 0, 0, 0.823
21, 22, 22, 23, 0, 0.67
21, 22, 22, 0, 0, 0.669
23, 2048, 22, 23, 0, 0.71
23, 2048, 22, 0, 0, 0.713
23, 2070, 22, 23, 0, 0.611
23, 2070, 22, 0, 0, 0.607
21, 2048, 22, 23, 0, 0.687
21, 2048, 22, 0, 0, 0.687
21, 2070, 22, 23, 0, 0.67
21, 2070, 22, 0, 0, 0.67
21, 4081, 22, 23, 0, 0.981
21, 4081, 22, 0, 0, 0.981
23, 4081, 22, 23, 0, 0.889
23, 4081, 22, 0, 0, 0.889
23, 0, 1, 23, 0, 0.852
23, 0, 2, 0, 0, 0.856
24, 0, 23, 23, 0, 0.83
24, 0, 23, 0, 0, 0.852
24, 23, 23, 23, 0, 0.595
24, 23, 23, 0, 0, 0.597
22, 0, 23, 23, 0, 0.846
22, 0, 23, 0, 0, 0.847
22, 23, 23, 23, 0, 0.673
22, 23, 23, 0, 0, 0.673
24, 2048, 23, 23, 0, 0.691
24, 2048, 23, 0, 0, 0.694
24, 2071, 23, 23, 0, 0.611
24, 2071, 23, 0, 0, 0.593
22, 2048, 23, 23, 0, 0.688
22, 2048, 23, 0, 0, 0.692
22, 2071, 23, 23, 0, 0.675
22, 2071, 23, 0, 0, 0.673
22, 4081, 23, 23, 0, 0.982
22, 4081, 23, 0, 0, 0.981
24, 4081, 23, 23, 0, 0.889
24, 4081, 23, 0, 0, 0.889
24, 0, 1, 23, 0, 0.84
24, 0, 2, 0, 0, 0.853
25, 0, 24, 23, 0, 0.823
25, 0, 24, 0, 0, 0.83
25, 24, 24, 23, 0, 0.593
25, 24, 24, 0, 0, 0.597
23, 0, 24, 23, 0, 0.815
23, 0, 24, 0, 0, 0.815
23, 24, 24, 23, 0, 0.669
23, 24, 24, 0, 0, 0.672
25, 2048, 24, 23, 0, 0.694
25, 2048, 24, 0, 0, 0.716
25, 2072, 24, 23, 0, 0.621
25, 2072, 24, 0, 0, 0.597
23, 2048, 24, 23, 0, 0.689
23, 2048, 24, 0, 0, 0.689
23, 2072, 24, 23, 0, 0.67
23, 2072, 24, 0, 0, 0.675
23, 4081, 24, 23, 0, 0.98
23, 4081, 24, 0, 0, 0.983
25, 4081, 24, 23, 0, 0.889
25, 4081, 24, 0, 0, 0.889
25, 0, 1, 23, 0, 0.847
25, 0, 2, 0, 0, 0.851
26, 0, 25, 23, 0, 0.825
26, 0, 25, 0, 0, 0.842
26, 25, 25, 23, 0, 0.616
26, 25, 25, 0, 0, 0.626
24, 0, 25, 23, 0, 0.817
24, 0, 25, 0, 0, 0.814
24, 25, 25, 23, 0, 0.676
24, 25, 25, 0, 0, 0.673
26, 2048, 25, 23, 0, 0.707
26, 2048, 25, 0, 0, 0.707
26, 2073, 25, 23, 0, 0.607
26, 2073, 25, 0, 0, 0.593
24, 2048, 25, 23, 0, 0.686
24, 2048, 25, 0, 0, 0.691
24, 2073, 25, 23, 0, 0.672
24, 2073, 25, 0, 0, 0.673
24, 4081, 25, 23, 0, 0.981
24, 4081, 25, 0, 0, 0.977
26, 4081, 25, 23, 0, 0.889
26, 4081, 25, 0, 0, 0.889
26, 0, 1, 23, 0, 0.842
26, 0, 2, 0, 0, 0.85
27, 0, 26, 23, 0, 0.83
27, 0, 26, 0, 0, 0.848
27, 26, 26, 23, 0, 0.607
27, 26, 26, 0, 0, 0.612
25, 0, 26, 23, 0, 0.828
25, 0, 26, 0, 0, 0.826
25, 26, 26, 23, 0, 0.675
25, 26, 26, 0, 0, 0.672
27, 2048, 26, 23, 0, 0.7
27, 2048, 26, 0, 0, 0.7
27, 2074, 26, 23, 0, 0.616
27, 2074, 26, 0, 0, 0.599
25, 2048, 26, 23, 0, 0.691
25, 2048, 26, 0, 0, 0.694
25, 2074, 26, 23, 0, 0.67
25, 2074, 26, 0, 0, 0.672
25, 4081, 26, 23, 0, 0.979
25, 4081, 26, 0, 0, 0.985
27, 4081, 26, 23, 0, 0.889
27, 4081, 26, 0, 0, 0.889
27, 0, 1, 23, 0, 0.854
27, 0, 2, 0, 0, 0.853
28, 0, 27, 23, 0, 0.827
28, 0, 27, 0, 0, 0.845
28, 27, 27, 23, 0, 0.583
28, 27, 27, 0, 0, 0.585
26, 0, 27, 23, 0, 0.844
26, 0, 27, 0, 0, 0.829
26, 27, 27, 23, 0, 0.673
26, 27, 27, 0, 0, 0.671
28, 2048, 27, 23, 0, 0.697
28, 2048, 27, 0, 0, 0.713
28, 2075, 27, 23, 0, 0.602
28, 2075, 27, 0, 0, 0.602
26, 2048, 27, 23, 0, 0.688
26, 2048, 27, 0, 0, 0.692
26, 2075, 27, 23, 0, 0.673
26, 2075, 27, 0, 0, 0.67
26, 4081, 27, 23, 0, 0.98
26, 4081, 27, 0, 0, 0.977
28, 4081, 27, 23, 0, 0.889
28, 4081, 27, 0, 0, 0.889
28, 0, 1, 23, 0, 0.837
28, 0, 2, 0, 0, 0.839
29, 0, 28, 23, 0, 0.811
29, 0, 28, 0, 0, 0.843
29, 28, 28, 23, 0, 0.618
29, 28, 28, 0, 0, 0.626
27, 0, 28, 23, 0, 0.839
27, 0, 28, 0, 0, 0.832
27, 28, 28, 23, 0, 0.674
27, 28, 28, 0, 0, 0.671
29, 2048, 28, 23, 0, 0.694
29, 2048, 28, 0, 0, 0.7
29, 2076, 28, 23, 0, 0.583
29, 2076, 28, 0, 0, 0.618
27, 2048, 28, 23, 0, 0.689
27, 2048, 28, 0, 0, 0.692
27, 2076, 28, 23, 0, 0.67
27, 2076, 28, 0, 0, 0.678
27, 4081, 28, 23, 0, 0.982
27, 4081, 28, 0, 0, 0.978
29, 4081, 28, 23, 0, 0.889
29, 4081, 28, 0, 0, 0.889
29, 0, 1, 23, 0, 0.849
29, 0, 2, 0, 0, 0.843
30, 0, 29, 23, 0, 0.827
30, 0, 29, 0, 0, 0.829
30, 29, 29, 23, 0, 0.616
30, 29, 29, 0, 0, 0.616
28, 0, 29, 23, 0, 0.847
28, 0, 29, 0, 0, 0.85
28, 29, 29, 23, 0, 0.676
28, 29, 29, 0, 0, 0.672
30, 2048, 29, 23, 0, 0.71
30, 2048, 29, 0, 0, 0.707
30, 2077, 29, 23, 0, 0.621
30, 2077, 29, 0, 0, 0.583
28, 2048, 29, 23, 0, 0.69
28, 2048, 29, 0, 0, 0.687
28, 2077, 29, 23, 0, 0.668
28, 2077, 29, 0, 0, 0.666
28, 4081, 29, 23, 0, 0.977
28, 4081, 29, 0, 0, 0.974
30, 4081, 29, 23, 0, 0.887
30, 4081, 29, 0, 0, 0.887
30, 0, 1, 23, 0, 0.854
30, 0, 2, 0, 0, 0.852
31, 0, 30, 23, 0, 0.828
31, 0, 30, 0, 0, 0.837
31, 30, 30, 23, 0, 0.586
31, 30, 30, 0, 0, 0.6
29, 0, 30, 23, 0, 0.852
29, 0, 30, 0, 0, 0.85
29, 30, 30, 23, 0, 0.667
29, 30, 30, 0, 0, 0.673
31, 2048, 30, 23, 0, 0.727
31, 2048, 30, 0, 0, 0.695
31, 2078, 30, 23, 0, 0.614
31, 2078, 30, 0, 0, 0.599
29, 2048, 30, 23, 0, 0.687
29, 2048, 30, 0, 0, 0.684
29, 2078, 30, 23, 0, 0.668
29, 2078, 30, 0, 0, 0.664
29, 4081, 30, 23, 0, 0.967
29, 4081, 30, 0, 0, 0.97
31, 4081, 30, 23, 0, 0.884
31, 4081, 30, 0, 0, 0.884
31, 0, 1, 23, 0, 0.837
31, 0, 2, 0, 0, 0.847
32, 0, 31, 23, 0, 0.841
32, 0, 31, 0, 0, 0.827
32, 31, 31, 23, 0, 0.585
32, 31, 31, 0, 0, 0.604
30, 0, 31, 23, 0, 0.848
30, 0, 31, 0, 0, 0.838
30, 31, 31, 23, 0, 0.663
30, 31, 31, 0, 0, 0.671
32, 2048, 31, 23, 0, 0.658
32, 2048, 31, 0, 0, 0.689
32, 2079, 31, 23, 0, 0.585
32, 2079, 31, 0, 0, 0.584
30, 2048, 31, 23, 0, 0.682
30, 2048, 31, 0, 0, 0.691
30, 2079, 31, 23, 0, 0.673
30, 2079, 31, 0, 0, 0.67
30, 4081, 31, 23, 0, 0.97
30, 4081, 31, 0, 0, 0.976
32, 4081, 31, 23, 0, 0.882
32, 4081, 31, 0, 0, 0.881
32, 0, 1, 23, 0, 0.855
32, 0, 2, 0, 0, 0.856
2048, 0, 32, 23, 1, 1.142
256, 1, 64, 23, 1, 0.857
2048, 0, 32, 0, 1, 1.134
256, 1, 64, 0, 1, 0.854
256, 4081, 64, 0, 1, 0.868
256, 0, 1, 23, 1, 1.155
256, 0, 1, 0, 1, 1.157
256, 1, 1, 23, 1, 1.157
256, 1, 1, 0, 1, 1.158
2048, 0, 64, 23, 1, 1.122
256, 2, 64, 23, 1, 0.863
2048, 0, 64, 0, 1, 1.118
256, 2, 64, 0, 1, 0.857
256, 0, 2, 23, 1, 1.161
256, 0, 2, 0, 1, 1.161
256, 2, 2, 23, 1, 1.16
256, 2, 2, 0, 1, 1.161
2048, 0, 128, 23, 1, 1.091
256, 3, 64, 23, 1, 0.867
2048, 0, 128, 0, 1, 1.081
256, 3, 64, 0, 1, 0.867
256, 0, 3, 23, 1, 1.165
256, 0, 3, 0, 1, 1.166
256, 3, 3, 23, 1, 1.167
256, 3, 3, 0, 1, 1.167
2048, 0, 256, 23, 1, 0.917
256, 4, 64, 23, 1, 0.866
2048, 0, 256, 0, 1, 0.917
256, 4, 64, 0, 1, 0.884
256, 0, 4, 23, 1, 1.167
256, 0, 4, 0, 1, 1.167
256, 4, 4, 23, 1, 1.167
256, 4, 4, 0, 1, 1.167
2048, 0, 512, 23, 1, 0.928
256, 5, 64, 23, 1, 0.884
2048, 0, 512, 0, 1, 0.926
256, 5, 64, 0, 1, 0.876
256, 0, 5, 23, 1, 1.167
256, 0, 5, 0, 1, 1.167
256, 5, 5, 23, 1, 1.167
256, 5, 5, 0, 1, 1.167
2048, 0, 1024, 23, 1, 1.004
256, 6, 64, 23, 1, 0.869
2048, 0, 1024, 0, 1, 1.001
256, 6, 64, 0, 1, 0.877
256, 0, 6, 23, 1, 1.167
256, 0, 6, 0, 1, 1.167
256, 6, 6, 23, 1, 1.167
256, 6, 6, 0, 1, 1.167
2048, 0, 2048, 23, 1, 0.962
256, 7, 64, 23, 1, 0.897
2048, 0, 2048, 0, 1, 0.946
256, 7, 64, 0, 1, 0.873
256, 0, 7, 23, 1, 1.165
256, 0, 7, 0, 1, 1.165
256, 7, 7, 23, 1, 1.165
256, 7, 7, 0, 1, 1.165
192, 1, 32, 23, 1, 1.155
192, 1, 32, 0, 1, 1.153
256, 1, 32, 23, 1, 1.151
256, 1, 32, 0, 1, 1.159
512, 1, 32, 23, 1, 1.159
512, 1, 32, 0, 1, 1.156
256, 4081, 32, 23, 1, 1.152
192, 2, 64, 23, 1, 0.882
192, 2, 64, 0, 1, 0.869
512, 2, 64, 23, 1, 0.877
512, 2, 64, 0, 1, 0.859
256, 4081, 64, 23, 1, 0.875
192, 3, 96, 23, 1, 0.928
192, 3, 96, 0, 1, 0.936
256, 3, 96, 23, 1, 0.923
256, 3, 96, 0, 1, 0.918
512, 3, 96, 23, 1, 0.93
512, 3, 96, 0, 1, 0.914
256, 4081, 96, 23, 1, 0.933
192, 4, 128, 23, 1, 0.917
192, 4, 128, 0, 1, 0.918
256, 4, 128, 23, 1, 0.913
256, 4, 128, 0, 1, 0.919
512, 4, 128, 23, 1, 0.916
512, 4, 128, 0, 1, 0.916
256, 4081, 128, 23, 1, 0.925
192, 5, 160, 23, 1, 0.657
192, 5, 160, 0, 1, 0.65
256, 5, 160, 23, 1, 0.842
256, 5, 160, 0, 1, 0.832
512, 5, 160, 23, 1, 0.89
512, 5, 160, 0, 1, 0.892
256, 4081, 160, 23, 1, 0.642
192, 6, 192, 23, 1, 0.701
192, 6, 192, 0, 1, 0.701
256, 6, 192, 23, 1, 0.819
256, 6, 192, 0, 1, 0.815
512, 6, 192, 23, 1, 0.863
512, 6, 192, 0, 1, 0.867
256, 4081, 192, 23, 1, 0.645
192, 7, 224, 23, 1, 0.702
192, 7, 224, 0, 1, 0.699
256, 7, 224, 23, 1, 0.803
256, 7, 224, 0, 1, 0.801
512, 7, 224, 23, 1, 0.882
512, 7, 224, 0, 1, 0.882
256, 4081, 224, 23, 1, 0.719
2, 0, 1, 23, 1, 0.809
2, 0, 1, 0, 1, 0.836
2, 1, 1, 23, 1, 0.726
2, 1, 1, 0, 1, 0.733
0, 0, 1, 23, 1, 0.854
0, 0, 1, 0, 1, 0.854
0, 1, 1, 23, 1, 0.854
0, 1, 1, 0, 1, 0.854
2, 2048, 1, 23, 1, 0.705
2, 2048, 1, 0, 1, 0.698
2, 2049, 1, 23, 1, 0.616
2, 2049, 1, 0, 1, 0.613
0, 2048, 1, 23, 1, 0.854
0, 2048, 1, 0, 1, 0.854
0, 2049, 1, 23, 1, 0.854
0, 2049, 1, 0, 1, 0.854
0, 4081, 1, 23, 1, 0.855
0, 4081, 1, 0, 1, 0.854
2, 4081, 1, 23, 1, 0.576
2, 4081, 1, 0, 1, 0.614
2, 0, 2, 0, 1, 0.858
3, 0, 2, 23, 1, 0.83
3, 0, 2, 0, 1, 0.821
3, 2, 2, 23, 1, 0.74
3, 2, 2, 0, 1, 0.712
1, 0, 2, 23, 1, 0.846
1, 0, 2, 0, 1, 0.838
1, 2, 2, 23, 1, 0.933
1, 2, 2, 0, 1, 0.935
3, 2048, 2, 23, 1, 0.701
3, 2048, 2, 0, 1, 0.704
3, 2050, 2, 23, 1, 0.621
3, 2050, 2, 0, 1, 0.625
1, 2048, 2, 23, 1, 0.665
1, 2048, 2, 0, 1, 0.664
1, 2050, 2, 23, 1, 0.741
1, 2050, 2, 0, 1, 0.741
1, 4081, 2, 23, 1, 0.741
1, 4081, 2, 0, 1, 0.741
3, 4081, 2, 23, 1, 0.59
3, 4081, 2, 0, 1, 0.59
3, 0, 1, 23, 1, 0.836
4, 0, 3, 23, 1, 0.831
4, 0, 3, 0, 1, 0.831
4, 3, 3, 23, 1, 0.741
4, 3, 3, 0, 1, 0.719
2, 0, 3, 23, 1, 0.815
2, 0, 3, 0, 1, 0.816
2, 3, 3, 23, 1, 0.919
2, 3, 3, 0, 1, 0.921
4, 2048, 3, 23, 1, 0.714
4, 2048, 3, 0, 1, 0.711
4, 2051, 3, 23, 1, 0.611
4, 2051, 3, 0, 1, 0.614
2, 2048, 3, 23, 1, 0.664
2, 2048, 3, 0, 1, 0.664
2, 2051, 3, 23, 1, 0.743
2, 2051, 3, 0, 1, 0.744
2, 4081, 3, 23, 1, 0.744
2, 4081, 3, 0, 1, 0.744
4, 4081, 3, 23, 1, 0.613
4, 4081, 3, 0, 1, 0.601
4, 0, 1, 23, 1, 0.838
4, 0, 2, 0, 1, 0.82
5, 0, 4, 23, 1, 0.831
5, 0, 4, 0, 1, 0.836
5, 4, 4, 23, 1, 0.742
5, 4, 4, 0, 1, 0.731
3, 0, 4, 23, 1, 0.792
3, 0, 4, 0, 1, 0.788
3, 4, 4, 23, 1, 0.878
3, 4, 4, 0, 1, 0.878
5, 2048, 4, 23, 1, 0.687
5, 2048, 4, 0, 1, 0.71
5, 2052, 4, 23, 1, 0.618
5, 2052, 4, 0, 1, 0.615
3, 2048, 4, 23, 1, 0.666
3, 2048, 4, 0, 1, 0.665
3, 2052, 4, 23, 1, 0.743
3, 2052, 4, 0, 1, 0.745
3, 4081, 4, 23, 1, 0.744
3, 4081, 4, 0, 1, 0.744
5, 4081, 4, 23, 1, 0.586
5, 4081, 4, 0, 1, 0.591
5, 0, 1, 23, 1, 0.824
5, 0, 2, 0, 1, 0.841
6, 0, 5, 23, 1, 0.832
6, 0, 5, 0, 1, 0.849
6, 5, 5, 23, 1, 0.73
6, 5, 5, 0, 1, 0.736
4, 0, 5, 23, 1, 0.778
4, 0, 5, 0, 1, 0.778
4, 5, 5, 23, 1, 0.868
4, 5, 5, 0, 1, 0.868
6, 2048, 5, 23, 1, 0.727
6, 2048, 5, 0, 1, 0.71
6, 2053, 5, 23, 1, 0.604
6, 2053, 5, 0, 1, 0.624
4, 2048, 5, 23, 1, 0.667
4, 2048, 5, 0, 1, 0.667
4, 2053, 5, 23, 1, 0.744
4, 2053, 5, 0, 1, 0.744
4, 4081, 5, 23, 1, 0.743
4, 4081, 5, 0, 1, 0.743
6, 4081, 5, 23, 1, 0.606
6, 4081, 5, 0, 1, 0.601
6, 0, 1, 23, 1, 0.822
6, 0, 2, 0, 1, 0.819
7, 0, 6, 23, 1, 0.842
7, 0, 6, 0, 1, 0.856
7, 6, 6, 23, 1, 0.743
7, 6, 6, 0, 1, 0.743
5, 0, 6, 23, 1, 0.777
5, 0, 6, 0, 1, 0.777
5, 6, 6, 23, 1, 0.867
5, 6, 6, 0, 1, 0.867
7, 2048, 6, 23, 1, 0.706
7, 2048, 6, 0, 1, 0.704
7, 2054, 6, 23, 1, 0.617
7, 2054, 6, 0, 1, 0.617
5, 2048, 6, 23, 1, 0.666
5, 2048, 6, 0, 1, 0.666
5, 2054, 6, 23, 1, 0.743
5, 2054, 6, 0, 1, 0.743
5, 4081, 6, 23, 1, 0.743
5, 4081, 6, 0, 1, 0.743
7, 4081, 6, 23, 1, 0.592
7, 4081, 6, 0, 1, 0.592
7, 0, 1, 23, 1, 0.835
7, 0, 2, 0, 1, 0.829
8, 0, 7, 23, 1, 0.851
8, 0, 7, 0, 1, 0.831
8, 7, 7, 23, 1, 0.731
8, 7, 7, 0, 1, 0.723
6, 0, 7, 23, 1, 0.778
6, 0, 7, 0, 1, 0.778
6, 7, 7, 23, 1, 0.868
6, 7, 7, 0, 1, 0.867
8, 2048, 7, 23, 1, 0.71
8, 2048, 7, 0, 1, 0.713
8, 2055, 7, 23, 1, 0.62
8, 2055, 7, 0, 1, 0.621
6, 2048, 7, 23, 1, 0.667
6, 2048, 7, 0, 1, 0.667
6, 2055, 7, 23, 1, 0.744
6, 2055, 7, 0, 1, 0.744
6, 4081, 7, 23, 1, 0.744
6, 4081, 7, 0, 1, 0.744
8, 4081, 7, 23, 1, 0.578
8, 4081, 7, 0, 1, 0.59
8, 0, 1, 23, 1, 0.833
8, 0, 2, 0, 1, 0.822
9, 0, 8, 23, 1, 0.836
9, 0, 8, 0, 1, 0.817
9, 8, 8, 23, 1, 0.729
9, 8, 8, 0, 1, 0.715
7, 0, 8, 23, 1, 0.778
7, 0, 8, 0, 1, 0.778
7, 8, 8, 23, 1, 0.867
7, 8, 8, 0, 1, 0.868
9, 2048, 8, 23, 1, 0.697
9, 2048, 8, 0, 1, 0.697
9, 2056, 8, 23, 1, 0.621
9, 2056, 8, 0, 1, 0.621
7, 2048, 8, 23, 1, 0.667
7, 2048, 8, 0, 1, 0.667
7, 2056, 8, 23, 1, 0.744
7, 2056, 8, 0, 1, 0.744
7, 4081, 8, 23, 1, 0.744
7, 4081, 8, 0, 1, 0.744
9, 4081, 8, 23, 1, 0.611
9, 4081, 8, 0, 1, 0.605
9, 0, 1, 23, 1, 0.83
9, 0, 2, 0, 1, 0.839
10, 0, 9, 23, 1, 0.849
10, 0, 9, 0, 1, 0.836
10, 9, 9, 23, 1, 0.732
10, 9, 9, 0, 1, 0.717
8, 0, 9, 23, 1, 0.778
8, 0, 9, 0, 1, 0.778
8, 9, 9, 23, 1, 0.867
8, 9, 9, 0, 1, 0.868
10, 2048, 9, 23, 1, 0.697
10, 2048, 9, 0, 1, 0.697
10, 2057, 9, 23, 1, 0.63
10, 2057, 9, 0, 1, 0.612
8, 2048, 9, 23, 1, 0.667
8, 2048, 9, 0, 1, 0.667
8, 2057, 9, 23, 1, 0.744
8, 2057, 9, 0, 1, 0.744
8, 4081, 9, 23, 1, 0.744
8, 4081, 9, 0, 1, 0.744
10, 4081, 9, 23, 1, 0.597
10, 4081, 9, 0, 1, 0.597
10, 0, 1, 23, 1, 0.848
10, 0, 2, 0, 1, 0.826
11, 0, 10, 23, 1, 0.849
11, 0, 10, 0, 1, 0.833
11, 10, 10, 23, 1, 0.725
11, 10, 10, 0, 1, 0.723
9, 0, 10, 23, 1, 0.778
9, 0, 10, 0, 1, 0.778
9, 10, 10, 23, 1, 0.868
9, 10, 10, 0, 1, 0.868
11, 2048, 10, 23, 1, 0.713
11, 2048, 10, 0, 1, 0.71
11, 2058, 10, 23, 1, 0.627
11, 2058, 10, 0, 1, 0.621
9, 2048, 10, 23, 1, 0.667
9, 2048, 10, 0, 1, 0.667
9, 2058, 10, 23, 1, 0.744
9, 2058, 10, 0, 1, 0.744
9, 4081, 10, 23, 1, 0.744
9, 4081, 10, 0, 1, 0.744
11, 4081, 10, 23, 1, 0.612
11, 4081, 10, 0, 1, 0.612
11, 0, 1, 23, 1, 0.836
11, 0, 2, 0, 1, 0.839
12, 0, 11, 23, 1, 0.846
12, 0, 11, 0, 1, 0.833
12, 11, 11, 23, 1, 0.72
12, 11, 11, 0, 1, 0.731
10, 0, 11, 23, 1, 0.778
10, 0, 11, 0, 1, 0.778
10, 11, 11, 23, 1, 0.867
10, 11, 11, 0, 1, 0.868
12, 2048, 11, 23, 1, 0.71
12, 2048, 11, 0, 1, 0.707
12, 2059, 11, 23, 1, 0.621
12, 2059, 11, 0, 1, 0.632
10, 2048, 11, 23, 1, 0.667
10, 2048, 11, 0, 1, 0.667
10, 2059, 11, 23, 1, 0.744
10, 2059, 11, 0, 1, 0.743
10, 4081, 11, 23, 1, 0.744
10, 4081, 11, 0, 1, 0.744
12, 4081, 11, 23, 1, 0.592
12, 4081, 11, 0, 1, 0.583
12, 0, 1, 23, 1, 0.849
12, 0, 2, 0, 1, 0.843
13, 0, 12, 23, 1, 0.846
13, 0, 12, 0, 1, 0.833
13, 12, 12, 23, 1, 0.743
13, 12, 12, 0, 1, 0.731
11, 0, 12, 23, 1, 0.778
11, 0, 12, 0, 1, 0.778
11, 12, 12, 23, 1, 0.867
11, 12, 12, 0, 1, 0.868
13, 2048, 12, 23, 1, 0.71
13, 2048, 12, 0, 1, 0.703
13, 2060, 12, 23, 1, 0.624
13, 2060, 12, 0, 1, 0.627
11, 2048, 12, 23, 1, 0.667
11, 2048, 12, 0, 1, 0.667
11, 2060, 12, 23, 1, 0.744
11, 2060, 12, 0, 1, 0.744
11, 4081, 12, 23, 1, 0.744
11, 4081, 12, 0, 1, 0.744
13, 4081, 12, 23, 1, 0.606
13, 4081, 12, 0, 1, 0.597
13, 0, 1, 23, 1, 0.836
13, 0, 2, 0, 1, 0.82
14, 0, 13, 23, 1, 0.849
14, 0, 13, 0, 1, 0.837
14, 13, 13, 23, 1, 0.743
14, 13, 13, 0, 1, 0.749
12, 0, 13, 23, 1, 0.778
12, 0, 13, 0, 1, 0.778
12, 13, 13, 23, 1, 0.868
12, 13, 13, 0, 1, 0.868
14, 2048, 13, 23, 1, 0.724
14, 2048, 13, 0, 1, 0.731
14, 2061, 13, 23, 1, 0.648
14, 2061, 13, 0, 1, 0.648
12, 2048, 13, 23, 1, 0.667
12, 2048, 13, 0, 1, 0.667
12, 2061, 13, 23, 1, 0.744
12, 2061, 13, 0, 1, 0.744
12, 4081, 13, 23, 1, 0.744
12, 4081, 13, 0, 1, 0.745
14, 4081, 13, 23, 1, 0.6
14, 4081, 13, 0, 1, 0.628
14, 0, 1, 23, 1, 0.836
14, 0, 2, 0, 1, 0.836
15, 0, 14, 23, 1, 0.848
15, 0, 14, 0, 1, 0.847
15, 14, 14, 23, 1, 0.747
15, 14, 14, 0, 1, 0.742
13, 0, 14, 23, 1, 0.778
13, 0, 14, 0, 1, 0.778
13, 14, 14, 23, 1, 0.868
13, 14, 14, 0, 1, 0.868
15, 2048, 14, 23, 1, 0.731
15, 2048, 14, 0, 1, 0.735
15, 2062, 14, 23, 1, 0.648
15, 2062, 14, 0, 1, 0.649
13, 2048, 14, 23, 1, 0.667
13, 2048, 14, 0, 1, 0.667
13, 2062, 14, 23, 1, 0.744
13, 2062, 14, 0, 1, 0.744
13, 4081, 14, 23, 1, 0.744
13, 4081, 14, 0, 1, 0.744
15, 4081, 14, 23, 1, 0.645
15, 4081, 14, 0, 1, 0.627
15, 0, 1, 23, 1, 0.842
15, 0, 2, 0, 1, 0.83
16, 0, 15, 23, 1, 0.858
16, 0, 15, 0, 1, 0.849
16, 15, 15, 23, 1, 0.763
16, 15, 15, 0, 1, 0.745
14, 0, 15, 23, 1, 0.793
14, 0, 15, 0, 1, 0.792
14, 15, 15, 23, 1, 0.875
14, 15, 15, 0, 1, 0.878
16, 2048, 15, 23, 1, 0.73
16, 2048, 15, 0, 1, 0.737
16, 2063, 15, 23, 1, 0.647
16, 2063, 15, 0, 1, 0.633
14, 2048, 15, 23, 1, 0.69
14, 2048, 15, 0, 1, 0.693
14, 2063, 15, 23, 1, 0.759
14, 2063, 15, 0, 1, 0.765
14, 4081, 15, 23, 1, 0.756
14, 4081, 15, 0, 1, 0.76
16, 4081, 15, 23, 1, 0.9
16, 4081, 15, 0, 1, 0.886
16, 0, 1, 23, 1, 0.84
16, 0, 2, 0, 1, 0.831
17, 0, 16, 23, 1, 0.849
17, 0, 16, 0, 1, 0.842
17, 16, 16, 23, 1, 0.562
17, 16, 16, 0, 1, 0.562
15, 0, 16, 23, 1, 0.795
15, 0, 16, 0, 1, 0.795
15, 16, 16, 23, 1, 0.878
15, 16, 16, 0, 1, 0.874
17, 2048, 16, 23, 1, 0.718
17, 2048, 16, 0, 1, 0.731
17, 2064, 16, 23, 1, 0.558
17, 2064, 16, 0, 1, 0.551
15, 2048, 16, 23, 1, 0.69
15, 2048, 16, 0, 1, 0.689
15, 2064, 16, 23, 1, 0.758
15, 2064, 16, 0, 1, 0.759
15, 4081, 16, 23, 1, 0.762
15, 4081, 16, 0, 1, 0.761
17, 4081, 16, 23, 1, 0.89
17, 4081, 16, 0, 1, 0.889
17, 0, 1, 23, 1, 0.824
17, 0, 2, 0, 1, 0.834
18, 0, 17, 23, 1, 0.86
18, 0, 17, 0, 1, 0.849
18, 17, 17, 23, 1, 0.55
18, 17, 17, 0, 1, 0.564
16, 0, 17, 23, 1, 0.794
16, 0, 17, 0, 1, 0.793
16, 17, 17, 23, 1, 0.67
16, 17, 17, 0, 1, 0.672
18, 2048, 17, 23, 1, 0.727
18, 2048, 17, 0, 1, 0.747
18, 2065, 17, 23, 1, 0.549
18, 2065, 17, 0, 1, 0.565
16, 2048, 17, 23, 1, 0.69
16, 2048, 17, 0, 1, 0.687
16, 2065, 17, 23, 1, 0.669
16, 2065, 17, 0, 1, 0.672
16, 4081, 17, 23, 1, 0.982
16, 4081, 17, 0, 1, 0.984
18, 4081, 17, 23, 1, 0.89
18, 4081, 17, 0, 1, 0.888
18, 0, 1, 23, 1, 0.846
18, 0, 2, 0, 1, 0.861
19, 0, 18, 23, 1, 0.848
19, 0, 18, 0, 1, 0.859
19, 18, 18, 23, 1, 0.576
19, 18, 18, 0, 1, 0.561
17, 0, 18, 23, 1, 0.8
17, 0, 18, 0, 1, 0.797
17, 18, 18, 23, 1, 0.676
17, 18, 18, 0, 1, 0.675
19, 2048, 18, 23, 1, 0.726
19, 2048, 18, 0, 1, 0.733
19, 2066, 18, 23, 1, 0.566
19, 2066, 18, 0, 1, 0.578
17, 2048, 18, 23, 1, 0.689
17, 2048, 18, 0, 1, 0.692
17, 2066, 18, 23, 1, 0.673
17, 2066, 18, 0, 1, 0.674
17, 4081, 18, 23, 1, 0.985
17, 4081, 18, 0, 1, 0.979
19, 4081, 18, 23, 1, 0.885
19, 4081, 18, 0, 1, 0.887
19, 0, 1, 23, 1, 0.82
19, 0, 2, 0, 1, 0.834
20, 0, 19, 23, 1, 0.842
20, 0, 19, 0, 1, 0.852
20, 19, 19, 23, 1, 0.556
20, 19, 19, 0, 1, 0.544
18, 0, 19, 23, 1, 0.797
18, 0, 19, 0, 1, 0.797
18, 19, 19, 23, 1, 0.672
18, 19, 19, 0, 1, 0.672
20, 2048, 19, 23, 1, 0.719
20, 2048, 19, 0, 1, 0.731
20, 2067, 19, 23, 1, 0.572
20, 2067, 19, 0, 1, 0.537
18, 2048, 19, 23, 1, 0.688
18, 2048, 19, 0, 1, 0.687
18, 2067, 19, 23, 1, 0.668
18, 2067, 19, 0, 1, 0.667
18, 4081, 19, 23, 1, 0.979
18, 4081, 19, 0, 1, 0.976
20, 4081, 19, 23, 1, 0.882
20, 4081, 19, 0, 1, 0.881
20, 0, 1, 23, 1, 0.829
20, 0, 2, 0, 1, 0.842
21, 0, 20, 23, 1, 0.837
21, 0, 20, 0, 1, 0.845
21, 20, 20, 23, 1, 0.543
21, 20, 20, 0, 1, 0.55
19, 0, 20, 23, 1, 0.792
19, 0, 20, 0, 1, 0.794
19, 20, 20, 23, 1, 0.671
19, 20, 20, 0, 1, 0.669
21, 2048, 20, 23, 1, 0.728
21, 2048, 20, 0, 1, 0.735
21, 2068, 20, 23, 1, 0.553
21, 2068, 20, 0, 1, 0.528
19, 2048, 20, 23, 1, 0.685
19, 2048, 20, 0, 1, 0.685
19, 2068, 20, 23, 1, 0.669
19, 2068, 20, 0, 1, 0.669
19, 4081, 20, 23, 1, 0.984
19, 4081, 20, 0, 1, 0.981
21, 4081, 20, 23, 1, 0.886
21, 4081, 20, 0, 1, 0.885
21, 0, 1, 23, 1, 0.846
21, 0, 2, 0, 1, 0.837
22, 0, 21, 23, 1, 0.854
22, 0, 21, 0, 1, 0.84
22, 21, 21, 23, 1, 0.548
22, 21, 21, 0, 1, 0.553
20, 0, 21, 23, 1, 0.796
20, 0, 21, 0, 1, 0.799
20, 21, 21, 23, 1, 0.674
20, 21, 21, 0, 1, 0.673
22, 2048, 21, 23, 1, 0.743
22, 2048, 21, 0, 1, 0.74
22, 2069, 21, 23, 1, 0.556
22, 2069, 21, 0, 1, 0.546
20, 2048, 21, 23, 1, 0.686
20, 2048, 21, 0, 1, 0.685
20, 2069, 21, 23, 1, 0.669
20, 2069, 21, 0, 1, 0.67
20, 4081, 21, 23, 1, 0.98
20, 4081, 21, 0, 1, 0.974
22, 4081, 21, 23, 1, 0.883
22, 4081, 21, 0, 1, 0.882
22, 0, 1, 23, 1, 0.839
22, 0, 2, 0, 1, 0.835
23, 0, 22, 23, 1, 0.841
23, 0, 22, 0, 1, 0.857
23, 22, 22, 23, 1, 0.554
23, 22, 22, 0, 1, 0.562
21, 0, 22, 23, 1, 0.796
21, 0, 22, 0, 1, 0.792
21, 22, 22, 23, 1, 0.67
21, 22, 22, 0, 1, 0.668
23, 2048, 22, 23, 1, 0.738
23, 2048, 22, 0, 1, 0.744
23, 2070, 22, 23, 1, 0.566
23, 2070, 22, 0, 1, 0.53
21, 2048, 22, 23, 1, 0.686
21, 2048, 22, 0, 1, 0.683
21, 2070, 22, 23, 1, 0.67
21, 2070, 22, 0, 1, 0.667
21, 4081, 22, 23, 1, 0.977
21, 4081, 22, 0, 1, 0.981
23, 4081, 22, 23, 1, 0.882
23, 4081, 22, 0, 1, 0.882
23, 0, 1, 23, 1, 0.849
23, 0, 2, 0, 1, 0.827
24, 0, 23, 23, 1, 0.849
24, 0, 23, 0, 1, 0.851
24, 23, 23, 23, 1, 0.561
24, 23, 23, 0, 1, 0.545
22, 0, 23, 23, 1, 0.793
22, 0, 23, 0, 1, 0.796
22, 23, 23, 23, 1, 0.674
22, 23, 23, 0, 1, 0.673
24, 2048, 23, 23, 1, 0.741
24, 2048, 23, 0, 1, 0.745
24, 2071, 23, 23, 1, 0.549
24, 2071, 23, 0, 1, 0.567
22, 2048, 23, 23, 1, 0.693
22, 2048, 23, 0, 1, 0.692
22, 2071, 23, 23, 1, 0.675
22, 2071, 23, 0, 1, 0.674
22, 4081, 23, 23, 1, 0.984
22, 4081, 23, 0, 1, 0.979
24, 4081, 23, 23, 1, 0.88
24, 4081, 23, 0, 1, 0.882
24, 0, 1, 23, 1, 0.825
24, 0, 2, 0, 1, 0.837
25, 0, 24, 23, 1, 0.847
25, 0, 24, 0, 1, 0.837
25, 24, 24, 23, 1, 0.548
25, 24, 24, 0, 1, 0.554
23, 0, 24, 23, 1, 0.797
23, 0, 24, 0, 1, 0.793
23, 24, 24, 23, 1, 0.671
23, 24, 24, 0, 1, 0.67
25, 2048, 24, 23, 1, 0.734
25, 2048, 24, 0, 1, 0.722
25, 2072, 24, 23, 1, 0.57
25, 2072, 24, 0, 1, 0.543
23, 2048, 24, 23, 1, 0.689
23, 2048, 24, 0, 1, 0.692
23, 2072, 24, 23, 1, 0.673
23, 2072, 24, 0, 1, 0.675
23, 4081, 24, 23, 1, 0.978
23, 4081, 24, 0, 1, 0.973
25, 4081, 24, 23, 1, 0.881
25, 4081, 24, 0, 1, 0.883
25, 0, 1, 23, 1, 0.84
25, 0, 2, 0, 1, 0.824
26, 0, 25, 23, 1, 0.834
26, 0, 25, 0, 1, 0.847
26, 25, 25, 23, 1, 0.559
26, 25, 25, 0, 1, 0.554
24, 0, 25, 23, 1, 0.799
24, 0, 25, 0, 1, 0.794
24, 25, 25, 23, 1, 0.674
24, 25, 25, 0, 1, 0.676
26, 2048, 25, 23, 1, 0.722
26, 2048, 25, 0, 1, 0.729
26, 2073, 25, 23, 1, 0.557
26, 2073, 25, 0, 1, 0.563
24, 2048, 25, 23, 1, 0.693
24, 2048, 25, 0, 1, 0.687
24, 2073, 25, 23, 1, 0.672
24, 2073, 25, 0, 1, 0.672
24, 4081, 25, 23, 1, 0.976
24, 4081, 25, 0, 1, 0.977
26, 4081, 25, 23, 1, 0.885
26, 4081, 25, 0, 1, 0.884
26, 0, 1, 23, 1, 0.843
26, 0, 2, 0, 1, 0.84
27, 0, 26, 23, 1, 0.868
27, 0, 26, 0, 1, 0.854
27, 26, 26, 23, 1, 0.537
27, 26, 26, 0, 1, 0.558
25, 0, 26, 23, 1, 0.799
25, 0, 26, 0, 1, 0.797
25, 26, 26, 23, 1, 0.673
25, 26, 26, 0, 1, 0.67
27, 2048, 26, 23, 1, 0.737
27, 2048, 26, 0, 1, 0.724
27, 2074, 26, 23, 1, 0.559
27, 2074, 26, 0, 1, 0.555
25, 2048, 26, 23, 1, 0.692
25, 2048, 26, 0, 1, 0.697
25, 2074, 26, 23, 1, 0.674
25, 2074, 26, 0, 1, 0.676
25, 4081, 26, 23, 1, 0.98
25, 4081, 26, 0, 1, 0.986
27, 4081, 26, 23, 1, 0.89
27, 4081, 26, 0, 1, 0.884
27, 0, 1, 23, 1, 0.816
27, 0, 2, 0, 1, 0.845
28, 0, 27, 23, 1, 0.846
28, 0, 27, 0, 1, 0.84
28, 27, 27, 23, 1, 0.571
28, 27, 27, 0, 1, 0.56
26, 0, 27, 23, 1, 0.797
26, 0, 27, 0, 1, 0.794
26, 27, 27, 23, 1, 0.674
26, 27, 27, 0, 1, 0.677
28, 2048, 27, 23, 1, 0.747
28, 2048, 27, 0, 1, 0.727
28, 2075, 27, 23, 1, 0.556
28, 2075, 27, 0, 1, 0.555
26, 2048, 27, 23, 1, 0.688
26, 2048, 27, 0, 1, 0.692
26, 2075, 27, 23, 1, 0.672
26, 2075, 27, 0, 1, 0.672
26, 4081, 27, 23, 1, 0.982
26, 4081, 27, 0, 1, 0.98
28, 4081, 27, 23, 1, 0.886
28, 4081, 27, 0, 1, 0.883
28, 0, 1, 23, 1, 0.826
28, 0, 2, 0, 1, 0.838
29, 0, 28, 23, 1, 0.844
29, 0, 28, 0, 1, 0.851
29, 28, 28, 23, 1, 0.567
29, 28, 28, 0, 1, 0.567
27, 0, 28, 23, 1, 0.804
27, 0, 28, 0, 1, 0.797
27, 28, 28, 23, 1, 0.678
27, 28, 28, 0, 1, 0.672
29, 2048, 28, 23, 1, 0.73
29, 2048, 28, 0, 1, 0.724
29, 2076, 28, 23, 1, 0.577
29, 2076, 28, 0, 1, 0.55
27, 2048, 28, 23, 1, 0.692
27, 2048, 28, 0, 1, 0.693
27, 2076, 28, 23, 1, 0.672
27, 2076, 28, 0, 1, 0.675
27, 4081, 28, 23, 1, 0.988
27, 4081, 28, 0, 1, 0.985
29, 4081, 28, 23, 1, 0.886
29, 4081, 28, 0, 1, 0.89
29, 0, 1, 23, 1, 0.858
29, 0, 2, 0, 1, 0.821
30, 0, 29, 23, 1, 0.853
30, 0, 29, 0, 1, 0.865
30, 29, 29, 23, 1, 0.541
30, 29, 29, 0, 1, 0.559
28, 0, 29, 23, 1, 0.801
28, 0, 29, 0, 1, 0.795
28, 29, 29, 23, 1, 0.676
28, 29, 29, 0, 1, 0.678
30, 2048, 29, 23, 1, 0.756
30, 2048, 29, 0, 1, 0.735
30, 2077, 29, 23, 1, 0.569
30, 2077, 29, 0, 1, 0.563
28, 2048, 29, 23, 1, 0.7
28, 2048, 29, 0, 1, 0.698
28, 2077, 29, 23, 1, 0.678
28, 2077, 29, 0, 1, 0.674
28, 4081, 29, 23, 1, 0.983
28, 4081, 29, 0, 1, 0.974
30, 4081, 29, 23, 1, 0.883
30, 4081, 29, 0, 1, 0.887
30, 0, 1, 23, 1, 0.837
30, 0, 2, 0, 1, 0.83
31, 0, 30, 23, 1, 0.859
31, 0, 30, 0, 1, 0.85
31, 30, 30, 23, 1, 0.542
31, 30, 30, 0, 1, 0.551
29, 0, 30, 23, 1, 0.797
29, 0, 30, 0, 1, 0.798
29, 30, 30, 23, 1, 0.676
29, 30, 30, 0, 1, 0.676
31, 2048, 30, 23, 1, 0.738
31, 2048, 30, 0, 1, 0.739
31, 2078, 30, 23, 1, 0.57
31, 2078, 30, 0, 1, 0.551
29, 2048, 30, 23, 1, 0.693
29, 2048, 30, 0, 1, 0.694
29, 2078, 30, 23, 1, 0.675
29, 2078, 30, 0, 1, 0.671
29, 4081, 30, 23, 1, 0.981
29, 4081, 30, 0, 1, 0.976
31, 4081, 30, 23, 1, 0.89
31, 4081, 30, 0, 1, 0.89
31, 0, 1, 23, 1, 0.837
31, 0, 2, 0, 1, 0.848
32, 0, 31, 23, 1, 0.853
32, 0, 31, 0, 1, 0.838
32, 31, 31, 23, 1, 0.646
32, 31, 31, 0, 1, 0.648
30, 0, 31, 23, 1, 0.799
30, 0, 31, 0, 1, 0.798
30, 31, 31, 23, 1, 0.674
30, 31, 31, 0, 1, 0.675
32, 2048, 31, 23, 1, 0.722
32, 2048, 31, 0, 1, 0.703
32, 2079, 31, 23, 1, 0.651
32, 2079, 31, 0, 1, 0.636
30, 2048, 31, 23, 1, 0.691
30, 2048, 31, 0, 1, 0.695
30, 2079, 31, 23, 1, 0.675
30, 2079, 31, 0, 1, 0.675
30, 4081, 31, 23, 1, 0.978
30, 4081, 31, 0, 1, 0.982
32, 4081, 31, 23, 1, 0.886
32, 4081, 31, 0, 1, 0.886
32, 0, 1, 23, 1, 0.852
32, 0, 2, 0, 1, 0.833
More information about the Libc-alpha
mailing list