[PATCH v2] x86: Remove __mmask intrinsics in strstr-avx512.c

Noah Goldstein goldstein.w.n@gmail.com
Tue Jul 12 18:48:34 GMT 2022


On Tue, Jul 12, 2022 at 11:44 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> On Tue, Jul 12, 2022 at 11:41 AM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
> >
> > On Tue, Jul 12, 2022 at 10:11 AM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
> > >
> > > On Tue, Jul 12, 2022 at 8:56 AM H.J. Lu <hjl.tools@gmail.com> wrote:
> > > >
> > > > On Mon, Jul 11, 2022 at 7:38 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
> > > > >
> > > > > On Mon, Jul 11, 2022 at 7:26 PM H.J. Lu <hjl.tools@gmail.com> wrote:
> > > > > >
> > > > > > On Mon, Jul 11, 2022 at 4:33 PM Sunil Pandey <skpgkp2@gmail.com> wrote:
> > > > > > >
> > > > > > > On Mon, Jul 11, 2022 at 3:52 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
> > > > > > > >
> > > > > > > > On Mon, Jul 11, 2022 at 3:38 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
> > > > > > > > >
> > > > > > > > > Using standard operators generates and the same code and __mmask
> > > > > > > > > instrinsics are not available before GCC7.
> > > > > > > > >
> > > > > > > > > Removed:
> > > > > > > > >     _cvtmask64_u64
> > > > > > > > >     _kshiftri_mask64
> > > > > > > > >     _kand_mask64
> > > > > > > > > ---
> > > > > > > > >  sysdeps/x86_64/multiarch/strstr-avx512.c | 16 ++++++++++------
> > > > > > > > >  1 file changed, 10 insertions(+), 6 deletions(-)
> > > > > > > > >
> > > > > > > > > diff --git a/sysdeps/x86_64/multiarch/strstr-avx512.c b/sysdeps/x86_64/multiarch/strstr-avx512.c
> > > > > > > > > index 2ab9e96db8..e44c1a05dc 100644
> > > > > > > > > --- a/sysdeps/x86_64/multiarch/strstr-avx512.c
> > > > > > > > > +++ b/sysdeps/x86_64/multiarch/strstr-avx512.c
> > > > > > > > > @@ -26,6 +26,10 @@
> > > > > > > > >  #define ZMM_SIZE_IN_BYTES 64
> > > > > > > > >  #define PAGESIZE 4096
> > > > > > > > >
> > > > > > > > > +#define cvtmask64_u64(...) (uint64_t) (__VA_ARGS__)
> > > > > > > > > +#define kshiftri_mask64(x, y) ((x) >> (y))
> > > > > > > > > +#define kand_mask64(x, y) ((x) & (y))
> > > > > > > > > +
> > > > > > > > >  /*
> > > > > > > > >   Returns the index of the first edge within the needle, returns 0 if no edge
> > > > > > > > >   is found. Example: 'ab' is the first edge in 'aaaaaaaaaabaarddg'
> > > > > > > > > @@ -133,15 +137,15 @@ __strstr_avx512 (const char *haystack, const char *ned)
> > > > > > > > >    __m512i hay0 = _mm512_maskz_loadu_epi8 (loadmask, haystack + hay_index);
> > > > > > > > >    /* Search for NULL and compare only till null char */
> > > > > > > > >    uint64_t nullmask
> > > > > > > > > -      = _cvtmask64_u64 (_mm512_mask_testn_epi8_mask (loadmask, hay0, hay0));
> > > > > > > > > +      = cvtmask64_u64 (_mm512_mask_testn_epi8_mask (loadmask, hay0, hay0));
> > > > > > > > >    uint64_t cmpmask = nullmask ^ (nullmask - ONE_64BIT);
> > > > > > > > > -  cmpmask = cmpmask & _cvtmask64_u64 (loadmask);
> > > > > > > > > +  cmpmask = cmpmask & cvtmask64_u64 (loadmask);
> > > > > > > > >    /* Search for the 2 charaters of needle */
> > > > > > > > >    __mmask64 k0 = _mm512_cmpeq_epi8_mask (hay0, ned0);
> > > > > > > > >    __mmask64 k1 = _mm512_cmpeq_epi8_mask (hay0, ned1);
> > > > > > > > > -  k1 = _kshiftri_mask64 (k1, 1);
> > > > > > > > > +  k1 = kshiftri_mask64 (k1, 1);
> > > > > > > > >    /* k2 masks tell us if both chars from needle match */
> > > > > > > > > -  uint64_t k2 = _cvtmask64_u64 (_kand_mask64 (k0, k1)) & cmpmask;
> > > > > > > > > +  uint64_t k2 = cvtmask64_u64 (kand_mask64 (k0, k1)) & cmpmask;
> > > > > > > > >    /* For every match, search for the entire needle for a full match */
> > > > > > > > >    while (k2)
> > > > > > > > >      {
> > > > > > > > > @@ -178,13 +182,13 @@ __strstr_avx512 (const char *haystack, const char *ned)
> > > > > > > > >        hay0 = _mm512_loadu_si512 (haystack + hay_index);
> > > > > > > > >        hay1 = _mm512_load_si512 (haystack + hay_index
> > > > > > > > >                                  + 1); // Always 64 byte aligned
> > > > > > > > > -      nullmask = _cvtmask64_u64 (_mm512_testn_epi8_mask (hay1, hay1));
> > > > > > > > > +      nullmask = cvtmask64_u64 (_mm512_testn_epi8_mask (hay1, hay1));
> > > > > > > > >        /* Compare only till null char */
> > > > > > > > >        cmpmask = nullmask ^ (nullmask - ONE_64BIT);
> > > > > > > > >        k0 = _mm512_cmpeq_epi8_mask (hay0, ned0);
> > > > > > > > >        k1 = _mm512_cmpeq_epi8_mask (hay1, ned1);
> > > > > > > > >        /* k2 masks tell us if both chars from needle match */
> > > > > > > > > -      k2 = _cvtmask64_u64 (_kand_mask64 (k0, k1)) & cmpmask;
> > > > > > > > > +      k2 = cvtmask64_u64 (kand_mask64 (k0, k1)) & cmpmask;
> > > > > > > > >        /* For every match, compare full strings for potential match */
> > > > > > > > >        while (k2)
> > > > > > > > >          {
> > > > > > > > > --
> > > > > > > > > 2.34.1
> > > > > > > > >
> > > > > > > > Sunil,
> > > > > > > > Does this work (v2 didn't get chained because I changed commit msg).
> > > > > > >
> > > > > > > Yes, v2 works.
> > > > > > >
> > > > > >
> > > > > > Any performance differences?
> > > > >
> > > > > It should generate the same code. It's just using standard operators instead
> > > > > of intrinsics.
> > > >
> > > > Has it been verified?
> > >
> > > You are right there are some diffs.
> > >
> > > Took a look at the ASM and think the new is probably fine, but will
> > > run a quick benchmark.
> >
> > Did 5 runs. Think the new one is fine and maybe even gets slightly better
> > codegen:
>
> Please update the commit log to remove "the same code".

Done  in v3.
>
> Thanks.
>
> > N = 5 runs.
> > Geometric Mean of All Results (New / Old): 0.958
> > Results For: __strstr_avx512
> > len_haystack,align_haystack ,align_needle ,fail ,len_needle ,New / Old
> > 8           ,1              ,3            ,0    ,1          ,0.834
> > 8           ,0              ,9            ,1    ,1          ,1.07
> > 9           ,1              ,3            ,0    ,1          ,1.031
> > 9           ,0              ,9            ,1    ,1          ,0.943
> > 8           ,4081           ,9            ,1    ,1          ,0.96
> > 16          ,1              ,3            ,0    ,2          ,0.824
> > 16          ,0              ,9            ,1    ,2          ,1.018
> > 17          ,1              ,3            ,0    ,2          ,0.979
> > 17          ,0              ,9            ,1    ,2          ,1.019
> > 16          ,4081           ,9            ,1    ,2          ,1.015
> > 24          ,1              ,3            ,0    ,3          ,0.979
> > 24          ,0              ,9            ,1    ,3          ,0.972
> > 25          ,1              ,3            ,0    ,3          ,0.99
> > 25          ,0              ,9            ,1    ,3          ,0.998
> > 24          ,4081           ,9            ,1    ,3          ,1.031
> > 32          ,1              ,3            ,0    ,4          ,1.004
> > 32          ,0              ,9            ,1    ,4          ,0.934
> > 33          ,1              ,3            ,0    ,4          ,1.015
> > 33          ,0              ,9            ,1    ,4          ,0.98
> > 32          ,4081           ,9            ,1    ,4          ,1.019
> > 40          ,1              ,3            ,0    ,5          ,1.016
> > 40          ,0              ,9            ,1    ,5          ,1.017
> > 41          ,1              ,3            ,0    ,5          ,1.059
> > 41          ,0              ,9            ,1    ,5          ,1.011
> > 40          ,4081           ,9            ,1    ,5          ,0.989
> > 48          ,1              ,3            ,0    ,6          ,0.985
> > 48          ,0              ,9            ,1    ,6          ,1.016
> > 49          ,1              ,3            ,0    ,6          ,0.979
> > 49          ,0              ,9            ,1    ,6          ,1.041
> > 48          ,4081           ,9            ,1    ,6          ,0.975
> > 56          ,1              ,3            ,0    ,7          ,1.017
> > 56          ,0              ,9            ,1    ,7          ,1.004
> > 57          ,1              ,3            ,0    ,7          ,1.049
> > 57          ,0              ,9            ,1    ,7          ,0.985
> > 56          ,4081           ,9            ,1    ,7          ,0.949
> > 64          ,1              ,3            ,0    ,8          ,1.152
> > 64          ,0              ,9            ,1    ,8          ,1.583
> > 65          ,1              ,3            ,0    ,8          ,1.076
> > 65          ,0              ,9            ,1    ,8          ,1.013
> > 64          ,4081           ,9            ,1    ,8          ,1.038
> > 96          ,1              ,3            ,0    ,9          ,1.007
> > 96          ,0              ,9            ,1    ,9          ,1.001
> > 97          ,1              ,3            ,0    ,9          ,0.973
> > 97          ,0              ,9            ,1    ,9          ,1.021
> > 96          ,4081           ,9            ,1    ,9          ,1.026
> > 128         ,1              ,3            ,0    ,10         ,1.012
> > 128         ,0              ,9            ,1    ,10         ,1.006
> > 129         ,1              ,3            ,0    ,10         ,0.959
> > 129         ,0              ,9            ,1    ,10         ,1.041
> > 128         ,4081           ,9            ,1    ,10         ,0.956
> > 160         ,1              ,3            ,0    ,11         ,0.967
> > 160         ,0              ,9            ,1    ,11         ,1.008
> > 161         ,1              ,3            ,0    ,11         ,0.97
> > 161         ,0              ,9            ,1    ,11         ,0.982
> > 160         ,4081           ,9            ,1    ,11         ,0.999
> > 192         ,1              ,3            ,0    ,12         ,1.057
> > 192         ,0              ,9            ,1    ,12         ,0.973
> > 193         ,1              ,3            ,0    ,12         ,0.956
> > 193         ,0              ,9            ,1    ,12         ,0.982
> > 192         ,4081           ,9            ,1    ,12         ,0.955
> > 224         ,1              ,3            ,0    ,13         ,0.979
> > 224         ,0              ,9            ,1    ,13         ,0.995
> > 225         ,1              ,3            ,0    ,13         ,0.966
> > 225         ,0              ,9            ,1    ,13         ,0.973
> > 224         ,4081           ,9            ,1    ,13         ,1.011
> > 256         ,1              ,3            ,0    ,14         ,0.981
> > 256         ,0              ,9            ,1    ,14         ,1.019
> > 257         ,1              ,3            ,0    ,14         ,0.905
> > 257         ,0              ,9            ,1    ,14         ,0.99
> > 256         ,4081           ,9            ,1    ,14         ,0.994
> > 288         ,1              ,3            ,0    ,15         ,0.963
> > 288         ,0              ,9            ,1    ,15         ,0.981
> > 289         ,1              ,3            ,0    ,15         ,0.97
> > 289         ,0              ,9            ,1    ,15         ,0.855
> > 288         ,4081           ,9            ,1    ,15         ,0.935
> > 320         ,1              ,3            ,0    ,16         ,0.962
> > 320         ,0              ,9            ,1    ,16         ,0.978
> > 321         ,1              ,3            ,0    ,16         ,0.952
> > 321         ,0              ,9            ,1    ,16         ,0.949
> > 320         ,4081           ,9            ,1    ,16         ,0.983
> > 256         ,1              ,11           ,0    ,4          ,0.967
> > 256         ,14             ,5            ,1    ,4          ,0.997
> > 257         ,1              ,11           ,0    ,5          ,1.008
> > 257         ,14             ,5            ,1    ,5          ,0.97
> > 257         ,1              ,11           ,0    ,4          ,1.001
> > 257         ,14             ,5            ,1    ,4          ,0.985
> > 257         ,4081           ,5            ,1    ,4          ,1.0
> > 256         ,1              ,11           ,0    ,8          ,0.958
> > 256         ,14             ,5            ,1    ,8          ,0.967
> > 257         ,1              ,11           ,0    ,9          ,0.991
> > 257         ,14             ,5            ,1    ,9          ,0.91
> > 257         ,1              ,11           ,0    ,8          ,0.974
> > 257         ,14             ,5            ,1    ,8          ,0.999
> > 257         ,4081           ,5            ,1    ,8          ,0.958
> > 256         ,1              ,11           ,0    ,16         ,0.957
> > 256         ,14             ,5            ,1    ,16         ,1.009
> > 257         ,1              ,11           ,0    ,17         ,0.983
> > 257         ,14             ,5            ,1    ,17         ,0.94
> > 257         ,1              ,11           ,0    ,16         ,0.956
> > 257         ,14             ,5            ,1    ,16         ,0.99
> > 257         ,4081           ,5            ,1    ,16         ,1.008
> > 256         ,1              ,11           ,0    ,32         ,0.982
> > 256         ,14             ,5            ,1    ,32         ,0.977
> > 257         ,1              ,11           ,0    ,33         ,0.942
> > 257         ,14             ,5            ,1    ,33         ,0.912
> > 257         ,1              ,11           ,0    ,32         ,1.024
> > 257         ,14             ,5            ,1    ,32         ,0.974
> > 257         ,4081           ,5            ,1    ,32         ,0.953
> > 256         ,1              ,11           ,0    ,64         ,0.955
> > 256         ,14             ,5            ,1    ,64         ,0.938
> > 257         ,1              ,11           ,0    ,65         ,0.916
> > 257         ,14             ,5            ,1    ,65         ,0.942
> > 257         ,1              ,11           ,0    ,64         ,0.94
> > 257         ,14             ,5            ,1    ,64         ,0.952
> > 257         ,4081           ,5            ,1    ,64         ,0.989
> > 256         ,1              ,11           ,0    ,128        ,0.87
> > 256         ,14             ,5            ,1    ,128        ,1.044
> > 257         ,1              ,11           ,0    ,129        ,0.933
> > 257         ,14             ,5            ,1    ,129        ,0.972
> > 257         ,1              ,11           ,0    ,128        ,0.919
> > 257         ,14             ,5            ,1    ,128        ,0.911
> > 257         ,4081           ,5            ,1    ,128        ,0.958
> > 256         ,1              ,11           ,0    ,256        ,1.069
> > 256         ,14             ,5            ,1    ,256        ,0.984
> > 257         ,1              ,11           ,0    ,257        ,1.067
> > 257         ,14             ,5            ,1    ,257        ,0.969
> > 257         ,1              ,11           ,0    ,256        ,1.081
> > 257         ,14             ,5            ,1    ,256        ,0.936
> > 257         ,4081           ,5            ,1    ,256        ,0.975
> > 512         ,1              ,11           ,0    ,4          ,0.984
> > 512         ,14             ,5            ,1    ,4          ,0.955
> > 513         ,1              ,11           ,0    ,5          ,0.976
> > 513         ,14             ,5            ,1    ,5          ,1.221
> > 513         ,1              ,11           ,0    ,4          ,0.983
> > 513         ,14             ,5            ,1    ,4          ,0.989
> > 513         ,4081           ,5            ,1    ,4          ,0.962
> > 512         ,1              ,11           ,0    ,8          ,0.949
> > 512         ,14             ,5            ,1    ,8          ,0.957
> > 513         ,1              ,11           ,0    ,9          ,0.959
> > 513         ,14             ,5            ,1    ,9          ,0.972
> > 513         ,1              ,11           ,0    ,8          ,0.977
> > 513         ,14             ,5            ,1    ,8          ,0.951
> > 513         ,4081           ,5            ,1    ,8          ,0.957
> > 512         ,1              ,11           ,0    ,16         ,0.975
> > 512         ,14             ,5            ,1    ,16         ,0.953
> > 513         ,1              ,11           ,0    ,17         ,0.898
> > 513         ,14             ,5            ,1    ,17         ,0.97
> > 513         ,1              ,11           ,0    ,16         ,0.941
> > 513         ,14             ,5            ,1    ,16         ,0.948
> > 513         ,4081           ,5            ,1    ,16         ,0.948
> > 512         ,1              ,11           ,0    ,32         ,0.917
> > 512         ,14             ,5            ,1    ,32         ,0.963
> > 513         ,1              ,11           ,0    ,33         ,0.937
> > 513         ,14             ,5            ,1    ,33         ,0.969
> > 513         ,1              ,11           ,0    ,32         ,0.995
> > 513         ,14             ,5            ,1    ,32         ,1.001
> > 513         ,4081           ,5            ,1    ,32         ,0.942
> > 512         ,1              ,11           ,0    ,64         ,0.943
> > 512         ,14             ,5            ,1    ,64         ,0.972
> > 513         ,1              ,11           ,0    ,65         ,0.979
> > 513         ,14             ,5            ,1    ,65         ,1.008
> > 513         ,1              ,11           ,0    ,64         ,0.938
> > 513         ,14             ,5            ,1    ,64         ,0.98
> > 513         ,4081           ,5            ,1    ,64         ,0.988
> > 512         ,1              ,11           ,0    ,128        ,0.91
> > 512         ,14             ,5            ,1    ,128        ,0.964
> > 513         ,1              ,11           ,0    ,129        ,0.918
> > 513         ,14             ,5            ,1    ,129        ,0.958
> > 513         ,1              ,11           ,0    ,128        ,0.931
> > 513         ,14             ,5            ,1    ,128        ,0.957
> > 513         ,4081           ,5            ,1    ,128        ,0.956
> > 512         ,1              ,11           ,0    ,256        ,0.835
> > 512         ,14             ,5            ,1    ,256        ,0.955
> > 513         ,1              ,11           ,0    ,257        ,0.842
> > 513         ,14             ,5            ,1    ,257        ,0.959
> > 513         ,1              ,11           ,0    ,256        ,0.832
> > 513         ,14             ,5            ,1    ,256        ,0.879
> > 513         ,4081           ,5            ,1    ,256        ,0.95
> > 1024        ,1              ,11           ,0    ,4          ,0.929
> > 1024        ,14             ,5            ,1    ,4          ,0.965
> > 1025        ,1              ,11           ,0    ,5          ,0.969
> > 1025        ,14             ,5            ,1    ,5          ,0.951
> > 1025        ,1              ,11           ,0    ,4          ,0.943
> > 1025        ,14             ,5            ,1    ,4          ,0.973
> > 1025        ,4081           ,5            ,1    ,4          ,0.982
> > 1024        ,1              ,11           ,0    ,8          ,0.881
> > 1024        ,14             ,5            ,1    ,8          ,0.924
> > 1025        ,1              ,11           ,0    ,9          ,0.971
> > 1025        ,14             ,5            ,1    ,9          ,0.948
> > 1025        ,1              ,11           ,0    ,8          ,0.968
> > 1025        ,14             ,5            ,1    ,8          ,0.967
> > 1025        ,4081           ,5            ,1    ,8          ,0.965
> > 1024        ,1              ,11           ,0    ,16         ,0.959
> > 1024        ,14             ,5            ,1    ,16         ,0.957
> > 1025        ,1              ,11           ,0    ,17         ,0.984
> > 1025        ,14             ,5            ,1    ,17         ,0.964
> > 1025        ,1              ,11           ,0    ,16         ,0.971
> > 1025        ,14             ,5            ,1    ,16         ,0.977
> > 1025        ,4081           ,5            ,1    ,16         ,0.97
> > 1024        ,1              ,11           ,0    ,32         ,0.946
> > 1024        ,14             ,5            ,1    ,32         ,0.967
> > 1025        ,1              ,11           ,0    ,33         ,0.922
> > 1025        ,14             ,5            ,1    ,33         ,0.843
> > 1025        ,1              ,11           ,0    ,32         ,0.954
> > 1025        ,14             ,5            ,1    ,32         ,0.98
> > 1025        ,4081           ,5            ,1    ,32         ,0.97
> > 1024        ,1              ,11           ,0    ,64         ,0.941
> > 1024        ,14             ,5            ,1    ,64         ,0.958
> > 1025        ,1              ,11           ,0    ,65         ,0.931
> > 1025        ,14             ,5            ,1    ,65         ,0.866
> > 1025        ,1              ,11           ,0    ,64         ,0.944
> > 1025        ,14             ,5            ,1    ,64         ,0.915
> > 1025        ,4081           ,5            ,1    ,64         ,0.956
> > 1024        ,1              ,11           ,0    ,128        ,0.827
> > 1024        ,14             ,5            ,1    ,128        ,0.938
> > 1025        ,1              ,11           ,0    ,129        ,0.921
> > 1025        ,14             ,5            ,1    ,129        ,0.95
> > 1025        ,1              ,11           ,0    ,128        ,0.912
> > 1025        ,14             ,5            ,1    ,128        ,1.005
> > 1025        ,4081           ,5            ,1    ,128        ,0.965
> > 1024        ,1              ,11           ,0    ,256        ,0.835
> > 1024        ,14             ,5            ,1    ,256        ,0.967
> > 1025        ,1              ,11           ,0    ,257        ,0.85
> > 1025        ,14             ,5            ,1    ,257        ,0.96
> > 1025        ,1              ,11           ,0    ,256        ,0.83
> > 1025        ,14             ,5            ,1    ,256        ,0.948
> > 1025        ,4081           ,5            ,1    ,256        ,0.946
> > 2048        ,1              ,11           ,0    ,4          ,0.933
> > 2048        ,14             ,5            ,1    ,4          ,0.913
> > 2049        ,1              ,11           ,0    ,5          ,0.962
> > 2049        ,14             ,5            ,1    ,5          ,0.961
> > 2049        ,1              ,11           ,0    ,4          ,0.866
> > 2049        ,14             ,5            ,1    ,4          ,1.05
> > 2049        ,4081           ,5            ,1    ,4          ,0.995
> > 2048        ,1              ,11           ,0    ,8          ,0.929
> > 2048        ,14             ,5            ,1    ,8          ,0.976
> > 2049        ,1              ,11           ,0    ,9          ,0.899
> > 2049        ,14             ,5            ,1    ,9          ,0.995
> > 2049        ,1              ,11           ,0    ,8          ,0.965
> > 2049        ,14             ,5            ,1    ,8          ,1.03
> > 2049        ,4081           ,5            ,1    ,8          ,0.958
> > 2048        ,1              ,11           ,0    ,16         ,0.858
> > 2048        ,14             ,5            ,1    ,16         ,0.963
> > 2049        ,1              ,11           ,0    ,17         ,0.97
> > 2049        ,14             ,5            ,1    ,17         ,0.875
> > 2049        ,1              ,11           ,0    ,16         ,0.862
> > 2049        ,14             ,5            ,1    ,16         ,0.97
> > 2049        ,4081           ,5            ,1    ,16         ,0.937
> > 2048        ,1              ,11           ,0    ,32         ,0.919
> > 2048        ,14             ,5            ,1    ,32         ,0.875
> > 2049        ,1              ,11           ,0    ,33         ,0.955
> > 2049        ,14             ,5            ,1    ,33         ,0.96
> > 2049        ,1              ,11           ,0    ,32         ,0.937
> > 2049        ,14             ,5            ,1    ,32         ,1.028
> > 2049        ,4081           ,5            ,1    ,32         ,0.94
> > 2048        ,1              ,11           ,0    ,64         ,0.966
> > 2048        ,14             ,5            ,1    ,64         ,0.944
> > 2049        ,1              ,11           ,0    ,65         ,0.948
> > 2049        ,14             ,5            ,1    ,65         ,0.947
> > 2049        ,1              ,11           ,0    ,64         ,1.008
> > 2049        ,14             ,5            ,1    ,64         ,0.98
> > 2049        ,4081           ,5            ,1    ,64         ,0.974
> > 2048        ,1              ,11           ,0    ,128        ,0.97
> > 2048        ,14             ,5            ,1    ,128        ,0.947
> > 2049        ,1              ,11           ,0    ,129        ,0.95
> > 2049        ,14             ,5            ,1    ,129        ,0.939
> > 2049        ,1              ,11           ,0    ,128        ,0.852
> > 2049        ,14             ,5            ,1    ,128        ,0.742
> > 2049        ,4081           ,5            ,1    ,128        ,0.674
> > 2048        ,1              ,11           ,0    ,256        ,0.86
> > 2048        ,14             ,5            ,1    ,256        ,0.89
> > 2049        ,1              ,11           ,0    ,257        ,0.76
> > 2049        ,14             ,5            ,1    ,257        ,0.886
> > 2049        ,1              ,11           ,0    ,256        ,0.876
> > 2049        ,14             ,5            ,1    ,256        ,0.915
> > 2049        ,4081           ,5            ,1    ,256        ,0.942
> > 4096        ,1              ,11           ,0    ,4          ,0.926
> > 4096        ,14             ,5            ,1    ,4          ,0.927
> > 4097        ,1              ,11           ,0    ,5          ,0.965
> > 4097        ,14             ,5            ,1    ,5          ,0.978
> > 4097        ,1              ,11           ,0    ,4          ,0.973
> > 4097        ,14             ,5            ,1    ,4          ,0.997
> > 4097        ,4081           ,5            ,1    ,4          ,0.982
> > 4096        ,1              ,11           ,0    ,8          ,0.948
> > 4096        ,14             ,5            ,1    ,8          ,0.937
> > 4097        ,1              ,11           ,0    ,9          ,0.949
> > 4097        ,14             ,5            ,1    ,9          ,0.964
> > 4097        ,1              ,11           ,0    ,8          ,0.998
> > 4097        ,14             ,5            ,1    ,8          ,0.98
> > 4097        ,4081           ,5            ,1    ,8          ,0.972
> > 4096        ,1              ,11           ,0    ,16         ,0.95
> > 4096        ,14             ,5            ,1    ,16         ,0.954
> > 4097        ,1              ,11           ,0    ,17         ,0.978
> > 4097        ,14             ,5            ,1    ,17         ,0.964
> > 4097        ,1              ,11           ,0    ,16         ,0.962
> > 4097        ,14             ,5            ,1    ,16         ,0.952
> > 4097        ,4081           ,5            ,1    ,16         ,0.944
> > 4096        ,1              ,11           ,0    ,32         ,0.965
> > 4096        ,14             ,5            ,1    ,32         ,0.971
> > 4097        ,1              ,11           ,0    ,33         ,0.996
> > 4097        ,14             ,5            ,1    ,33         ,0.976
> > 4097        ,1              ,11           ,0    ,32         ,1.029
> > 4097        ,14             ,5            ,1    ,32         ,1.255
> > 4097        ,4081           ,5            ,1    ,32         ,0.992
> > 4096        ,1              ,11           ,0    ,64         ,1.0
> > 4096        ,14             ,5            ,1    ,64         ,0.98
> > 4097        ,1              ,11           ,0    ,65         ,0.996
> > 4097        ,14             ,5            ,1    ,65         ,0.985
> > 4097        ,1              ,11           ,0    ,64         ,0.98
> > 4097        ,14             ,5            ,1    ,64         ,0.966
> > 4097        ,4081           ,5            ,1    ,64         ,0.955
> > 4096        ,1              ,11           ,0    ,128        ,0.914
> > 4096        ,14             ,5            ,1    ,128        ,0.897
> > 4097        ,1              ,11           ,0    ,129        ,0.93
> > 4097        ,14             ,5            ,1    ,129        ,0.98
> > 4097        ,1              ,11           ,0    ,128        ,0.94
> > 4097        ,14             ,5            ,1    ,128        ,0.965
> > 4097        ,4081           ,5            ,1    ,128        ,0.964
> > 4096        ,1              ,11           ,0    ,256        ,0.904
> > 4096        ,14             ,5            ,1    ,256        ,0.981
> > 4097        ,1              ,11           ,0    ,257        ,0.968
> > 4097        ,14             ,5            ,1    ,257        ,0.921
> > 4097        ,1              ,11           ,0    ,256        ,0.884
> > 4097        ,14             ,5            ,1    ,256        ,0.925
> > 4097        ,4081           ,5            ,1    ,256        ,0.94
> > 8192        ,1              ,11           ,0    ,4          ,0.961
> > 8192        ,14             ,5            ,1    ,4          ,0.959
> > 8193        ,1              ,11           ,0    ,5          ,0.927
> > 8193        ,14             ,5            ,1    ,5          ,0.961
> > 8193        ,1              ,11           ,0    ,4          ,0.938
> > 8193        ,14             ,5            ,1    ,4          ,0.956
> > 8193        ,4081           ,5            ,1    ,4          ,0.979
> > 8192        ,1              ,11           ,0    ,8          ,0.962
> > 8192        ,14             ,5            ,1    ,8          ,1.139
> > 8193        ,1              ,11           ,0    ,9          ,1.178
> > 8193        ,14             ,5            ,1    ,9          ,0.95
> > 8193        ,1              ,11           ,0    ,8          ,0.97
> > 8193        ,14             ,5            ,1    ,8          ,0.935
> > 8193        ,4081           ,5            ,1    ,8          ,0.999
> > 8192        ,1              ,11           ,0    ,16         ,0.908
> > 8192        ,14             ,5            ,1    ,16         ,0.907
> > 8193        ,1              ,11           ,0    ,17         ,0.997
> > 8193        ,14             ,5            ,1    ,17         ,0.838
> > 8193        ,1              ,11           ,0    ,16         ,0.968
> > 8193        ,14             ,5            ,1    ,16         ,0.713
> > 8193        ,4081           ,5            ,1    ,16         ,0.98
> > 8192        ,1              ,11           ,0    ,32         ,1.01
> > 8192        ,14             ,5            ,1    ,32         ,0.949
> > 8193        ,1              ,11           ,0    ,33         ,0.958
> > 8193        ,14             ,5            ,1    ,33         ,0.941
> > 8193        ,1              ,11           ,0    ,32         ,0.953
> > 8193        ,14             ,5            ,1    ,32         ,0.929
> > 8193        ,4081           ,5            ,1    ,32         ,0.97
> > 8192        ,1              ,11           ,0    ,64         ,0.95
> > 8192        ,14             ,5            ,1    ,64         ,0.913
> > 8193        ,1              ,11           ,0    ,65         ,0.958
> > 8193        ,14             ,5            ,1    ,65         ,0.934
> > 8193        ,1              ,11           ,0    ,64         ,0.905
> > 8193        ,14             ,5            ,1    ,64         ,0.89
> > 8193        ,4081           ,5            ,1    ,64         ,0.885
> > 8192        ,1              ,11           ,0    ,128        ,0.885
> > 8192        ,14             ,5            ,1    ,128        ,0.934
> > 8193        ,1              ,11           ,0    ,129        ,0.933
> > 8193        ,14             ,5            ,1    ,129        ,0.985
> > 8193        ,1              ,11           ,0    ,128        ,0.913
> > 8193        ,14             ,5            ,1    ,128        ,0.931
> > 8193        ,4081           ,5            ,1    ,128        ,0.967
> > 8192        ,1              ,11           ,0    ,256        ,0.903
> > 8192        ,14             ,5            ,1    ,256        ,0.908
> > 8193        ,1              ,11           ,0    ,257        ,0.915
> > 8193        ,14             ,5            ,1    ,257        ,0.969
> > 8193        ,1              ,11           ,0    ,256        ,0.918
> > 8193        ,14             ,5            ,1    ,256        ,0.92
> > 8193        ,4081           ,5            ,1    ,256        ,0.967
> > 16384       ,1              ,11           ,0    ,4          ,0.99
> > 16384       ,14             ,5            ,1    ,4          ,0.961
> > 16385       ,1              ,11           ,0    ,5          ,0.862
> > 16385       ,14             ,5            ,1    ,5          ,0.836
> > 16385       ,1              ,11           ,0    ,4          ,0.969
> > 16385       ,14             ,5            ,1    ,4          ,0.97
> > 16385       ,4081           ,5            ,1    ,4          ,0.973
> > 16384       ,1              ,11           ,0    ,8          ,0.931
> > 16384       ,14             ,5            ,1    ,8          ,0.953
> > 16385       ,1              ,11           ,0    ,9          ,0.923
> > 16385       ,14             ,5            ,1    ,9          ,0.821
> > 16385       ,1              ,11           ,0    ,8          ,0.829
> > 16385       ,14             ,5            ,1    ,8          ,0.953
> > 16385       ,4081           ,5            ,1    ,8          ,0.953
> > 16384       ,1              ,11           ,0    ,16         ,0.951
> > 16384       ,14             ,5            ,1    ,16         ,0.932
> > 16385       ,1              ,11           ,0    ,17         ,0.954
> > 16385       ,14             ,5            ,1    ,17         ,0.981
> > 16385       ,1              ,11           ,0    ,16         ,0.955
> > 16385       ,14             ,5            ,1    ,16         ,0.982
> > 16385       ,4081           ,5            ,1    ,16         ,0.951
> > 16384       ,1              ,11           ,0    ,32         ,0.995
> > 16384       ,14             ,5            ,1    ,32         ,0.982
> > 16385       ,1              ,11           ,0    ,33         ,0.967
> > 16385       ,14             ,5            ,1    ,33         ,0.945
> > 16385       ,1              ,11           ,0    ,32         ,0.953
> > 16385       ,14             ,5            ,1    ,32         ,0.942
> > 16385       ,4081           ,5            ,1    ,32         ,0.967
> > 16384       ,1              ,11           ,0    ,64         ,0.962
> > 16384       ,14             ,5            ,1    ,64         ,0.957
> > 16385       ,1              ,11           ,0    ,65         ,1.011
> > 16385       ,14             ,5            ,1    ,65         ,0.931
> > 16385       ,1              ,11           ,0    ,64         ,0.965
> > 16385       ,14             ,5            ,1    ,64         ,0.947
> > 16385       ,4081           ,5            ,1    ,64         ,0.96
> > 16384       ,1              ,11           ,0    ,128        ,0.931
> > 16384       ,14             ,5            ,1    ,128        ,0.935
> > 16385       ,1              ,11           ,0    ,129        ,0.948
> > 16385       ,14             ,5            ,1    ,129        ,0.943
> > 16385       ,1              ,11           ,0    ,128        ,0.94
> > 16385       ,14             ,5            ,1    ,128        ,0.841
> > 16385       ,4081           ,5            ,1    ,128        ,0.97
> > 16384       ,1              ,11           ,0    ,256        ,0.911
> > 16384       ,14             ,5            ,1    ,256        ,0.944
> > 16385       ,1              ,11           ,0    ,257        ,0.913
> > 16385       ,14             ,5            ,1    ,257        ,0.925
> > 16385       ,1              ,11           ,0    ,256        ,0.846
> > 16385       ,14             ,5            ,1    ,256        ,0.966
> > 16385       ,4081           ,5            ,1    ,256        ,1.037
> > 32768       ,1              ,11           ,0    ,4          ,0.984
> > 32768       ,14             ,5            ,1    ,4          ,1.015
> > 32769       ,1              ,11           ,0    ,5          ,0.972
> > 32769       ,14             ,5            ,1    ,5          ,0.958
> > 32769       ,1              ,11           ,0    ,4          ,0.955
> > 32769       ,14             ,5            ,1    ,4          ,0.95
> > 32769       ,4081           ,5            ,1    ,4          ,1.041
> > 32768       ,1              ,11           ,0    ,8          ,0.934
> > 32768       ,14             ,5            ,1    ,8          ,1.067
> > 32769       ,1              ,11           ,0    ,9          ,1.003
> > 32769       ,14             ,5            ,1    ,9          ,1.089
> > 32769       ,1              ,11           ,0    ,8          ,1.0
> > 32769       ,14             ,5            ,1    ,8          ,1.068
> > 32769       ,4081           ,5            ,1    ,8          ,0.986
> > 32768       ,1              ,11           ,0    ,16         ,0.994
> > 32768       ,14             ,5            ,1    ,16         ,0.994
> > 32769       ,1              ,11           ,0    ,17         ,1.008
> > 32769       ,14             ,5            ,1    ,17         ,0.95
> > 32769       ,1              ,11           ,0    ,16         ,0.953
> > 32769       ,14             ,5            ,1    ,16         ,0.954
> > 32769       ,4081           ,5            ,1    ,16         ,0.956
> > 32768       ,1              ,11           ,0    ,32         ,1.037
> > 32768       ,14             ,5            ,1    ,32         ,0.751
> > 32769       ,1              ,11           ,0    ,33         ,0.769
> > 32769       ,14             ,5            ,1    ,33         ,0.906
> > 32769       ,1              ,11           ,0    ,32         ,0.867
> > 32769       ,14             ,5            ,1    ,32         ,0.919
> > 32769       ,4081           ,5            ,1    ,32         ,1.145
> > 32768       ,1              ,11           ,0    ,64         ,0.909
> > 32768       ,14             ,5            ,1    ,64         ,0.947
> > 32769       ,1              ,11           ,0    ,65         ,0.896
> > 32769       ,14             ,5            ,1    ,65         ,0.964
> > 32769       ,1              ,11           ,0    ,64         ,0.996
> > 32769       ,14             ,5            ,1    ,64         ,0.905
> > 32769       ,4081           ,5            ,1    ,64         ,0.996
> > 32768       ,1              ,11           ,0    ,128        ,0.856
> > 32768       ,14             ,5            ,1    ,128        ,1.061
> > 32769       ,1              ,11           ,0    ,129        ,1.027
> > 32769       ,14             ,5            ,1    ,129        ,0.886
> > 32769       ,1              ,11           ,0    ,128        ,0.957
> > 32769       ,14             ,5            ,1    ,128        ,0.97
> > 32769       ,4081           ,5            ,1    ,128        ,1.097
> > 32768       ,1              ,11           ,0    ,256        ,0.914
> > 32768       ,14             ,5            ,1    ,256        ,0.994
> > 32769       ,1              ,11           ,0    ,257        ,0.865
> > 32769       ,14             ,5            ,1    ,257        ,0.889
> > 32769       ,1              ,11           ,0    ,256        ,0.951
> > 32769       ,14             ,5            ,1    ,256        ,0.938
> > 32769       ,4081           ,5            ,1    ,256        ,0.972
> > 65536       ,1              ,11           ,0    ,4          ,1.02
> > 65536       ,14             ,5            ,1    ,4          ,0.962
> > 65537       ,1              ,11           ,0    ,5          ,1.006
> > 65537       ,14             ,5            ,1    ,5          ,0.959
> > 65537       ,1              ,11           ,0    ,4          ,0.949
> > 65537       ,14             ,5            ,1    ,4          ,0.945
> > 65537       ,4081           ,5            ,1    ,4          ,0.976
> > 65536       ,1              ,11           ,0    ,8          ,1.007
> > 65536       ,14             ,5            ,1    ,8          ,0.997
> > 65537       ,1              ,11           ,0    ,9          ,1.008
> > 65537       ,14             ,5            ,1    ,9          ,0.971
> > 65537       ,1              ,11           ,0    ,8          ,0.893
> > 65537       ,14             ,5            ,1    ,8          ,0.929
> > 65537       ,4081           ,5            ,1    ,8          ,0.956
> > 65536       ,1              ,11           ,0    ,16         ,0.921
> > 65536       ,14             ,5            ,1    ,16         ,0.909
> > 65537       ,1              ,11           ,0    ,17         ,0.986
> > 65537       ,14             ,5            ,1    ,17         ,0.962
> > 65537       ,1              ,11           ,0    ,16         ,0.93
> > 65537       ,14             ,5            ,1    ,16         ,0.947
> > 65537       ,4081           ,5            ,1    ,16         ,0.885
> > 65536       ,1              ,11           ,0    ,32         ,1.001
> > 65536       ,14             ,5            ,1    ,32         ,0.93
> > 65537       ,1              ,11           ,0    ,33         ,0.87
> > 65537       ,14             ,5            ,1    ,33         ,1.038
> > 65537       ,1              ,11           ,0    ,32         ,0.934
> > 65537       ,14             ,5            ,1    ,32         ,1.094
> > 65537       ,4081           ,5            ,1    ,32         ,0.997
> > 65536       ,1              ,11           ,0    ,64         ,0.975
> > 65536       ,14             ,5            ,1    ,64         ,0.964
> > 65537       ,1              ,11           ,0    ,65         ,1.027
> > 65537       ,14             ,5            ,1    ,65         ,0.942
> > 65537       ,1              ,11           ,0    ,64         ,0.996
> > 65537       ,14             ,5            ,1    ,64         ,0.938
> > 65537       ,4081           ,5            ,1    ,64         ,0.913
> > 65536       ,1              ,11           ,0    ,128        ,0.967
> > 65536       ,14             ,5            ,1    ,128        ,0.991
> > 65537       ,1              ,11           ,0    ,129        ,0.949
> > 65537       ,14             ,5            ,1    ,129        ,0.948
> > 65537       ,1              ,11           ,0    ,128        ,1.019
> > 65537       ,14             ,5            ,1    ,128        ,1.028
> > 65537       ,4081           ,5            ,1    ,128        ,0.978
> > 65536       ,1              ,11           ,0    ,256        ,0.956
> > 65536       ,14             ,5            ,1    ,256        ,0.932
> > 65537       ,1              ,11           ,0    ,257        ,0.982
> > 65537       ,14             ,5            ,1    ,257        ,0.972
> > 65537       ,1              ,11           ,0    ,256        ,0.933
> > 65537       ,14             ,5            ,1    ,256        ,0.947
> > 65537       ,4081           ,5            ,1    ,256        ,0.939
> > 65536       ,0              ,0            ,1    ,64         ,0.974
> > 65536       ,0              ,0            ,1    ,256        ,0.948
> > 65536       ,0              ,0            ,1    ,1024       ,0.917
> > >
> > >
> > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > H.J.
> > > >
> > > >
> > > >
> > > > --
> > > > H.J.
>
>
>
> --
> H.J.


More information about the Libc-alpha mailing list