From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yw1-x112e.google.com (mail-yw1-x112e.google.com [IPv6:2607:f8b0:4864:20::112e]) by sourceware.org (Postfix) with ESMTPS id 02C05385803D for ; Sun, 10 Apr 2022 00:48:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 02C05385803D Received: by mail-yw1-x112e.google.com with SMTP id 00721157ae682-2eafabbc80aso131595987b3.11 for ; Sat, 09 Apr 2022 17:48:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=N1p3t0lwzdxkbFTfDM+c67Qel1cFFCgpAKy9SFg98zI=; b=P53jfHp9VYfVLtrF2YmPjB+cxJGRb60DBU2zGRUHhWXgG8X9KrLU7/l9qo/YxHC7K1 9Lbd4OHLoeeiIZH5kWQlGWxUnzxRn+P9HyZy2DQefjaKVxBlVxrYA8iDMAU3Z7WEhxII 35dyXhDTAaitoX13mt18G+gtrtzRM9uAf7O18xIj40adPd1dKbEkfv68KaBO0e0Q6yip XMH9zMJoc04STJedMljOs0JJlQA3iEBPOeCj8MGQ/RvTXuEWZFbDt6+L+dD/QRfS1x/y lRTnHL8TH5t3Uqs6VcijPr2PiS+eR7eKESbF6v2vRwSFlGthjCNY1Pa0ktO6O0VXRT8O ZYFw== X-Gm-Message-State: AOAM5311HVhm8zSlX2uZ7N73r8WQSNHYqWjbCGRKUejU8yl2b40LPWJH wxRVo5cq+1g68M78MD6L/QOGC0IApTNdhcbtAuTcBwrG X-Google-Smtp-Source: ABdhPJx0zmH75rtoawhEgc4VaAmyNx3hgacG7JksNMpP0crfzwIsUtd75+QxfMu6uP97zQb+QckSU3Ic9Gx3Ui7ZY5U= X-Received: by 2002:a0d:cc51:0:b0:2eb:84e2:1de with SMTP id o78-20020a0dcc51000000b002eb84e201demr21895978ywd.249.1649551719448; Sat, 09 Apr 2022 17:48:39 -0700 (PDT) MIME-Version: 1.0 References: <20220325183625.1170867-2-goldstein.w.n@gmail.com> <20220410004250.1448020-1-goldstein.w.n@gmail.com> In-Reply-To: <20220410004250.1448020-1-goldstein.w.n@gmail.com> From: Noah Goldstein Date: Sat, 9 Apr 2022 19:48:27 -0500 Message-ID: Subject: Re: [PATCH v3 1/6] x86: Remove str{p}{n}cpy-ssse3 To: GNU C Library Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Apr 2022 00:48:45 -0000 Disregard this patch. It's from the wrong patchset. On Sat, Apr 9, 2022 at 7:45 PM Noah Goldstein wrote: > > With SSE2, SSE4.1, AVX2, and EVEX versions very few targets prefer > SSSE3. As a result it is no longer worth it to keep the SSSE3 > versions given the code size cost. > --- > Full memcpy ssse3 results. Number are comparison of > geometric mean of N=50 runs on Zhaoxin KX-6840@2000MHz > > bench-memcpy: > > length, align1, align2, dst > src, New Time / Old Time > 1, 0, 0, 0, 2.099 > 1, 0, 0, 1, 2.099 > 1, 32, 0, 0, 2.103 > 1, 32, 0, 1, 2.103 > 1, 0, 32, 0, 2.099 > 1, 0, 32, 1, 2.098 > 1, 32, 32, 0, 2.098 > 1, 32, 32, 1, 2.098 > 1, 2048, 0, 0, 2.098 > 1, 2048, 0, 1, 2.098 > 2, 0, 0, 0, 1.135 > 2, 0, 0, 1, 1.136 > 2, 1, 0, 0, 1.139 > 2, 1, 0, 1, 1.139 > 2, 33, 0, 0, 1.165 > 2, 33, 0, 1, 1.139 > 2, 0, 1, 0, 1.136 > 2, 0, 1, 1, 1.136 > 2, 0, 33, 0, 1.136 > 2, 0, 33, 1, 1.136 > 2, 1, 1, 0, 1.136 > 2, 1, 1, 1, 1.136 > 2, 33, 33, 0, 1.136 > 2, 33, 33, 1, 1.136 > 2, 2048, 0, 0, 1.136 > 2, 2048, 0, 1, 1.136 > 2, 2049, 0, 0, 1.191 > 2, 2049, 0, 1, 1.139 > 2, 2048, 1, 0, 1.136 > 2, 2048, 1, 1, 1.136 > 2, 2049, 1, 0, 1.136 > 2, 2049, 1, 1, 1.136 > 4, 0, 0, 0, 1.074 > 4, 0, 0, 1, 0.962 > 4, 2, 0, 0, 0.973 > 4, 2, 0, 1, 0.989 > 4, 34, 0, 0, 0.991 > 4, 34, 0, 1, 0.991 > 4, 0, 2, 0, 0.962 > 4, 0, 2, 1, 0.962 > 4, 0, 34, 0, 0.962 > 4, 0, 34, 1, 0.962 > 4, 2, 2, 0, 0.962 > 4, 2, 2, 1, 0.962 > 4, 34, 34, 0, 0.962 > 4, 34, 34, 1, 0.962 > 4, 2048, 0, 0, 0.962 > 4, 2048, 0, 1, 0.962 > 4, 2050, 0, 0, 0.977 > 4, 2050, 0, 1, 0.979 > 4, 2048, 2, 0, 0.962 > 4, 2048, 2, 1, 0.962 > 4, 2050, 2, 0, 0.962 > 4, 2050, 2, 1, 0.962 > 8, 0, 0, 0, 0.961 > 8, 0, 0, 1, 0.962 > 8, 3, 0, 0, 1.0 > 8, 3, 0, 1, 1.0 > 8, 35, 0, 0, 1.0 > 8, 35, 0, 1, 1.0 > 8, 0, 3, 0, 0.962 > 8, 0, 3, 1, 0.962 > 8, 0, 35, 0, 0.962 > 8, 0, 35, 1, 0.962 > 8, 3, 3, 0, 0.962 > 8, 3, 3, 1, 0.962 > 8, 35, 35, 0, 0.962 > 8, 35, 35, 1, 0.962 > 8, 2048, 0, 0, 0.962 > 8, 2048, 0, 1, 0.962 > 8, 2051, 0, 0, 1.0 > 8, 2051, 0, 1, 1.0 > 8, 2048, 3, 0, 0.962 > 8, 2048, 3, 1, 0.962 > 8, 2051, 3, 0, 0.962 > 8, 2051, 3, 1, 0.962 > 16, 0, 0, 0, 0.798 > 16, 0, 0, 1, 0.799 > 16, 4, 0, 0, 0.8 > 16, 4, 0, 1, 0.801 > 16, 36, 0, 0, 0.801 > 16, 36, 0, 1, 0.8 > 16, 0, 4, 0, 0.798 > 16, 0, 4, 1, 0.798 > 16, 0, 36, 0, 0.798 > 16, 0, 36, 1, 0.798 > 16, 4, 4, 0, 0.798 > 16, 4, 4, 1, 0.798 > 16, 36, 36, 0, 0.798 > 16, 36, 36, 1, 0.798 > 16, 2048, 0, 0, 0.798 > 16, 2048, 0, 1, 0.799 > 16, 2052, 0, 0, 0.8 > 16, 2052, 0, 1, 0.8 > 16, 2048, 4, 0, 0.798 > 16, 2048, 4, 1, 0.798 > 16, 2052, 4, 0, 0.798 > 16, 2052, 4, 1, 0.798 > 32, 0, 0, 0, 0.471 > 32, 0, 0, 1, 0.471 > 32, 5, 0, 0, 0.471 > 32, 5, 0, 1, 0.471 > 32, 37, 0, 0, 0.961 > 32, 37, 0, 1, 0.961 > 32, 0, 5, 0, 0.471 > 32, 0, 5, 1, 0.471 > 32, 0, 37, 0, 1.021 > 32, 0, 37, 1, 1.021 > 32, 5, 5, 0, 0.471 > 32, 5, 5, 1, 0.471 > 32, 37, 37, 0, 1.011 > 32, 37, 37, 1, 1.011 > 32, 2048, 0, 0, 0.471 > 32, 2048, 0, 1, 0.471 > 32, 2053, 0, 0, 0.471 > 32, 2053, 0, 1, 0.471 > 32, 2048, 5, 0, 0.471 > 32, 2048, 5, 1, 0.471 > 32, 2053, 5, 0, 0.471 > 32, 2053, 5, 1, 0.471 > 64, 0, 0, 0, 1.0 > 64, 0, 0, 1, 1.0 > 64, 6, 0, 0, 0.862 > 64, 6, 0, 1, 0.862 > 64, 38, 0, 0, 0.912 > 64, 38, 0, 1, 0.912 > 64, 0, 6, 0, 0.896 > 64, 0, 6, 1, 0.896 > 64, 0, 38, 0, 0.906 > 64, 0, 38, 1, 0.906 > 64, 6, 6, 0, 0.91 > 64, 6, 6, 1, 0.91 > 64, 38, 38, 0, 0.883 > 64, 38, 38, 1, 0.883 > 64, 2048, 0, 0, 1.0 > 64, 2048, 0, 1, 1.0 > 64, 2054, 0, 0, 0.862 > 64, 2054, 0, 1, 0.862 > 64, 2048, 6, 0, 0.887 > 64, 2048, 6, 1, 0.887 > 64, 2054, 6, 0, 0.887 > 64, 2054, 6, 1, 0.887 > 128, 0, 0, 0, 0.857 > 128, 0, 0, 1, 0.857 > 128, 7, 0, 0, 0.875 > 128, 7, 0, 1, 0.875 > 128, 39, 0, 0, 0.892 > 128, 39, 0, 1, 0.892 > 128, 0, 7, 0, 1.183 > 128, 0, 7, 1, 1.183 > 128, 0, 39, 0, 1.113 > 128, 0, 39, 1, 1.113 > 128, 7, 7, 0, 0.692 > 128, 7, 7, 1, 0.692 > 128, 39, 39, 0, 1.104 > 128, 39, 39, 1, 1.104 > 128, 2048, 0, 0, 0.857 > 128, 2048, 0, 1, 0.857 > 128, 2055, 0, 0, 0.875 > 128, 2055, 0, 1, 0.875 > 128, 2048, 7, 0, 0.959 > 128, 2048, 7, 1, 0.959 > 128, 2055, 7, 0, 1.036 > 128, 2055, 7, 1, 1.036 > 256, 0, 0, 0, 0.889 > 256, 0, 0, 1, 0.889 > 256, 8, 0, 0, 0.966 > 256, 8, 0, 1, 0.966 > 256, 40, 0, 0, 0.983 > 256, 40, 0, 1, 0.983 > 256, 0, 8, 0, 1.29 > 256, 0, 8, 1, 1.29 > 256, 0, 40, 0, 1.274 > 256, 0, 40, 1, 1.274 > 256, 8, 8, 0, 0.865 > 256, 8, 8, 1, 0.865 > 256, 40, 40, 0, 1.477 > 256, 40, 40, 1, 1.477 > 256, 2048, 0, 0, 0.889 > 256, 2048, 0, 1, 0.889 > 256, 2056, 0, 0, 0.966 > 256, 2056, 0, 1, 0.966 > 256, 2048, 8, 0, 0.952 > 256, 2048, 8, 1, 0.952 > 256, 2056, 8, 0, 0.878 > 256, 2056, 8, 1, 0.878 > 512, 0, 0, 0, 1.077 > 512, 0, 0, 1, 1.077 > 512, 9, 0, 0, 1.001 > 512, 9, 0, 1, 1.0 > 512, 41, 0, 0, 0.954 > 512, 41, 0, 1, 0.954 > 512, 0, 9, 0, 1.191 > 512, 0, 9, 1, 1.191 > 512, 0, 41, 0, 1.181 > 512, 0, 41, 1, 1.181 > 512, 9, 9, 0, 0.765 > 512, 9, 9, 1, 0.765 > 512, 41, 41, 0, 0.905 > 512, 41, 41, 1, 0.905 > 512, 2048, 0, 0, 1.077 > 512, 2048, 0, 1, 1.077 > 512, 2057, 0, 0, 1.0 > 512, 2057, 0, 1, 1.0 > 512, 2048, 9, 0, 1.0 > 512, 2048, 9, 1, 1.0 > 512, 2057, 9, 0, 0.733 > 512, 2057, 9, 1, 0.733 > 1024, 0, 0, 0, 1.143 > 1024, 0, 0, 1, 1.143 > 1024, 10, 0, 0, 1.015 > 1024, 10, 0, 1, 1.015 > 1024, 42, 0, 0, 1.045 > 1024, 42, 0, 1, 1.045 > 1024, 0, 10, 0, 1.126 > 1024, 0, 10, 1, 1.126 > 1024, 0, 42, 0, 1.114 > 1024, 0, 42, 1, 1.114 > 1024, 10, 10, 0, 0.89 > 1024, 10, 10, 1, 0.89 > 1024, 42, 42, 0, 0.986 > 1024, 42, 42, 1, 0.986 > 1024, 2048, 0, 0, 1.143 > 1024, 2048, 0, 1, 1.143 > 1024, 2058, 0, 0, 1.015 > 1024, 2058, 0, 1, 1.015 > 1024, 2048, 10, 0, 1.03 > 1024, 2048, 10, 1, 1.03 > 1024, 2058, 10, 0, 0.854 > 1024, 2058, 10, 1, 0.854 > 2048, 0, 0, 0, 1.005 > 2048, 0, 0, 1, 1.005 > 2048, 11, 0, 0, 1.013 > 2048, 11, 0, 1, 1.014 > 2048, 43, 0, 0, 1.044 > 2048, 43, 0, 1, 1.044 > 2048, 0, 11, 0, 1.003 > 2048, 0, 11, 1, 1.003 > 2048, 0, 43, 0, 1.003 > 2048, 0, 43, 1, 1.003 > 2048, 11, 11, 0, 0.92 > 2048, 11, 11, 1, 0.92 > 2048, 43, 43, 0, 1.0 > 2048, 43, 43, 1, 1.0 > 2048, 2048, 0, 0, 1.005 > 2048, 2048, 0, 1, 1.005 > 2048, 2059, 0, 0, 0.904 > 2048, 2059, 0, 1, 0.904 > 2048, 2048, 11, 0, 1.0 > 2048, 2048, 11, 1, 1.0 > 2048, 2059, 11, 0, 0.979 > 2048, 2059, 11, 1, 0.979 > 4096, 0, 0, 0, 1.014 > 4096, 0, 0, 1, 1.014 > 4096, 12, 0, 0, 0.855 > 4096, 12, 0, 1, 0.855 > 4096, 44, 0, 0, 0.857 > 4096, 44, 0, 1, 0.857 > 4096, 0, 12, 0, 0.932 > 4096, 0, 12, 1, 0.932 > 4096, 0, 44, 0, 0.932 > 4096, 0, 44, 1, 0.932 > 4096, 12, 12, 0, 0.999 > 4096, 12, 12, 1, 0.999 > 4096, 44, 44, 0, 1.051 > 4096, 44, 44, 1, 1.051 > 4096, 2048, 0, 0, 1.014 > 4096, 2048, 0, 1, 1.014 > 4096, 2060, 0, 0, 0.98 > 4096, 2060, 0, 1, 0.98 > 4096, 2048, 12, 0, 0.77 > 4096, 2048, 12, 1, 0.77 > 4096, 2060, 12, 0, 0.943 > 4096, 2060, 12, 1, 0.943 > 8192, 0, 0, 0, 1.046 > 8192, 0, 0, 1, 1.046 > 8192, 13, 0, 0, 0.885 > 8192, 13, 0, 1, 0.885 > 8192, 45, 0, 0, 0.887 > 8192, 45, 0, 1, 0.886 > 8192, 0, 13, 0, 0.942 > 8192, 0, 13, 1, 0.942 > 8192, 0, 45, 0, 0.942 > 8192, 0, 45, 1, 0.942 > 8192, 13, 13, 0, 1.03 > 8192, 13, 13, 1, 1.03 > 8192, 45, 45, 0, 1.048 > 8192, 45, 45, 1, 1.048 > 8192, 2048, 0, 0, 1.048 > 8192, 2048, 0, 1, 1.048 > 8192, 2061, 0, 0, 1.011 > 8192, 2061, 0, 1, 1.011 > 8192, 2048, 13, 0, 0.789 > 8192, 2048, 13, 1, 0.789 > 8192, 2061, 13, 0, 0.991 > 8192, 2061, 13, 1, 0.991 > 16384, 0, 0, 0, 1.014 > 16384, 0, 0, 1, 1.008 > 16384, 14, 0, 0, 0.951 > 16384, 14, 0, 1, 0.95 > 16384, 46, 0, 0, 0.874 > 16384, 46, 0, 1, 0.871 > 16384, 0, 14, 0, 0.813 > 16384, 0, 14, 1, 0.81 > 16384, 0, 46, 0, 0.85 > 16384, 0, 46, 1, 0.86 > 16384, 14, 14, 0, 0.985 > 16384, 14, 14, 1, 0.975 > 16384, 46, 46, 0, 1.025 > 16384, 46, 46, 1, 1.027 > 16384, 2048, 0, 0, 1.058 > 16384, 2048, 0, 1, 1.058 > 16384, 2062, 0, 0, 0.849 > 16384, 2062, 0, 1, 0.848 > 16384, 2048, 14, 0, 0.907 > 16384, 2048, 14, 1, 0.907 > 16384, 2062, 14, 0, 0.988 > 16384, 2062, 14, 1, 0.995 > 32768, 0, 0, 0, 0.979 > 32768, 0, 0, 1, 0.979 > 32768, 15, 0, 0, 1.006 > 32768, 15, 0, 1, 1.006 > 32768, 47, 0, 0, 1.004 > 32768, 47, 0, 1, 1.004 > 32768, 0, 15, 0, 1.045 > 32768, 0, 15, 1, 1.045 > 32768, 0, 47, 0, 1.011 > 32768, 0, 47, 1, 1.012 > 32768, 15, 15, 0, 0.977 > 32768, 15, 15, 1, 0.977 > 32768, 47, 47, 0, 0.96 > 32768, 47, 47, 1, 0.96 > 32768, 2048, 0, 0, 0.978 > 32768, 2048, 0, 1, 0.978 > 32768, 2063, 0, 0, 1.004 > 32768, 2063, 0, 1, 1.004 > 32768, 2048, 15, 0, 1.036 > 32768, 2048, 15, 1, 1.036 > 32768, 2063, 15, 0, 0.978 > 32768, 2063, 15, 1, 0.978 > 65536, 0, 0, 0, 0.981 > 65536, 0, 0, 1, 0.981 > 65536, 16, 0, 0, 0.987 > 65536, 16, 0, 1, 0.987 > 65536, 48, 0, 0, 0.968 > 65536, 48, 0, 1, 0.968 > 65536, 0, 16, 0, 1.014 > 65536, 0, 16, 1, 1.014 > 65536, 0, 48, 0, 0.984 > 65536, 0, 48, 1, 0.984 > 65536, 16, 16, 0, 1.01 > 65536, 16, 16, 1, 1.01 > 65536, 48, 48, 0, 0.968 > 65536, 48, 48, 1, 0.968 > 65536, 2048, 0, 0, 0.982 > 65536, 2048, 0, 1, 0.982 > 65536, 2064, 0, 0, 0.987 > 65536, 2064, 0, 1, 0.987 > 65536, 2048, 16, 0, 1.012 > 65536, 2048, 16, 1, 1.012 > 65536, 2064, 16, 0, 1.007 > 65536, 2064, 16, 1, 1.007 > 0, 0, 0, 0, 2.104 > 0, 2048, 0, 0, 2.104 > 0, 4095, 0, 0, 2.109 > 0, 0, 4095, 0, 2.103 > 1, 1, 0, 0, 2.104 > 1, 0, 1, 0, 2.098 > 1, 1, 1, 0, 2.098 > 1, 2049, 0, 0, 2.102 > 1, 2048, 1, 0, 2.098 > 1, 2049, 1, 0, 2.098 > 1, 4095, 0, 0, 2.103 > 1, 0, 4095, 0, 2.098 > 2, 2, 0, 0, 1.139 > 2, 0, 2, 0, 1.136 > 2, 2, 2, 0, 1.136 > 2, 2050, 0, 0, 1.139 > 2, 2048, 2, 0, 1.136 > 2, 2050, 2, 0, 1.136 > 2, 4095, 0, 0, 1.0 > 2, 0, 4095, 0, 1.022 > 3, 0, 0, 0, 0.981 > 3, 3, 0, 0, 0.984 > 3, 0, 3, 0, 0.982 > 3, 3, 3, 0, 0.982 > 3, 2048, 0, 0, 0.982 > 3, 2051, 0, 0, 0.983 > 3, 2048, 3, 0, 0.982 > 3, 2051, 3, 0, 0.982 > 3, 4095, 0, 0, 0.285 > 3, 0, 4095, 0, 0.231 > 4, 4, 0, 0, 1.373 > 4, 0, 4, 0, 1.31 > 4, 4, 4, 0, 1.282 > 4, 2052, 0, 0, 1.264 > 4, 2048, 4, 0, 1.254 > 4, 2052, 4, 0, 1.254 > 4, 4095, 0, 0, 1.971 > 4, 0, 4095, 0, 1.994 > 5, 0, 0, 0, 1.145 > 5, 5, 0, 0, 1.155 > 5, 0, 5, 0, 1.171 > 5, 5, 5, 0, 1.171 > 5, 2048, 0, 0, 1.197 > 5, 2053, 0, 0, 1.173 > 5, 2048, 5, 0, 1.171 > 5, 2053, 5, 0, 1.171 > 5, 4095, 0, 0, 0.935 > 5, 0, 4095, 0, 1.017 > 6, 0, 0, 0, 1.145 > 6, 6, 0, 0, 1.098 > 6, 0, 6, 0, 1.096 > 6, 6, 6, 0, 1.096 > 6, 2048, 0, 0, 1.12 > 6, 2054, 0, 0, 1.122 > 6, 2048, 6, 0, 1.12 > 6, 2054, 6, 0, 1.096 > 6, 4095, 0, 0, 0.935 > 6, 0, 4095, 0, 1.018 > 7, 0, 0, 0, 1.071 > 7, 7, 0, 0, 1.074 > 7, 0, 7, 0, 1.072 > 7, 7, 7, 0, 1.072 > 7, 2048, 0, 0, 1.096 > 7, 2055, 0, 0, 1.098 > 7, 2048, 7, 0, 1.096 > 7, 2055, 7, 0, 1.096 > 7, 4095, 0, 0, 0.935 > 7, 0, 4095, 0, 1.016 > 8, 8, 0, 0, 1.167 > 8, 0, 8, 0, 1.028 > 8, 8, 8, 0, 1.028 > 8, 2056, 0, 0, 1.069 > 8, 2048, 8, 0, 1.028 > 8, 2056, 8, 0, 1.028 > 8, 4095, 0, 0, 1.029 > 8, 0, 4095, 0, 1.043 > 9, 0, 0, 0, 0.799 > 9, 9, 0, 0, 0.801 > 9, 0, 9, 0, 0.799 > 9, 9, 9, 0, 0.799 > 9, 2048, 0, 0, 0.8 > 9, 2057, 0, 0, 0.801 > 9, 2048, 9, 0, 0.8 > 9, 2057, 9, 0, 0.799 > 9, 4095, 0, 0, 0.909 > 9, 0, 4095, 0, 1.0 > 10, 0, 0, 0, 0.799 > 10, 10, 0, 0, 0.801 > 10, 0, 10, 0, 0.8 > 10, 10, 10, 0, 0.8 > 10, 2048, 0, 0, 0.8 > 10, 2058, 0, 0, 0.801 > 10, 2048, 10, 0, 0.8 > 10, 2058, 10, 0, 0.8 > 10, 4095, 0, 0, 0.909 > 10, 0, 4095, 0, 1.0 > 11, 0, 0, 0, 0.799 > 11, 11, 0, 0, 0.801 > 11, 0, 11, 0, 0.8 > 11, 11, 11, 0, 0.8 > 11, 2048, 0, 0, 0.8 > 11, 2059, 0, 0, 0.802 > 11, 2048, 11, 0, 0.8 > 11, 2059, 11, 0, 0.8 > 11, 4095, 0, 0, 0.909 > 11, 0, 4095, 0, 1.0 > 12, 0, 0, 0, 0.799 > 12, 12, 0, 0, 0.801 > 12, 0, 12, 0, 0.8 > 12, 12, 12, 0, 0.8 > 12, 2048, 0, 0, 0.8 > 12, 2060, 0, 0, 0.802 > 12, 2048, 12, 0, 0.8 > 12, 2060, 12, 0, 0.8 > 12, 4095, 0, 0, 0.909 > 12, 0, 4095, 0, 1.0 > 13, 0, 0, 0, 0.798 > 13, 13, 0, 0, 0.801 > 13, 0, 13, 0, 0.799 > 13, 13, 13, 0, 0.799 > 13, 2048, 0, 0, 0.8 > 13, 2061, 0, 0, 0.801 > 13, 2048, 13, 0, 0.8 > 13, 2061, 13, 0, 0.8 > 13, 4095, 0, 0, 0.909 > 13, 0, 4095, 0, 1.0 > 14, 0, 0, 0, 0.799 > 14, 14, 0, 0, 0.801 > 14, 0, 14, 0, 0.8 > 14, 14, 14, 0, 0.8 > 14, 2048, 0, 0, 0.8 > 14, 2062, 0, 0, 0.801 > 14, 2048, 14, 0, 0.8 > 14, 2062, 14, 0, 0.8 > 14, 4095, 0, 0, 0.909 > 14, 0, 4095, 0, 1.0 > 15, 0, 0, 0, 0.799 > 15, 15, 0, 0, 0.801 > 15, 0, 15, 0, 0.8 > 15, 15, 15, 0, 0.8 > 15, 2048, 0, 0, 0.8 > 15, 2063, 0, 0, 0.802 > 15, 2048, 15, 0, 0.8 > 15, 2063, 15, 0, 0.8 > 15, 4095, 0, 0, 0.909 > 15, 0, 4095, 0, 1.0 > 16, 16, 0, 0, 0.801 > 16, 0, 16, 0, 0.799 > 16, 16, 16, 0, 0.799 > 16, 2064, 0, 0, 0.801 > 16, 2048, 16, 0, 0.798 > 16, 2064, 16, 0, 0.798 > 16, 4095, 0, 0, 1.818 > 16, 0, 4095, 0, 1.957 > 17, 0, 0, 0, 0.798 > 17, 17, 0, 0, 0.8 > 17, 0, 17, 0, 0.799 > 17, 17, 17, 0, 0.798 > 17, 2048, 0, 0, 0.798 > 17, 2065, 0, 0, 0.8 > 17, 2048, 17, 0, 0.798 > 17, 2065, 17, 0, 0.799 > 17, 4095, 0, 0, 0.937 > 17, 0, 4095, 0, 1.021 > 18, 0, 0, 0, 0.798 > 18, 18, 0, 0, 0.801 > 18, 0, 18, 0, 0.798 > 18, 18, 18, 0, 0.798 > 18, 2048, 0, 0, 0.799 > 18, 2066, 0, 0, 0.8 > 18, 2048, 18, 0, 0.798 > 18, 2066, 18, 0, 0.798 > 18, 4095, 0, 0, 0.937 > 18, 0, 4095, 0, 1.021 > 19, 0, 0, 0, 0.798 > 19, 19, 0, 0, 0.8 > 19, 0, 19, 0, 0.798 > 19, 19, 19, 0, 0.798 > 19, 2048, 0, 0, 0.798 > 19, 2067, 0, 0, 0.8 > 19, 2048, 19, 0, 0.798 > 19, 2067, 19, 0, 0.798 > 19, 4095, 0, 0, 0.937 > 19, 0, 4095, 0, 1.021 > 20, 0, 0, 0, 0.798 > 20, 20, 0, 0, 0.8 > 20, 0, 20, 0, 0.798 > 20, 20, 20, 0, 0.798 > 20, 2048, 0, 0, 0.798 > 20, 2068, 0, 0, 0.8 > 20, 2048, 20, 0, 0.798 > 20, 2068, 20, 0, 0.798 > 20, 4095, 0, 0, 0.937 > 20, 0, 4095, 0, 1.021 > 21, 0, 0, 0, 0.798 > 21, 21, 0, 0, 0.801 > 21, 0, 21, 0, 0.798 > 21, 21, 21, 0, 0.798 > 21, 2048, 0, 0, 0.798 > 21, 2069, 0, 0, 0.801 > 21, 2048, 21, 0, 0.799 > 21, 2069, 21, 0, 0.798 > 21, 4095, 0, 0, 0.937 > 21, 0, 4095, 0, 1.021 > 22, 0, 0, 0, 0.798 > 22, 22, 0, 0, 0.801 > 22, 0, 22, 0, 0.798 > 22, 22, 22, 0, 0.798 > 22, 2048, 0, 0, 0.798 > 22, 2070, 0, 0, 0.801 > 22, 2048, 22, 0, 0.798 > 22, 2070, 22, 0, 0.798 > 22, 4095, 0, 0, 0.937 > 22, 0, 4095, 0, 1.021 > 23, 0, 0, 0, 0.798 > 23, 23, 0, 0, 0.8 > 23, 0, 23, 0, 0.798 > 23, 23, 23, 0, 0.798 > 23, 2048, 0, 0, 0.798 > 23, 2071, 0, 0, 0.8 > 23, 2048, 23, 0, 0.798 > 23, 2071, 23, 0, 0.798 > 23, 4095, 0, 0, 0.937 > 23, 0, 4095, 0, 1.021 > 24, 0, 0, 0, 0.798 > 24, 24, 0, 0, 0.8 > 24, 0, 24, 0, 0.799 > 24, 24, 24, 0, 0.798 > 24, 2048, 0, 0, 0.798 > 24, 2072, 0, 0, 0.801 > 24, 2048, 24, 0, 0.798 > 24, 2072, 24, 0, 0.798 > 24, 4095, 0, 0, 0.937 > 24, 0, 4095, 0, 1.021 > 25, 0, 0, 0, 0.5 > 25, 25, 0, 0, 0.5 > 25, 0, 25, 0, 0.5 > 25, 25, 25, 0, 0.5 > 25, 2048, 0, 0, 0.5 > 25, 2073, 0, 0, 0.501 > 25, 2048, 25, 0, 0.5 > 25, 2073, 25, 0, 0.5 > 25, 4095, 0, 0, 0.974 > 25, 0, 4095, 0, 0.98 > 26, 0, 0, 0, 0.5 > 26, 26, 0, 0, 0.501 > 26, 0, 26, 0, 0.5 > 26, 26, 26, 0, 0.501 > 26, 2048, 0, 0, 0.5 > 26, 2074, 0, 0, 0.5 > 26, 2048, 26, 0, 0.5 > 26, 2074, 26, 0, 0.5 > 26, 4095, 0, 0, 0.974 > 26, 0, 4095, 0, 1.0 > 27, 0, 0, 0, 0.5 > 27, 27, 0, 0, 0.501 > 27, 0, 27, 0, 0.5 > 27, 27, 27, 0, 0.5 > 27, 2048, 0, 0, 0.5 > 27, 2075, 0, 0, 0.5 > 27, 2048, 27, 0, 0.5 > 27, 2075, 27, 0, 0.5 > 27, 4095, 0, 0, 0.974 > 27, 0, 4095, 0, 1.0 > 28, 0, 0, 0, 0.5 > 28, 28, 0, 0, 0.501 > 28, 0, 28, 0, 0.5 > 28, 28, 28, 0, 0.5 > 28, 2048, 0, 0, 0.5 > 28, 2076, 0, 0, 0.5 > 28, 2048, 28, 0, 0.5 > 28, 2076, 28, 0, 0.5 > 28, 4095, 0, 0, 0.974 > 28, 0, 4095, 0, 1.0 > 29, 0, 0, 0, 0.471 > 29, 29, 0, 0, 0.471 > 29, 0, 29, 0, 0.471 > 29, 29, 29, 0, 0.471 > 29, 2048, 0, 0, 0.471 > 29, 2077, 0, 0, 0.471 > 29, 2048, 29, 0, 0.471 > 29, 2077, 29, 0, 0.471 > 29, 4095, 0, 0, 0.974 > 29, 0, 4095, 0, 1.0 > 30, 0, 0, 0, 0.471 > 30, 30, 0, 0, 0.471 > 30, 0, 30, 0, 0.471 > 30, 30, 30, 0, 0.471 > 30, 2048, 0, 0, 0.471 > 30, 2078, 0, 0, 0.471 > 30, 2048, 30, 0, 0.471 > 30, 2078, 30, 0, 0.471 > 30, 4095, 0, 0, 0.974 > 30, 0, 4095, 0, 1.0 > 31, 0, 0, 0, 0.471 > 31, 31, 0, 0, 0.471 > 31, 0, 31, 0, 0.471 > 31, 31, 31, 0, 0.471 > 31, 2048, 0, 0, 0.471 > 31, 2079, 0, 0, 0.471 > 31, 2048, 31, 0, 0.471 > 31, 2079, 31, 0, 0.471 > 31, 4095, 0, 0, 0.974 > 31, 0, 4095, 0, 1.0 > 48, 0, 0, 0, 1.0 > 48, 0, 0, 1, 1.0 > 48, 3, 0, 0, 1.0 > 48, 3, 0, 1, 1.0 > 48, 0, 3, 0, 1.0 > 48, 0, 3, 1, 1.0 > 48, 3, 3, 0, 1.0 > 48, 3, 3, 1, 1.0 > 48, 2048, 0, 0, 1.0 > 48, 2048, 0, 1, 1.0 > 48, 2051, 0, 0, 1.0 > 48, 2051, 0, 1, 1.0 > 48, 2048, 3, 0, 1.0 > 48, 2048, 3, 1, 1.0 > 48, 2051, 3, 0, 1.0 > 48, 2051, 3, 1, 1.0 > 80, 0, 0, 0, 0.781 > 80, 0, 0, 1, 0.782 > 80, 5, 0, 0, 0.976 > 80, 5, 0, 1, 0.976 > 80, 0, 5, 0, 1.232 > 80, 0, 5, 1, 1.232 > 80, 5, 5, 0, 1.542 > 80, 5, 5, 1, 1.543 > 80, 2048, 0, 0, 0.781 > 80, 2048, 0, 1, 0.782 > 80, 2053, 0, 0, 0.976 > 80, 2053, 0, 1, 0.976 > 80, 2048, 5, 0, 1.093 > 80, 2048, 5, 1, 1.093 > 80, 2053, 5, 0, 1.371 > 80, 2053, 5, 1, 1.371 > 96, 0, 0, 0, 0.758 > 96, 0, 0, 1, 0.758 > 96, 6, 0, 0, 0.929 > 96, 6, 0, 1, 0.929 > 96, 0, 6, 0, 1.204 > 96, 0, 6, 1, 1.204 > 96, 6, 6, 0, 1.562 > 96, 6, 6, 1, 1.562 > 96, 2048, 0, 0, 0.758 > 96, 2048, 0, 1, 0.758 > 96, 2054, 0, 0, 0.929 > 96, 2054, 0, 1, 0.929 > 96, 2048, 6, 0, 1.068 > 96, 2048, 6, 1, 1.068 > 96, 2054, 6, 0, 1.562 > 96, 2054, 6, 1, 1.562 > 112, 0, 0, 0, 0.736 > 112, 0, 0, 1, 0.736 > 112, 7, 0, 0, 0.675 > 112, 7, 0, 1, 0.675 > 112, 0, 7, 0, 0.778 > 112, 0, 7, 1, 0.778 > 112, 7, 7, 0, 0.909 > 112, 7, 7, 1, 0.909 > 112, 2048, 0, 0, 0.736 > 112, 2048, 0, 1, 0.736 > 112, 2055, 0, 0, 0.675 > 112, 2055, 0, 1, 0.675 > 112, 2048, 7, 0, 0.778 > 112, 2048, 7, 1, 0.778 > 112, 2055, 7, 0, 0.909 > 112, 2055, 7, 1, 0.909 > 144, 0, 0, 0, 0.857 > 144, 0, 0, 1, 0.857 > 144, 9, 0, 0, 0.941 > 144, 9, 0, 1, 0.943 > 144, 0, 9, 0, 1.137 > 144, 0, 9, 1, 1.137 > 144, 9, 9, 0, 1.514 > 144, 9, 9, 1, 1.514 > 144, 2048, 0, 0, 0.857 > 144, 2048, 0, 1, 0.857 > 144, 2057, 0, 0, 0.939 > 144, 2057, 0, 1, 0.945 > 144, 2048, 9, 0, 0.922 > 144, 2048, 9, 1, 0.922 > 144, 2057, 9, 0, 1.514 > 144, 2057, 9, 1, 1.514 > 160, 0, 0, 0, 0.698 > 160, 0, 0, 1, 0.698 > 160, 10, 0, 0, 0.91 > 160, 10, 0, 1, 0.91 > 160, 0, 10, 0, 1.211 > 160, 0, 10, 1, 1.212 > 160, 10, 10, 0, 1.357 > 160, 10, 10, 1, 1.357 > 160, 2048, 0, 0, 0.698 > 160, 2048, 0, 1, 0.698 > 160, 2058, 0, 0, 0.91 > 160, 2058, 0, 1, 0.91 > 160, 2048, 10, 0, 0.923 > 160, 2048, 10, 1, 0.923 > 160, 2058, 10, 0, 1.357 > 160, 2058, 10, 1, 1.357 > 176, 0, 0, 0, 0.796 > 176, 0, 0, 1, 0.796 > 176, 11, 0, 0, 0.804 > 176, 11, 0, 1, 0.804 > 176, 0, 11, 0, 0.774 > 176, 0, 11, 1, 0.774 > 176, 11, 11, 0, 0.814 > 176, 11, 11, 1, 0.814 > 176, 2048, 0, 0, 0.796 > 176, 2048, 0, 1, 0.796 > 176, 2059, 0, 0, 0.804 > 176, 2059, 0, 1, 0.804 > 176, 2048, 11, 0, 0.774 > 176, 2048, 11, 1, 0.774 > 176, 2059, 11, 0, 0.814 > 176, 2059, 11, 1, 0.814 > 192, 0, 0, 0, 0.778 > 192, 0, 0, 1, 0.778 > 192, 12, 0, 0, 0.881 > 192, 12, 0, 1, 0.881 > 192, 0, 12, 0, 1.167 > 192, 0, 12, 1, 1.167 > 192, 12, 12, 0, 0.841 > 192, 12, 12, 1, 0.841 > 192, 2048, 0, 0, 0.778 > 192, 2048, 0, 1, 0.778 > 192, 2060, 0, 0, 0.881 > 192, 2060, 0, 1, 0.881 > 192, 2048, 12, 0, 0.889 > 192, 2048, 12, 1, 0.889 > 192, 2060, 12, 0, 0.906 > 192, 2060, 12, 1, 0.906 > 208, 0, 0, 0, 0.833 > 208, 0, 0, 1, 0.833 > 208, 13, 0, 0, 0.921 > 208, 13, 0, 1, 0.921 > 208, 0, 13, 0, 0.835 > 208, 0, 13, 1, 0.833 > 208, 13, 13, 0, 1.333 > 208, 13, 13, 1, 1.333 > 208, 2048, 0, 0, 0.833 > 208, 2048, 0, 1, 0.833 > 208, 2061, 0, 0, 0.921 > 208, 2061, 0, 1, 0.921 > 208, 2048, 13, 0, 0.833 > 208, 2048, 13, 1, 0.833 > 208, 2061, 13, 0, 1.333 > 208, 2061, 13, 1, 1.333 > 224, 0, 0, 0, 0.93 > 224, 0, 0, 1, 0.93 > 224, 14, 0, 0, 1.0 > 224, 14, 0, 1, 1.0 > 224, 0, 14, 0, 1.15 > 224, 0, 14, 1, 1.15 > 224, 14, 14, 0, 1.452 > 224, 14, 14, 1, 1.452 > 224, 2048, 0, 0, 0.93 > 224, 2048, 0, 1, 0.93 > 224, 2062, 0, 0, 1.0 > 224, 2062, 0, 1, 1.0 > 224, 2048, 14, 0, 0.833 > 224, 2048, 14, 1, 0.833 > 224, 2062, 14, 0, 1.452 > 224, 2062, 14, 1, 1.452 > 240, 0, 0, 0, 0.909 > 240, 0, 0, 1, 0.909 > 240, 15, 0, 0, 0.797 > 240, 15, 0, 1, 0.797 > 240, 0, 15, 0, 0.771 > 240, 0, 15, 1, 0.771 > 240, 15, 15, 0, 0.93 > 240, 15, 15, 1, 0.93 > 240, 2048, 0, 0, 0.909 > 240, 2048, 0, 1, 0.909 > 240, 2063, 0, 0, 0.797 > 240, 2063, 0, 1, 0.797 > 240, 2048, 15, 0, 0.771 > 240, 2048, 15, 1, 0.771 > 240, 2063, 15, 0, 0.93 > 240, 2063, 15, 1, 0.93 > 272, 0, 0, 0, 0.9 > 272, 0, 0, 1, 0.9 > 272, 17, 0, 0, 1.015 > 272, 17, 0, 1, 1.015 > 272, 0, 17, 0, 0.926 > 272, 0, 17, 1, 0.927 > 272, 17, 17, 0, 0.892 > 272, 17, 17, 1, 0.892 > 272, 2048, 0, 0, 0.9 > 272, 2048, 0, 1, 0.9 > 272, 2065, 0, 0, 1.015 > 272, 2065, 0, 1, 1.015 > 272, 2048, 17, 0, 0.927 > 272, 2048, 17, 1, 0.927 > 272, 2065, 17, 0, 0.878 > 272, 2065, 17, 1, 0.878 > 288, 0, 0, 0, 0.882 > 288, 0, 0, 1, 0.882 > 288, 18, 0, 0, 0.803 > 288, 18, 0, 1, 0.803 > 288, 0, 18, 0, 0.768 > 288, 0, 18, 1, 0.768 > 288, 18, 18, 0, 0.882 > 288, 18, 18, 1, 0.882 > 288, 2048, 0, 0, 0.882 > 288, 2048, 0, 1, 0.882 > 288, 2066, 0, 0, 0.803 > 288, 2066, 0, 1, 0.803 > 288, 2048, 18, 0, 0.768 > 288, 2048, 18, 1, 0.768 > 288, 2066, 18, 0, 0.882 > 288, 2066, 18, 1, 0.882 > 304, 0, 0, 0, 0.865 > 304, 0, 0, 1, 0.865 > 304, 19, 0, 0, 0.944 > 304, 19, 0, 1, 0.944 > 304, 0, 19, 0, 0.943 > 304, 0, 19, 1, 0.943 > 304, 19, 19, 0, 0.956 > 304, 19, 19, 1, 0.956 > 304, 2048, 0, 0, 0.866 > 304, 2048, 0, 1, 0.865 > 304, 2067, 0, 0, 0.944 > 304, 2067, 0, 1, 0.944 > 304, 2048, 19, 0, 0.943 > 304, 2048, 19, 1, 0.943 > 304, 2067, 19, 0, 0.947 > 304, 2067, 19, 1, 0.947 > 320, 0, 0, 0, 0.944 > 320, 0, 0, 1, 0.944 > 320, 20, 0, 0, 0.962 > 320, 20, 0, 1, 0.962 > 320, 0, 20, 0, 1.214 > 320, 0, 20, 1, 1.214 > 320, 20, 20, 0, 1.365 > 320, 20, 20, 1, 1.365 > 320, 2048, 0, 0, 0.943 > 320, 2048, 0, 1, 0.943 > 320, 2068, 0, 0, 0.962 > 320, 2068, 0, 1, 0.962 > 320, 2048, 20, 0, 0.914 > 320, 2048, 20, 1, 0.914 > 320, 2068, 20, 0, 1.365 > 320, 2068, 20, 1, 1.365 > 336, 0, 0, 0, 1.0 > 336, 0, 0, 1, 1.0 > 336, 21, 0, 0, 0.986 > 336, 21, 0, 1, 0.986 > 336, 0, 21, 0, 0.853 > 336, 0, 21, 1, 0.853 > 336, 21, 21, 0, 0.843 > 336, 21, 21, 1, 0.843 > 336, 2048, 0, 0, 1.0 > 336, 2048, 0, 1, 1.0 > 336, 2069, 0, 0, 0.986 > 336, 2069, 0, 1, 0.986 > 336, 2048, 21, 0, 0.853 > 336, 2048, 21, 1, 0.853 > 336, 2069, 21, 0, 0.831 > 336, 2069, 21, 1, 0.831 > 352, 0, 0, 0, 0.98 > 352, 0, 0, 1, 0.98 > 352, 22, 0, 0, 0.811 > 352, 22, 0, 1, 0.811 > 352, 0, 22, 0, 0.882 > 352, 0, 22, 1, 0.882 > 352, 22, 22, 0, 1.1 > 352, 22, 22, 1, 1.1 > 352, 2048, 0, 0, 0.98 > 352, 2048, 0, 1, 0.98 > 352, 2070, 0, 0, 0.811 > 352, 2070, 0, 1, 0.811 > 352, 2048, 22, 0, 0.882 > 352, 2048, 22, 1, 0.882 > 352, 2070, 22, 0, 1.1 > 352, 2070, 22, 1, 1.1 > 368, 0, 0, 0, 1.058 > 368, 0, 0, 1, 1.058 > 368, 23, 0, 0, 1.0 > 368, 23, 0, 1, 1.0 > 368, 0, 23, 0, 0.948 > 368, 0, 23, 1, 0.948 > 368, 23, 23, 0, 0.723 > 368, 23, 23, 1, 0.723 > 368, 2048, 0, 0, 1.058 > 368, 2048, 0, 1, 1.058 > 368, 2071, 0, 0, 1.0 > 368, 2071, 0, 1, 1.0 > 368, 2048, 23, 0, 0.948 > 368, 2048, 23, 1, 0.948 > 368, 2071, 23, 0, 0.701 > 368, 2071, 23, 1, 0.701 > 384, 0, 0, 0, 1.012 > 384, 0, 0, 1, 1.012 > 384, 24, 0, 0, 1.04 > 384, 24, 0, 1, 1.04 > 384, 0, 24, 0, 1.154 > 384, 0, 24, 1, 1.154 > 384, 24, 24, 0, 1.423 > 384, 24, 24, 1, 1.423 > 384, 2048, 0, 0, 1.012 > 384, 2048, 0, 1, 1.012 > 384, 2072, 0, 0, 1.04 > 384, 2072, 0, 1, 1.04 > 384, 2048, 24, 0, 0.91 > 384, 2048, 24, 1, 0.91 > 384, 2072, 24, 0, 1.423 > 384, 2072, 24, 1, 1.423 > 400, 0, 0, 0, 0.948 > 400, 0, 0, 1, 0.948 > 400, 25, 0, 0, 0.957 > 400, 25, 0, 1, 0.957 > 400, 0, 25, 0, 1.099 > 400, 0, 25, 1, 1.069 > 400, 25, 25, 0, 0.885 > 400, 25, 25, 1, 0.885 > 400, 2048, 0, 0, 0.948 > 400, 2048, 0, 1, 0.948 > 400, 2073, 0, 0, 0.957 > 400, 2073, 0, 1, 0.957 > 400, 2048, 25, 0, 0.94 > 400, 2048, 25, 1, 0.94 > 400, 2073, 25, 0, 0.908 > 400, 2073, 25, 1, 0.908 > 416, 0, 0, 0, 1.017 > 416, 0, 0, 1, 1.017 > 416, 26, 0, 0, 0.903 > 416, 26, 0, 1, 0.903 > 416, 0, 26, 0, 0.881 > 416, 0, 26, 1, 0.881 > 416, 26, 26, 0, 1.035 > 416, 26, 26, 1, 1.035 > 416, 2048, 0, 0, 1.017 > 416, 2048, 0, 1, 1.017 > 416, 2074, 0, 0, 0.903 > 416, 2074, 0, 1, 0.903 > 416, 2048, 26, 0, 0.881 > 416, 2048, 26, 1, 0.881 > 416, 2074, 26, 0, 1.034 > 416, 2074, 26, 1, 1.035 > 432, 0, 0, 0, 1.0 > 432, 0, 0, 1, 1.0 > 432, 27, 0, 0, 0.933 > 432, 27, 0, 1, 0.933 > 432, 0, 27, 0, 0.941 > 432, 0, 27, 1, 0.941 > 432, 27, 27, 0, 0.953 > 432, 27, 27, 1, 0.954 > 432, 2048, 0, 0, 1.0 > 432, 2048, 0, 1, 1.0 > 432, 2075, 0, 0, 0.933 > 432, 2075, 0, 1, 0.933 > 432, 2048, 27, 0, 0.941 > 432, 2048, 27, 1, 0.941 > 432, 2075, 27, 0, 0.93 > 432, 2075, 27, 1, 0.93 > 448, 0, 0, 0, 0.984 > 448, 0, 0, 1, 0.984 > 448, 28, 0, 0, 0.896 > 448, 28, 0, 1, 0.896 > 448, 0, 28, 0, 1.244 > 448, 0, 28, 1, 1.244 > 448, 28, 28, 0, 1.333 > 448, 28, 28, 1, 1.333 > 448, 2048, 0, 0, 0.984 > 448, 2048, 0, 1, 0.984 > 448, 2076, 0, 0, 0.896 > 448, 2076, 0, 1, 0.896 > 448, 2048, 28, 0, 0.988 > 448, 2048, 28, 1, 0.988 > 448, 2076, 28, 0, 1.333 > 448, 2076, 28, 1, 1.333 > 464, 0, 0, 0, 1.083 > 464, 0, 0, 1, 1.083 > 464, 29, 0, 0, 0.978 > 464, 29, 0, 1, 0.978 > 464, 0, 29, 0, 0.924 > 464, 0, 29, 1, 0.924 > 464, 29, 29, 0, 0.901 > 464, 29, 29, 1, 0.901 > 464, 2048, 0, 0, 1.083 > 464, 2048, 0, 1, 1.083 > 464, 2077, 0, 0, 0.978 > 464, 2077, 0, 1, 0.978 > 464, 2048, 29, 0, 0.924 > 464, 2048, 29, 1, 0.924 > 464, 2077, 29, 0, 0.89 > 464, 2077, 29, 1, 0.89 > 480, 0, 0, 0, 1.066 > 480, 0, 0, 1, 1.066 > 480, 30, 0, 0, 0.9 > 480, 30, 0, 1, 0.9 > 480, 0, 30, 0, 0.88 > 480, 0, 30, 1, 0.88 > 480, 30, 30, 0, 1.083 > 480, 30, 30, 1, 1.083 > 480, 2048, 0, 0, 1.066 > 480, 2048, 0, 1, 1.066 > 480, 2078, 0, 0, 0.9 > 480, 2078, 0, 1, 0.9 > 480, 2048, 30, 0, 0.88 > 480, 2048, 30, 1, 0.88 > 480, 2078, 30, 0, 1.083 > 480, 2078, 30, 1, 1.083 > 496, 0, 0, 0, 1.032 > 496, 0, 0, 1, 1.032 > 496, 31, 0, 0, 0.95 > 496, 31, 0, 1, 0.95 > 496, 0, 31, 0, 1.011 > 496, 0, 31, 1, 1.011 > 496, 31, 31, 0, 0.973 > 496, 31, 31, 1, 0.973 > 496, 2048, 0, 0, 1.032 > 496, 2048, 0, 1, 1.032 > 496, 2079, 0, 0, 0.95 > 496, 2079, 0, 1, 0.95 > 496, 2048, 31, 0, 1.011 > 496, 2048, 31, 1, 1.011 > 496, 2079, 31, 0, 0.941 > 496, 2079, 31, 1, 0.941 > 1024, 32, 0, 0, 1.143 > 1024, 32, 0, 1, 1.143 > 1024, 0, 32, 0, 1.143 > 1024, 0, 32, 1, 1.143 > 1024, 32, 32, 0, 1.143 > 1024, 32, 32, 1, 1.143 > 1024, 2080, 0, 0, 1.143 > 1024, 2080, 0, 1, 1.143 > 1024, 2048, 32, 0, 1.143 > 1024, 2048, 32, 1, 1.143 > 1024, 2080, 32, 0, 1.143 > 1024, 2080, 32, 1, 1.143 > 1056, 0, 0, 0, 1.168 > 1056, 0, 0, 1, 1.168 > 1056, 33, 0, 0, 1.067 > 1056, 33, 0, 1, 1.067 > 1056, 0, 33, 0, 0.977 > 1056, 0, 33, 1, 0.977 > 1056, 33, 33, 0, 1.043 > 1056, 33, 33, 1, 1.043 > 1056, 2048, 0, 0, 1.168 > 1056, 2048, 0, 1, 1.168 > 1056, 2081, 0, 0, 1.067 > 1056, 2081, 0, 1, 1.067 > 1056, 2048, 33, 0, 0.977 > 1056, 2048, 33, 1, 0.977 > 1056, 2081, 33, 0, 1.0 > 1056, 2081, 33, 1, 1.0 > 1088, 0, 0, 0, 1.171 > 1088, 0, 0, 1, 1.171 > 1088, 34, 0, 0, 1.041 > 1088, 34, 0, 1, 1.041 > 1088, 0, 34, 0, 1.079 > 1088, 0, 34, 1, 1.079 > 1088, 34, 34, 0, 0.966 > 1088, 34, 34, 1, 0.966 > 1088, 2048, 0, 0, 1.171 > 1088, 2048, 0, 1, 1.171 > 1088, 2082, 0, 0, 1.041 > 1088, 2082, 0, 1, 1.041 > 1088, 2048, 34, 0, 0.994 > 1088, 2048, 34, 1, 0.994 > 1088, 2082, 34, 0, 0.966 > 1088, 2082, 34, 1, 0.966 > 1120, 0, 0, 0, 1.152 > 1120, 0, 0, 1, 1.153 > 1120, 35, 0, 0, 1.051 > 1120, 35, 0, 1, 1.051 > 1120, 0, 35, 0, 1.0 > 1120, 0, 35, 1, 1.0 > 1120, 35, 35, 0, 1.068 > 1120, 35, 35, 1, 1.068 > 1120, 2048, 0, 0, 1.151 > 1120, 2048, 0, 1, 1.151 > 1120, 2083, 0, 0, 1.051 > 1120, 2083, 0, 1, 1.051 > 1120, 2048, 35, 0, 1.0 > 1120, 2048, 35, 1, 1.0 > 1120, 2083, 35, 0, 1.027 > 1120, 2083, 35, 1, 1.027 > 1152, 0, 0, 0, 1.159 > 1152, 0, 0, 1, 1.159 > 1152, 36, 0, 0, 1.034 > 1152, 36, 0, 1, 1.034 > 1152, 0, 36, 0, 1.07 > 1152, 0, 36, 1, 1.07 > 1152, 36, 36, 0, 0.967 > 1152, 36, 36, 1, 0.967 > 1152, 2048, 0, 0, 1.159 > 1152, 2048, 0, 1, 1.159 > 1152, 2084, 0, 0, 1.034 > 1152, 2084, 0, 1, 1.034 > 1152, 2048, 36, 0, 0.984 > 1152, 2048, 36, 1, 0.984 > 1152, 2084, 36, 0, 0.967 > 1152, 2084, 36, 1, 0.967 > 1184, 0, 0, 0, 1.157 > 1184, 0, 0, 1, 1.157 > 1184, 37, 0, 0, 1.067 > 1184, 37, 0, 1, 1.066 > 1184, 0, 37, 0, 0.993 > 1184, 0, 37, 1, 0.993 > 1184, 37, 37, 0, 1.08 > 1184, 37, 37, 1, 1.081 > 1184, 2048, 0, 0, 1.157 > 1184, 2048, 0, 1, 1.157 > 1184, 2085, 0, 0, 1.066 > 1184, 2085, 0, 1, 1.066 > 1184, 2048, 37, 0, 0.993 > 1184, 2048, 37, 1, 0.993 > 1184, 2085, 37, 0, 1.04 > 1184, 2085, 37, 1, 1.04 > 1216, 0, 0, 0, 1.139 > 1216, 0, 0, 1, 1.139 > 1216, 38, 0, 0, 1.024 > 1216, 38, 0, 1, 1.024 > 1216, 0, 38, 0, 1.087 > 1216, 0, 38, 1, 1.087 > 1216, 38, 38, 0, 1.0 > 1216, 38, 38, 1, 1.0 > 1216, 2048, 0, 0, 1.138 > 1216, 2048, 0, 1, 1.138 > 1216, 2086, 0, 0, 1.024 > 1216, 2086, 0, 1, 1.024 > 1216, 2048, 38, 0, 1.01 > 1216, 2048, 38, 1, 1.01 > 1216, 2086, 38, 0, 1.0 > 1216, 2086, 38, 1, 1.0 > 1248, 0, 0, 0, 1.176 > 1248, 0, 0, 1, 1.174 > 1248, 39, 0, 0, 1.074 > 1248, 39, 0, 1, 1.074 > 1248, 0, 39, 0, 0.966 > 1248, 0, 39, 1, 0.985 > 1248, 39, 39, 0, 1.064 > 1248, 39, 39, 1, 1.064 > 1248, 2048, 0, 0, 1.179 > 1248, 2048, 0, 1, 1.179 > 1248, 2087, 0, 0, 1.074 > 1248, 2087, 0, 1, 1.074 > 1248, 2048, 39, 0, 0.985 > 1248, 2048, 39, 1, 0.985 > 1248, 2087, 39, 0, 1.026 > 1248, 2087, 39, 1, 1.026 > 1280, 0, 0, 0, 0.993 > 1280, 0, 0, 1, 0.993 > 1280, 40, 0, 0, 1.051 > 1280, 40, 0, 1, 1.051 > 1280, 0, 40, 0, 1.044 > 1280, 0, 40, 1, 1.045 > 1280, 40, 40, 0, 1.25 > 1280, 40, 40, 1, 1.25 > 1280, 2048, 0, 0, 0.992 > 1280, 2048, 0, 1, 0.992 > 1280, 2088, 0, 0, 1.051 > 1280, 2088, 0, 1, 1.051 > 1280, 2048, 40, 0, 0.946 > 1280, 2048, 40, 1, 0.946 > 1280, 2088, 40, 0, 1.252 > 1280, 2088, 40, 1, 1.252 > 1312, 0, 0, 0, 0.969 > 1312, 0, 0, 1, 0.969 > 1312, 41, 0, 0, 0.991 > 1312, 41, 0, 1, 0.991 > 1312, 0, 41, 0, 0.837 > 1312, 0, 41, 1, 0.837 > 1312, 41, 41, 0, 1.025 > 1312, 41, 41, 1, 1.025 > 1312, 2048, 0, 0, 0.969 > 1312, 2048, 0, 1, 0.969 > 1312, 2089, 0, 0, 0.991 > 1312, 2089, 0, 1, 0.99 > 1312, 2048, 41, 0, 0.837 > 1312, 2048, 41, 1, 0.837 > 1312, 2089, 41, 0, 0.975 > 1312, 2089, 41, 1, 0.975 > 1344, 0, 0, 0, 0.988 > 1344, 0, 0, 1, 0.988 > 1344, 42, 0, 0, 1.031 > 1344, 42, 0, 1, 1.031 > 1344, 0, 42, 0, 1.033 > 1344, 0, 42, 1, 1.033 > 1344, 42, 42, 0, 0.982 > 1344, 42, 42, 1, 0.982 > 1344, 2048, 0, 0, 0.992 > 1344, 2048, 0, 1, 0.992 > 1344, 2090, 0, 0, 1.031 > 1344, 2090, 0, 1, 1.031 > 1344, 2048, 42, 0, 0.943 > 1344, 2048, 42, 1, 0.942 > 1344, 2090, 42, 0, 0.982 > 1344, 2090, 42, 1, 0.982 > 1376, 0, 0, 0, 1.016 > 1376, 0, 0, 1, 1.016 > 1376, 43, 0, 0, 1.01 > 1376, 43, 0, 1, 1.01 > 1376, 0, 43, 0, 0.829 > 1376, 0, 43, 1, 0.829 > 1376, 43, 43, 0, 1.024 > 1376, 43, 43, 1, 1.024 > 1376, 2048, 0, 0, 1.006 > 1376, 2048, 0, 1, 1.015 > 1376, 2091, 0, 0, 1.01 > 1376, 2091, 0, 1, 1.01 > 1376, 2048, 43, 0, 0.829 > 1376, 2048, 43, 1, 0.829 > 1376, 2091, 43, 0, 0.98 > 1376, 2091, 43, 1, 0.98 > 1408, 0, 0, 0, 0.987 > 1408, 0, 0, 1, 0.987 > 1408, 44, 0, 0, 1.015 > 1408, 44, 0, 1, 1.015 > 1408, 0, 44, 0, 1.018 > 1408, 0, 44, 1, 1.014 > 1408, 44, 44, 0, 1.004 > 1408, 44, 44, 1, 0.994 > 1408, 2048, 0, 0, 0.988 > 1408, 2048, 0, 1, 0.988 > 1408, 2092, 0, 0, 1.015 > 1408, 2092, 0, 1, 1.015 > 1408, 2048, 44, 0, 0.955 > 1408, 2048, 44, 1, 0.955 > 1408, 2092, 44, 0, 1.0 > 1408, 2092, 44, 1, 0.994 > 1440, 0, 0, 0, 0.986 > 1440, 0, 0, 1, 0.986 > 1440, 45, 0, 0, 1.013 > 1440, 45, 0, 1, 1.013 > 1440, 0, 45, 0, 0.814 > 1440, 0, 45, 1, 0.814 > 1440, 45, 45, 0, 1.006 > 1440, 45, 45, 1, 1.006 > 1440, 2048, 0, 0, 0.986 > 1440, 2048, 0, 1, 0.986 > 1440, 2093, 0, 0, 1.013 > 1440, 2093, 0, 1, 1.013 > 1440, 2048, 45, 0, 0.814 > 1440, 2048, 45, 1, 0.814 > 1440, 2093, 45, 0, 0.966 > 1440, 2093, 45, 1, 0.966 > 1472, 0, 0, 0, 0.997 > 1472, 0, 0, 1, 0.994 > 1472, 46, 0, 0, 1.045 > 1472, 46, 0, 1, 1.045 > 1472, 0, 46, 0, 1.026 > 1472, 0, 46, 1, 1.026 > 1472, 46, 46, 0, 0.966 > 1472, 46, 46, 1, 0.966 > 1472, 2048, 0, 0, 1.0 > 1472, 2048, 0, 1, 0.996 > 1472, 2094, 0, 0, 1.045 > 1472, 2094, 0, 1, 1.045 > 1472, 2048, 46, 0, 0.939 > 1472, 2048, 46, 1, 0.939 > 1472, 2094, 46, 0, 0.966 > 1472, 2094, 46, 1, 0.966 > 1504, 0, 0, 0, 0.993 > 1504, 0, 0, 1, 0.993 > 1504, 47, 0, 0, 0.999 > 1504, 47, 0, 1, 0.999 > 1504, 0, 47, 0, 0.826 > 1504, 0, 47, 1, 0.826 > 1504, 47, 47, 0, 1.023 > 1504, 47, 47, 1, 1.023 > 1504, 2048, 0, 0, 0.993 > 1504, 2048, 0, 1, 0.993 > 1504, 2095, 0, 0, 0.999 > 1504, 2095, 0, 1, 0.999 > 1504, 2048, 47, 0, 0.826 > 1504, 2048, 47, 1, 0.826 > 1504, 2095, 47, 0, 0.993 > 1504, 2095, 47, 1, 0.993 > 1536, 0, 0, 0, 0.992 > 1536, 0, 0, 1, 0.991 > 1536, 48, 0, 0, 1.019 > 1536, 48, 0, 1, 1.019 > 1536, 0, 48, 0, 1.025 > 1536, 0, 48, 1, 1.024 > 1536, 48, 48, 0, 0.994 > 1536, 48, 48, 1, 0.994 > 1536, 2048, 0, 0, 0.994 > 1536, 2048, 0, 1, 0.994 > 1536, 2096, 0, 0, 1.019 > 1536, 2096, 0, 1, 1.019 > 1536, 2048, 48, 0, 1.025 > 1536, 2048, 48, 1, 1.025 > 1536, 2096, 48, 0, 0.994 > 1536, 2096, 48, 1, 0.994 > 1568, 0, 0, 0, 0.994 > 1568, 0, 0, 1, 0.994 > 1568, 49, 0, 0, 0.903 > 1568, 49, 0, 1, 0.903 > 1568, 0, 49, 0, 1.144 > 1568, 0, 49, 1, 1.144 > 1568, 49, 49, 0, 1.461 > 1568, 49, 49, 1, 1.461 > 1568, 2048, 0, 0, 0.993 > 1568, 2048, 0, 1, 0.993 > 1568, 2097, 0, 0, 0.903 > 1568, 2097, 0, 1, 0.903 > 1568, 2048, 49, 0, 1.09 > 1568, 2048, 49, 1, 1.09 > 1568, 2097, 49, 0, 1.46 > 1568, 2097, 49, 1, 1.46 > 1600, 0, 0, 0, 0.981 > 1600, 0, 0, 1, 0.981 > 1600, 50, 0, 0, 1.022 > 1600, 50, 0, 1, 1.022 > 1600, 0, 50, 0, 1.017 > 1600, 0, 50, 1, 1.017 > 1600, 50, 50, 0, 0.973 > 1600, 50, 50, 1, 0.973 > 1600, 2048, 0, 0, 0.981 > 1600, 2048, 0, 1, 0.981 > 1600, 2098, 0, 0, 1.022 > 1600, 2098, 0, 1, 1.022 > 1600, 2048, 50, 0, 0.961 > 1600, 2048, 50, 1, 0.961 > 1600, 2098, 50, 0, 0.973 > 1600, 2098, 50, 1, 0.973 > 1632, 0, 0, 0, 1.019 > 1632, 0, 0, 1, 1.019 > 1632, 51, 0, 0, 0.893 > 1632, 51, 0, 1, 0.893 > 1632, 0, 51, 0, 1.131 > 1632, 0, 51, 1, 1.131 > 1632, 51, 51, 0, 1.444 > 1632, 51, 51, 1, 1.444 > 1632, 2048, 0, 0, 1.019 > 1632, 2048, 0, 1, 1.019 > 1632, 2099, 0, 0, 0.893 > 1632, 2099, 0, 1, 0.893 > 1632, 2048, 51, 0, 1.079 > 1632, 2048, 51, 1, 1.079 > 1632, 2099, 51, 0, 1.449 > 1632, 2099, 51, 1, 1.449 > 1664, 0, 0, 0, 1.005 > 1664, 0, 0, 1, 1.004 > 1664, 52, 0, 0, 0.986 > 1664, 52, 0, 1, 0.986 > 1664, 0, 52, 0, 1.004 > 1664, 0, 52, 1, 1.004 > 1664, 52, 52, 0, 0.976 > 1664, 52, 52, 1, 0.976 > 1664, 2048, 0, 0, 1.006 > 1664, 2048, 0, 1, 1.006 > 1664, 2100, 0, 0, 0.993 > 1664, 2100, 0, 1, 0.993 > 1664, 2048, 52, 0, 0.946 > 1664, 2048, 52, 1, 0.946 > 1664, 2100, 52, 0, 0.976 > 1664, 2100, 52, 1, 0.976 > 1696, 0, 0, 0, 0.994 > 1696, 0, 0, 1, 0.992 > 1696, 53, 0, 0, 0.884 > 1696, 53, 0, 1, 0.884 > 1696, 0, 53, 0, 1.141 > 1696, 0, 53, 1, 1.141 > 1696, 53, 53, 0, 1.43 > 1696, 53, 53, 1, 1.43 > 1696, 2048, 0, 0, 0.994 > 1696, 2048, 0, 1, 0.994 > 1696, 2101, 0, 0, 0.884 > 1696, 2101, 0, 1, 0.884 > 1696, 2048, 53, 0, 1.088 > 1696, 2048, 53, 1, 1.088 > 1696, 2101, 53, 0, 1.429 > 1696, 2101, 53, 1, 1.429 > 1728, 0, 0, 0, 0.978 > 1728, 0, 0, 1, 0.978 > 1728, 54, 0, 0, 1.031 > 1728, 54, 0, 1, 1.033 > 1728, 0, 54, 0, 1.0 > 1728, 0, 54, 1, 1.0 > 1728, 54, 54, 0, 0.96 > 1728, 54, 54, 1, 0.96 > 1728, 2048, 0, 0, 0.976 > 1728, 2048, 0, 1, 0.976 > 1728, 2102, 0, 0, 1.033 > 1728, 2102, 0, 1, 1.033 > 1728, 2048, 54, 0, 0.947 > 1728, 2048, 54, 1, 0.947 > 1728, 2102, 54, 0, 0.96 > 1728, 2102, 54, 1, 0.96 > 1760, 0, 0, 0, 1.019 > 1760, 0, 0, 1, 1.021 > 1760, 55, 0, 0, 0.9 > 1760, 55, 0, 1, 0.9 > 1760, 0, 55, 0, 1.125 > 1760, 0, 55, 1, 1.125 > 1760, 55, 55, 0, 1.437 > 1760, 55, 55, 1, 1.436 > 1760, 2048, 0, 0, 1.016 > 1760, 2048, 0, 1, 1.015 > 1760, 2103, 0, 0, 0.9 > 1760, 2103, 0, 1, 0.9 > 1760, 2048, 55, 0, 1.073 > 1760, 2048, 55, 1, 1.074 > 1760, 2103, 55, 0, 1.44 > 1760, 2103, 55, 1, 1.44 > 1792, 0, 0, 0, 1.002 > 1792, 0, 0, 1, 1.002 > 1792, 56, 0, 0, 1.028 > 1792, 56, 0, 1, 1.028 > 1792, 0, 56, 0, 1.014 > 1792, 0, 56, 1, 1.015 > 1792, 56, 56, 0, 1.191 > 1792, 56, 56, 1, 1.191 > 1792, 2048, 0, 0, 1.003 > 1792, 2048, 0, 1, 1.003 > 1792, 2104, 0, 0, 1.028 > 1792, 2104, 0, 1, 1.028 > 1792, 2048, 56, 0, 0.963 > 1792, 2048, 56, 1, 0.963 > 1792, 2104, 56, 0, 1.191 > 1792, 2104, 56, 1, 1.191 > 1824, 0, 0, 0, 0.999 > 1824, 0, 0, 1, 1.0 > 1824, 57, 0, 0, 0.891 > 1824, 57, 0, 1, 0.891 > 1824, 0, 57, 0, 1.114 > 1824, 0, 57, 1, 1.114 > 1824, 57, 57, 0, 1.407 > 1824, 57, 57, 1, 1.407 > 1824, 2048, 0, 0, 1.001 > 1824, 2048, 0, 1, 1.001 > 1824, 2105, 0, 0, 0.891 > 1824, 2105, 0, 1, 0.891 > 1824, 2048, 57, 0, 1.064 > 1824, 2048, 57, 1, 1.064 > 1824, 2105, 57, 0, 1.407 > 1824, 2105, 57, 1, 1.407 > 1856, 0, 0, 0, 0.989 > 1856, 0, 0, 1, 0.987 > 1856, 58, 0, 0, 1.042 > 1856, 58, 0, 1, 1.042 > 1856, 0, 58, 0, 1.007 > 1856, 0, 58, 1, 1.007 > 1856, 58, 58, 0, 0.978 > 1856, 58, 58, 1, 0.972 > 1856, 2048, 0, 0, 0.992 > 1856, 2048, 0, 1, 0.992 > 1856, 2106, 0, 0, 1.042 > 1856, 2106, 0, 1, 1.042 > 1856, 2048, 58, 0, 0.954 > 1856, 2048, 58, 1, 0.954 > 1856, 2106, 58, 0, 0.979 > 1856, 2106, 58, 1, 0.972 > 1888, 0, 0, 0, 0.994 > 1888, 0, 0, 1, 0.994 > 1888, 59, 0, 0, 0.883 > 1888, 59, 0, 1, 0.883 > 1888, 0, 59, 0, 1.121 > 1888, 0, 59, 1, 1.123 > 1888, 59, 59, 0, 1.413 > 1888, 59, 59, 1, 1.413 > 1888, 2048, 0, 0, 0.985 > 1888, 2048, 0, 1, 0.994 > 1888, 2107, 0, 0, 0.883 > 1888, 2107, 0, 1, 0.883 > 1888, 2048, 59, 0, 1.076 > 1888, 2048, 59, 1, 1.076 > 1888, 2107, 59, 0, 1.413 > 1888, 2107, 59, 1, 1.413 > 1920, 0, 0, 0, 1.0 > 1920, 0, 0, 1, 0.999 > 1920, 60, 0, 0, 1.033 > 1920, 60, 0, 1, 1.033 > 1920, 0, 60, 0, 0.996 > 1920, 0, 60, 1, 0.997 > 1920, 60, 60, 0, 0.968 > 1920, 60, 60, 1, 0.968 > 1920, 2048, 0, 0, 1.0 > 1920, 2048, 0, 1, 1.0 > 1920, 2108, 0, 0, 1.034 > 1920, 2108, 0, 1, 1.034 > 1920, 2048, 60, 0, 0.949 > 1920, 2048, 60, 1, 0.949 > 1920, 2108, 60, 0, 0.968 > 1920, 2108, 60, 1, 0.968 > 1952, 0, 0, 0, 1.004 > 1952, 0, 0, 1, 1.004 > 1952, 61, 0, 0, 0.898 > 1952, 61, 0, 1, 0.898 > 1952, 0, 61, 0, 1.118 > 1952, 0, 61, 1, 1.118 > 1952, 61, 61, 0, 1.387 > 1952, 61, 61, 1, 1.387 > 1952, 2048, 0, 0, 1.004 > 1952, 2048, 0, 1, 1.004 > 1952, 2109, 0, 0, 0.898 > 1952, 2109, 0, 1, 0.898 > 1952, 2048, 61, 0, 1.071 > 1952, 2048, 61, 1, 1.071 > 1952, 2109, 61, 0, 1.387 > 1952, 2109, 61, 1, 1.387 > 1984, 0, 0, 0, 0.993 > 1984, 0, 0, 1, 0.993 > 1984, 62, 0, 0, 1.025 > 1984, 62, 0, 1, 1.025 > 1984, 0, 62, 0, 1.005 > 1984, 0, 62, 1, 1.007 > 1984, 62, 62, 0, 0.982 > 1984, 62, 62, 1, 0.982 > 1984, 2048, 0, 0, 0.993 > 1984, 2048, 0, 1, 0.993 > 1984, 2110, 0, 0, 1.025 > 1984, 2110, 0, 1, 1.025 > 1984, 2048, 62, 0, 0.96 > 1984, 2048, 62, 1, 0.96 > 1984, 2110, 62, 0, 0.982 > 1984, 2110, 62, 1, 0.982 > 2016, 0, 0, 0, 1.0 > 2016, 0, 0, 1, 0.999 > 2016, 63, 0, 0, 0.889 > 2016, 63, 0, 1, 0.89 > 2016, 0, 63, 0, 1.091 > 2016, 0, 63, 1, 1.092 > 2016, 63, 63, 0, 1.362 > 2016, 63, 63, 1, 1.363 > 2016, 2048, 0, 0, 1.0 > 2016, 2048, 0, 1, 1.0 > 2016, 2111, 0, 0, 0.965 > 2016, 2111, 0, 1, 0.965 > 2016, 2048, 63, 0, 1.049 > 2016, 2048, 63, 1, 1.049 > 2016, 2111, 63, 0, 1.405 > 2016, 2111, 63, 1, 1.405 > 2048, 32, 0, 0, 1.01 > 2048, 32, 0, 1, 1.01 > 2048, 0, 32, 0, 1.005 > 2048, 0, 32, 1, 1.005 > 2048, 32, 32, 0, 1.005 > 2048, 32, 32, 1, 1.005 > 2048, 0, 1, 0, 0.983 > 2048, 0, 1, 1, 0.984 > 2048, 1, 0, 0, 1.039 > 2048, 1, 0, 1, 1.039 > 2048, 32, 1, 0, 1.063 > 2048, 32, 1, 1, 1.063 > 2048, 1, 32, 0, 0.94 > 2048, 1, 32, 1, 0.94 > 2048, 2048, 1, 0, 0.981 > 2048, 2048, 1, 1, 0.981 > 2048, 2049, 0, 0, 0.904 > 2048, 2049, 0, 1, 0.904 > 2112, 0, 0, 0, 0.996 > 2112, 0, 0, 1, 0.995 > 2112, 1, 0, 0, 1.031 > 2112, 1, 0, 1, 1.031 > 2112, 33, 0, 0, 1.01 > 2112, 33, 0, 1, 1.01 > 2112, 0, 1, 0, 0.972 > 2112, 0, 1, 1, 0.972 > 2112, 0, 33, 0, 0.987 > 2112, 0, 33, 1, 0.987 > 2112, 1, 1, 0, 0.914 > 2112, 1, 1, 1, 0.914 > 2112, 33, 33, 0, 0.983 > 2112, 33, 33, 1, 0.983 > 2112, 2048, 0, 0, 0.994 > 2112, 2048, 0, 1, 0.99 > 2112, 2049, 0, 0, 1.031 > 2112, 2049, 0, 1, 1.031 > 2112, 2048, 1, 0, 0.955 > 2112, 2048, 1, 1, 0.955 > 2112, 2049, 1, 0, 0.906 > 2112, 2049, 1, 1, 0.906 > 2112, 33, 1, 0, 1.163 > 2112, 33, 1, 1, 1.164 > 2112, 1, 33, 0, 1.046 > 2112, 1, 33, 1, 1.046 > 2176, 0, 0, 0, 0.984 > 2176, 0, 0, 1, 0.985 > 2176, 2, 0, 0, 1.023 > 2176, 2, 0, 1, 1.023 > 2176, 34, 0, 0, 1.0 > 2176, 34, 0, 1, 1.0 > 2176, 0, 2, 0, 0.985 > 2176, 0, 2, 1, 0.985 > 2176, 0, 34, 0, 0.995 > 2176, 0, 34, 1, 0.982 > 2176, 2, 2, 0, 0.928 > 2176, 2, 2, 1, 0.928 > 2176, 34, 34, 0, 1.004 > 2176, 34, 34, 1, 1.004 > 2176, 2048, 0, 0, 0.985 > 2176, 2048, 0, 1, 0.986 > 2176, 2050, 0, 0, 1.023 > 2176, 2050, 0, 1, 1.023 > 2176, 2048, 2, 0, 0.802 > 2176, 2048, 2, 1, 0.802 > 2176, 2050, 2, 0, 0.894 > 2176, 2050, 2, 1, 0.894 > 2176, 2, 1, 0, 1.068 > 2176, 2, 1, 1, 1.068 > 2176, 1, 2, 0, 0.976 > 2176, 1, 2, 1, 0.976 > 2176, 34, 1, 0, 1.077 > 2176, 34, 1, 1, 1.077 > 2176, 1, 34, 0, 0.978 > 2176, 1, 34, 1, 0.978 > 2176, 2050, 1, 0, 1.061 > 2176, 2050, 1, 1, 1.061 > 2176, 2049, 2, 0, 0.971 > 2176, 2049, 2, 1, 0.971 > 2240, 0, 0, 0, 0.994 > 2240, 0, 0, 1, 0.994 > 2240, 3, 0, 0, 1.038 > 2240, 3, 0, 1, 1.039 > 2240, 35, 0, 0, 1.019 > 2240, 35, 0, 1, 1.019 > 2240, 0, 3, 0, 0.979 > 2240, 0, 3, 1, 0.98 > 2240, 0, 35, 0, 0.991 > 2240, 0, 35, 1, 0.991 > 2240, 3, 3, 0, 0.931 > 2240, 3, 3, 1, 0.931 > 2240, 35, 35, 0, 0.999 > 2240, 35, 35, 1, 0.999 > 2240, 2048, 0, 0, 0.995 > 2240, 2048, 0, 1, 0.995 > 2240, 2051, 0, 0, 1.039 > 2240, 2051, 0, 1, 1.039 > 2240, 2048, 3, 0, 0.799 > 2240, 2048, 3, 1, 0.799 > 2240, 2051, 3, 0, 0.889 > 2240, 2051, 3, 1, 0.889 > 2240, 3, 1, 0, 1.06 > 2240, 3, 1, 1, 1.06 > 2240, 1, 3, 0, 0.968 > 2240, 1, 3, 1, 0.968 > 2240, 35, 1, 0, 1.071 > 2240, 35, 1, 1, 1.071 > 2240, 1, 35, 0, 0.971 > 2240, 1, 35, 1, 0.971 > 2240, 2051, 1, 0, 1.057 > 2240, 2051, 1, 1, 1.057 > 2240, 2049, 3, 0, 0.966 > 2240, 2049, 3, 1, 0.966 > 2304, 0, 0, 0, 0.986 > 2304, 0, 0, 1, 0.986 > 2304, 4, 0, 0, 1.031 > 2304, 4, 0, 1, 1.032 > 2304, 36, 0, 0, 1.011 > 2304, 36, 0, 1, 1.011 > 2304, 0, 4, 0, 0.968 > 2304, 0, 4, 1, 0.969 > 2304, 0, 36, 0, 0.988 > 2304, 0, 36, 1, 0.988 > 2304, 4, 4, 0, 0.93 > 2304, 4, 4, 1, 0.931 > 2304, 36, 36, 0, 0.992 > 2304, 36, 36, 1, 0.992 > 2304, 2048, 0, 0, 0.988 > 2304, 2048, 0, 1, 0.988 > 2304, 2052, 0, 0, 1.032 > 2304, 2052, 0, 1, 1.032 > 2304, 2048, 4, 0, 0.793 > 2304, 2048, 4, 1, 0.793 > 2304, 2052, 4, 0, 0.884 > 2304, 2052, 4, 1, 0.884 > 2304, 4, 1, 0, 0.989 > 2304, 4, 1, 1, 0.989 > 2304, 1, 4, 0, 0.897 > 2304, 1, 4, 1, 0.898 > 2304, 36, 1, 0, 1.057 > 2304, 36, 1, 1, 1.057 > 2304, 1, 36, 0, 0.966 > 2304, 1, 36, 1, 0.966 > 2304, 2052, 1, 0, 1.052 > 2304, 2052, 1, 1, 1.052 > 2304, 2049, 4, 0, 0.955 > 2304, 2049, 4, 1, 0.955 > 2368, 0, 0, 0, 1.0 > 2368, 0, 0, 1, 1.001 > 2368, 5, 0, 0, 1.024 > 2368, 5, 0, 1, 1.025 > 2368, 37, 0, 0, 1.0 > 2368, 37, 0, 1, 1.0 > 2368, 0, 5, 0, 0.98 > 2368, 0, 5, 1, 0.981 > 2368, 0, 37, 0, 0.983 > 2368, 0, 37, 1, 0.98 > 2368, 5, 5, 0, 0.944 > 2368, 5, 5, 1, 0.944 > 2368, 37, 37, 0, 1.003 > 2368, 37, 37, 1, 1.003 > 2368, 2048, 0, 0, 1.002 > 2368, 2048, 0, 1, 1.002 > 2368, 2053, 0, 0, 1.025 > 2368, 2053, 0, 1, 1.025 > 2368, 2048, 5, 0, 0.801 > 2368, 2048, 5, 1, 0.801 > 2368, 2053, 5, 0, 0.907 > 2368, 2053, 5, 1, 0.907 > 2368, 5, 1, 0, 1.071 > 2368, 5, 1, 1, 1.071 > 2368, 1, 5, 0, 0.973 > 2368, 1, 5, 1, 0.973 > 2368, 37, 1, 0, 1.07 > 2368, 37, 1, 1, 1.07 > 2368, 1, 37, 0, 0.974 > 2368, 1, 37, 1, 0.974 > 2368, 2053, 1, 0, 1.065 > 2368, 2053, 1, 1, 1.065 > 2368, 2049, 5, 0, 0.967 > 2368, 2049, 5, 1, 0.967 > 2432, 0, 0, 0, 0.965 > 2432, 0, 0, 1, 1.0 > 2432, 6, 0, 0, 1.038 > 2432, 6, 0, 1, 1.039 > 2432, 38, 0, 0, 1.021 > 2432, 38, 0, 1, 1.021 > 2432, 0, 6, 0, 0.974 > 2432, 0, 6, 1, 0.976 > 2432, 0, 38, 0, 0.986 > 2432, 0, 38, 1, 0.986 > 2432, 6, 6, 0, 0.926 > 2432, 6, 6, 1, 0.926 > 2432, 38, 38, 0, 1.0 > 2432, 38, 38, 1, 1.0 > 2432, 2048, 0, 0, 1.004 > 2432, 2048, 0, 1, 1.004 > 2432, 2054, 0, 0, 1.039 > 2432, 2054, 0, 1, 1.039 > 2432, 2048, 6, 0, 0.797 > 2432, 2048, 6, 1, 0.797 > 2432, 2054, 6, 0, 0.898 > 2432, 2054, 6, 1, 0.898 > 2432, 6, 1, 0, 1.063 > 2432, 6, 1, 1, 1.063 > 2432, 1, 6, 0, 0.965 > 2432, 1, 6, 1, 0.965 > 2432, 38, 1, 0, 1.068 > 2432, 38, 1, 1, 1.068 > 2432, 1, 38, 0, 0.968 > 2432, 1, 38, 1, 0.968 > 2432, 2054, 1, 0, 1.06 > 2432, 2054, 1, 1, 1.06 > 2432, 2049, 6, 0, 0.963 > 2432, 2049, 6, 1, 0.963 > 2496, 0, 0, 0, 1.013 > 2496, 0, 0, 1, 1.013 > 2496, 7, 0, 0, 1.032 > 2496, 7, 0, 1, 1.032 > 2496, 39, 0, 0, 1.013 > 2496, 39, 0, 1, 1.013 > 2496, 0, 7, 0, 0.965 > 2496, 0, 7, 1, 0.965 > 2496, 0, 39, 0, 0.979 > 2496, 0, 39, 1, 0.979 > 2496, 7, 7, 0, 0.925 > 2496, 7, 7, 1, 0.925 > 2496, 39, 39, 0, 0.989 > 2496, 39, 39, 1, 0.989 > 2496, 2048, 0, 0, 1.013 > 2496, 2048, 0, 1, 1.013 > 2496, 2055, 0, 0, 1.032 > 2496, 2055, 0, 1, 1.032 > 2496, 2048, 7, 0, 0.792 > 2496, 2048, 7, 1, 0.792 > 2496, 2055, 7, 0, 0.93 > 2496, 2055, 7, 1, 0.93 > 2496, 7, 1, 0, 0.984 > 2496, 7, 1, 1, 0.984 > 2496, 1, 7, 0, 0.894 > 2496, 1, 7, 1, 0.895 > 2496, 39, 1, 0, 1.054 > 2496, 39, 1, 1, 1.054 > 2496, 1, 39, 0, 0.963 > 2496, 1, 39, 1, 0.963 > 2496, 2055, 1, 0, 1.049 > 2496, 2055, 1, 1, 1.049 > 2496, 2049, 7, 0, 0.953 > 2496, 2049, 7, 1, 0.953 > 2560, 0, 0, 0, 0.991 > 2560, 0, 0, 1, 0.991 > 2560, 8, 0, 0, 1.031 > 2560, 8, 0, 1, 1.032 > 2560, 40, 0, 0, 1.029 > 2560, 40, 0, 1, 1.029 > 2560, 0, 8, 0, 0.992 > 2560, 0, 8, 1, 0.992 > 2560, 0, 40, 0, 0.975 > 2560, 0, 40, 1, 0.984 > 2560, 8, 8, 0, 0.942 > 2560, 8, 8, 1, 0.943 > 2560, 40, 40, 0, 1.139 > 2560, 40, 40, 1, 1.139 > 2560, 2048, 0, 0, 0.993 > 2560, 2048, 0, 1, 0.993 > 2560, 2056, 0, 0, 1.032 > 2560, 2056, 0, 1, 1.032 > 2560, 2048, 8, 0, 0.812 > 2560, 2048, 8, 1, 0.812 > 2560, 2056, 8, 0, 0.912 > 2560, 2056, 8, 1, 0.912 > 2560, 8, 1, 0, 1.068 > 2560, 8, 1, 1, 1.069 > 2560, 1, 8, 0, 0.974 > 2560, 1, 8, 1, 0.974 > 2560, 40, 1, 0, 1.068 > 2560, 40, 1, 1, 1.068 > 2560, 1, 40, 0, 0.996 > 2560, 1, 40, 1, 0.996 > 2560, 2056, 1, 0, 1.063 > 2560, 2056, 1, 1, 1.063 > 2560, 2049, 8, 0, 0.969 > 2560, 2049, 8, 1, 0.969 > 2624, 0, 0, 0, 0.995 > 2624, 0, 0, 1, 0.994 > 2624, 9, 0, 0, 1.015 > 2624, 9, 0, 1, 1.018 > 2624, 41, 0, 0, 1.044 > 2624, 41, 0, 1, 1.044 > 2624, 0, 9, 0, 0.988 > 2624, 0, 9, 1, 0.99 > 2624, 0, 41, 0, 0.989 > 2624, 0, 41, 1, 0.99 > 2624, 9, 9, 0, 0.943 > 2624, 9, 9, 1, 0.943 > 2624, 41, 41, 0, 0.993 > 2624, 41, 41, 1, 0.993 > 2624, 2048, 0, 0, 0.998 > 2624, 2048, 0, 1, 0.998 > 2624, 2057, 0, 0, 1.018 > 2624, 2057, 0, 1, 1.018 > 2624, 2048, 9, 0, 0.81 > 2624, 2048, 9, 1, 0.81 > 2624, 2057, 9, 0, 0.907 > 2624, 2057, 9, 1, 0.907 > 2624, 9, 1, 0, 1.09 > 2624, 9, 1, 1, 1.09 > 2624, 1, 9, 0, 0.967 > 2624, 1, 9, 1, 0.967 > 2624, 41, 1, 0, 1.084 > 2624, 41, 1, 1, 1.085 > 2624, 1, 41, 0, 0.958 > 2624, 1, 41, 1, 0.957 > 2624, 2057, 1, 0, 1.087 > 2624, 2057, 1, 1, 1.087 > 2624, 2049, 9, 0, 0.965 > 2624, 2049, 9, 1, 0.965 > 2688, 0, 0, 0, 0.995 > 2688, 0, 0, 1, 0.995 > 2688, 10, 0, 0, 1.01 > 2688, 10, 0, 1, 1.012 > 2688, 42, 0, 0, 1.036 > 2688, 42, 0, 1, 1.036 > 2688, 0, 10, 0, 0.978 > 2688, 0, 10, 1, 0.979 > 2688, 0, 42, 0, 0.977 > 2688, 0, 42, 1, 0.978 > 2688, 10, 10, 0, 0.942 > 2688, 10, 10, 1, 0.942 > 2688, 42, 42, 0, 0.989 > 2688, 42, 42, 1, 0.989 > 2688, 2048, 0, 0, 0.995 > 2688, 2048, 0, 1, 0.995 > 2688, 2058, 0, 0, 1.012 > 2688, 2058, 0, 1, 1.012 > 2688, 2048, 10, 0, 0.804 > 2688, 2048, 10, 1, 0.804 > 2688, 2058, 10, 0, 0.905 > 2688, 2058, 10, 1, 0.905 > 2688, 10, 1, 0, 0.986 > 2688, 10, 1, 1, 0.987 > 2688, 1, 10, 0, 0.893 > 2688, 1, 10, 1, 0.894 > 2688, 42, 1, 0, 1.054 > 2688, 42, 1, 1, 1.054 > 2688, 1, 42, 0, 0.958 > 2688, 1, 42, 1, 0.958 > 2688, 2058, 1, 0, 1.052 > 2688, 2058, 1, 1, 1.052 > 2688, 2049, 10, 0, 0.954 > 2688, 2049, 10, 1, 0.954 > 2752, 0, 0, 0, 1.0 > 2752, 0, 0, 1, 0.992 > 2752, 11, 0, 0, 0.954 > 2752, 11, 0, 1, 0.954 > 2752, 43, 0, 0, 0.979 > 2752, 43, 0, 1, 0.979 > 2752, 0, 11, 0, 0.939 > 2752, 0, 11, 1, 0.939 > 2752, 0, 43, 0, 0.931 > 2752, 0, 43, 1, 0.932 > 2752, 11, 11, 0, 0.949 > 2752, 11, 11, 1, 0.949 > 2752, 43, 43, 0, 1.007 > 2752, 43, 43, 1, 1.007 > 2752, 2048, 0, 0, 0.993 > 2752, 2048, 0, 1, 0.993 > 2752, 2059, 0, 0, 0.954 > 2752, 2059, 0, 1, 0.954 > 2752, 2048, 11, 0, 0.77 > 2752, 2048, 11, 1, 0.77 > 2752, 2059, 11, 0, 0.916 > 2752, 2059, 11, 1, 0.916 > 2752, 11, 1, 0, 0.994 > 2752, 11, 1, 1, 0.994 > 2752, 1, 11, 0, 0.928 > 2752, 1, 11, 1, 0.928 > 2752, 43, 1, 0, 1.022 > 2752, 43, 1, 1, 1.022 > 2752, 1, 43, 0, 0.92 > 2752, 1, 43, 1, 0.92 > 2752, 2059, 1, 0, 0.989 > 2752, 2059, 1, 1, 0.989 > 2752, 2049, 11, 0, 0.923 > 2752, 2049, 11, 1, 0.923 > 2816, 0, 0, 0, 1.003 > 2816, 0, 0, 1, 1.003 > 2816, 12, 0, 0, 0.897 > 2816, 12, 0, 1, 0.894 > 2816, 44, 0, 0, 0.914 > 2816, 44, 0, 1, 0.914 > 2816, 0, 12, 0, 0.876 > 2816, 0, 12, 1, 0.874 > 2816, 0, 44, 0, 0.871 > 2816, 0, 44, 1, 0.87 > 2816, 12, 12, 0, 0.948 > 2816, 12, 12, 1, 0.948 > 2816, 44, 44, 0, 1.009 > 2816, 44, 44, 1, 1.009 > 2816, 2048, 0, 0, 1.005 > 2816, 2048, 0, 1, 1.005 > 2816, 2060, 0, 0, 0.894 > 2816, 2060, 0, 1, 0.894 > 2816, 2048, 12, 0, 0.714 > 2816, 2048, 12, 1, 0.713 > 2816, 2060, 12, 0, 0.915 > 2816, 2060, 12, 1, 0.915 > 2816, 12, 1, 0, 0.917 > 2816, 12, 1, 1, 0.917 > 2816, 1, 12, 0, 0.858 > 2816, 1, 12, 1, 0.857 > 2816, 44, 1, 0, 0.944 > 2816, 44, 1, 1, 0.943 > 2816, 1, 44, 0, 0.856 > 2816, 1, 44, 1, 0.856 > 2816, 2060, 1, 0, 0.914 > 2816, 2060, 1, 1, 0.914 > 2816, 2049, 12, 0, 0.855 > 2816, 2049, 12, 1, 0.855 > 2880, 0, 0, 0, 0.989 > 2880, 0, 0, 1, 0.989 > 2880, 13, 0, 0, 0.967 > 2880, 13, 0, 1, 0.967 > 2880, 45, 0, 0, 0.987 > 2880, 45, 0, 1, 0.987 > 2880, 0, 13, 0, 0.925 > 2880, 0, 13, 1, 0.925 > 2880, 0, 45, 0, 0.927 > 2880, 0, 45, 1, 0.927 > 2880, 13, 13, 0, 0.944 > 2880, 13, 13, 1, 0.944 > 2880, 45, 45, 0, 1.003 > 2880, 45, 45, 1, 1.003 > 2880, 2048, 0, 0, 0.989 > 2880, 2048, 0, 1, 0.989 > 2880, 2061, 0, 0, 0.967 > 2880, 2061, 0, 1, 0.967 > 2880, 2048, 13, 0, 0.76 > 2880, 2048, 13, 1, 0.76 > 2880, 2061, 13, 0, 0.91 > 2880, 2061, 13, 1, 0.91 > 2880, 13, 1, 0, 0.922 > 2880, 13, 1, 1, 0.922 > 2880, 1, 13, 0, 0.859 > 2880, 1, 13, 1, 0.859 > 2880, 45, 1, 0, 1.013 > 2880, 45, 1, 1, 1.013 > 2880, 1, 45, 0, 0.92 > 2880, 1, 45, 1, 0.92 > 2880, 2061, 1, 0, 0.984 > 2880, 2061, 1, 1, 0.984 > 2880, 2049, 13, 0, 0.918 > 2880, 2049, 13, 1, 0.918 > 2944, 0, 0, 0, 1.014 > 2944, 0, 0, 1, 1.014 > 2944, 14, 0, 0, 0.956 > 2944, 14, 0, 1, 0.955 > 2944, 46, 0, 0, 0.979 > 2944, 46, 0, 1, 0.979 > 2944, 0, 14, 0, 0.937 > 2944, 0, 14, 1, 0.937 > 2944, 0, 46, 0, 0.93 > 2944, 0, 46, 1, 0.93 > 2944, 14, 14, 0, 0.953 > 2944, 14, 14, 1, 0.953 > 2944, 46, 46, 0, 1.009 > 2944, 46, 46, 1, 1.009 > 2944, 2048, 0, 0, 1.015 > 2944, 2048, 0, 1, 1.015 > 2944, 2062, 0, 0, 0.955 > 2944, 2062, 0, 1, 0.955 > 2944, 2048, 14, 0, 0.769 > 2944, 2048, 14, 1, 0.769 > 2944, 2062, 14, 0, 0.923 > 2944, 2062, 14, 1, 0.923 > 2944, 14, 1, 0, 0.994 > 2944, 14, 1, 1, 0.994 > 2944, 1, 14, 0, 0.927 > 2944, 1, 14, 1, 0.927 > 2944, 46, 1, 0, 1.021 > 2944, 46, 1, 1, 1.021 > 2944, 1, 46, 0, 0.923 > 2944, 1, 46, 1, 0.923 > 2944, 2062, 1, 0, 0.988 > 2944, 2062, 1, 1, 0.988 > 2944, 2049, 14, 0, 0.922 > 2944, 2049, 14, 1, 0.922 > 3008, 0, 0, 0, 0.994 > 3008, 0, 0, 1, 0.994 > 3008, 15, 0, 0, 0.941 > 3008, 15, 0, 1, 0.941 > 3008, 47, 0, 0, 0.996 > 3008, 47, 0, 1, 0.996 > 3008, 0, 15, 0, 0.929 > 3008, 0, 15, 1, 0.933 > 3008, 0, 47, 0, 0.933 > 3008, 0, 47, 1, 0.933 > 3008, 15, 15, 0, 0.952 > 3008, 15, 15, 1, 0.949 > 3008, 47, 47, 0, 1.003 > 3008, 47, 47, 1, 1.003 > 3008, 2048, 0, 0, 0.998 > 3008, 2048, 0, 1, 0.998 > 3008, 2063, 0, 0, 0.941 > 3008, 2063, 0, 1, 0.941 > 3008, 2048, 15, 0, 0.766 > 3008, 2048, 15, 1, 0.766 > 3008, 2063, 15, 0, 0.916 > 3008, 2063, 15, 1, 0.916 > 3008, 15, 1, 0, 0.985 > 3008, 15, 1, 1, 0.985 > 3008, 1, 15, 0, 0.916 > 3008, 1, 15, 1, 0.916 > 3008, 47, 1, 0, 1.014 > 3008, 47, 1, 1, 1.014 > 3008, 1, 47, 0, 0.902 > 3008, 1, 47, 1, 0.902 > 3008, 2063, 1, 0, 0.981 > 3008, 2063, 1, 1, 0.981 > 3008, 2049, 15, 0, 0.912 > 3008, 2049, 15, 1, 0.913 > 3072, 0, 0, 0, 1.016 > 3072, 0, 0, 1, 1.015 > 3072, 16, 0, 0, 1.045 > 3072, 16, 0, 1, 1.045 > 3072, 48, 0, 0, 1.045 > 3072, 48, 0, 1, 1.045 > 3072, 0, 16, 0, 1.049 > 3072, 0, 16, 1, 1.049 > 3072, 0, 48, 0, 1.049 > 3072, 0, 48, 1, 1.049 > 3072, 16, 16, 0, 1.016 > 3072, 16, 16, 1, 1.016 > 3072, 48, 48, 0, 1.016 > 3072, 48, 48, 1, 1.016 > 3072, 2048, 0, 0, 1.016 > 3072, 2048, 0, 1, 1.016 > 3072, 2064, 0, 0, 1.045 > 3072, 2064, 0, 1, 1.045 > 3072, 2048, 16, 0, 1.049 > 3072, 2048, 16, 1, 1.049 > 3072, 2064, 16, 0, 1.016 > 3072, 2064, 16, 1, 1.016 > 3072, 16, 1, 0, 0.815 > 3072, 16, 1, 1, 0.815 > 3072, 1, 16, 0, 0.872 > 3072, 1, 16, 1, 0.872 > 3072, 48, 1, 0, 1.017 > 3072, 48, 1, 1, 1.017 > 3072, 1, 48, 0, 0.872 > 3072, 1, 48, 1, 0.872 > 3072, 2064, 1, 0, 0.815 > 3072, 2064, 1, 1, 0.815 > 3072, 2049, 16, 0, 0.872 > 3072, 2049, 16, 1, 0.872 > 3136, 0, 0, 0, 0.995 > 3136, 0, 0, 1, 0.995 > 3136, 17, 0, 0, 0.949 > 3136, 17, 0, 1, 0.949 > 3136, 49, 0, 0, 0.987 > 3136, 49, 0, 1, 0.987 > 3136, 0, 17, 0, 0.919 > 3136, 0, 17, 1, 0.917 > 3136, 0, 49, 0, 0.931 > 3136, 0, 49, 1, 0.931 > 3136, 17, 17, 0, 1.122 > 3136, 17, 17, 1, 1.119 > 3136, 49, 49, 0, 0.987 > 3136, 49, 49, 1, 0.987 > 3136, 2048, 0, 0, 0.997 > 3136, 2048, 0, 1, 0.997 > 3136, 2065, 0, 0, 0.949 > 3136, 2065, 0, 1, 0.949 > 3136, 2048, 17, 0, 0.896 > 3136, 2048, 17, 1, 0.896 > 3136, 2065, 17, 0, 1.122 > 3136, 2065, 17, 1, 1.119 > 3136, 17, 1, 0, 1.184 > 3136, 17, 1, 1, 1.184 > 3136, 1, 17, 0, 1.124 > 3136, 1, 17, 1, 1.125 > 3136, 49, 1, 0, 1.11 > 3136, 49, 1, 1, 1.108 > 3136, 1, 49, 0, 1.044 > 3136, 1, 49, 1, 1.044 > 3136, 2065, 1, 0, 1.147 > 3136, 2065, 1, 1, 1.147 > 3136, 2049, 17, 0, 1.102 > 3136, 2049, 17, 1, 1.1 > 3200, 0, 0, 0, 1.006 > 3200, 0, 0, 1, 1.006 > 3200, 18, 0, 0, 0.978 > 3200, 18, 0, 1, 0.978 > 3200, 50, 0, 0, 0.998 > 3200, 50, 0, 1, 0.998 > 3200, 0, 18, 0, 0.932 > 3200, 0, 18, 1, 0.932 > 3200, 0, 50, 0, 0.93 > 3200, 0, 50, 1, 0.93 > 3200, 18, 18, 0, 1.11 > 3200, 18, 18, 1, 1.11 > 3200, 50, 50, 0, 0.994 > 3200, 50, 50, 1, 0.994 > 3200, 2048, 0, 0, 1.007 > 3200, 2048, 0, 1, 1.007 > 3200, 2066, 0, 0, 0.978 > 3200, 2066, 0, 1, 0.978 > 3200, 2048, 18, 0, 0.894 > 3200, 2048, 18, 1, 0.894 > 3200, 2066, 18, 0, 1.11 > 3200, 2066, 18, 1, 1.11 > 3200, 18, 1, 0, 1.002 > 3200, 18, 1, 1, 1.002 > 3200, 1, 18, 0, 0.917 > 3200, 1, 18, 1, 0.917 > 3200, 50, 1, 0, 0.963 > 3200, 50, 1, 1, 0.964 > 3200, 1, 50, 0, 0.888 > 3200, 1, 50, 1, 0.888 > 3200, 2066, 1, 0, 1.002 > 3200, 2066, 1, 1, 1.002 > 3200, 2049, 18, 0, 0.914 > 3200, 2049, 18, 1, 0.914 > 3264, 0, 0, 0, 0.994 > 3264, 0, 0, 1, 0.994 > 3264, 19, 0, 0, 0.959 > 3264, 19, 0, 1, 0.959 > 3264, 51, 0, 0, 0.994 > 3264, 51, 0, 1, 0.994 > 3264, 0, 19, 0, 0.927 > 3264, 0, 19, 1, 0.927 > 3264, 0, 51, 0, 0.927 > 3264, 0, 51, 1, 0.927 > 3264, 19, 19, 0, 1.1 > 3264, 19, 19, 1, 1.1 > 3264, 51, 51, 0, 0.982 > 3264, 51, 51, 1, 0.982 > 3264, 2048, 0, 0, 0.994 > 3264, 2048, 0, 1, 0.994 > 3264, 2067, 0, 0, 0.959 > 3264, 2067, 0, 1, 0.959 > 3264, 2048, 19, 0, 0.891 > 3264, 2048, 19, 1, 0.891 > 3264, 2067, 19, 0, 1.099 > 3264, 2067, 19, 1, 1.099 > 3264, 19, 1, 0, 0.977 > 3264, 19, 1, 1, 0.976 > 3264, 1, 19, 0, 0.921 > 3264, 1, 19, 1, 0.921 > 3264, 51, 1, 0, 0.959 > 3264, 51, 1, 1, 0.959 > 3264, 1, 51, 0, 0.886 > 3264, 1, 51, 1, 0.886 > 3264, 2067, 1, 0, 0.976 > 3264, 2067, 1, 1, 0.976 > 3264, 2049, 19, 0, 0.917 > 3264, 2049, 19, 1, 0.917 > 3328, 0, 0, 0, 0.996 > 3328, 0, 0, 1, 0.992 > 3328, 20, 0, 0, 0.955 > 3328, 20, 0, 1, 0.955 > 3328, 52, 0, 0, 0.99 > 3328, 52, 0, 1, 0.99 > 3328, 0, 20, 0, 0.926 > 3328, 0, 20, 1, 0.923 > 3328, 0, 52, 0, 0.933 > 3328, 0, 52, 1, 0.933 > 3328, 20, 20, 0, 1.11 > 3328, 20, 20, 1, 1.11 > 3328, 52, 52, 0, 0.988 > 3328, 52, 52, 1, 0.988 > 3328, 2048, 0, 0, 0.993 > 3328, 2048, 0, 1, 0.993 > 3328, 2068, 0, 0, 0.955 > 3328, 2068, 0, 1, 0.955 > 3328, 2048, 20, 0, 0.9 > 3328, 2048, 20, 1, 0.9 > 3328, 2068, 20, 0, 1.109 > 3328, 2068, 20, 1, 1.109 > 3328, 20, 1, 0, 0.99 > 3328, 20, 1, 1, 0.99 > 3328, 1, 20, 0, 0.922 > 3328, 1, 20, 1, 0.922 > 3328, 52, 1, 0, 0.972 > 3328, 52, 1, 1, 0.972 > 3328, 1, 52, 0, 0.901 > 3328, 1, 52, 1, 0.901 > 3328, 2068, 1, 0, 0.99 > 3328, 2068, 1, 1, 0.99 > 3328, 2049, 20, 0, 0.918 > 3328, 2049, 20, 1, 0.918 > 3392, 0, 0, 0, 0.998 > 3392, 0, 0, 1, 1.0 > 3392, 21, 0, 0, 0.964 > 3392, 21, 0, 1, 0.964 > 3392, 53, 0, 0, 0.998 > 3392, 53, 0, 1, 0.998 > 3392, 0, 21, 0, 0.932 > 3392, 0, 21, 1, 0.932 > 3392, 0, 53, 0, 0.93 > 3392, 0, 53, 1, 0.93 > 3392, 21, 21, 0, 1.113 > 3392, 21, 21, 1, 1.113 > 3392, 53, 53, 0, 0.983 > 3392, 53, 53, 1, 0.983 > 3392, 2048, 0, 0, 1.0 > 3392, 2048, 0, 1, 1.0 > 3392, 2069, 0, 0, 0.964 > 3392, 2069, 0, 1, 0.964 > 3392, 2048, 21, 0, 0.895 > 3392, 2048, 21, 1, 0.896 > 3392, 2069, 21, 0, 1.113 > 3392, 2069, 21, 1, 1.113 > 3392, 21, 1, 0, 0.994 > 3392, 21, 1, 1, 0.994 > 3392, 1, 21, 0, 0.923 > 3392, 1, 21, 1, 0.923 > 3392, 53, 1, 0, 0.972 > 3392, 53, 1, 1, 0.972 > 3392, 1, 53, 0, 0.891 > 3392, 1, 53, 1, 0.891 > 3392, 2069, 1, 0, 0.994 > 3392, 2069, 1, 1, 0.994 > 3392, 2049, 21, 0, 0.922 > 3392, 2049, 21, 1, 0.922 > 3456, 0, 0, 0, 0.995 > 3456, 0, 0, 1, 0.995 > 3456, 22, 0, 0, 0.965 > 3456, 22, 0, 1, 0.965 > 3456, 54, 0, 0, 0.996 > 3456, 54, 0, 1, 0.996 > 3456, 0, 22, 0, 0.927 > 3456, 0, 22, 1, 0.927 > 3456, 0, 54, 0, 0.927 > 3456, 0, 54, 1, 0.927 > 3456, 22, 22, 0, 1.107 > 3456, 22, 22, 1, 1.107 > 3456, 54, 54, 0, 0.98 > 3456, 54, 54, 1, 0.98 > 3456, 2048, 0, 0, 0.995 > 3456, 2048, 0, 1, 0.995 > 3456, 2070, 0, 0, 0.965 > 3456, 2070, 0, 1, 0.965 > 3456, 2048, 22, 0, 0.893 > 3456, 2048, 22, 1, 0.893 > 3456, 2070, 22, 0, 1.107 > 3456, 2070, 22, 1, 1.107 > 3456, 22, 1, 0, 0.988 > 3456, 22, 1, 1, 0.988 > 3456, 1, 22, 0, 0.921 > 3456, 1, 22, 1, 0.921 > 3456, 54, 1, 0, 0.963 > 3456, 54, 1, 1, 0.963 > 3456, 1, 54, 0, 0.887 > 3456, 1, 54, 1, 0.887 > 3456, 2070, 1, 0, 0.988 > 3456, 2070, 1, 1, 0.988 > 3456, 2049, 22, 0, 0.917 > 3456, 2049, 22, 1, 0.917 > 3520, 0, 0, 0, 1.016 > 3520, 0, 0, 1, 1.016 > 3520, 23, 0, 0, 0.957 > 3520, 23, 0, 1, 0.957 > 3520, 55, 0, 0, 0.991 > 3520, 55, 0, 1, 0.991 > 3520, 0, 23, 0, 0.919 > 3520, 0, 23, 1, 0.924 > 3520, 0, 55, 0, 0.934 > 3520, 0, 55, 1, 0.934 > 3520, 23, 23, 0, 1.111 > 3520, 23, 23, 1, 1.111 > 3520, 55, 55, 0, 0.994 > 3520, 55, 55, 1, 0.994 > 3520, 2048, 0, 0, 1.016 > 3520, 2048, 0, 1, 1.016 > 3520, 2071, 0, 0, 0.957 > 3520, 2071, 0, 1, 0.957 > 3520, 2048, 23, 0, 0.903 > 3520, 2048, 23, 1, 0.903 > 3520, 2071, 23, 0, 1.111 > 3520, 2071, 23, 1, 1.111 > 3520, 23, 1, 0, 0.997 > 3520, 23, 1, 1, 0.997 > 3520, 1, 23, 0, 0.921 > 3520, 1, 23, 1, 0.921 > 3520, 55, 1, 0, 0.976 > 3520, 55, 1, 1, 0.976 > 3520, 1, 55, 0, 0.902 > 3520, 1, 55, 1, 0.902 > 3520, 2071, 1, 0, 0.997 > 3520, 2071, 1, 1, 0.997 > 3520, 2049, 23, 0, 0.918 > 3520, 2049, 23, 1, 0.918 > 3584, 0, 0, 0, 1.004 > 3584, 0, 0, 1, 1.004 > 3584, 24, 0, 0, 0.985 > 3584, 24, 0, 1, 0.979 > 3584, 56, 0, 0, 1.006 > 3584, 56, 0, 1, 1.006 > 3584, 0, 24, 0, 0.931 > 3584, 0, 24, 1, 0.931 > 3584, 0, 56, 0, 0.93 > 3584, 0, 56, 1, 0.93 > 3584, 24, 24, 0, 1.111 > 3584, 24, 24, 1, 1.11 > 3584, 56, 56, 0, 1.101 > 3584, 56, 56, 1, 1.1 > 3584, 2048, 0, 0, 1.005 > 3584, 2048, 0, 1, 1.005 > 3584, 2072, 0, 0, 0.98 > 3584, 2072, 0, 1, 0.978 > 3584, 2048, 24, 0, 0.896 > 3584, 2048, 24, 1, 0.897 > 3584, 2072, 24, 0, 1.111 > 3584, 2072, 24, 1, 1.111 > 3584, 24, 1, 0, 1.004 > 3584, 24, 1, 1, 1.004 > 3584, 1, 24, 0, 0.921 > 3584, 1, 24, 1, 0.921 > 3584, 56, 1, 0, 0.971 > 3584, 56, 1, 1, 0.97 > 3584, 1, 56, 0, 0.89 > 3584, 1, 56, 1, 0.89 > 3584, 2072, 1, 0, 1.004 > 3584, 2072, 1, 1, 1.004 > 3584, 2049, 24, 0, 0.918 > 3584, 2049, 24, 1, 0.918 > 3648, 0, 0, 0, 1.012 > 3648, 0, 0, 1, 1.012 > 3648, 25, 0, 0, 0.96 > 3648, 25, 0, 1, 0.96 > 3648, 57, 0, 0, 0.988 > 3648, 57, 0, 1, 0.988 > 3648, 0, 25, 0, 0.927 > 3648, 0, 25, 1, 0.927 > 3648, 0, 57, 0, 0.927 > 3648, 0, 57, 1, 0.927 > 3648, 25, 25, 0, 1.101 > 3648, 25, 25, 1, 1.101 > 3648, 57, 57, 0, 0.986 > 3648, 57, 57, 1, 0.986 > 3648, 2048, 0, 0, 1.012 > 3648, 2048, 0, 1, 1.012 > 3648, 2073, 0, 0, 0.96 > 3648, 2073, 0, 1, 0.959 > 3648, 2048, 25, 0, 0.894 > 3648, 2048, 25, 1, 0.895 > 3648, 2073, 25, 0, 1.103 > 3648, 2073, 25, 1, 1.103 > 3648, 25, 1, 0, 1.024 > 3648, 25, 1, 1, 1.024 > 3648, 1, 25, 0, 0.911 > 3648, 1, 25, 1, 0.912 > 3648, 57, 1, 0, 0.973 > 3648, 57, 1, 1, 0.974 > 3648, 1, 57, 0, 0.888 > 3648, 1, 57, 1, 0.888 > 3648, 2073, 1, 0, 1.024 > 3648, 2073, 1, 1, 1.024 > 3648, 2049, 25, 0, 0.907 > 3648, 2049, 25, 1, 0.907 > 3712, 0, 0, 0, 0.996 > 3712, 0, 0, 1, 0.996 > 3712, 26, 0, 0, 0.96 > 3712, 26, 0, 1, 0.96 > 3712, 58, 0, 0, 0.995 > 3712, 58, 0, 1, 0.995 > 3712, 0, 26, 0, 0.919 > 3712, 0, 26, 1, 0.918 > 3712, 0, 58, 0, 0.93 > 3712, 0, 58, 1, 0.93 > 3712, 26, 26, 0, 1.103 > 3712, 26, 26, 1, 1.102 > 3712, 58, 58, 0, 0.989 > 3712, 58, 58, 1, 0.989 > 3712, 2048, 0, 0, 0.997 > 3712, 2048, 0, 1, 0.997 > 3712, 2074, 0, 0, 0.959 > 3712, 2074, 0, 1, 0.959 > 3712, 2048, 26, 0, 0.901 > 3712, 2048, 26, 1, 0.901 > 3712, 2074, 26, 0, 1.104 > 3712, 2074, 26, 1, 1.102 > 3712, 26, 1, 0, 1.001 > 3712, 26, 1, 1, 1.001 > 3712, 1, 26, 0, 0.922 > 3712, 1, 26, 1, 0.922 > 3712, 58, 1, 0, 0.974 > 3712, 58, 1, 1, 0.974 > 3712, 1, 58, 0, 0.903 > 3712, 1, 58, 1, 0.903 > 3712, 2074, 1, 0, 1.001 > 3712, 2074, 1, 1, 1.001 > 3712, 2049, 26, 0, 0.919 > 3712, 2049, 26, 1, 0.919 > 3776, 0, 0, 0, 1.003 > 3776, 0, 0, 1, 1.003 > 3776, 27, 0, 0, 0.964 > 3776, 27, 0, 1, 0.964 > 3776, 59, 0, 0, 1.004 > 3776, 59, 0, 1, 1.004 > 3776, 0, 27, 0, 0.931 > 3776, 0, 27, 1, 0.931 > 3776, 0, 59, 0, 0.929 > 3776, 0, 59, 1, 0.93 > 3776, 27, 27, 0, 1.097 > 3776, 27, 27, 1, 1.097 > 3776, 59, 59, 0, 0.992 > 3776, 59, 59, 1, 0.992 > 3776, 2048, 0, 0, 1.003 > 3776, 2048, 0, 1, 1.003 > 3776, 2075, 0, 0, 0.963 > 3776, 2075, 0, 1, 0.964 > 3776, 2048, 27, 0, 0.898 > 3776, 2048, 27, 1, 0.898 > 3776, 2075, 27, 0, 1.097 > 3776, 2075, 27, 1, 1.097 > 3776, 27, 1, 0, 0.998 > 3776, 27, 1, 1, 0.998 > 3776, 1, 27, 0, 0.925 > 3776, 1, 27, 1, 0.925 > 3776, 59, 1, 0, 0.979 > 3776, 59, 1, 1, 0.979 > 3776, 1, 59, 0, 0.894 > 3776, 1, 59, 1, 0.894 > 3776, 2075, 1, 0, 0.998 > 3776, 2075, 1, 1, 0.999 > 3776, 2049, 27, 0, 0.923 > 3776, 2049, 27, 1, 0.923 > 3840, 0, 0, 0, 0.997 > 3840, 0, 0, 1, 0.997 > 3840, 28, 0, 0, 0.968 > 3840, 28, 0, 1, 0.968 > 3840, 60, 0, 0, 1.001 > 3840, 60, 0, 1, 1.001 > 3840, 0, 28, 0, 0.926 > 3840, 0, 28, 1, 0.927 > 3840, 0, 60, 0, 0.927 > 3840, 0, 60, 1, 0.927 > 3840, 28, 28, 0, 1.094 > 3840, 28, 28, 1, 1.094 > 3840, 60, 60, 0, 0.982 > 3840, 60, 60, 1, 0.982 > 3840, 2048, 0, 0, 0.998 > 3840, 2048, 0, 1, 0.998 > 3840, 2076, 0, 0, 0.968 > 3840, 2076, 0, 1, 0.968 > 3840, 2048, 28, 0, 0.896 > 3840, 2048, 28, 1, 0.896 > 3840, 2076, 28, 0, 1.094 > 3840, 2076, 28, 1, 1.094 > 3840, 28, 1, 0, 0.983 > 3840, 28, 1, 1, 0.982 > 3840, 1, 28, 0, 0.916 > 3840, 1, 28, 1, 0.916 > 3840, 60, 1, 0, 0.969 > 3840, 60, 1, 1, 0.969 > 3840, 1, 60, 0, 0.891 > 3840, 1, 60, 1, 0.891 > 3840, 2076, 1, 0, 0.983 > 3840, 2076, 1, 1, 0.983 > 3840, 2049, 28, 0, 0.912 > 3840, 2049, 28, 1, 0.912 > 3904, 0, 0, 0, 1.002 > 3904, 0, 0, 1, 1.0 > 3904, 29, 0, 0, 0.961 > 3904, 29, 0, 1, 0.961 > 3904, 61, 0, 0, 0.997 > 3904, 61, 0, 1, 0.997 > 3904, 0, 29, 0, 0.915 > 3904, 0, 29, 1, 0.922 > 3904, 0, 61, 0, 0.933 > 3904, 0, 61, 1, 0.933 > 3904, 29, 29, 0, 1.103 > 3904, 29, 29, 1, 1.103 > 3904, 61, 61, 0, 0.995 > 3904, 61, 61, 1, 0.995 > 3904, 2048, 0, 0, 0.998 > 3904, 2048, 0, 1, 1.0 > 3904, 2077, 0, 0, 0.961 > 3904, 2077, 0, 1, 0.961 > 3904, 2048, 29, 0, 0.904 > 3904, 2048, 29, 1, 0.904 > 3904, 2077, 29, 0, 1.103 > 3904, 2077, 29, 1, 1.103 > 3904, 29, 1, 0, 1.0 > 3904, 29, 1, 1, 1.0 > 3904, 1, 29, 0, 0.922 > 3904, 1, 29, 1, 0.922 > 3904, 61, 1, 0, 0.98 > 3904, 61, 1, 1, 0.98 > 3904, 1, 61, 0, 0.904 > 3904, 1, 61, 1, 0.904 > 3904, 2077, 1, 0, 1.0 > 3904, 2077, 1, 1, 1.0 > 3904, 2049, 29, 0, 0.919 > 3904, 2049, 29, 1, 0.919 > 3968, 0, 0, 0, 1.003 > 3968, 0, 0, 1, 1.003 > 3968, 30, 0, 0, 0.969 > 3968, 30, 0, 1, 0.969 > 3968, 62, 0, 0, 1.006 > 3968, 62, 0, 1, 1.006 > 3968, 0, 30, 0, 0.931 > 3968, 0, 30, 1, 0.93 > 3968, 0, 62, 0, 0.929 > 3968, 0, 62, 1, 0.929 > 3968, 30, 30, 0, 1.103 > 3968, 30, 30, 1, 1.103 > 3968, 62, 62, 0, 0.99 > 3968, 62, 62, 1, 0.99 > 3968, 2048, 0, 0, 1.004 > 3968, 2048, 0, 1, 1.004 > 3968, 2078, 0, 0, 0.969 > 3968, 2078, 0, 1, 0.969 > 3968, 2048, 30, 0, 0.899 > 3968, 2048, 30, 1, 0.899 > 3968, 2078, 30, 0, 1.105 > 3968, 2078, 30, 1, 1.105 > 3968, 30, 1, 0, 0.993 > 3968, 30, 1, 1, 0.993 > 3968, 1, 30, 0, 0.908 > 3968, 1, 30, 1, 0.908 > 3968, 62, 1, 0, 0.978 > 3968, 62, 1, 1, 0.978 > 3968, 1, 62, 0, 0.895 > 3968, 1, 62, 1, 0.895 > 3968, 2078, 1, 0, 0.993 > 3968, 2078, 1, 1, 0.993 > 3968, 2049, 30, 0, 0.904 > 3968, 2049, 30, 1, 0.904 > 4032, 0, 0, 0, 0.995 > 4032, 0, 0, 1, 0.995 > 4032, 31, 0, 0, 0.967 > 4032, 31, 0, 1, 0.967 > 4032, 63, 0, 0, 1.002 > 4032, 63, 0, 1, 1.002 > 4032, 0, 31, 0, 0.927 > 4032, 0, 31, 1, 0.926 > 4032, 0, 63, 0, 0.927 > 4032, 0, 63, 1, 0.927 > 4032, 31, 31, 0, 1.09 > 4032, 31, 31, 1, 1.09 > 4032, 63, 63, 0, 0.987 > 4032, 63, 63, 1, 0.987 > 4032, 2048, 0, 0, 0.995 > 4032, 2048, 0, 1, 0.995 > 4032, 2079, 0, 0, 0.967 > 4032, 2079, 0, 1, 0.967 > 4032, 2048, 31, 0, 0.897 > 4032, 2048, 31, 1, 0.897 > 4032, 2079, 31, 0, 1.09 > 4032, 2079, 31, 1, 1.09 > 4032, 31, 1, 0, 0.989 > 4032, 31, 1, 1, 0.989 > 4032, 1, 31, 0, 0.911 > 4032, 1, 31, 1, 0.911 > 4032, 63, 1, 0, 0.971 > 4032, 63, 1, 1, 0.972 > 4032, 1, 63, 0, 0.892 > 4032, 1, 63, 1, 0.892 > 4032, 2079, 1, 0, 0.989 > 4032, 2079, 1, 1, 0.989 > 4032, 2049, 31, 0, 0.907 > 4032, 2049, 31, 1, 0.907 > 4096, 32, 0, 0, 1.014 > 4096, 32, 0, 1, 1.014 > 4096, 64, 0, 0, 1.014 > 4096, 64, 0, 1, 1.014 > 4096, 0, 32, 0, 1.012 > 4096, 0, 32, 1, 1.012 > 4096, 0, 64, 0, 1.012 > 4096, 0, 64, 1, 1.012 > 4096, 32, 32, 0, 1.014 > 4096, 32, 32, 1, 1.014 > 4096, 64, 64, 0, 1.014 > 4096, 64, 64, 1, 1.014 > 4096, 2080, 0, 0, 1.014 > 4096, 2080, 0, 1, 1.014 > 4096, 2048, 32, 0, 1.014 > 4096, 2048, 32, 1, 1.014 > 4096, 2080, 32, 0, 1.014 > 4096, 2080, 32, 1, 1.014 > 4096, 32, 1, 0, 0.975 > 4096, 32, 1, 1, 0.975 > 4096, 1, 32, 0, 0.769 > 4096, 1, 32, 1, 0.769 > 4096, 64, 1, 0, 0.858 > 4096, 64, 1, 1, 0.858 > 4096, 1, 64, 0, 0.769 > 4096, 1, 64, 1, 0.769 > 4096, 2080, 1, 0, 0.829 > 4096, 2080, 1, 1, 0.829 > 4096, 2049, 32, 0, 0.886 > 4096, 2049, 32, 1, 0.886 > 4160, 0, 0, 0, 1.003 > 4160, 0, 0, 1, 1.003 > 4160, 33, 0, 0, 1.004 > 4160, 33, 0, 1, 1.004 > 4160, 65, 0, 0, 0.999 > 4160, 65, 0, 1, 0.999 > 4160, 0, 33, 0, 0.931 > 4160, 0, 33, 1, 0.931 > 4160, 0, 65, 0, 0.765 > 4160, 0, 65, 1, 0.765 > 4160, 33, 33, 0, 0.998 > 4160, 33, 33, 1, 0.998 > 4160, 65, 65, 0, 0.942 > 4160, 65, 65, 1, 0.942 > 4160, 2048, 0, 0, 1.003 > 4160, 2048, 0, 1, 1.003 > 4160, 2081, 0, 0, 1.004 > 4160, 2081, 0, 1, 1.004 > 4160, 2048, 33, 0, 0.899 > 4160, 2048, 33, 1, 0.898 > 4160, 2081, 33, 0, 1.002 > 4160, 2081, 33, 1, 1.002 > 4160, 33, 1, 0, 1.114 > 4160, 33, 1, 1, 1.114 > 4160, 1, 33, 0, 1.01 > 4160, 1, 33, 1, 1.01 > 4160, 65, 1, 0, 1.077 > 4160, 65, 1, 1, 1.077 > 4160, 1, 65, 0, 0.935 > 4160, 1, 65, 1, 0.935 > 4160, 2081, 1, 0, 1.077 > 4160, 2081, 1, 1, 1.077 > 4160, 2049, 33, 0, 1.007 > 4160, 2049, 33, 1, 1.007 > 4224, 0, 0, 0, 1.014 > 4224, 0, 0, 1, 1.014 > 4224, 34, 0, 0, 1.0 > 4224, 34, 0, 1, 1.0 > 4224, 66, 0, 0, 1.001 > 4224, 66, 0, 1, 1.001 > 4224, 0, 34, 0, 0.928 > 4224, 0, 34, 1, 0.928 > 4224, 0, 66, 0, 0.762 > 4224, 0, 66, 1, 0.762 > 4224, 34, 34, 0, 0.998 > 4224, 34, 34, 1, 0.998 > 4224, 66, 66, 0, 0.959 > 4224, 66, 66, 1, 0.959 > 4224, 2048, 0, 0, 1.014 > 4224, 2048, 0, 1, 1.014 > 4224, 2082, 0, 0, 1.001 > 4224, 2082, 0, 1, 1.001 > 4224, 2048, 34, 0, 0.899 > 4224, 2048, 34, 1, 0.898 > 4224, 2082, 34, 0, 0.998 > 4224, 2082, 34, 1, 0.998 > 4224, 34, 1, 0, 1.024 > 4224, 34, 1, 1, 1.023 > 4224, 1, 34, 0, 0.917 > 4224, 1, 34, 1, 0.917 > 4224, 66, 1, 0, 1.012 > 4224, 66, 1, 1, 1.013 > 4224, 1, 66, 0, 0.917 > 4224, 1, 66, 1, 0.917 > 4224, 2082, 1, 0, 1.022 > 4224, 2082, 1, 1, 1.022 > 4224, 2049, 34, 0, 0.914 > 4224, 2049, 34, 1, 0.914 > 4288, 0, 0, 0, 0.999 > 4288, 0, 0, 1, 0.999 > 4288, 35, 0, 0, 0.995 > 4288, 35, 0, 1, 0.996 > 4288, 67, 0, 0, 0.998 > 4288, 67, 0, 1, 0.998 > 4288, 0, 35, 0, 0.919 > 4288, 0, 35, 1, 0.918 > 4288, 0, 67, 0, 0.767 > 4288, 0, 67, 1, 0.767 > 4288, 35, 35, 0, 1.005 > 4288, 35, 35, 1, 1.004 > 4288, 67, 67, 0, 0.995 > 4288, 67, 67, 1, 0.995 > 4288, 2048, 0, 0, 0.999 > 4288, 2048, 0, 1, 0.999 > 4288, 2083, 0, 0, 0.995 > 4288, 2083, 0, 1, 0.995 > 4288, 2048, 35, 0, 0.905 > 4288, 2048, 35, 1, 0.904 > 4288, 2083, 35, 0, 1.005 > 4288, 2083, 35, 1, 1.004 > 4288, 35, 1, 0, 1.033 > 4288, 35, 1, 1, 1.032 > 4288, 1, 35, 0, 0.928 > 4288, 1, 35, 1, 0.928 > 4288, 67, 1, 0, 1.019 > 4288, 67, 1, 1, 1.02 > 4288, 1, 67, 0, 0.925 > 4288, 1, 67, 1, 0.924 > 4288, 2083, 1, 0, 1.03 > 4288, 2083, 1, 1, 1.03 > 4288, 2049, 35, 0, 0.925 > 4288, 2049, 35, 1, 0.926 > 4352, 0, 0, 0, 1.005 > 4352, 0, 0, 1, 1.005 > 4352, 36, 0, 0, 1.007 > 4352, 36, 0, 1, 1.006 > 4352, 68, 0, 0, 1.007 > 4352, 68, 0, 1, 1.008 > 4352, 0, 36, 0, 0.929 > 4352, 0, 36, 1, 0.929 > 4352, 0, 68, 0, 0.766 > 4352, 0, 68, 1, 0.766 > 4352, 36, 36, 0, 0.998 > 4352, 36, 36, 1, 0.998 > 4352, 68, 68, 0, 0.964 > 4352, 68, 68, 1, 0.964 > 4352, 2048, 0, 0, 1.006 > 4352, 2048, 0, 1, 1.006 > 4352, 2084, 0, 0, 1.006 > 4352, 2084, 0, 1, 1.006 > 4352, 2048, 36, 0, 0.897 > 4352, 2048, 36, 1, 0.898 > 4352, 2084, 36, 0, 0.998 > 4352, 2084, 36, 1, 0.998 > 4352, 36, 1, 0, 1.031 > 4352, 36, 1, 1, 1.031 > 4352, 1, 36, 0, 0.924 > 4352, 1, 36, 1, 0.924 > 4352, 68, 1, 0, 0.999 > 4352, 68, 1, 1, 0.999 > 4352, 1, 68, 0, 0.922 > 4352, 1, 68, 1, 0.922 > 4352, 2084, 1, 0, 1.03 > 4352, 2084, 1, 1, 1.03 > 4352, 2049, 36, 0, 0.922 > 4352, 2049, 36, 1, 0.922 > 4416, 0, 0, 0, 0.997 > 4416, 0, 0, 1, 0.997 > 4416, 37, 0, 0, 1.002 > 4416, 37, 0, 1, 1.002 > 4416, 69, 0, 0, 1.004 > 4416, 69, 0, 1, 1.004 > 4416, 0, 37, 0, 0.928 > 4416, 0, 37, 1, 0.927 > 4416, 0, 69, 0, 0.762 > 4416, 0, 69, 1, 0.762 > 4416, 37, 37, 0, 0.994 > 4416, 37, 37, 1, 0.994 > 4416, 69, 69, 0, 0.959 > 4416, 69, 69, 1, 0.959 > 4416, 2048, 0, 0, 0.997 > 4416, 2048, 0, 1, 0.997 > 4416, 2085, 0, 0, 1.001 > 4416, 2085, 0, 1, 1.001 > 4416, 2048, 37, 0, 0.899 > 4416, 2048, 37, 1, 0.899 > 4416, 2085, 37, 0, 0.994 > 4416, 2085, 37, 1, 0.994 > 4416, 37, 1, 0, 1.024 > 4416, 37, 1, 1, 1.023 > 4416, 1, 37, 0, 0.923 > 4416, 1, 37, 1, 0.922 > 4416, 69, 1, 0, 1.009 > 4416, 69, 1, 1, 1.01 > 4416, 1, 69, 0, 0.917 > 4416, 1, 69, 1, 0.917 > 4416, 2085, 1, 0, 1.024 > 4416, 2085, 1, 1, 1.024 > 4416, 2049, 37, 0, 0.919 > 4416, 2049, 37, 1, 0.919 > 4480, 0, 0, 0, 1.0 > 4480, 0, 0, 1, 0.999 > 4480, 38, 0, 0, 0.996 > 4480, 38, 0, 1, 0.996 > 4480, 70, 0, 0, 1.0 > 4480, 70, 0, 1, 1.0 > 4480, 0, 38, 0, 0.919 > 4480, 0, 38, 1, 0.921 > 4480, 0, 70, 0, 0.767 > 4480, 0, 70, 1, 0.767 > 4480, 38, 38, 0, 1.002 > 4480, 38, 38, 1, 1.002 > 4480, 70, 70, 0, 0.963 > 4480, 70, 70, 1, 0.963 > 4480, 2048, 0, 0, 0.998 > 4480, 2048, 0, 1, 0.999 > 4480, 2086, 0, 0, 0.996 > 4480, 2086, 0, 1, 0.995 > 4480, 2048, 38, 0, 0.907 > 4480, 2048, 38, 1, 0.907 > 4480, 2086, 38, 0, 1.002 > 4480, 2086, 38, 1, 1.002 > 4480, 38, 1, 0, 1.032 > 4480, 38, 1, 1, 1.031 > 4480, 1, 38, 0, 0.919 > 4480, 1, 38, 1, 0.92 > 4480, 70, 1, 0, 1.018 > 4480, 70, 1, 1, 1.017 > 4480, 1, 70, 0, 0.916 > 4480, 1, 70, 1, 0.915 > 4480, 2086, 1, 0, 1.031 > 4480, 2086, 1, 1, 1.03 > 4480, 2049, 38, 0, 0.917 > 4480, 2049, 38, 1, 0.918 > 4544, 0, 0, 0, 1.002 > 4544, 0, 0, 1, 1.002 > 4544, 39, 0, 0, 1.007 > 4544, 39, 0, 1, 1.008 > 4544, 71, 0, 0, 1.002 > 4544, 71, 0, 1, 1.002 > 4544, 0, 39, 0, 0.93 > 4544, 0, 39, 1, 0.931 > 4544, 0, 71, 0, 0.766 > 4544, 0, 71, 1, 0.766 > 4544, 39, 39, 0, 1.001 > 4544, 39, 39, 1, 1.001 > 4544, 71, 71, 0, 0.966 > 4544, 71, 71, 1, 0.966 > 4544, 2048, 0, 0, 1.002 > 4544, 2048, 0, 1, 1.002 > 4544, 2087, 0, 0, 1.008 > 4544, 2087, 0, 1, 1.007 > 4544, 2048, 39, 0, 0.901 > 4544, 2048, 39, 1, 0.901 > 4544, 2087, 39, 0, 1.001 > 4544, 2087, 39, 1, 1.001 > 4544, 39, 1, 0, 1.025 > 4544, 39, 1, 1, 1.025 > 4544, 1, 39, 0, 0.919 > 4544, 1, 39, 1, 0.919 > 4544, 71, 1, 0, 0.991 > 4544, 71, 1, 1, 0.991 > 4544, 1, 71, 0, 0.921 > 4544, 1, 71, 1, 0.922 > 4544, 2087, 1, 0, 1.025 > 4544, 2087, 1, 1, 1.025 > 4544, 2049, 39, 0, 0.917 > 4544, 2049, 39, 1, 0.917 > 4608, 0, 0, 0, 0.997 > 4608, 0, 0, 1, 0.997 > 4608, 40, 0, 0, 1.013 > 4608, 40, 0, 1, 1.013 > 4608, 72, 0, 0, 1.013 > 4608, 72, 0, 1, 1.013 > 4608, 0, 40, 0, 0.925 > 4608, 0, 40, 1, 0.926 > 4608, 0, 72, 0, 0.765 > 4608, 0, 72, 1, 0.765 > 4608, 40, 40, 0, 1.084 > 4608, 40, 40, 1, 1.084 > 4608, 72, 72, 0, 0.966 > 4608, 72, 72, 1, 0.966 > 4608, 2048, 0, 0, 0.999 > 4608, 2048, 0, 1, 0.999 > 4608, 2088, 0, 0, 1.012 > 4608, 2088, 0, 1, 1.012 > 4608, 2048, 40, 0, 0.898 > 4608, 2048, 40, 1, 0.898 > 4608, 2088, 40, 0, 1.087 > 4608, 2088, 40, 1, 1.087 > 4608, 40, 1, 0, 1.006 > 4608, 40, 1, 1, 1.006 > 4608, 1, 40, 0, 0.926 > 4608, 1, 40, 1, 0.925 > 4608, 72, 1, 0, 1.012 > 4608, 72, 1, 1, 1.011 > 4608, 1, 72, 0, 0.92 > 4608, 1, 72, 1, 0.92 > 4608, 2088, 1, 0, 1.006 > 4608, 2088, 1, 1, 1.006 > 4608, 2049, 40, 0, 0.923 > 4608, 2049, 40, 1, 0.923 > 4672, 0, 0, 0, 1.014 > 4672, 0, 0, 1, 1.014 > 4672, 41, 0, 0, 1.003 > 4672, 41, 0, 1, 1.003 > 4672, 73, 0, 0, 0.983 > 4672, 73, 0, 1, 0.982 > 4672, 0, 41, 0, 0.916 > 4672, 0, 41, 1, 0.918 > 4672, 0, 73, 0, 0.772 > 4672, 0, 73, 1, 0.772 > 4672, 41, 41, 0, 1.012 > 4672, 41, 41, 1, 1.012 > 4672, 73, 73, 0, 0.973 > 4672, 73, 73, 1, 0.973 > 4672, 2048, 0, 0, 1.014 > 4672, 2048, 0, 1, 1.014 > 4672, 2089, 0, 0, 1.002 > 4672, 2089, 0, 1, 1.002 > 4672, 2048, 41, 0, 0.907 > 4672, 2048, 41, 1, 0.908 > 4672, 2089, 41, 0, 1.012 > 4672, 2089, 41, 1, 1.012 > 4672, 41, 1, 0, 1.027 > 4672, 41, 1, 1, 1.027 > 4672, 1, 41, 0, 0.928 > 4672, 1, 41, 1, 0.927 > 4672, 73, 1, 0, 1.032 > 4672, 73, 1, 1, 1.03 > 4672, 1, 73, 0, 0.927 > 4672, 1, 73, 1, 0.927 > 4672, 2089, 1, 0, 1.026 > 4672, 2089, 1, 1, 1.027 > 4672, 2049, 41, 0, 0.925 > 4672, 2049, 41, 1, 0.925 > 4736, 0, 0, 0, 1.005 > 4736, 0, 0, 1, 1.005 > 4736, 42, 0, 0, 1.012 > 4736, 42, 0, 1, 1.012 > 4736, 74, 0, 0, 0.976 > 4736, 74, 0, 1, 0.975 > 4736, 0, 42, 0, 0.93 > 4736, 0, 42, 1, 0.93 > 4736, 0, 74, 0, 0.77 > 4736, 0, 74, 1, 0.77 > 4736, 42, 42, 0, 1.007 > 4736, 42, 42, 1, 1.007 > 4736, 74, 74, 0, 0.965 > 4736, 74, 74, 1, 0.965 > 4736, 2048, 0, 0, 1.006 > 4736, 2048, 0, 1, 1.006 > 4736, 2090, 0, 0, 1.013 > 4736, 2090, 0, 1, 1.013 > 4736, 2048, 42, 0, 0.902 > 4736, 2048, 42, 1, 0.902 > 4736, 2090, 42, 0, 1.007 > 4736, 2090, 42, 1, 1.007 > 4736, 42, 1, 0, 1.032 > 4736, 42, 1, 1, 1.032 > 4736, 1, 42, 0, 0.925 > 4736, 1, 42, 1, 0.925 > 4736, 74, 1, 0, 1.018 > 4736, 74, 1, 1, 1.018 > 4736, 1, 74, 0, 0.912 > 4736, 1, 74, 1, 0.912 > 4736, 2090, 1, 0, 1.032 > 4736, 2090, 1, 1, 1.032 > 4736, 2049, 42, 0, 0.923 > 4736, 2049, 42, 1, 0.923 > 4800, 0, 0, 0, 1.012 > 4800, 0, 0, 1, 1.012 > 4800, 43, 0, 0, 1.008 > 4800, 43, 0, 1, 1.008 > 4800, 75, 0, 0, 0.99 > 4800, 75, 0, 1, 0.99 > 4800, 0, 43, 0, 0.928 > 4800, 0, 43, 1, 0.928 > 4800, 0, 75, 0, 0.767 > 4800, 0, 75, 1, 0.768 > 4800, 43, 43, 0, 1.004 > 4800, 43, 43, 1, 1.004 > 4800, 75, 75, 0, 0.965 > 4800, 75, 75, 1, 0.965 > 4800, 2048, 0, 0, 1.012 > 4800, 2048, 0, 1, 1.012 > 4800, 2091, 0, 0, 1.009 > 4800, 2091, 0, 1, 1.008 > 4800, 2048, 43, 0, 0.902 > 4800, 2048, 43, 1, 0.902 > 4800, 2091, 43, 0, 1.004 > 4800, 2091, 43, 1, 1.004 > 4800, 43, 1, 0, 1.026 > 4800, 43, 1, 1, 1.025 > 4800, 1, 43, 0, 0.91 > 4800, 1, 43, 1, 0.91 > 4800, 75, 1, 0, 0.992 > 4800, 75, 1, 1, 0.992 > 4800, 1, 75, 0, 0.921 > 4800, 1, 75, 1, 0.92 > 4800, 2091, 1, 0, 1.025 > 4800, 2091, 1, 1, 1.025 > 4800, 2049, 43, 0, 0.907 > 4800, 2049, 43, 1, 0.907 > 4864, 0, 0, 0, 0.998 > 4864, 0, 0, 1, 0.998 > 4864, 44, 0, 0, 1.003 > 4864, 44, 0, 1, 1.004 > 4864, 76, 0, 0, 0.987 > 4864, 76, 0, 1, 0.987 > 4864, 0, 44, 0, 0.92 > 4864, 0, 44, 1, 0.921 > 4864, 0, 76, 0, 0.933 > 4864, 0, 76, 1, 0.932 > 4864, 44, 44, 0, 1.006 > 4864, 44, 44, 1, 1.004 > 4864, 76, 76, 0, 0.976 > 4864, 76, 76, 1, 0.975 > 4864, 2048, 0, 0, 0.999 > 4864, 2048, 0, 1, 0.999 > 4864, 2092, 0, 0, 1.004 > 4864, 2092, 0, 1, 1.005 > 4864, 2048, 44, 0, 0.907 > 4864, 2048, 44, 1, 0.907 > 4864, 2092, 44, 0, 1.006 > 4864, 2092, 44, 1, 1.005 > 4864, 44, 1, 0, 1.034 > 4864, 44, 1, 1, 1.032 > 4864, 1, 44, 0, 0.908 > 4864, 1, 44, 1, 0.929 > 4864, 76, 1, 0, 1.006 > 4864, 76, 1, 1, 1.005 > 4864, 1, 76, 0, 0.798 > 4864, 1, 76, 1, 0.798 > 4864, 2092, 1, 0, 1.033 > 4864, 2092, 1, 1, 1.033 > 4864, 2049, 44, 0, 0.904 > 4864, 2049, 44, 1, 0.925 > 4928, 0, 0, 0, 1.005 > 4928, 0, 0, 1, 1.005 > 4928, 45, 0, 0, 0.993 > 4928, 45, 0, 1, 1.012 > 4928, 77, 0, 0, 0.956 > 4928, 77, 0, 1, 0.976 > 4928, 0, 45, 0, 0.933 > 4928, 0, 45, 1, 0.932 > 4928, 0, 77, 0, 0.771 > 4928, 0, 77, 1, 0.771 > 4928, 45, 45, 0, 1.015 > 4928, 45, 45, 1, 1.015 > 4928, 77, 77, 0, 0.972 > 4928, 77, 77, 1, 0.972 > 4928, 2048, 0, 0, 1.005 > 4928, 2048, 0, 1, 1.005 > 4928, 2093, 0, 0, 0.992 > 4928, 2093, 0, 1, 1.012 > 4928, 2048, 45, 0, 0.932 > 4928, 2048, 45, 1, 0.931 > 4928, 2093, 45, 0, 1.015 > 4928, 2093, 45, 1, 1.015 > 4928, 45, 1, 0, 1.009 > 4928, 45, 1, 1, 1.032 > 4928, 1, 45, 0, 0.806 > 4928, 1, 45, 1, 0.805 > 4928, 77, 1, 0, 0.981 > 4928, 77, 1, 1, 1.005 > 4928, 1, 77, 0, 0.917 > 4928, 1, 77, 1, 0.917 > 4928, 2093, 1, 0, 1.008 > 4928, 2093, 1, 1, 1.032 > 4928, 2049, 45, 0, 0.794 > 4928, 2049, 45, 1, 0.794 > 4992, 0, 0, 0, 0.999 > 4992, 0, 0, 1, 0.999 > 4992, 46, 0, 0, 0.985 > 4992, 46, 0, 1, 1.008 > 4992, 78, 0, 0, 0.963 > 4992, 78, 0, 1, 0.984 > 4992, 0, 46, 0, 0.908 > 4992, 0, 46, 1, 0.908 > 4992, 0, 78, 0, 0.752 > 4992, 0, 78, 1, 0.751 > 4992, 46, 46, 0, 0.997 > 4992, 46, 46, 1, 0.997 > 4992, 78, 78, 0, 0.969 > 4992, 78, 78, 1, 0.968 > 4992, 2048, 0, 0, 1.0 > 4992, 2048, 0, 1, 1.0 > 4992, 2094, 0, 0, 0.987 > 4992, 2094, 0, 1, 1.008 > 4992, 2048, 46, 0, 0.883 > 4992, 2048, 46, 1, 0.883 > 4992, 2094, 46, 0, 0.997 > 4992, 2094, 46, 1, 0.997 > 4992, 46, 1, 0, 0.998 > 4992, 46, 1, 1, 1.02 > 4992, 1, 46, 0, 0.917 > 4992, 1, 46, 1, 0.917 > 4992, 78, 1, 0, 0.972 > 4992, 78, 1, 1, 0.993 > 4992, 1, 78, 0, 0.919 > 4992, 1, 78, 1, 0.92 > 4992, 2094, 1, 0, 0.997 > 4992, 2094, 1, 1, 1.019 > 4992, 2049, 46, 0, 0.914 > 4992, 2049, 46, 1, 0.914 > 5056, 0, 0, 0, 1.002 > 5056, 0, 0, 1, 1.0 > 5056, 47, 0, 0, 1.005 > 5056, 47, 0, 1, 1.005 > 5056, 79, 0, 0, 0.989 > 5056, 79, 0, 1, 0.989 > 5056, 0, 47, 0, 0.918 > 5056, 0, 47, 1, 0.919 > 5056, 0, 79, 0, 0.772 > 5056, 0, 79, 1, 0.771 > 5056, 47, 47, 0, 1.006 > 5056, 47, 47, 1, 1.006 > 5056, 79, 79, 0, 0.972 > 5056, 79, 79, 1, 0.972 > 5056, 2048, 0, 0, 1.001 > 5056, 2048, 0, 1, 1.0 > 5056, 2095, 0, 0, 1.004 > 5056, 2095, 0, 1, 1.004 > 5056, 2048, 47, 0, 0.908 > 5056, 2048, 47, 1, 0.909 > 5056, 2095, 47, 0, 1.006 > 5056, 2095, 47, 1, 1.006 > 5056, 47, 1, 0, 1.033 > 5056, 47, 1, 1, 1.033 > 5056, 1, 47, 0, 0.919 > 5056, 1, 47, 1, 0.919 > 5056, 79, 1, 0, 1.003 > 5056, 79, 1, 1, 1.005 > 5056, 1, 79, 0, 0.921 > 5056, 1, 79, 1, 0.921 > 5056, 2095, 1, 0, 1.032 > 5056, 2095, 1, 1, 1.034 > 5056, 2049, 47, 0, 0.918 > 5056, 2049, 47, 1, 0.917 > 5120, 0, 0, 0, 1.003 > 5120, 0, 0, 1, 1.003 > 5120, 48, 0, 0, 1.068 > 5120, 48, 0, 1, 1.068 > 5120, 80, 0, 0, 1.068 > 5120, 80, 0, 1, 1.068 > 5120, 0, 48, 0, 1.065 > 5120, 0, 48, 1, 1.065 > 5120, 0, 80, 0, 1.064 > 5120, 0, 80, 1, 1.065 > 5120, 48, 48, 0, 1.004 > 5120, 48, 48, 1, 1.004 > 5120, 80, 80, 0, 1.005 > 5120, 80, 80, 1, 1.005 > 5120, 2048, 0, 0, 1.005 > 5120, 2048, 0, 1, 1.005 > 5120, 2096, 0, 0, 1.068 > 5120, 2096, 0, 1, 1.068 > 5120, 2048, 48, 0, 1.065 > 5120, 2048, 48, 1, 1.065 > 5120, 2096, 48, 0, 1.005 > 5120, 2096, 48, 1, 1.005 > 5120, 48, 1, 0, 1.033 > 5120, 48, 1, 1, 1.031 > 5120, 1, 48, 0, 0.898 > 5120, 1, 48, 1, 0.898 > 5120, 80, 1, 0, 0.844 > 5120, 80, 1, 1, 0.844 > 5120, 1, 80, 0, 0.898 > 5120, 1, 80, 1, 0.898 > 5120, 2096, 1, 0, 0.856 > 5120, 2096, 1, 1, 0.855 > 5120, 2049, 48, 0, 0.898 > 5120, 2049, 48, 1, 0.898 > > bench-memcpy-random: > > length, New Time / Old Time > 32768, 0.866 > 65536, 0.891 > 131072, 0.896 > 262144, 0.901 > 524288, 0.904 > 1048576, 0.913 > > bench-memcpy-large: > > length, align0, align1, dst>src, New Time/Old Time > 65543, 0, 0, 0, 0.981 > 65543, 0, 0, 1, 0.981 > 65551, 0, 3, 0, 1.012 > 65551, 0, 3, 1, 1.013 > 65567, 3, 0, 0, 1.019 > 65567, 3, 0, 1, 1.02 > 65599, 3, 5, 0, 1.058 > 65599, 3, 5, 1, 1.061 > 65536, 0, 127, 0, 1.046 > 65536, 0, 127, 1, 1.046 > 65536, 0, 255, 0, 1.071 > 65536, 0, 255, 1, 1.071 > 65536, 0, 256, 0, 0.983 > 65536, 0, 256, 1, 0.984 > 65536, 0, 4064, 0, 1.017 > 65536, 0, 4064, 1, 1.018 > 131079, 0, 0, 0, 0.981 > 131079, 0, 0, 1, 0.981 > 131087, 0, 3, 0, 1.017 > 131087, 0, 3, 1, 1.017 > 131103, 3, 0, 0, 1.022 > 131103, 3, 0, 1, 1.022 > 131135, 3, 5, 0, 1.064 > 131135, 3, 5, 1, 1.065 > 131072, 0, 127, 0, 1.05 > 131072, 0, 127, 1, 1.05 > 131072, 0, 255, 0, 1.074 > 131072, 0, 255, 1, 1.074 > 131072, 0, 256, 0, 0.984 > 131072, 0, 256, 1, 0.984 > 131072, 0, 4064, 0, 1.018 > 131072, 0, 4064, 1, 1.019 > 262151, 0, 0, 0, 0.985 > 262151, 0, 0, 1, 0.985 > 262159, 0, 3, 0, 1.026 > 262159, 0, 3, 1, 1.026 > 262175, 3, 0, 0, 1.03 > 262175, 3, 0, 1, 1.03 > 262207, 3, 5, 0, 1.07 > 262207, 3, 5, 1, 1.07 > 262144, 0, 127, 0, 1.057 > 262144, 0, 127, 1, 1.057 > 262144, 0, 255, 0, 1.079 > 262144, 0, 255, 1, 1.078 > 262144, 0, 256, 0, 0.988 > 262144, 0, 256, 1, 0.988 > 262144, 0, 4064, 0, 1.02 > 262144, 0, 4064, 1, 1.02 > 524295, 0, 0, 0, 0.692 > 524295, 0, 0, 1, 0.692 > 524303, 0, 3, 0, 0.736 > 524303, 0, 3, 1, 0.737 > 524319, 3, 0, 0, 0.758 > 524319, 3, 0, 1, 0.759 > 524351, 3, 5, 0, 0.759 > 524351, 3, 5, 1, 0.759 > 524288, 0, 127, 0, 1.057 > 524288, 0, 127, 1, 1.058 > 524288, 0, 255, 0, 1.079 > 524288, 0, 255, 1, 1.079 > 524288, 0, 256, 0, 0.988 > 524288, 0, 256, 1, 0.988 > 524288, 0, 4064, 0, 1.02 > 524288, 0, 4064, 1, 1.02 > 1048583, 0, 0, 0, 0.948 > 1048583, 0, 0, 1, 0.948 > 1048591, 0, 3, 0, 0.735 > 1048591, 0, 3, 1, 0.735 > 1048607, 3, 0, 0, 0.757 > 1048607, 3, 0, 1, 0.758 > 1048639, 3, 5, 0, 0.758 > 1048639, 3, 5, 1, 0.758 > 1048576, 0, 127, 0, 0.761 > 1048576, 0, 127, 1, 0.762 > 1048576, 0, 255, 0, 0.751 > 1048576, 0, 255, 1, 0.751 > 1048576, 0, 256, 0, 0.93 > 1048576, 0, 256, 1, 0.93 > 1048576, 0, 4064, 0, 0.93 > 1048576, 0, 4064, 1, 0.93 > 2097159, 0, 0, 0, 0.928 > 2097159, 0, 0, 1, 0.931 > 2097167, 0, 3, 0, 0.735 > 2097167, 0, 3, 1, 0.734 > 2097183, 3, 0, 0, 0.759 > 2097183, 3, 0, 1, 0.759 > 2097215, 3, 5, 0, 0.758 > 2097215, 3, 5, 1, 0.757 > 2097152, 0, 127, 0, 0.77 > 2097152, 0, 127, 1, 0.77 > 2097152, 0, 255, 0, 0.745 > 2097152, 0, 255, 1, 0.745 > 2097152, 0, 256, 0, 0.924 > 2097152, 0, 256, 1, 0.925 > 2097152, 0, 4064, 0, 0.926 > 2097152, 0, 4064, 1, 0.927 > 4194311, 0, 0, 0, 0.894 > 4194311, 0, 0, 1, 0.896 > 4194319, 0, 3, 0, 0.752 > 4194319, 0, 3, 1, 0.751 > 4194335, 3, 0, 0, 0.82 > 4194335, 3, 0, 1, 0.821 > 4194367, 3, 5, 0, 0.788 > 4194367, 3, 5, 1, 0.789 > 4194304, 0, 127, 0, 0.801 > 4194304, 0, 127, 1, 0.801 > 4194304, 0, 255, 0, 0.802 > 4194304, 0, 255, 1, 0.804 > 4194304, 0, 256, 0, 0.873 > 4194304, 0, 256, 1, 0.868 > 4194304, 0, 4064, 0, 0.955 > 4194304, 0, 4064, 1, 0.954 > 8388615, 0, 0, 0, 0.885 > 8388615, 0, 0, 1, 0.886 > 8388623, 0, 3, 0, 0.769 > 8388623, 0, 3, 1, 0.769 > 8388639, 3, 0, 0, 0.87 > 8388639, 3, 0, 1, 0.87 > 8388671, 3, 5, 0, 0.811 > 8388671, 3, 5, 1, 0.814 > 8388608, 0, 127, 0, 0.83 > 8388608, 0, 127, 1, 0.83 > 8388608, 0, 255, 0, 0.857 > 8388608, 0, 255, 1, 0.857 > 8388608, 0, 256, 0, 0.851 > 8388608, 0, 256, 1, 0.848 > 8388608, 0, 4064, 0, 0.981 > 8388608, 0, 4064, 1, 0.981 > 16777223, 0, 0, 0, 0.885 > 16777223, 0, 0, 1, 0.886 > 16777231, 0, 3, 0, 0.769 > 16777231, 0, 3, 1, 0.768 > 16777247, 3, 0, 0, 0.87 > 16777247, 3, 0, 1, 0.87 > 16777279, 3, 5, 0, 0.811 > 16777279, 3, 5, 1, 0.814 > 16777216, 0, 127, 0, 0.831 > 16777216, 0, 127, 1, 0.83 > 16777216, 0, 255, 0, 0.857 > 16777216, 0, 255, 1, 0.857 > 16777216, 0, 256, 0, 0.852 > 16777216, 0, 256, 1, 0.848 > 16777216, 0, 4064, 0, 0.98 > 16777216, 0, 4064, 1, 0.981 > 33554439, 0, 0, 0, 0.885 > 33554439, 0, 0, 1, 0.886 > 33554447, 0, 3, 0, 0.768 > 33554447, 0, 3, 1, 0.768 > 33554463, 3, 0, 0, 0.871 > 33554463, 3, 0, 1, 0.87 > 33554495, 3, 5, 0, 0.811 > 33554495, 3, 5, 1, 0.814 > 33554432, 0, 127, 0, 0.831 > 33554432, 0, 127, 1, 0.831 > 33554432, 0, 255, 0, 0.858 > 33554432, 0, 255, 1, 0.857 > 33554432, 0, 256, 0, 0.852 > 33554432, 0, 256, 1, 0.848 > 33554432, 0, 4064, 0, 0.98 > 33554432, 0, 4064, 1, 0.981 > > > sysdeps/x86_64/multiarch/Makefile | 4 - > sysdeps/x86_64/multiarch/ifunc-impl-list.c | 8 - > sysdeps/x86_64/multiarch/stpcpy-ssse3.S | 3 - > sysdeps/x86_64/multiarch/stpncpy-ssse3.S | 4 - > sysdeps/x86_64/multiarch/strcpy-ssse3.S | 3550 -------------------- > sysdeps/x86_64/multiarch/strncpy-ssse3.S | 3 - > 6 files changed, 3572 deletions(-) > delete mode 100644 sysdeps/x86_64/multiarch/stpcpy-ssse3.S > delete mode 100644 sysdeps/x86_64/multiarch/stpncpy-ssse3.S > delete mode 100644 sysdeps/x86_64/multiarch/strcpy-ssse3.S > delete mode 100644 sysdeps/x86_64/multiarch/strncpy-ssse3.S > > diff --git a/sysdeps/x86_64/multiarch/Makefile b/sysdeps/x86_64/multiarch/Makefile > index 2b3c625ea2..5b02ec8de5 100644 > --- a/sysdeps/x86_64/multiarch/Makefile > +++ b/sysdeps/x86_64/multiarch/Makefile > @@ -46,13 +46,11 @@ sysdep_routines += \ > stpcpy-evex \ > stpcpy-sse2 \ > stpcpy-sse2-unaligned \ > - stpcpy-ssse3 \ > stpncpy-avx2 \ > stpncpy-avx2-rtm \ > stpncpy-c \ > stpncpy-evex \ > stpncpy-sse2-unaligned \ > - stpncpy-ssse3 \ > strcasecmp_l-avx2 \ > strcasecmp_l-avx2-rtm \ > strcasecmp_l-evex \ > @@ -83,7 +81,6 @@ sysdep_routines += \ > strcpy-evex \ > strcpy-sse2 \ > strcpy-sse2-unaligned \ > - strcpy-ssse3 \ > strcspn-c \ > strcspn-sse2 \ > strlen-avx2 \ > @@ -110,7 +107,6 @@ sysdep_routines += \ > strncpy-c \ > strncpy-evex \ > strncpy-sse2-unaligned \ > - strncpy-ssse3 \ > strnlen-avx2 \ > strnlen-avx2-rtm \ > strnlen-evex \ > diff --git a/sysdeps/x86_64/multiarch/ifunc-impl-list.c b/sysdeps/x86_64/multiarch/ifunc-impl-list.c > index 41a04621ad..49ce6860d0 100644 > --- a/sysdeps/x86_64/multiarch/ifunc-impl-list.c > +++ b/sysdeps/x86_64/multiarch/ifunc-impl-list.c > @@ -399,8 +399,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, > > /* Support sysdeps/x86_64/multiarch/stpncpy.c. */ > IFUNC_IMPL (i, name, stpncpy, > - IFUNC_IMPL_ADD (array, i, stpncpy, CPU_FEATURE_USABLE (SSSE3), > - __stpncpy_ssse3) > IFUNC_IMPL_ADD (array, i, stpncpy, CPU_FEATURE_USABLE (AVX2), > __stpncpy_avx2) > IFUNC_IMPL_ADD (array, i, stpncpy, > @@ -417,8 +415,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, > > /* Support sysdeps/x86_64/multiarch/stpcpy.c. */ > IFUNC_IMPL (i, name, stpcpy, > - IFUNC_IMPL_ADD (array, i, stpcpy, CPU_FEATURE_USABLE (SSSE3), > - __stpcpy_ssse3) > IFUNC_IMPL_ADD (array, i, stpcpy, CPU_FEATURE_USABLE (AVX2), > __stpcpy_avx2) > IFUNC_IMPL_ADD (array, i, stpcpy, > @@ -567,8 +563,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, > (CPU_FEATURE_USABLE (AVX512VL) > && CPU_FEATURE_USABLE (AVX512BW)), > __strcpy_evex) > - IFUNC_IMPL_ADD (array, i, strcpy, CPU_FEATURE_USABLE (SSSE3), > - __strcpy_ssse3) > IFUNC_IMPL_ADD (array, i, strcpy, 1, __strcpy_sse2_unaligned) > IFUNC_IMPL_ADD (array, i, strcpy, 1, __strcpy_sse2)) > > @@ -644,8 +638,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, > (CPU_FEATURE_USABLE (AVX512VL) > && CPU_FEATURE_USABLE (AVX512BW)), > __strncpy_evex) > - IFUNC_IMPL_ADD (array, i, strncpy, CPU_FEATURE_USABLE (SSSE3), > - __strncpy_ssse3) > IFUNC_IMPL_ADD (array, i, strncpy, 1, > __strncpy_sse2_unaligned) > IFUNC_IMPL_ADD (array, i, strncpy, 1, __strncpy_sse2)) > diff --git a/sysdeps/x86_64/multiarch/stpcpy-ssse3.S b/sysdeps/x86_64/multiarch/stpcpy-ssse3.S > deleted file mode 100644 > index d971c2da38..0000000000 > --- a/sysdeps/x86_64/multiarch/stpcpy-ssse3.S > +++ /dev/null > @@ -1,3 +0,0 @@ > -#define USE_AS_STPCPY > -#define STRCPY __stpcpy_ssse3 > -#include "strcpy-ssse3.S" > diff --git a/sysdeps/x86_64/multiarch/stpncpy-ssse3.S b/sysdeps/x86_64/multiarch/stpncpy-ssse3.S > deleted file mode 100644 > index 14ed16f6b5..0000000000 > --- a/sysdeps/x86_64/multiarch/stpncpy-ssse3.S > +++ /dev/null > @@ -1,4 +0,0 @@ > -#define USE_AS_STPCPY > -#define USE_AS_STRNCPY > -#define STRCPY __stpncpy_ssse3 > -#include "strcpy-ssse3.S" > diff --git a/sysdeps/x86_64/multiarch/strcpy-ssse3.S b/sysdeps/x86_64/multiarch/strcpy-ssse3.S > deleted file mode 100644 > index f617a535cf..0000000000 > --- a/sysdeps/x86_64/multiarch/strcpy-ssse3.S > +++ /dev/null > @@ -1,3550 +0,0 @@ > -/* strcpy with SSSE3 > - Copyright (C) 2011-2022 Free Software Foundation, Inc. > - This file is part of the GNU C Library. > - > - The GNU C Library is free software; you can redistribute it and/or > - modify it under the terms of the GNU Lesser General Public > - License as published by the Free Software Foundation; either > - version 2.1 of the License, or (at your option) any later version. > - > - The GNU C Library is distributed in the hope that it will be useful, > - but WITHOUT ANY WARRANTY; without even the implied warranty of > - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > - Lesser General Public License for more details. > - > - You should have received a copy of the GNU Lesser General Public > - License along with the GNU C Library; if not, see > - . */ > - > -#if IS_IN (libc) > - > -# ifndef USE_AS_STRCAT > -# include > - > -# ifndef STRCPY > -# define STRCPY __strcpy_ssse3 > -# endif > - > - .section .text.ssse3,"ax",@progbits > -ENTRY (STRCPY) > - > - mov %rsi, %rcx > -# ifdef USE_AS_STRNCPY > - mov %RDX_LP, %R8_LP > -# endif > - mov %rdi, %rdx > -# ifdef USE_AS_STRNCPY > - test %R8_LP, %R8_LP > - jz L(Exit0) > - cmp $8, %R8_LP > - jbe L(StrncpyExit8Bytes) > -# endif > - cmpb $0, (%rcx) > - jz L(Exit1) > - cmpb $0, 1(%rcx) > - jz L(Exit2) > - cmpb $0, 2(%rcx) > - jz L(Exit3) > - cmpb $0, 3(%rcx) > - jz L(Exit4) > - cmpb $0, 4(%rcx) > - jz L(Exit5) > - cmpb $0, 5(%rcx) > - jz L(Exit6) > - cmpb $0, 6(%rcx) > - jz L(Exit7) > - cmpb $0, 7(%rcx) > - jz L(Exit8) > -# ifdef USE_AS_STRNCPY > - cmp $16, %r8 > - jb L(StrncpyExit15Bytes) > -# endif > - cmpb $0, 8(%rcx) > - jz L(Exit9) > - cmpb $0, 9(%rcx) > - jz L(Exit10) > - cmpb $0, 10(%rcx) > - jz L(Exit11) > - cmpb $0, 11(%rcx) > - jz L(Exit12) > - cmpb $0, 12(%rcx) > - jz L(Exit13) > - cmpb $0, 13(%rcx) > - jz L(Exit14) > - cmpb $0, 14(%rcx) > - jz L(Exit15) > -# ifdef USE_AS_STRNCPY > - cmp $16, %r8 > - je L(Exit16) > -# endif > - cmpb $0, 15(%rcx) > - jz L(Exit16) > -# endif > - > -# ifdef USE_AS_STRNCPY > - mov %rcx, %rsi > - sub $16, %r8 > - and $0xf, %rsi > - > -/* add 16 bytes rcx_offset to r8 */ > - > - add %rsi, %r8 > -# endif > - lea 16(%rcx), %rsi > - and $-16, %rsi > - pxor %xmm0, %xmm0 > - mov (%rcx), %r9 > - mov %r9, (%rdx) > - pcmpeqb (%rsi), %xmm0 > - mov 8(%rcx), %r9 > - mov %r9, 8(%rdx) > - > -/* convert byte mask in xmm0 to bit mask */ > - > - pmovmskb %xmm0, %rax > - sub %rcx, %rsi > - > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(CopyFrom1To16BytesCase2OrCase3) > -# endif > - test %rax, %rax > - jnz L(CopyFrom1To16Bytes) > - > - mov %rdx, %rax > - lea 16(%rdx), %rdx > - and $-16, %rdx > - sub %rdx, %rax > - > -# ifdef USE_AS_STRNCPY > - add %rax, %rsi > - lea -1(%rsi), %rsi > - and $1<<31, %esi > - test %rsi, %rsi > - jnz L(ContinueCopy) > - lea 16(%r8), %r8 > - > -L(ContinueCopy): > -# endif > - sub %rax, %rcx > - mov %rcx, %rax > - and $0xf, %rax > - mov $0, %rsi > - > -/* case: rcx_offset == rdx_offset */ > - > - jz L(Align16Both) > - > - cmp $8, %rax > - jae L(ShlHigh8) > - cmp $1, %rax > - je L(Shl1) > - cmp $2, %rax > - je L(Shl2) > - cmp $3, %rax > - je L(Shl3) > - cmp $4, %rax > - je L(Shl4) > - cmp $5, %rax > - je L(Shl5) > - cmp $6, %rax > - je L(Shl6) > - jmp L(Shl7) > - > -L(ShlHigh8): > - je L(Shl8) > - cmp $9, %rax > - je L(Shl9) > - cmp $10, %rax > - je L(Shl10) > - cmp $11, %rax > - je L(Shl11) > - cmp $12, %rax > - je L(Shl12) > - cmp $13, %rax > - je L(Shl13) > - cmp $14, %rax > - je L(Shl14) > - jmp L(Shl15) > - > -L(Align16Both): > - movaps (%rcx), %xmm1 > - movaps 16(%rcx), %xmm2 > - movaps %xmm1, (%rdx) > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - lea 16(%rsi), %rsi > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(CopyFrom1To16BytesCase2OrCase3) > -# endif > - test %rax, %rax > - jnz L(CopyFrom1To16Bytes) > - > - movaps 16(%rcx, %rsi), %xmm3 > - movaps %xmm2, (%rdx, %rsi) > - pcmpeqb %xmm3, %xmm0 > - pmovmskb %xmm0, %rax > - lea 16(%rsi), %rsi > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(CopyFrom1To16BytesCase2OrCase3) > -# endif > - test %rax, %rax > - jnz L(CopyFrom1To16Bytes) > - > - movaps 16(%rcx, %rsi), %xmm4 > - movaps %xmm3, (%rdx, %rsi) > - pcmpeqb %xmm4, %xmm0 > - pmovmskb %xmm0, %rax > - lea 16(%rsi), %rsi > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(CopyFrom1To16BytesCase2OrCase3) > -# endif > - test %rax, %rax > - jnz L(CopyFrom1To16Bytes) > - > - movaps 16(%rcx, %rsi), %xmm1 > - movaps %xmm4, (%rdx, %rsi) > - pcmpeqb %xmm1, %xmm0 > - pmovmskb %xmm0, %rax > - lea 16(%rsi), %rsi > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(CopyFrom1To16BytesCase2OrCase3) > -# endif > - test %rax, %rax > - jnz L(CopyFrom1To16Bytes) > - > - movaps 16(%rcx, %rsi), %xmm2 > - movaps %xmm1, (%rdx, %rsi) > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - lea 16(%rsi), %rsi > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(CopyFrom1To16BytesCase2OrCase3) > -# endif > - test %rax, %rax > - jnz L(CopyFrom1To16Bytes) > - > - movaps 16(%rcx, %rsi), %xmm3 > - movaps %xmm2, (%rdx, %rsi) > - pcmpeqb %xmm3, %xmm0 > - pmovmskb %xmm0, %rax > - lea 16(%rsi), %rsi > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(CopyFrom1To16BytesCase2OrCase3) > -# endif > - test %rax, %rax > - jnz L(CopyFrom1To16Bytes) > - > - movaps %xmm3, (%rdx, %rsi) > - mov %rcx, %rax > - lea 16(%rcx, %rsi), %rcx > - and $-0x40, %rcx > - sub %rcx, %rax > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - lea 112(%r8, %rax), %r8 > -# endif > - mov $-0x40, %rsi > - > - .p2align 4 > -L(Aligned64Loop): > - movaps (%rcx), %xmm2 > - movaps %xmm2, %xmm4 > - movaps 16(%rcx), %xmm5 > - movaps 32(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 48(%rcx), %xmm7 > - pminub %xmm5, %xmm2 > - pminub %xmm7, %xmm3 > - pminub %xmm2, %xmm3 > - pcmpeqb %xmm0, %xmm3 > - pmovmskb %xmm3, %rax > - lea 64(%rdx), %rdx > - lea 64(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeaveCase2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Aligned64Leave) > - movaps %xmm4, -64(%rdx) > - movaps %xmm5, -48(%rdx) > - movaps %xmm6, -32(%rdx) > - movaps %xmm7, -16(%rdx) > - jmp L(Aligned64Loop) > - > -L(Aligned64Leave): > -# ifdef USE_AS_STRNCPY > - lea 48(%r8), %r8 > -# endif > - pcmpeqb %xmm4, %xmm0 > - pmovmskb %xmm0, %rax > - test %rax, %rax > - jnz L(CopyFrom1To16Bytes) > - > - pcmpeqb %xmm5, %xmm0 > -# ifdef USE_AS_STRNCPY > - lea -16(%r8), %r8 > -# endif > - pmovmskb %xmm0, %rax > - movaps %xmm4, -64(%rdx) > - test %rax, %rax > - lea 16(%rsi), %rsi > - jnz L(CopyFrom1To16Bytes) > - > - pcmpeqb %xmm6, %xmm0 > -# ifdef USE_AS_STRNCPY > - lea -16(%r8), %r8 > -# endif > - pmovmskb %xmm0, %rax > - movaps %xmm5, -48(%rdx) > - test %rax, %rax > - lea 16(%rsi), %rsi > - jnz L(CopyFrom1To16Bytes) > - > - movaps %xmm6, -32(%rdx) > - pcmpeqb %xmm7, %xmm0 > -# ifdef USE_AS_STRNCPY > - lea -16(%r8), %r8 > -# endif > - pmovmskb %xmm0, %rax > - lea 16(%rsi), %rsi > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl1): > - movaps -1(%rcx), %xmm1 > - movaps 15(%rcx), %xmm2 > -L(Shl1Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit1Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl1LoopExit) > - > - palignr $1, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 31(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit1Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl1LoopExit) > - > - palignr $1, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 31(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit1Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl1LoopExit) > - > - palignr $1, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 31(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit1Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl1LoopExit) > - > - palignr $1, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 31(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -15(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -1(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl1LoopStart): > - movaps 15(%rcx), %xmm2 > - movaps 31(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 47(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 63(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $1, %xmm4, %xmm5 > - test %rax, %rax > - palignr $1, %xmm3, %xmm4 > - jnz L(Shl1Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave1) > -# endif > - palignr $1, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $1, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl1LoopStart) > - > -L(Shl1LoopExit): > - movdqu -1(%rcx), %xmm1 > - mov $15, %rsi > - movdqu %xmm1, -1(%rdx) > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl2): > - movaps -2(%rcx), %xmm1 > - movaps 14(%rcx), %xmm2 > -L(Shl2Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit2Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl2LoopExit) > - > - palignr $2, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 30(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit2Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl2LoopExit) > - > - palignr $2, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 30(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit2Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl2LoopExit) > - > - palignr $2, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 30(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit2Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl2LoopExit) > - > - palignr $2, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 30(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -14(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -2(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl2LoopStart): > - movaps 14(%rcx), %xmm2 > - movaps 30(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 46(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 62(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $2, %xmm4, %xmm5 > - test %rax, %rax > - palignr $2, %xmm3, %xmm4 > - jnz L(Shl2Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave2) > -# endif > - palignr $2, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $2, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl2LoopStart) > - > -L(Shl2LoopExit): > - movdqu -2(%rcx), %xmm1 > - mov $14, %rsi > - movdqu %xmm1, -2(%rdx) > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl3): > - movaps -3(%rcx), %xmm1 > - movaps 13(%rcx), %xmm2 > -L(Shl3Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit3Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl3LoopExit) > - > - palignr $3, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 29(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit3Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl3LoopExit) > - > - palignr $3, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 29(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit3Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl3LoopExit) > - > - palignr $3, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 29(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit3Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl3LoopExit) > - > - palignr $3, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 29(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -13(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -3(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl3LoopStart): > - movaps 13(%rcx), %xmm2 > - movaps 29(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 45(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 61(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $3, %xmm4, %xmm5 > - test %rax, %rax > - palignr $3, %xmm3, %xmm4 > - jnz L(Shl3Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave3) > -# endif > - palignr $3, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $3, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl3LoopStart) > - > -L(Shl3LoopExit): > - movdqu -3(%rcx), %xmm1 > - mov $13, %rsi > - movdqu %xmm1, -3(%rdx) > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl4): > - movaps -4(%rcx), %xmm1 > - movaps 12(%rcx), %xmm2 > -L(Shl4Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit4Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl4LoopExit) > - > - palignr $4, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 28(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit4Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl4LoopExit) > - > - palignr $4, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 28(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit4Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl4LoopExit) > - > - palignr $4, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 28(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit4Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl4LoopExit) > - > - palignr $4, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 28(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -12(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -4(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl4LoopStart): > - movaps 12(%rcx), %xmm2 > - movaps 28(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 44(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 60(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $4, %xmm4, %xmm5 > - test %rax, %rax > - palignr $4, %xmm3, %xmm4 > - jnz L(Shl4Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave4) > -# endif > - palignr $4, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $4, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl4LoopStart) > - > -L(Shl4LoopExit): > - movdqu -4(%rcx), %xmm1 > - mov $12, %rsi > - movdqu %xmm1, -4(%rdx) > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl5): > - movaps -5(%rcx), %xmm1 > - movaps 11(%rcx), %xmm2 > -L(Shl5Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit5Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl5LoopExit) > - > - palignr $5, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 27(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit5Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl5LoopExit) > - > - palignr $5, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 27(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit5Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl5LoopExit) > - > - palignr $5, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 27(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit5Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl5LoopExit) > - > - palignr $5, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 27(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -11(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -5(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl5LoopStart): > - movaps 11(%rcx), %xmm2 > - movaps 27(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 43(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 59(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $5, %xmm4, %xmm5 > - test %rax, %rax > - palignr $5, %xmm3, %xmm4 > - jnz L(Shl5Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave5) > -# endif > - palignr $5, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $5, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl5LoopStart) > - > -L(Shl5LoopExit): > - movdqu -5(%rcx), %xmm1 > - mov $11, %rsi > - movdqu %xmm1, -5(%rdx) > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl6): > - movaps -6(%rcx), %xmm1 > - movaps 10(%rcx), %xmm2 > -L(Shl6Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit6Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl6LoopExit) > - > - palignr $6, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 26(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit6Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl6LoopExit) > - > - palignr $6, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 26(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit6Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl6LoopExit) > - > - palignr $6, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 26(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit6Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl6LoopExit) > - > - palignr $6, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 26(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -10(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -6(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl6LoopStart): > - movaps 10(%rcx), %xmm2 > - movaps 26(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 42(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 58(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $6, %xmm4, %xmm5 > - test %rax, %rax > - palignr $6, %xmm3, %xmm4 > - jnz L(Shl6Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave6) > -# endif > - palignr $6, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $6, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl6LoopStart) > - > -L(Shl6LoopExit): > - mov (%rcx), %r9 > - mov 6(%rcx), %esi > - mov %r9, (%rdx) > - mov %esi, 6(%rdx) > - mov $10, %rsi > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl7): > - movaps -7(%rcx), %xmm1 > - movaps 9(%rcx), %xmm2 > -L(Shl7Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit7Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl7LoopExit) > - > - palignr $7, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 25(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit7Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl7LoopExit) > - > - palignr $7, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 25(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit7Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl7LoopExit) > - > - palignr $7, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 25(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit7Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl7LoopExit) > - > - palignr $7, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 25(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -9(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -7(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl7LoopStart): > - movaps 9(%rcx), %xmm2 > - movaps 25(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 41(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 57(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $7, %xmm4, %xmm5 > - test %rax, %rax > - palignr $7, %xmm3, %xmm4 > - jnz L(Shl7Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave7) > -# endif > - palignr $7, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $7, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl7LoopStart) > - > -L(Shl7LoopExit): > - mov (%rcx), %r9 > - mov 5(%rcx), %esi > - mov %r9, (%rdx) > - mov %esi, 5(%rdx) > - mov $9, %rsi > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl8): > - movaps -8(%rcx), %xmm1 > - movaps 8(%rcx), %xmm2 > -L(Shl8Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit8Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl8LoopExit) > - > - palignr $8, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 24(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit8Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl8LoopExit) > - > - palignr $8, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 24(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit8Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl8LoopExit) > - > - palignr $8, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 24(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit8Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl8LoopExit) > - > - palignr $8, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 24(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -8(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -8(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl8LoopStart): > - movaps 8(%rcx), %xmm2 > - movaps 24(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 40(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 56(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $8, %xmm4, %xmm5 > - test %rax, %rax > - palignr $8, %xmm3, %xmm4 > - jnz L(Shl8Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave8) > -# endif > - palignr $8, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $8, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl8LoopStart) > - > -L(Shl8LoopExit): > - mov (%rcx), %r9 > - mov $8, %rsi > - mov %r9, (%rdx) > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl9): > - movaps -9(%rcx), %xmm1 > - movaps 7(%rcx), %xmm2 > -L(Shl9Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit9Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl9LoopExit) > - > - palignr $9, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 23(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit9Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl9LoopExit) > - > - palignr $9, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 23(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit9Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl9LoopExit) > - > - palignr $9, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 23(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit9Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl9LoopExit) > - > - palignr $9, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 23(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -7(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -9(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl9LoopStart): > - movaps 7(%rcx), %xmm2 > - movaps 23(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 39(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 55(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $9, %xmm4, %xmm5 > - test %rax, %rax > - palignr $9, %xmm3, %xmm4 > - jnz L(Shl9Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave9) > -# endif > - palignr $9, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $9, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl9LoopStart) > - > -L(Shl9LoopExit): > - mov -1(%rcx), %r9 > - mov $7, %rsi > - mov %r9, -1(%rdx) > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl10): > - movaps -10(%rcx), %xmm1 > - movaps 6(%rcx), %xmm2 > -L(Shl10Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit10Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl10LoopExit) > - > - palignr $10, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 22(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit10Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl10LoopExit) > - > - palignr $10, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 22(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit10Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl10LoopExit) > - > - palignr $10, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 22(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit10Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl10LoopExit) > - > - palignr $10, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 22(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -6(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -10(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl10LoopStart): > - movaps 6(%rcx), %xmm2 > - movaps 22(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 38(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 54(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $10, %xmm4, %xmm5 > - test %rax, %rax > - palignr $10, %xmm3, %xmm4 > - jnz L(Shl10Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave10) > -# endif > - palignr $10, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $10, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl10LoopStart) > - > -L(Shl10LoopExit): > - mov -2(%rcx), %r9 > - mov $6, %rsi > - mov %r9, -2(%rdx) > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl11): > - movaps -11(%rcx), %xmm1 > - movaps 5(%rcx), %xmm2 > -L(Shl11Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit11Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl11LoopExit) > - > - palignr $11, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 21(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit11Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl11LoopExit) > - > - palignr $11, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 21(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit11Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl11LoopExit) > - > - palignr $11, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 21(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit11Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl11LoopExit) > - > - palignr $11, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 21(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -5(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -11(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl11LoopStart): > - movaps 5(%rcx), %xmm2 > - movaps 21(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 37(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 53(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $11, %xmm4, %xmm5 > - test %rax, %rax > - palignr $11, %xmm3, %xmm4 > - jnz L(Shl11Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave11) > -# endif > - palignr $11, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $11, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl11LoopStart) > - > -L(Shl11LoopExit): > - mov -3(%rcx), %r9 > - mov $5, %rsi > - mov %r9, -3(%rdx) > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl12): > - movaps -12(%rcx), %xmm1 > - movaps 4(%rcx), %xmm2 > -L(Shl12Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit12Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl12LoopExit) > - > - palignr $12, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 20(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit12Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl12LoopExit) > - > - palignr $12, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 20(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit12Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl12LoopExit) > - > - palignr $12, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 20(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit12Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl12LoopExit) > - > - palignr $12, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 20(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -4(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -12(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl12LoopStart): > - movaps 4(%rcx), %xmm2 > - movaps 20(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 36(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 52(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $12, %xmm4, %xmm5 > - test %rax, %rax > - palignr $12, %xmm3, %xmm4 > - jnz L(Shl12Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave12) > -# endif > - palignr $12, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $12, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl12LoopStart) > - > -L(Shl12LoopExit): > - mov (%rcx), %r9d > - mov $4, %rsi > - mov %r9d, (%rdx) > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl13): > - movaps -13(%rcx), %xmm1 > - movaps 3(%rcx), %xmm2 > -L(Shl13Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit13Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl13LoopExit) > - > - palignr $13, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 19(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit13Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl13LoopExit) > - > - palignr $13, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 19(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit13Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl13LoopExit) > - > - palignr $13, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 19(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit13Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl13LoopExit) > - > - palignr $13, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 19(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -3(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -13(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl13LoopStart): > - movaps 3(%rcx), %xmm2 > - movaps 19(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 35(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 51(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $13, %xmm4, %xmm5 > - test %rax, %rax > - palignr $13, %xmm3, %xmm4 > - jnz L(Shl13Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave13) > -# endif > - palignr $13, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $13, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl13LoopStart) > - > -L(Shl13LoopExit): > - mov -1(%rcx), %r9d > - mov $3, %rsi > - mov %r9d, -1(%rdx) > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl14): > - movaps -14(%rcx), %xmm1 > - movaps 2(%rcx), %xmm2 > -L(Shl14Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit14Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl14LoopExit) > - > - palignr $14, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 18(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit14Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl14LoopExit) > - > - palignr $14, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 18(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit14Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl14LoopExit) > - > - palignr $14, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 18(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit14Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl14LoopExit) > - > - palignr $14, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 18(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -2(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -14(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl14LoopStart): > - movaps 2(%rcx), %xmm2 > - movaps 18(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 34(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 50(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $14, %xmm4, %xmm5 > - test %rax, %rax > - palignr $14, %xmm3, %xmm4 > - jnz L(Shl14Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave14) > -# endif > - palignr $14, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $14, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl14LoopStart) > - > -L(Shl14LoopExit): > - mov -2(%rcx), %r9d > - mov $2, %rsi > - mov %r9d, -2(%rdx) > - jmp L(CopyFrom1To16Bytes) > - > - .p2align 4 > -L(Shl15): > - movaps -15(%rcx), %xmm1 > - movaps 1(%rcx), %xmm2 > -L(Shl15Start): > - pcmpeqb %xmm2, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit15Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl15LoopExit) > - > - palignr $15, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 17(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm1 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit15Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl15LoopExit) > - > - palignr $15, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 17(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > - movaps %xmm2, %xmm3 > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit15Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl15LoopExit) > - > - palignr $15, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 17(%rcx), %xmm2 > - > - pcmpeqb %xmm2, %xmm0 > - lea 16(%rdx), %rdx > - pmovmskb %xmm0, %rax > - lea 16(%rcx), %rcx > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - jbe L(StrncpyExit15Case2OrCase3) > -# endif > - test %rax, %rax > - jnz L(Shl15LoopExit) > - > - palignr $15, %xmm3, %xmm2 > - movaps %xmm2, (%rdx) > - lea 17(%rcx), %rcx > - lea 16(%rdx), %rdx > - > - mov %rcx, %rax > - and $-0x40, %rcx > - sub %rcx, %rax > - lea -1(%rcx), %rcx > - sub %rax, %rdx > -# ifdef USE_AS_STRNCPY > - add %rax, %r8 > -# endif > - movaps -15(%rcx), %xmm1 > - > -/* 64 bytes loop */ > - .p2align 4 > -L(Shl15LoopStart): > - movaps 1(%rcx), %xmm2 > - movaps 17(%rcx), %xmm3 > - movaps %xmm3, %xmm6 > - movaps 33(%rcx), %xmm4 > - movaps %xmm4, %xmm7 > - movaps 49(%rcx), %xmm5 > - pminub %xmm2, %xmm6 > - pminub %xmm5, %xmm7 > - pminub %xmm6, %xmm7 > - pcmpeqb %xmm0, %xmm7 > - pmovmskb %xmm7, %rax > - movaps %xmm5, %xmm7 > - palignr $15, %xmm4, %xmm5 > - test %rax, %rax > - palignr $15, %xmm3, %xmm4 > - jnz L(Shl15Start) > -# ifdef USE_AS_STRNCPY > - sub $64, %r8 > - jbe L(StrncpyLeave15) > -# endif > - palignr $15, %xmm2, %xmm3 > - lea 64(%rcx), %rcx > - palignr $15, %xmm1, %xmm2 > - movaps %xmm7, %xmm1 > - movaps %xmm5, 48(%rdx) > - movaps %xmm4, 32(%rdx) > - movaps %xmm3, 16(%rdx) > - movaps %xmm2, (%rdx) > - lea 64(%rdx), %rdx > - jmp L(Shl15LoopStart) > - > -L(Shl15LoopExit): > - mov -3(%rcx), %r9d > - mov $1, %rsi > - mov %r9d, -3(%rdx) > -# ifdef USE_AS_STRCAT > - jmp L(CopyFrom1To16Bytes) > -# endif > - > -# ifndef USE_AS_STRCAT > - > - .p2align 4 > -L(CopyFrom1To16Bytes): > -# ifdef USE_AS_STRNCPY > - add $16, %r8 > -# endif > - add %rsi, %rdx > - add %rsi, %rcx > - > - test %al, %al > - jz L(ExitHigh) > - test $0x01, %al > - jnz L(Exit1) > - test $0x02, %al > - jnz L(Exit2) > - test $0x04, %al > - jnz L(Exit3) > - test $0x08, %al > - jnz L(Exit4) > - test $0x10, %al > - jnz L(Exit5) > - test $0x20, %al > - jnz L(Exit6) > - test $0x40, %al > - jnz L(Exit7) > - > - .p2align 4 > -L(Exit8): > - mov (%rcx), %rax > - mov %rax, (%rdx) > -# ifdef USE_AS_STPCPY > - lea 7(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $8, %r8 > - lea 8(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > - .p2align 4 > -L(ExitHigh): > - test $0x01, %ah > - jnz L(Exit9) > - test $0x02, %ah > - jnz L(Exit10) > - test $0x04, %ah > - jnz L(Exit11) > - test $0x08, %ah > - jnz L(Exit12) > - test $0x10, %ah > - jnz L(Exit13) > - test $0x20, %ah > - jnz L(Exit14) > - test $0x40, %ah > - jnz L(Exit15) > - > - .p2align 4 > -L(Exit16): > - mov (%rcx), %rax > - mov %rax, (%rdx) > - mov 8(%rcx), %rax > - mov %rax, 8(%rdx) > -# ifdef USE_AS_STPCPY > - lea 15(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $16, %r8 > - lea 16(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > -# ifdef USE_AS_STRNCPY > - > - .p2align 4 > -L(CopyFrom1To16BytesCase2): > - add $16, %r8 > - add %rsi, %rcx > - lea (%rsi, %rdx), %rsi > - lea -9(%r8), %rdx > - and $1<<7, %dh > - or %al, %dh > - test %dh, %dh > - lea (%rsi), %rdx > - jz L(ExitHighCase2) > - > - cmp $1, %r8 > - je L(Exit1) > - test $0x01, %al > - jnz L(Exit1) > - cmp $2, %r8 > - je L(Exit2) > - test $0x02, %al > - jnz L(Exit2) > - cmp $3, %r8 > - je L(Exit3) > - test $0x04, %al > - jnz L(Exit3) > - cmp $4, %r8 > - je L(Exit4) > - test $0x08, %al > - jnz L(Exit4) > - cmp $5, %r8 > - je L(Exit5) > - test $0x10, %al > - jnz L(Exit5) > - cmp $6, %r8 > - je L(Exit6) > - test $0x20, %al > - jnz L(Exit6) > - cmp $7, %r8 > - je L(Exit7) > - test $0x40, %al > - jnz L(Exit7) > - jmp L(Exit8) > - > - .p2align 4 > -L(ExitHighCase2): > - cmp $9, %r8 > - je L(Exit9) > - test $0x01, %ah > - jnz L(Exit9) > - cmp $10, %r8 > - je L(Exit10) > - test $0x02, %ah > - jnz L(Exit10) > - cmp $11, %r8 > - je L(Exit11) > - test $0x04, %ah > - jnz L(Exit11) > - cmp $12, %r8 > - je L(Exit12) > - test $0x8, %ah > - jnz L(Exit12) > - cmp $13, %r8 > - je L(Exit13) > - test $0x10, %ah > - jnz L(Exit13) > - cmp $14, %r8 > - je L(Exit14) > - test $0x20, %ah > - jnz L(Exit14) > - cmp $15, %r8 > - je L(Exit15) > - test $0x40, %ah > - jnz L(Exit15) > - jmp L(Exit16) > - > -L(CopyFrom1To16BytesCase2OrCase3): > - test %rax, %rax > - jnz L(CopyFrom1To16BytesCase2) > - > - .p2align 4 > -L(CopyFrom1To16BytesCase3): > - add $16, %r8 > - add %rsi, %rdx > - add %rsi, %rcx > - > - cmp $16, %r8 > - je L(Exit16) > - cmp $8, %r8 > - je L(Exit8) > - jg L(More8Case3) > - cmp $4, %r8 > - je L(Exit4) > - jg L(More4Case3) > - cmp $2, %r8 > - jl L(Exit1) > - je L(Exit2) > - jg L(Exit3) > -L(More8Case3): /* but less than 16 */ > - cmp $12, %r8 > - je L(Exit12) > - jl L(Less12Case3) > - cmp $14, %r8 > - jl L(Exit13) > - je L(Exit14) > - jg L(Exit15) > -L(More4Case3): /* but less than 8 */ > - cmp $6, %r8 > - jl L(Exit5) > - je L(Exit6) > - jg L(Exit7) > -L(Less12Case3): /* but more than 8 */ > - cmp $10, %r8 > - jl L(Exit9) > - je L(Exit10) > - jg L(Exit11) > -# endif > - > - .p2align 4 > -L(Exit1): > - movb (%rcx), %al > - movb %al, (%rdx) > -# ifdef USE_AS_STPCPY > - lea (%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $1, %r8 > - lea 1(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > - .p2align 4 > -L(Exit2): > - movw (%rcx), %ax > - movw %ax, (%rdx) > -# ifdef USE_AS_STPCPY > - lea 1(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $2, %r8 > - lea 2(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > - .p2align 4 > -L(Exit3): > - movw (%rcx), %ax > - movw %ax, (%rdx) > - movb 2(%rcx), %al > - movb %al, 2(%rdx) > -# ifdef USE_AS_STPCPY > - lea 2(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $3, %r8 > - lea 3(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > - .p2align 4 > -L(Exit4): > - movl (%rcx), %eax > - movl %eax, (%rdx) > -# ifdef USE_AS_STPCPY > - lea 3(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $4, %r8 > - lea 4(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > - .p2align 4 > -L(Exit5): > - movl (%rcx), %eax > - movl %eax, (%rdx) > - movb 4(%rcx), %al > - movb %al, 4(%rdx) > -# ifdef USE_AS_STPCPY > - lea 4(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $5, %r8 > - lea 5(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > - .p2align 4 > -L(Exit6): > - movl (%rcx), %eax > - movl %eax, (%rdx) > - movw 4(%rcx), %ax > - movw %ax, 4(%rdx) > -# ifdef USE_AS_STPCPY > - lea 5(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $6, %r8 > - lea 6(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > - .p2align 4 > -L(Exit7): > - movl (%rcx), %eax > - movl %eax, (%rdx) > - movl 3(%rcx), %eax > - movl %eax, 3(%rdx) > -# ifdef USE_AS_STPCPY > - lea 6(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $7, %r8 > - lea 7(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > - .p2align 4 > -L(Exit9): > - mov (%rcx), %rax > - mov %rax, (%rdx) > - mov 5(%rcx), %eax > - mov %eax, 5(%rdx) > -# ifdef USE_AS_STPCPY > - lea 8(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $9, %r8 > - lea 9(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > - .p2align 4 > -L(Exit10): > - mov (%rcx), %rax > - mov %rax, (%rdx) > - mov 6(%rcx), %eax > - mov %eax, 6(%rdx) > -# ifdef USE_AS_STPCPY > - lea 9(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $10, %r8 > - lea 10(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > - .p2align 4 > -L(Exit11): > - mov (%rcx), %rax > - mov %rax, (%rdx) > - mov 7(%rcx), %eax > - mov %eax, 7(%rdx) > -# ifdef USE_AS_STPCPY > - lea 10(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $11, %r8 > - lea 11(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > - .p2align 4 > -L(Exit12): > - mov (%rcx), %rax > - mov %rax, (%rdx) > - mov 8(%rcx), %eax > - mov %eax, 8(%rdx) > -# ifdef USE_AS_STPCPY > - lea 11(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $12, %r8 > - lea 12(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > - .p2align 4 > -L(Exit13): > - mov (%rcx), %rax > - mov %rax, (%rdx) > - mov 5(%rcx), %rax > - mov %rax, 5(%rdx) > -# ifdef USE_AS_STPCPY > - lea 12(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $13, %r8 > - lea 13(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > - .p2align 4 > -L(Exit14): > - mov (%rcx), %rax > - mov %rax, (%rdx) > - mov 6(%rcx), %rax > - mov %rax, 6(%rdx) > -# ifdef USE_AS_STPCPY > - lea 13(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $14, %r8 > - lea 14(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > - .p2align 4 > -L(Exit15): > - mov (%rcx), %rax > - mov %rax, (%rdx) > - mov 7(%rcx), %rax > - mov %rax, 7(%rdx) > -# ifdef USE_AS_STPCPY > - lea 14(%rdx), %rax > -# else > - mov %rdi, %rax > -# endif > -# ifdef USE_AS_STRNCPY > - sub $15, %r8 > - lea 15(%rdx), %rcx > - jnz L(StrncpyFillTailWithZero1) > -# ifdef USE_AS_STPCPY > - cmpb $1, (%rax) > - sbb $-1, %rax > -# endif > -# endif > - ret > - > -# ifdef USE_AS_STRNCPY > - .p2align 4 > -L(Fill0): > - ret > - > - .p2align 4 > -L(Fill1): > - movb %dl, (%rcx) > - ret > - > - .p2align 4 > -L(Fill2): > - movw %dx, (%rcx) > - ret > - > - .p2align 4 > -L(Fill3): > - movw %dx, (%rcx) > - movb %dl, 2(%rcx) > - ret > - > - .p2align 4 > -L(Fill4): > - movl %edx, (%rcx) > - ret > - > - .p2align 4 > -L(Fill5): > - movl %edx, (%rcx) > - movb %dl, 4(%rcx) > - ret > - > - .p2align 4 > -L(Fill6): > - movl %edx, (%rcx) > - movw %dx, 4(%rcx) > - ret > - > - .p2align 4 > -L(Fill7): > - movl %edx, (%rcx) > - movl %edx, 3(%rcx) > - ret > - > - .p2align 4 > -L(Fill8): > - mov %rdx, (%rcx) > - ret > - > - .p2align 4 > -L(Fill9): > - mov %rdx, (%rcx) > - movb %dl, 8(%rcx) > - ret > - > - .p2align 4 > -L(Fill10): > - mov %rdx, (%rcx) > - movw %dx, 8(%rcx) > - ret > - > - .p2align 4 > -L(Fill11): > - mov %rdx, (%rcx) > - movl %edx, 7(%rcx) > - ret > - > - .p2align 4 > -L(Fill12): > - mov %rdx, (%rcx) > - movl %edx, 8(%rcx) > - ret > - > - .p2align 4 > -L(Fill13): > - mov %rdx, (%rcx) > - mov %rdx, 5(%rcx) > - ret > - > - .p2align 4 > -L(Fill14): > - mov %rdx, (%rcx) > - mov %rdx, 6(%rcx) > - ret > - > - .p2align 4 > -L(Fill15): > - mov %rdx, (%rcx) > - mov %rdx, 7(%rcx) > - ret > - > - .p2align 4 > -L(Fill16): > - mov %rdx, (%rcx) > - mov %rdx, 8(%rcx) > - ret > - > - .p2align 4 > -L(StrncpyFillExit1): > - lea 16(%r8), %r8 > -L(FillFrom1To16Bytes): > - test %r8, %r8 > - jz L(Fill0) > - cmp $16, %r8 > - je L(Fill16) > - cmp $8, %r8 > - je L(Fill8) > - jg L(FillMore8) > - cmp $4, %r8 > - je L(Fill4) > - jg L(FillMore4) > - cmp $2, %r8 > - jl L(Fill1) > - je L(Fill2) > - jg L(Fill3) > -L(FillMore8): /* but less than 16 */ > - cmp $12, %r8 > - je L(Fill12) > - jl L(FillLess12) > - cmp $14, %r8 > - jl L(Fill13) > - je L(Fill14) > - jg L(Fill15) > -L(FillMore4): /* but less than 8 */ > - cmp $6, %r8 > - jl L(Fill5) > - je L(Fill6) > - jg L(Fill7) > -L(FillLess12): /* but more than 8 */ > - cmp $10, %r8 > - jl L(Fill9) > - je L(Fill10) > - jmp L(Fill11) > - > - .p2align 4 > -L(StrncpyFillTailWithZero1): > - xor %rdx, %rdx > - sub $16, %r8 > - jbe L(StrncpyFillExit1) > - > - pxor %xmm0, %xmm0 > - mov %rdx, (%rcx) > - mov %rdx, 8(%rcx) > - > - lea 16(%rcx), %rcx > - > - mov %rcx, %rdx > - and $0xf, %rdx > - sub %rdx, %rcx > - add %rdx, %r8 > - xor %rdx, %rdx > - sub $64, %r8 > - jb L(StrncpyFillLess64) > - > -L(StrncpyFillLoopMovdqa): > - movdqa %xmm0, (%rcx) > - movdqa %xmm0, 16(%rcx) > - movdqa %xmm0, 32(%rcx) > - movdqa %xmm0, 48(%rcx) > - lea 64(%rcx), %rcx > - sub $64, %r8 > - jae L(StrncpyFillLoopMovdqa) > - > -L(StrncpyFillLess64): > - add $32, %r8 > - jl L(StrncpyFillLess32) > - movdqa %xmm0, (%rcx) > - movdqa %xmm0, 16(%rcx) > - lea 32(%rcx), %rcx > - sub $16, %r8 > - jl L(StrncpyFillExit1) > - movdqa %xmm0, (%rcx) > - lea 16(%rcx), %rcx > - jmp L(FillFrom1To16Bytes) > - > -L(StrncpyFillLess32): > - add $16, %r8 > - jl L(StrncpyFillExit1) > - movdqa %xmm0, (%rcx) > - lea 16(%rcx), %rcx > - jmp L(FillFrom1To16Bytes) > - > - .p2align 4 > -L(Exit0): > - mov %rdx, %rax > - ret > - > - .p2align 4 > -L(StrncpyExit15Bytes): > - cmp $9, %r8 > - je L(Exit9) > - cmpb $0, 8(%rcx) > - jz L(Exit9) > - cmp $10, %r8 > - je L(Exit10) > - cmpb $0, 9(%rcx) > - jz L(Exit10) > - cmp $11, %r8 > - je L(Exit11) > - cmpb $0, 10(%rcx) > - jz L(Exit11) > - cmp $12, %r8 > - je L(Exit12) > - cmpb $0, 11(%rcx) > - jz L(Exit12) > - cmp $13, %r8 > - je L(Exit13) > - cmpb $0, 12(%rcx) > - jz L(Exit13) > - cmp $14, %r8 > - je L(Exit14) > - cmpb $0, 13(%rcx) > - jz L(Exit14) > - mov (%rcx), %rax > - mov %rax, (%rdx) > - mov 7(%rcx), %rax > - mov %rax, 7(%rdx) > -# ifdef USE_AS_STPCPY > - lea 14(%rdx), %rax > - cmpb $1, (%rax) > - sbb $-1, %rax > -# else > - mov %rdi, %rax > -# endif > - ret > - > - .p2align 4 > -L(StrncpyExit8Bytes): > - cmp $1, %r8 > - je L(Exit1) > - cmpb $0, (%rcx) > - jz L(Exit1) > - cmp $2, %r8 > - je L(Exit2) > - cmpb $0, 1(%rcx) > - jz L(Exit2) > - cmp $3, %r8 > - je L(Exit3) > - cmpb $0, 2(%rcx) > - jz L(Exit3) > - cmp $4, %r8 > - je L(Exit4) > - cmpb $0, 3(%rcx) > - jz L(Exit4) > - cmp $5, %r8 > - je L(Exit5) > - cmpb $0, 4(%rcx) > - jz L(Exit5) > - cmp $6, %r8 > - je L(Exit6) > - cmpb $0, 5(%rcx) > - jz L(Exit6) > - cmp $7, %r8 > - je L(Exit7) > - cmpb $0, 6(%rcx) > - jz L(Exit7) > - mov (%rcx), %rax > - mov %rax, (%rdx) > -# ifdef USE_AS_STPCPY > - lea 7(%rdx), %rax > - cmpb $1, (%rax) > - sbb $-1, %rax > -# else > - mov %rdi, %rax > -# endif > - ret > - > -# endif > -# endif > - > -# ifdef USE_AS_STRNCPY > - .p2align 4 > -L(StrncpyLeaveCase2OrCase3): > - test %rax, %rax > - jnz L(Aligned64LeaveCase2) > - > -L(Aligned64LeaveCase3): > - lea 64(%r8), %r8 > - sub $16, %r8 > - jbe L(CopyFrom1To16BytesCase3) > - movaps %xmm4, -64(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(CopyFrom1To16BytesCase3) > - movaps %xmm5, -48(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(CopyFrom1To16BytesCase3) > - movaps %xmm6, -32(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - jmp L(CopyFrom1To16BytesCase3) > - > -L(Aligned64LeaveCase2): > - pcmpeqb %xmm4, %xmm0 > - pmovmskb %xmm0, %rax > - add $48, %r8 > - jle L(CopyFrom1To16BytesCase2OrCase3) > - test %rax, %rax > - jnz L(CopyFrom1To16Bytes) > - > - pcmpeqb %xmm5, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm4, -64(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(CopyFrom1To16BytesCase2OrCase3) > - test %rax, %rax > - jnz L(CopyFrom1To16Bytes) > - > - pcmpeqb %xmm6, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm5, -48(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(CopyFrom1To16BytesCase2OrCase3) > - test %rax, %rax > - jnz L(CopyFrom1To16Bytes) > - > - pcmpeqb %xmm7, %xmm0 > - pmovmskb %xmm0, %rax > - movaps %xmm6, -32(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - jmp L(CopyFrom1To16BytesCase2) > -/*--------------------------------------------------*/ > - .p2align 4 > -L(StrncpyExit1Case2OrCase3): > - movdqu -1(%rcx), %xmm0 > - movdqu %xmm0, -1(%rdx) > - mov $15, %rsi > - test %rax, %rax > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyExit2Case2OrCase3): > - movdqu -2(%rcx), %xmm0 > - movdqu %xmm0, -2(%rdx) > - mov $14, %rsi > - test %rax, %rax > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyExit3Case2OrCase3): > - movdqu -3(%rcx), %xmm0 > - movdqu %xmm0, -3(%rdx) > - mov $13, %rsi > - test %rax, %rax > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyExit4Case2OrCase3): > - movdqu -4(%rcx), %xmm0 > - movdqu %xmm0, -4(%rdx) > - mov $12, %rsi > - test %rax, %rax > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyExit5Case2OrCase3): > - movdqu -5(%rcx), %xmm0 > - movdqu %xmm0, -5(%rdx) > - mov $11, %rsi > - test %rax, %rax > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyExit6Case2OrCase3): > - mov (%rcx), %rsi > - mov 6(%rcx), %r9d > - mov %r9d, 6(%rdx) > - mov %rsi, (%rdx) > - test %rax, %rax > - mov $10, %rsi > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyExit7Case2OrCase3): > - mov (%rcx), %rsi > - mov 5(%rcx), %r9d > - mov %r9d, 5(%rdx) > - mov %rsi, (%rdx) > - test %rax, %rax > - mov $9, %rsi > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyExit8Case2OrCase3): > - mov (%rcx), %r9 > - mov $8, %rsi > - mov %r9, (%rdx) > - test %rax, %rax > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyExit9Case2OrCase3): > - mov -1(%rcx), %r9 > - mov $7, %rsi > - mov %r9, -1(%rdx) > - test %rax, %rax > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyExit10Case2OrCase3): > - mov -2(%rcx), %r9 > - mov $6, %rsi > - mov %r9, -2(%rdx) > - test %rax, %rax > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyExit11Case2OrCase3): > - mov -3(%rcx), %r9 > - mov $5, %rsi > - mov %r9, -3(%rdx) > - test %rax, %rax > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyExit12Case2OrCase3): > - mov (%rcx), %r9d > - mov $4, %rsi > - mov %r9d, (%rdx) > - test %rax, %rax > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyExit13Case2OrCase3): > - mov -1(%rcx), %r9d > - mov $3, %rsi > - mov %r9d, -1(%rdx) > - test %rax, %rax > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyExit14Case2OrCase3): > - mov -2(%rcx), %r9d > - mov $2, %rsi > - mov %r9d, -2(%rdx) > - test %rax, %rax > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyExit15Case2OrCase3): > - mov -3(%rcx), %r9d > - mov $1, %rsi > - mov %r9d, -3(%rdx) > - test %rax, %rax > - jnz L(CopyFrom1To16BytesCase2) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave1): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit1) > - palignr $1, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 31(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit1) > - palignr $1, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit1) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit1) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit1): > - lea 15(%rdx, %rsi), %rdx > - lea 15(%rcx, %rsi), %rcx > - mov -15(%rcx), %rsi > - mov -8(%rcx), %rax > - mov %rsi, -15(%rdx) > - mov %rax, -8(%rdx) > - xor %rsi, %rsi > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave2): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit2) > - palignr $2, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 30(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit2) > - palignr $2, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit2) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit2) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit2): > - lea 14(%rdx, %rsi), %rdx > - lea 14(%rcx, %rsi), %rcx > - mov -14(%rcx), %rsi > - mov -8(%rcx), %rax > - mov %rsi, -14(%rdx) > - mov %rax, -8(%rdx) > - xor %rsi, %rsi > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave3): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit3) > - palignr $3, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 29(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit3) > - palignr $3, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit3) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit3) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit3): > - lea 13(%rdx, %rsi), %rdx > - lea 13(%rcx, %rsi), %rcx > - mov -13(%rcx), %rsi > - mov -8(%rcx), %rax > - mov %rsi, -13(%rdx) > - mov %rax, -8(%rdx) > - xor %rsi, %rsi > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave4): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit4) > - palignr $4, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 28(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit4) > - palignr $4, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit4) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit4) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit4): > - lea 12(%rdx, %rsi), %rdx > - lea 12(%rcx, %rsi), %rcx > - mov -12(%rcx), %rsi > - mov -4(%rcx), %eax > - mov %rsi, -12(%rdx) > - mov %eax, -4(%rdx) > - xor %rsi, %rsi > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave5): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit5) > - palignr $5, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 27(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit5) > - palignr $5, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit5) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit5) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit5): > - lea 11(%rdx, %rsi), %rdx > - lea 11(%rcx, %rsi), %rcx > - mov -11(%rcx), %rsi > - mov -4(%rcx), %eax > - mov %rsi, -11(%rdx) > - mov %eax, -4(%rdx) > - xor %rsi, %rsi > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave6): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit6) > - palignr $6, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 26(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit6) > - palignr $6, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit6) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit6) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit6): > - lea 10(%rdx, %rsi), %rdx > - lea 10(%rcx, %rsi), %rcx > - mov -10(%rcx), %rsi > - movw -2(%rcx), %ax > - mov %rsi, -10(%rdx) > - movw %ax, -2(%rdx) > - xor %rsi, %rsi > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave7): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit7) > - palignr $7, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 25(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit7) > - palignr $7, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit7) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit7) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit7): > - lea 9(%rdx, %rsi), %rdx > - lea 9(%rcx, %rsi), %rcx > - mov -9(%rcx), %rsi > - movb -1(%rcx), %ah > - mov %rsi, -9(%rdx) > - movb %ah, -1(%rdx) > - xor %rsi, %rsi > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave8): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit8) > - palignr $8, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 24(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit8) > - palignr $8, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit8) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit8) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit8): > - lea 8(%rdx, %rsi), %rdx > - lea 8(%rcx, %rsi), %rcx > - mov -8(%rcx), %rax > - xor %rsi, %rsi > - mov %rax, -8(%rdx) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave9): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit9) > - palignr $9, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 23(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit9) > - palignr $9, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit9) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit9) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit9): > - lea 7(%rdx, %rsi), %rdx > - lea 7(%rcx, %rsi), %rcx > - mov -8(%rcx), %rax > - xor %rsi, %rsi > - mov %rax, -8(%rdx) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave10): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit10) > - palignr $10, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 22(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit10) > - palignr $10, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit10) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit10) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit10): > - lea 6(%rdx, %rsi), %rdx > - lea 6(%rcx, %rsi), %rcx > - mov -8(%rcx), %rax > - xor %rsi, %rsi > - mov %rax, -8(%rdx) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave11): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit11) > - palignr $11, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 21(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit11) > - palignr $11, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit11) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit11) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit11): > - lea 5(%rdx, %rsi), %rdx > - lea 5(%rcx, %rsi), %rcx > - mov -8(%rcx), %rax > - xor %rsi, %rsi > - mov %rax, -8(%rdx) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave12): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit12) > - palignr $12, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 20(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit12) > - palignr $12, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit12) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit12) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit12): > - lea 4(%rdx, %rsi), %rdx > - lea 4(%rcx, %rsi), %rcx > - mov -4(%rcx), %eax > - xor %rsi, %rsi > - mov %eax, -4(%rdx) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave13): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit13) > - palignr $13, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 19(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit13) > - palignr $13, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit13) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit13) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit13): > - lea 3(%rdx, %rsi), %rdx > - lea 3(%rcx, %rsi), %rcx > - mov -4(%rcx), %eax > - xor %rsi, %rsi > - mov %eax, -4(%rdx) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave14): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit14) > - palignr $14, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 18(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit14) > - palignr $14, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit14) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit14) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit14): > - lea 2(%rdx, %rsi), %rdx > - lea 2(%rcx, %rsi), %rcx > - movw -2(%rcx), %ax > - xor %rsi, %rsi > - movw %ax, -2(%rdx) > - jmp L(CopyFrom1To16BytesCase3) > - > - .p2align 4 > -L(StrncpyLeave15): > - movaps %xmm2, %xmm3 > - add $48, %r8 > - jle L(StrncpyExit15) > - palignr $15, %xmm1, %xmm2 > - movaps %xmm2, (%rdx) > - movaps 17(%rcx), %xmm2 > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit15) > - palignr $15, %xmm3, %xmm2 > - movaps %xmm2, 16(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit15) > - movaps %xmm4, 32(%rdx) > - lea 16(%rsi), %rsi > - sub $16, %r8 > - jbe L(StrncpyExit15) > - movaps %xmm5, 48(%rdx) > - lea 16(%rsi), %rsi > - lea -16(%r8), %r8 > - > -L(StrncpyExit15): > - lea 1(%rdx, %rsi), %rdx > - lea 1(%rcx, %rsi), %rcx > - movb -1(%rcx), %ah > - xor %rsi, %rsi > - movb %ah, -1(%rdx) > - jmp L(CopyFrom1To16BytesCase3) > - > -# endif > -# ifndef USE_AS_STRCAT > -END (STRCPY) > -# endif > -#endif > diff --git a/sysdeps/x86_64/multiarch/strncpy-ssse3.S b/sysdeps/x86_64/multiarch/strncpy-ssse3.S > deleted file mode 100644 > index bf82ee447d..0000000000 > --- a/sysdeps/x86_64/multiarch/strncpy-ssse3.S > +++ /dev/null > @@ -1,3 +0,0 @@ > -#define USE_AS_STRNCPY > -#define STRCPY __strncpy_ssse3 > -#include "strcpy-ssse3.S" > -- > 2.25.1 >