public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit
@ 2020-05-30 10:12 jan at jki dot io
  2020-05-30 10:12 ` [Bug target/95435] " jan at jki dot io
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: jan at jki dot io @ 2020-05-30 10:12 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

            Bug ID: 95435
           Summary: bad builtin memcpy performance with znver1/znver2 and
                    32bit
           Product: gcc
           Version: 10.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jan at jki dot io
  Target Milestone: ---

Created attachment 48641
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48641&action=edit
gcc -g -m32  -march=znver2 -O1 -s testmem_modified.c -o tm32

Hi,
I have found a regression with znver2 and 32bit compiles regarding builtin
memcpy.
Test program is this one:
https://github.com/level1wendell/memcpy_sse

results:
gcc -g -m32  -march=znver2 -O1 -s testmem_modified.c -o tm32
32 MB = 2.462717 ms

gcc -g -m32  -march=skylake -O1 -s testmem_modified.c -o tm32
32 MB = 1.135762 ms

gcc -fno-builtin-memcpy -g -m32  -march=znver2 -O1 -s testmem_modified.c -o
tm32
32 MB = 1.138656 ms

I have attached the generated assembler code for the first 2 cases.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit
  2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
@ 2020-05-30 10:12 ` jan at jki dot io
  2020-05-30 10:16 ` jan at jki dot io
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jan at jki dot io @ 2020-05-30 10:12 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

--- Comment #1 from Jan <jan at jki dot io> ---
Created attachment 48642
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48642&action=edit
gcc -g -m32  -march=skylake -O1 -s testmem_modified.c -o tm32

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit
  2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
  2020-05-30 10:12 ` [Bug target/95435] " jan at jki dot io
@ 2020-05-30 10:16 ` jan at jki dot io
  2020-05-30 10:18 ` glisse at gcc dot gnu.org
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jan at jki dot io @ 2020-05-30 10:16 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

--- Comment #2 from Jan <jan at jki dot io> ---
Created attachment 48643
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48643&action=edit
source code

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit
  2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
  2020-05-30 10:12 ` [Bug target/95435] " jan at jki dot io
  2020-05-30 10:16 ` jan at jki dot io
@ 2020-05-30 10:18 ` glisse at gcc dot gnu.org
  2020-05-30 10:23 ` jan at jki dot io
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: glisse at gcc dot gnu.org @ 2020-05-30 10:18 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

Marc Glisse <glisse at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |x86-*-*

--- Comment #3 from Marc Glisse <glisse at gcc dot gnu.org> ---
"regression" means that a new version of gcc is working worse than an older
one, can you mention which older version you are comparing to and what results
you were getting with it?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit
  2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
                   ` (2 preceding siblings ...)
  2020-05-30 10:18 ` glisse at gcc dot gnu.org
@ 2020-05-30 10:23 ` jan at jki dot io
  2020-05-30 16:43 ` amonakov at gcc dot gnu.org
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jan at jki dot io @ 2020-05-30 10:23 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

--- Comment #4 from Jan <jan at jki dot io> ---
Sorry bad wording on my site. I meant the code is getting slower with znver2.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit
  2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
                   ` (3 preceding siblings ...)
  2020-05-30 10:23 ` jan at jki dot io
@ 2020-05-30 16:43 ` amonakov at gcc dot gnu.org
  2020-06-01  9:27 ` marxin at gcc dot gnu.org
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: amonakov at gcc dot gnu.org @ 2020-05-30 16:43 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

Alexander Monakov <amonakov at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |amonakov at gcc dot gnu.org

--- Comment #5 from Alexander Monakov <amonakov at gcc dot gnu.org> ---
Ugh. Stringop tuning for Ryzens is terribly anachronistic, all AMD processors
since K8 (!!) use the exact same tables, and 32-bit memset/memcpy don't use
libcall for large sizes:

static stringop_algs znver2_memcpy[2] = {
  {libcall, {{6, loop, false}, {14, unrolled_loop, false},
             {-1, rep_prefix_4_byte, false}}},
  {libcall, {{16, loop, false}, {64, rep_prefix_4_byte, false},
             {-1, libcall, false}}}};

(first subarray is 32-bit tuning, the second is for 64-bit)

Using test_stringop microbenchmark from PR43052 it's easy to see that library
memset/memcpy are fastest on sizes 256 and above. Below that, the result from
the microbenchmark may be debatable, I think we should prefer the libcall
almost always except for tiniest sizes for I-cache locality reasons.

But anyway, current tuning is completely inappropriate.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit
  2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
                   ` (4 preceding siblings ...)
  2020-05-30 16:43 ` amonakov at gcc dot gnu.org
@ 2020-06-01  9:27 ` marxin at gcc dot gnu.org
  2020-06-01  9:33 ` marxin at gcc dot gnu.org
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: marxin at gcc dot gnu.org @ 2020-06-01  9:27 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |marxin at gcc dot gnu.org
   Last reconfirmed|                            |2020-06-01
           Assignee|unassigned at gcc dot gnu.org      |marxin at gcc dot gnu.org
             Status|UNCONFIRMED                 |ASSIGNED
     Ever confirmed|0                           |1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit
  2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
                   ` (5 preceding siblings ...)
  2020-06-01  9:27 ` marxin at gcc dot gnu.org
@ 2020-06-01  9:33 ` marxin at gcc dot gnu.org
  2020-06-01  9:48 ` ubizjak at gmail dot com
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: marxin at gcc dot gnu.org @ 2020-06-01  9:33 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

--- Comment #6 from Martin Liška <marxin at gcc dot gnu.org> ---
All right, there are results for a micro-benchmark that we have in contrib
folder:

ZNVER1 (AMD Ryzen 7 2700X):

64-bit:

contrib/bench-stringop 64 320000000 gcc -march=znver1
memcpy
  block size  libcall rep1    noalg   rep4    noalg   rep8    noalg   loop   
noalg   unrl    noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.06
0:00.07 0:00.06 0:00.07 0:00.05 0:00.06 0:00.17 0:00.05 0:00.05    0:00.05
libcall
      819200  0:00.04 0:00.06 0:00.06 0:00.06 0:00.06 0:00.06 0:00.06 0:00.04
0:00.05 0:00.04 0:00.05 0:00.04 0:00.04 0:00.15 0:00.04 0:00.04    0:00.04
libcall
       81920  0:00.02 0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.02
0:00.04 0:00.02 0:00.04 0:00.02 0:00.03 0:00.16 0:00.02 0:00.01    0:00.02
libcall
       20480  0:00.01 0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.03
0:00.04 0:00.03 0:00.04 0:00.02 0:00.03 0:00.32 0:00.02 0:00.01    0:00.01
libcall
        8192  0:00.02 0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.03
0:00.04 0:00.02 0:00.04 0:00.02 0:00.03 0:00.16 0:00.02 0:00.02    0:00.02
libcall
        4096  0:00.02 0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.02
0:00.04 0:00.03 0:00.04 0:00.02 0:00.03 0:00.16 0:00.05 0:00.05    0:00.02
libcall
        2048  0:00.02 0:00.07 0:00.07 0:00.07 0:00.07 0:00.06 0:00.07 0:00.03
0:00.05 0:00.03 0:00.05 0:00.03 0:00.03 0:00.17 0:00.06 0:00.06    0:00.02
libcall
        1024  0:00.03 0:00.09 0:00.09 0:00.08 0:00.09 0:00.08 0:00.08 0:00.04
0:00.05 0:00.03 0:00.05 0:00.04 0:00.04 0:00.18 0:00.08 0:00.08    0:00.03
libcall
         512  0:00.03 0:00.12 0:00.12 0:00.10 0:00.11 0:00.08 0:00.09 0:00.05
0:00.06 0:00.04 0:00.05 0:00.05 0:00.05 0:00.19 0:00.08 0:00.08    0:00.03
libcall
         256  0:00.04 0:00.19 0:00.19 0:00.14 0:00.14 0:00.06 0:00.06 0:00.06
0:00.07 0:00.05 0:00.06 0:00.08 0:00.08 0:00.21 0:00.05 0:00.05    0:00.04
libcall
         128  0:00.08 0:00.29 0:00.29 0:00.10 0:00.10 0:00.08 0:00.08 0:00.09
0:00.09 0:00.09 0:00.09 0:00.14 0:00.11 0:00.24 0:00.08 0:00.08    0:00.08
libcall
          64  0:00.15 0:00.39 0:00.39 0:00.15 0:00.14 0:00.14 0:00.14 0:00.15
0:00.16 0:00.17 0:00.18 0:00.24 0:00.20 0:00.30 0:00.14 0:00.14    0:00.14
rep4noalign
          48  0:00.19 0:00.41 0:00.41 0:00.18 0:00.18 0:00.18 0:00.18 0:00.18
0:00.19 0:00.22 0:00.23 0:00.32 0:00.29 0:00.34 0:00.18 0:00.18    0:00.18 loop
          32  0:00.32 0:00.34 0:00.34 0:00.26 0:00.25 0:00.27 0:00.26 0:00.30
0:00.33 0:00.37 0:00.40 0:00.37 0:00.37 0:00.37 0:00.27 0:00.27    0:00.25
rep4noalign
          24  0:00.40 0:00.40 0:00.39 0:00.33 0:00.32 0:00.34 0:00.33 0:00.36
0:00.40 0:00.50 0:00.53 0:00.52 0:00.52 0:00.43 0:00.34 0:00.34    0:00.32
rep4noalign
          16  0:00.67 0:00.51 0:00.51 0:00.48 0:00.46 0:00.55 0:00.51 0:00.67
0:00.77 0:00.91 0:00.91 0:00.52 0:00.52 0:00.52 0:00.67 0:00.70    0:00.46
rep4noalign
          14  0:00.66 0:00.58 0:00.58 0:00.52 0:00.51 0:00.56 0:00.54 0:00.64
0:00.72 0:00.92 0:00.93 0:00.62 0:00.63 0:00.62 0:00.60 0:00.61    0:00.51
rep4noalign
          12  0:00.85 0:00.64 0:00.64 0:00.62 0:00.61 0:00.66 0:00.66 0:00.82
0:00.93 0:01.11 0:01.11 0:00.69 0:00.70 0:00.64 0:00.78 0:00.81    0:00.61
rep4noalign
          10  0:00.86 0:00.75 0:00.75 0:00.70 0:00.69 0:00.78 0:00.74 0:00.92
0:00.98 0:01.17 0:01.18 0:00.75 0:00.75 0:00.68 0:00.91 0:00.92    0:00.68 byte
           8  0:01.19 0:00.92 0:00.92 0:00.95 0:00.93 0:01.25 0:01.13 0:01.57
0:01.62 0:01.72 0:01.73 0:00.92 0:00.92 0:00.92 0:01.59 0:01.59    0:00.92 byte
           6  0:01.20 0:01.20 0:01.19 0:01.08 0:01.06 0:01.37 0:01.22 0:01.46
0:01.54 0:01.57 0:01.54 0:01.07 0:01.07 0:01.05 0:01.46 0:01.46    0:01.05 byte
           4  0:02.06 0:01.75 0:01.74 0:02.01 0:01.99 0:03.29 0:03.30 0:03.30
0:03.29 0:03.26 0:03.30 0:02.15 0:02.16 0:02.16 0:03.31 0:02.15    0:01.74
rep1noalign
           1  0:01.49 0:05.41 0:05.43 0:00.58 0:00.58 0:00.58 0:00.58 0:00.58
0:00.58 0:00.58 0:00.58 0:00.73 0:00.72 0:00.72 0:00.48 0:00.73    0:00.58 loop
Aligned
  block size  libcall rep1    noalg   rep4    noalg   rep8    noalg   loop   
noalg   unrl    noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.08 0:00.10 0:00.10 0:00.10 0:00.10 0:00.10 0:00.10 0:00.10
0:00.10 0:00.10 0:00.10 0:00.09 0:00.09 0:00.20 0:00.08 0:00.09    0:00.08
libcall
      819200  0:00.04 0:00.06 0:00.06 0:00.06 0:00.06 0:00.06 0:00.06 0:00.04
0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.16 0:00.04 0:00.04    0:00.04
libcall
       81920  0:00.02 0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.03
0:00.03 0:00.02 0:00.02 0:00.02 0:00.02 0:00.16 0:00.02 0:00.02    0:00.02
libcall
       20480  0:00.01 0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.03
0:00.03 0:00.03 0:00.02 0:00.02 0:00.02 0:00.33 0:00.02 0:00.02    0:00.01
libcall
        8192  0:00.02 0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.04
0:00.04 0:00.03 0:00.03 0:00.02 0:00.02 0:00.17 0:00.02 0:00.02    0:00.02
libcall
        4096  0:00.02 0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.04
0:00.04 0:00.03 0:00.03 0:00.02 0:00.02 0:00.16 0:00.05 0:00.05    0:00.02
libcall
        2048  0:00.02 0:00.07 0:00.07 0:00.07 0:00.07 0:00.06 0:00.06 0:00.05
0:00.05 0:00.03 0:00.03 0:00.03 0:00.03 0:00.18 0:00.06 0:00.07    0:00.02
libcall
        1024  0:00.03 0:00.07 0:00.07 0:00.07 0:00.07 0:00.07 0:00.06 0:00.06
0:00.06 0:00.04 0:00.04 0:00.04 0:00.04 0:00.18 0:00.06 0:00.07    0:00.03
libcall
         512  0:00.05 0:00.11 0:00.11 0:00.10 0:00.10 0:00.08 0:00.08 0:00.08
0:00.08 0:00.06 0:00.06 0:00.07 0:00.07 0:00.20 0:00.08 0:00.08    0:00.05
libcall
         256  0:00.07 0:00.15 0:00.15 0:00.13 0:00.12 0:00.07 0:00.07 0:00.09
0:00.08 0:00.07 0:00.07 0:00.10 0:00.10 0:00.22 0:00.07 0:00.07    0:00.07
libcall
         128  0:00.09 0:00.21 0:00.21 0:00.11 0:00.12 0:00.10 0:00.11 0:00.11
0:00.11 0:00.10 0:00.10 0:00.15 0:00.15 0:00.25 0:00.10 0:00.11    0:00.09
libcall
          64  0:00.15 0:00.33 0:00.33 0:00.17 0:00.17 0:00.20 0:00.20 0:00.18
0:00.18 0:00.16 0:00.16 0:00.21 0:00.27 0:00.30 0:00.17 0:00.20    0:00.15
libcall
          48  0:00.19 0:00.39 0:00.39 0:00.21 0:00.21 0:00.20 0:00.20 0:00.19
0:00.19 0:00.19 0:00.19 0:00.32 0:00.31 0:00.35 0:00.20 0:00.20    0:00.19
libcall
          32  0:00.27 0:00.37 0:00.37 0:00.29 0:00.28 0:00.33 0:00.33 0:00.29
0:00.29 0:00.28 0:00.28 0:00.39 0:00.39 0:00.39 0:00.29 0:00.33    0:00.27
libcall
          24  0:00.35 0:00.46 0:00.46 0:00.38 0:00.38 0:00.37 0:00.37 0:00.34
0:00.34 0:00.36 0:00.36 0:00.54 0:00.54 0:00.44 0:00.36 0:00.37    0:00.34 loop
          16  0:00.47 0:00.58 0:00.58 0:00.51 0:00.51 0:00.55 0:00.55 0:00.50
0:00.51 0:00.51 0:00.50 0:00.55 0:00.56 0:00.56 0:00.48 0:00.50    0:00.47
libcall
          14  0:00.52 0:00.67 0:00.67 0:00.59 0:00.59 0:00.58 0:00.58 0:00.53
0:00.53 0:00.55 0:00.55 0:00.68 0:00.68 0:00.68 0:00.52 0:00.53    0:00.52
libcall
          12  0:00.60 0:00.75 0:00.75 0:00.66 0:00.66 0:00.65 0:00.65 0:00.62
0:00.62 0:00.62 0:00.62 0:00.73 0:00.73 0:00.67 0:00.61 0:00.62    0:00.60
libcall
          10  0:00.72 0:00.86 0:00.86 0:00.82 0:00.82 0:00.81 0:00.80 0:00.73
0:00.73 0:00.76 0:00.76 0:00.90 0:00.90 0:00.81 0:00.74 0:00.73    0:00.72
libcall
           8  0:00.79 0:00.99 0:00.98 0:00.86 0:00.86 0:00.89 0:00.89 0:00.86
0:00.86 0:00.85 0:00.85 0:00.91 0:00.90 0:00.91 0:00.86 0:00.86    0:00.79
libcall
           6  0:01.03 0:01.30 0:01.28 0:01.09 0:01.09 0:01.21 0:01.20 0:01.17
0:01.17 0:01.17 0:01.18 0:01.16 0:01.17 0:01.15 0:01.17 0:01.16    0:01.03
libcall
           4  0:01.39 0:01.68 0:01.68 0:01.39 0:01.39 0:01.50 0:01.50 0:01.50
0:01.51 0:01.51 0:01.50 0:01.48 0:01.49 0:01.49 0:01.55 0:01.48    0:01.39
libcall
           1  0:02.94 0:04.18 0:04.18 0:02.55 0:02.58 0:02.55 0:02.55 0:02.56
0:02.54 0:02.54 0:02.55 0:02.56 0:02.54 0:02.55 0:02.56 0:02.55    0:02.54
loopnoalign
memset
  block size  libcall rep1    noalg   rep4    noalg   rep8    noalg   loop   
noalg   unrl    noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.02 0:00.03 0:00.03 0:00.03 0:00.03 0:00.03 0:00.03 0:00.05
0:00.04 0:00.03 0:00.04 0:00.03 0:00.04 0:00.16 0:00.02 0:00.02    0:00.02
libcall
      819200  0:00.05 0:00.04 0:00.04 0:00.04 0:00.05 0:00.04 0:00.05 0:00.06
0:00.06 0:00.05 0:00.06 0:00.06 0:00.06 0:00.16 0:00.05 0:00.05    0:00.04 rep1
       81920  0:00.01 0:00.01 0:00.01 0:00.01 0:00.02 0:00.01 0:00.02 0:00.04
0:00.03 0:00.02 0:00.03 0:00.02 0:00.03 0:00.15 0:00.01 0:00.01    0:00.01
libcall
       20480  0:00.01 0:00.01 0:00.01 0:00.02 0:00.02 0:00.01 0:00.02 0:00.02
0:00.04 0:00.02 0:00.03 0:00.02 0:00.03 0:00.16 0:00.01 0:00.01    0:00.01
libcall
        8192  0:00.01 0:00.01 0:00.01 0:00.01 0:00.02 0:00.01 0:00.02 0:00.02
0:00.03 0:00.02 0:00.03 0:00.02 0:00.03 0:00.15 0:00.01 0:00.01    0:00.01
libcall
        4096  0:00.01 0:00.02 0:00.02 0:00.02 0:00.03 0:00.02 0:00.02 0:00.02
0:00.03 0:00.02 0:00.03 0:00.02 0:00.03 0:00.15 0:00.02 0:00.02    0:00.01
libcall
        2048  0:00.01 0:00.02 0:00.02 0:00.02 0:00.03 0:00.02 0:00.03 0:00.02
0:00.03 0:00.02 0:00.03 0:00.03 0:00.03 0:00.16 0:00.02 0:00.02    0:00.01
libcall
        1024  0:00.02 0:00.03 0:00.03 0:00.03 0:00.03 0:00.03 0:00.03 0:00.03
0:00.03 0:00.03 0:00.03 0:00.03 0:00.03 0:00.16 0:00.03 0:00.03    0:00.02
libcall
         512  0:00.02 0:00.06 0:00.05 0:00.04 0:00.05 0:00.04 0:00.04 0:00.04
0:00.04 0:00.03 0:00.04 0:00.03 0:00.04 0:00.17 0:00.04 0:00.04    0:00.02
libcall
         256  0:00.04 0:00.09 0:00.09 0:00.07 0:00.07 0:00.04 0:00.04 0:00.05
0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.18 0:00.04 0:00.04    0:00.04
libcall
         128  0:00.07 0:00.15 0:00.16 0:00.08 0:00.08 0:00.06 0:00.07 0:00.08
0:00.07 0:00.06 0:00.06 0:00.06 0:00.06 0:00.21 0:00.06 0:00.06    0:00.06 rep8
          64  0:00.15 0:00.25 0:00.25 0:00.12 0:00.11 0:00.13 0:00.14 0:00.13
0:00.14 0:00.13 0:00.13 0:00.13 0:00.13 0:00.25 0:00.13 0:00.13    0:00.11
rep4noalign
          48  0:00.20 0:00.29 0:00.29 0:00.14 0:00.14 0:00.16 0:00.18 0:00.17
0:00.19 0:00.17 0:00.16 0:00.17 0:00.17 0:00.28 0:00.16 0:00.17    0:00.14 rep4
          32  0:00.42 0:00.27 0:00.27 0:00.20 0:00.22 0:00.27 0:00.33 0:00.29
0:00.35 0:00.28 0:00.28 0:00.28 0:00.29 0:00.32 0:00.28 0:00.28    0:00.20 rep4
          24  0:00.57 0:00.33 0:00.33 0:00.25 0:00.27 0:00.44 0:00.54 0:00.47
0:00.57 0:00.44 0:00.43 0:00.44 0:00.43 0:00.34 0:00.42 0:00.43    0:00.25 rep4
          16  0:00.99 0:00.40 0:00.39 0:00.42 0:00.52 0:00.91 0:01.02 0:00.90
0:01.03 0:00.93 0:00.93 0:00.93 0:00.93 0:00.42 0:00.91 0:00.92    0:00.39
rep1noalign
          14  0:01.14 0:00.47 0:00.47 0:00.50 0:00.62 0:01.10 0:01.22 0:01.09
0:01.22 0:01.10 0:01.10 0:01.10 0:01.10 0:00.45 0:01.10 0:01.10    0:00.45 byte
          12  0:01.27 0:00.51 0:00.52 0:00.74 0:00.96 0:01.31 0:01.39 0:01.31
0:01.40 0:01.33 0:01.32 0:01.32 0:01.32 0:00.50 0:01.32 0:01.33    0:00.50 byte
          10  0:01.45 0:00.59 0:00.59 0:01.12 0:01.40 0:01.53 0:01.60 0:01.53
0:01.60 0:01.55 0:01.55 0:01.55 0:01.53 0:00.56 0:01.55 0:01.54    0:00.56 byte
           8  0:01.73 0:00.67 0:00.67 0:01.66 0:01.82 0:01.83 0:01.85 0:01.83
0:01.85 0:01.83 0:01.83 0:01.83 0:01.83 0:00.65 0:01.82 0:01.83    0:00.65 byte
           6  0:02.15 0:00.86 0:00.86 0:02.21 0:02.34 0:02.36 0:02.40 0:02.35
0:02.39 0:02.37 0:02.38 0:02.38 0:02.38 0:00.86 0:02.37 0:02.37    0:00.86 byte
           4  0:02.83 0:01.79 0:01.79 0:02.98 0:02.99 0:02.99 0:02.98 0:02.99
0:02.99 0:02.99 0:02.99 0:02.99 0:02.99 0:02.17 0:02.97 0:02.17    0:01.79 rep1
           1  0:01.78 0:02.88 0:02.88 0:00.58 0:00.58 0:00.58 0:00.59 0:00.58
0:00.59 0:00.58 0:00.58 0:00.59 0:00.58 0:00.58 0:00.43 0:00.58    0:00.58 byte
Aligned
  block size  libcall rep1    noalg   rep4    noalg   rep8    noalg   loop   
noalg   unrl    noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.08 0:00.08 0:00.08 0:00.08 0:00.08 0:00.08 0:00.08 0:00.08
0:00.09 0:00.08 0:00.08 0:00.08 0:00.09 0:00.19 0:00.08 0:00.08    0:00.08
libcall
      819200  0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.06
0:00.06 0:00.06 0:00.06 0:00.06 0:00.06 0:00.16 0:00.05 0:00.05    0:00.05
libcall
       81920  0:00.01 0:00.01 0:00.01 0:00.01 0:00.01 0:00.01 0:00.02 0:00.02
0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.16 0:00.01 0:00.01    0:00.01
libcall
       20480  0:00.01 0:00.01 0:00.01 0:00.01 0:00.02 0:00.02 0:00.01 0:00.04
0:00.04 0:00.02 0:00.02 0:00.02 0:00.02 0:00.16 0:00.01 0:00.02    0:00.01
libcall
        8192  0:00.01 0:00.02 0:00.02 0:00.01 0:00.02 0:00.01 0:00.02 0:00.03
0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.15 0:00.02 0:00.02    0:00.01
libcall
        4096  0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.03
0:00.03 0:00.02 0:00.02 0:00.02 0:00.02 0:00.16 0:00.02 0:00.02    0:00.02
libcall
        2048  0:00.02 0:00.03 0:00.03 0:00.03 0:00.03 0:00.02 0:00.03 0:00.03
0:00.03 0:00.03 0:00.03 0:00.03 0:00.03 0:00.16 0:00.02 0:00.02    0:00.02
libcall
        1024  0:00.03 0:00.05 0:00.05 0:00.04 0:00.04 0:00.04 0:00.04 0:00.04
0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.17 0:00.04 0:00.04    0:00.03
libcall
         512  0:00.04 0:00.08 0:00.07 0:00.07 0:00.07 0:00.06 0:00.06 0:00.06
0:00.06 0:00.05 0:00.05 0:00.05 0:00.05 0:00.20 0:00.06 0:00.06    0:00.04
libcall
         256  0:00.06 0:00.11 0:00.11 0:00.09 0:00.09 0:00.07 0:00.07 0:00.07
0:00.07 0:00.06 0:00.06 0:00.06 0:00.06 0:00.21 0:00.07 0:00.07    0:00.06
libcall
         128  0:00.09 0:00.17 0:00.17 0:00.11 0:00.11 0:00.10 0:00.10 0:00.11
0:00.10 0:00.09 0:00.09 0:00.09 0:00.09 0:00.23 0:00.10 0:00.10    0:00.09
libcall
          64  0:00.14 0:00.26 0:00.26 0:00.15 0:00.16 0:00.18 0:00.18 0:00.19
0:00.19 0:00.15 0:00.15 0:00.15 0:00.15 0:00.29 0:00.18 0:00.18    0:00.14
libcall
          48  0:00.17 0:00.31 0:00.31 0:00.20 0:00.20 0:00.20 0:00.20 0:00.17
0:00.17 0:00.17 0:00.17 0:00.17 0:00.17 0:00.31 0:00.17 0:00.17    0:00.17
libcall
          32  0:00.24 0:00.36 0:00.36 0:00.27 0:00.27 0:00.25 0:00.25 0:00.26
0:00.26 0:00.23 0:00.24 0:00.23 0:00.23 0:00.37 0:00.24 0:00.23    0:00.23 sse
          24  0:00.30 0:00.45 0:00.44 0:00.34 0:00.35 0:00.30 0:00.30 0:00.29
0:00.29 0:00.30 0:00.30 0:00.30 0:00.30 0:00.42 0:00.30 0:00.30    0:00.29 loop
          16  0:00.42 0:00.56 0:00.56 0:00.46 0:00.46 0:00.41 0:00.41 0:00.40
0:00.40 0:00.41 0:00.41 0:00.41 0:00.41 0:00.54 0:00.41 0:00.41    0:00.40 loop
          14  0:00.46 0:00.64 0:00.65 0:00.51 0:00.51 0:00.46 0:00.46 0:00.44
0:00.44 0:00.46 0:00.45 0:00.45 0:00.45 0:00.59 0:00.46 0:00.45    0:00.44 loop
          12  0:00.54 0:00.71 0:00.71 0:00.59 0:00.59 0:00.52 0:00.52 0:00.50
0:00.50 0:00.52 0:00.52 0:00.52 0:00.52 0:00.66 0:00.52 0:00.52    0:00.50 loop
          10  0:00.63 0:00.91 0:00.91 0:00.67 0:00.67 0:00.59 0:00.58 0:00.57
0:00.57 0:00.59 0:00.59 0:00.59 0:00.59 0:00.79 0:00.59 0:00.59    0:00.57 loop
           8  0:00.75 0:00.89 0:00.89 0:00.75 0:00.76 0:00.69 0:00.69 0:00.68
0:00.68 0:00.68 0:00.68 0:00.68 0:00.68 0:00.85 0:00.69 0:00.68    0:00.68 loop
           6  0:00.98 0:01.24 0:01.24 0:00.99 0:00.99 0:00.90 0:00.90 0:00.89
0:00.89 0:00.90 0:00.90 0:00.90 0:00.90 0:01.11 0:00.90 0:00.91    0:00.89 loop
           4  0:01.32 0:01.44 0:01.45 0:01.28 0:01.28 0:01.22 0:01.22 0:01.23
0:01.23 0:01.22 0:01.23 0:01.23 0:01.23 0:01.37 0:01.22 0:01.38    0:01.22 rep8
           1  0:03.11 0:03.01 0:03.01 0:02.52 0:02.52 0:02.52 0:02.54 0:02.52
0:02.50 0:02.50 0:02.52 0:02.50 0:02.52 0:02.52 0:02.49 0:02.50    0:02.50
loopnoalign

32-bit:

contrib/bench-stringop 32 320000000 gcc -march=znver1
memcpy
  block size  libcall rep1    noalg   rep4    noalg   loop    noalg   unrl   
noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.04 0:00.05 0:00.05 0:00.05 0:00.05 0:00.08 0:00.08 0:00.07
0:00.09 0:00.06 0:00.06 0:00.23 0:00.05 0:00.05    0:00.04 libcall
      819200  0:00.02 0:00.06 0:00.06 0:00.06 0:00.06 0:00.06 0:00.06 0:00.06
0:00.08 0:00.04 0:00.04 0:00.22 0:00.06 0:00.06    0:00.02 libcall
       81920  0:00.02 0:00.04 0:00.04 0:00.04 0:00.04 0:00.05 0:00.05 0:00.05
0:00.08 0:00.02 0:00.03 0:00.23 0:00.04 0:00.04    0:00.02 libcall
       20480  0:00.02 0:00.04 0:00.04 0:00.04 0:00.04 0:00.08 0:00.06 0:00.05
0:00.08 0:00.02 0:00.03 0:00.23 0:00.04 0:00.04    0:00.02 libcall
        8192  0:00.02 0:00.04 0:00.04 0:00.04 0:00.04 0:00.06 0:00.05 0:00.04
0:00.07 0:00.02 0:00.03 0:00.21 0:00.04 0:00.04    0:00.02 libcall
        4096  0:00.02 0:00.05 0:00.05 0:00.05 0:00.05 0:00.06 0:00.06 0:00.04
0:00.07 0:00.02 0:00.03 0:00.22 0:00.05 0:00.05    0:00.02 libcall
        2048  0:00.02 0:00.07 0:00.07 0:00.07 0:00.07 0:00.06 0:00.06 0:00.05
0:00.07 0:00.03 0:00.03 0:00.22 0:00.07 0:00.07    0:00.02 libcall
        1024  0:00.03 0:00.09 0:00.09 0:00.08 0:00.09 0:00.07 0:00.07 0:00.05
0:00.08 0:00.04 0:00.04 0:00.22 0:00.08 0:00.08    0:00.03 libcall
         512  0:00.04 0:00.12 0:00.12 0:00.11 0:00.11 0:00.08 0:00.08 0:00.06
0:00.08 0:00.06 0:00.05 0:00.23 0:00.11 0:00.11    0:00.04 libcall
         256  0:00.05 0:00.19 0:00.19 0:00.14 0:00.15 0:00.09 0:00.09 0:00.07
0:00.09 0:00.09 0:00.08 0:00.25 0:00.14 0:00.14    0:00.05 libcall
         128  0:00.09 0:00.29 0:00.29 0:00.11 0:00.10 0:00.12 0:00.12 0:00.10
0:00.11 0:00.15 0:00.12 0:00.27 0:00.10 0:00.11    0:00.09 libcall
          64  0:00.15 0:00.39 0:00.39 0:00.15 0:00.15 0:00.16 0:00.16 0:00.15
0:00.16 0:00.25 0:00.21 0:00.31 0:00.15 0:00.15    0:00.15 libcall
          48  0:00.20 0:00.41 0:00.41 0:00.18 0:00.19 0:00.21 0:00.18 0:00.19
0:00.19 0:00.27 0:00.26 0:00.34 0:00.19 0:00.18    0:00.18 loopnoalign
          32  0:00.28 0:00.33 0:00.33 0:00.27 0:00.25 0:00.28 0:00.28 0:00.28
0:00.29 0:00.38 0:00.38 0:00.38 0:00.26 0:00.27    0:00.25 rep4noalign
          24  0:00.35 0:00.40 0:00.40 0:00.33 0:00.34 0:00.34 0:00.34 0:00.34
0:00.35 0:00.45 0:00.45 0:00.44 0:00.34 0:00.33    0:00.33 rep4
          16  0:00.50 0:00.50 0:00.50 0:00.50 0:00.47 0:00.55 0:00.59 0:00.60
0:00.62 0:00.53 0:00.53 0:00.54 0:00.49 0:00.50    0:00.47 rep4noalign
          14  0:00.58 0:00.58 0:00.58 0:00.52 0:00.53 0:00.54 0:00.55 0:00.55
0:00.61 0:00.57 0:00.57 0:00.57 0:00.56 0:00.55    0:00.52 rep4
          12  0:00.66 0:00.66 0:00.66 0:00.61 0:00.63 0:00.65 0:00.70 0:00.68
0:00.76 0:00.64 0:00.64 0:00.64 0:00.70 0:00.67    0:00.61 rep4
          10  0:00.78 0:00.76 0:00.76 0:00.70 0:00.70 0:00.73 0:00.75 0:00.76
0:00.84 0:00.68 0:00.68 0:00.68 0:00.79 0:00.77    0:00.68 byte
           8  0:00.95 0:00.91 0:00.91 0:00.96 0:00.94 0:01.28 0:01.37 0:01.37
0:01.52 0:00.95 0:00.93 0:00.93 0:01.27 0:01.40    0:00.91 rep1
           6  0:01.26 0:01.19 0:01.19 0:01.07 0:01.08 0:01.15 0:01.24 0:01.18
0:01.36 0:01.04 0:01.04 0:01.05 0:01.14 0:01.17    0:01.04 sse
           4  0:01.74 0:01.73 0:01.73 0:02.01 0:02.06 0:02.90 0:03.05 0:03.36
0:03.40 0:02.29 0:02.29 0:02.28 0:02.57 0:02.29    0:01.73 rep1
           1  0:02.30 0:05.35 0:05.34 0:00.58 0:00.58 0:00.58 0:00.58 0:00.58
0:00.58 0:00.77 0:00.77 0:00.78 0:00.73 0:00.77    0:00.58 loop
Aligned
  block size  libcall rep1    noalg   rep4    noalg   loop    noalg   unrl   
noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.05 0:00.06 0:00.06 0:00.06 0:00.06 0:00.08 0:00.08 0:00.07
0:00.08 0:00.06 0:00.06 0:00.24 0:00.06 0:00.06    0:00.05 libcall
      819200  0:00.03 0:00.06 0:00.06 0:00.06 0:00.06 0:00.06 0:00.07 0:00.06
0:00.06 0:00.04 0:00.04 0:00.22 0:00.06 0:00.06    0:00.03 libcall
       81920  0:00.02 0:00.04 0:00.04 0:00.04 0:00.04 0:00.06 0:00.06 0:00.05
0:00.05 0:00.02 0:00.02 0:00.23 0:00.04 0:00.04    0:00.02 libcall
       20480  0:00.02 0:00.04 0:00.04 0:00.04 0:00.04 0:00.06 0:00.06 0:00.04
0:00.04 0:00.02 0:00.02 0:00.22 0:00.04 0:00.04    0:00.02 libcall
        8192  0:00.02 0:00.04 0:00.04 0:00.04 0:00.04 0:00.06 0:00.06 0:00.04
0:00.04 0:00.02 0:00.02 0:00.22 0:00.04 0:00.04    0:00.02 libcall
        4096  0:00.02 0:00.05 0:00.05 0:00.05 0:00.05 0:00.06 0:00.06 0:00.04
0:00.04 0:00.02 0:00.03 0:00.22 0:00.05 0:00.05    0:00.02 libcall
        2048  0:00.03 0:00.07 0:00.07 0:00.07 0:00.07 0:00.06 0:00.06 0:00.05
0:00.05 0:00.03 0:00.03 0:00.22 0:00.07 0:00.07    0:00.03 libcall
        1024  0:00.03 0:00.10 0:00.10 0:00.10 0:00.10 0:00.07 0:00.07 0:00.06
0:00.06 0:00.04 0:00.04 0:00.23 0:00.10 0:00.10    0:00.03 libcall
         512  0:00.05 0:00.15 0:00.15 0:00.13 0:00.13 0:00.08 0:00.08 0:00.07
0:00.07 0:00.06 0:00.06 0:00.24 0:00.13 0:00.13    0:00.05 libcall
         256  0:00.06 0:00.24 0:00.24 0:00.17 0:00.17 0:00.10 0:00.10 0:00.09
0:00.08 0:00.09 0:00.08 0:00.25 0:00.17 0:00.17    0:00.06 libcall
         128  0:00.10 0:00.35 0:00.35 0:00.11 0:00.11 0:00.13 0:00.13 0:00.12
0:00.12 0:00.14 0:00.14 0:00.28 0:00.11 0:00.11    0:00.10 libcall
          64  0:00.18 0:00.49 0:00.49 0:00.17 0:00.17 0:00.18 0:00.18 0:00.18
0:00.18 0:00.24 0:00.24 0:00.33 0:00.17 0:00.17    0:00.17 rep4
          48  0:00.23 0:00.51 0:00.51 0:00.21 0:00.22 0:00.22 0:00.22 0:00.22
0:00.22 0:00.30 0:00.28 0:00.38 0:00.22 0:00.22    0:00.21 rep4
          32  0:00.31 0:00.37 0:00.37 0:00.30 0:00.30 0:00.32 0:00.32 0:00.32
0:00.32 0:00.43 0:00.43 0:00.43 0:00.30 0:00.30    0:00.30 rep4
          24  0:00.38 0:00.44 0:00.44 0:00.39 0:00.39 0:00.38 0:00.38 0:00.38
0:00.38 0:00.48 0:00.48 0:00.48 0:00.38 0:00.39    0:00.38 libcall
          16  0:00.56 0:00.62 0:00.62 0:00.58 0:00.58 0:00.69 0:00.69 0:00.70
0:00.70 0:00.66 0:00.65 0:00.65 0:00.57 0:00.58    0:00.56 libcall
          14  0:00.65 0:00.68 0:00.68 0:00.62 0:00.62 0:00.62 0:00.62 0:00.65
0:00.65 0:00.65 0:00.65 0:00.65 0:00.62 0:00.65    0:00.62 loop
          12  0:00.74 0:00.76 0:00.76 0:00.74 0:00.73 0:00.76 0:00.76 0:00.78
0:00.78 0:00.75 0:00.75 0:00.74 0:00.74 0:00.78    0:00.73 rep4noalign
          10  0:00.88 0:00.90 0:00.90 0:00.82 0:00.82 0:00.84 0:00.84 0:00.87
0:00.88 0:00.81 0:00.81 0:00.81 0:00.82 0:00.88    0:00.81 byte
           8  0:01.07 0:01.08 0:01.08 0:01.10 0:01.10 0:01.31 0:01.32 0:01.35
0:01.36 0:01.05 0:01.05 0:01.04 0:01.12 0:01.36    0:01.04 byte
           6  0:01.45 0:01.47 0:01.45 0:01.31 0:01.31 0:01.31 0:01.32 0:01.36
0:01.38 0:01.23 0:01.24 0:01.25 0:01.31 0:01.32    0:01.23 sse
           4  0:01.97 0:02.09 0:02.08 0:02.11 0:02.11 0:02.58 0:02.57 0:02.80
0:02.80 0:02.14 0:02.13 0:02.15 0:02.35 0:02.13    0:01.97 libcall
           1  0:02.55 0:06.00 0:06.04 0:01.48 0:01.47 0:01.48 0:01.51 0:01.48
0:01.56 0:01.54 0:01.57 0:01.53 0:01.54 0:01.53    0:01.47 rep4noalign
memset
  block size  libcall rep1    noalg   rep4    noalg   loop    noalg   unrl   
noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.02 0:00.03 0:00.03 0:00.03 0:00.03 0:00.05 0:00.08 0:00.05
0:00.06 0:00.05 0:00.06 0:00.16 0:00.02 0:00.02    0:00.02 libcall
      819200  0:00.04 0:00.04 0:00.10 0:00.04 0:00.05 0:00.06 0:00.08 0:00.06
0:00.07 0:00.06 0:00.07 0:00.15 0:00.04 0:00.04    0:00.04 libcall
       81920  0:00.01 0:00.01 0:00.01 0:00.01 0:00.02 0:00.04 0:00.08 0:00.04
0:00.05 0:00.04 0:00.05 0:00.16 0:00.01 0:00.01    0:00.01 libcall
       20480  0:00.01 0:00.01 0:00.01 0:00.01 0:00.02 0:00.04 0:00.05 0:00.04
0:00.05 0:00.04 0:00.05 0:00.32 0:00.01 0:00.01    0:00.01 libcall
        8192  0:00.02 0:00.02 0:00.01 0:00.02 0:00.02 0:00.09 0:00.05 0:00.04
0:00.05 0:00.04 0:00.05 0:00.15 0:00.01 0:00.01    0:00.01 rep1noalign
        4096  0:00.01 0:00.02 0:00.02 0:00.02 0:00.02 0:00.08 0:00.05 0:00.04
0:00.05 0:00.04 0:00.05 0:00.15 0:00.02 0:00.02    0:00.01 libcall
        2048  0:00.01 0:00.02 0:00.02 0:00.02 0:00.03 0:00.08 0:00.05 0:00.04
0:00.05 0:00.04 0:00.05 0:00.16 0:00.02 0:00.01    0:00.01 libcall
        1024  0:00.02 0:00.03 0:00.03 0:00.03 0:00.03 0:00.08 0:00.05 0:00.05
0:00.05 0:00.05 0:00.05 0:00.16 0:00.03 0:00.03    0:00.02 libcall
         512  0:00.03 0:00.07 0:00.07 0:00.04 0:00.04 0:00.09 0:00.06 0:00.04
0:00.05 0:00.05 0:00.05 0:00.17 0:00.04 0:00.05    0:00.03 libcall
         256  0:00.05 0:00.09 0:00.09 0:00.06 0:00.07 0:00.10 0:00.06 0:00.06
0:00.06 0:00.06 0:00.06 0:00.18 0:00.07 0:00.06    0:00.05 libcall
         128  0:00.08 0:00.16 0:00.16 0:00.08 0:00.08 0:00.11 0:00.09 0:00.07
0:00.08 0:00.07 0:00.08 0:00.22 0:00.08 0:00.08    0:00.07 sse
          64  0:00.13 0:00.25 0:00.24 0:00.12 0:00.12 0:00.12 0:00.12 0:00.11
0:00.11 0:00.11 0:00.11 0:00.26 0:00.11 0:00.12    0:00.11 sse
          48  0:00.17 0:00.29 0:00.29 0:00.14 0:00.14 0:00.14 0:00.15 0:00.14
0:00.14 0:00.14 0:00.14 0:00.41 0:00.14 0:00.14    0:00.14 loop
          32  0:00.24 0:00.27 0:00.27 0:00.20 0:00.22 0:00.21 0:00.23 0:00.20
0:00.22 0:00.21 0:00.22 0:00.31 0:00.20 0:00.20    0:00.20 rep4
          24  0:00.30 0:00.33 0:00.33 0:00.25 0:00.27 0:00.28 0:00.30 0:00.26
0:00.28 0:00.27 0:00.29 0:00.45 0:00.26 0:00.27    0:00.25 rep4
          16  0:00.49 0:00.39 0:00.40 0:00.43 0:00.52 0:00.48 0:00.56 0:00.45
0:00.52 0:00.45 0:00.52 0:00.41 0:00.45 0:00.45    0:00.39 rep1
          14  0:00.58 0:00.46 0:00.46 0:00.47 0:00.61 0:00.57 0:00.72 0:00.53
0:00.64 0:00.53 0:00.64 0:00.51 0:00.52 0:00.54    0:00.46 rep1
          12  0:00.70 0:00.51 0:00.51 0:00.70 0:00.95 0:00.80 0:01.00 0:00.69
0:00.88 0:00.68 0:00.87 0:00.55 0:00.70 0:00.69    0:00.51 rep1
          10  0:00.79 0:00.59 0:00.59 0:01.03 0:01.39 0:01.13 0:01.39 0:00.96
0:01.23 0:01.01 0:01.23 0:00.59 0:01.03 0:01.02    0:00.59 byte
           8  0:00.90 0:00.67 0:00.67 0:01.65 0:01.78 0:01.59 0:01.82 0:01.55
0:01.79 0:01.55 0:01.79 0:00.64 0:01.63 0:01.63    0:00.64 byte
           6  0:01.23 0:00.86 0:00.86 0:02.20 0:02.25 0:02.20 0:02.33 0:02.21
0:02.24 0:02.21 0:02.25 0:00.86 0:02.20 0:02.22    0:00.86 byte
           4  0:01.80 0:01.75 0:01.76 0:02.98 0:03.00 0:02.99 0:02.99 0:02.99
0:02.99 0:02.99 0:02.98 0:02.10 0:02.99 0:02.09    0:01.75 rep1
           1  0:02.45 0:02.90 0:02.88 0:00.49 0:00.48 0:00.48 0:00.48 0:00.48
0:00.48 0:00.48 0:00.49 0:00.53 0:00.58 0:00.53    0:00.48 loop
Aligned
  block size  libcall rep1    noalg   rep4    noalg   loop    noalg   unrl   
noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.03 0:00.04 0:00.04 0:00.04 0:00.04 0:00.09 0:00.09 0:00.06
0:00.06 0:00.06 0:00.06 0:00.17 0:00.03 0:00.03    0:00.03 libcall
      819200  0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.08 0:00.08 0:00.13
0:00.07 0:00.06 0:00.06 0:00.16 0:00.04 0:00.04    0:00.04 libcall
       81920  0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.08 0:00.08 0:00.04
0:00.04 0:00.04 0:00.05 0:00.16 0:00.01 0:00.01    0:00.02 libcall
       20480  0:00.01 0:00.01 0:00.01 0:00.02 0:00.01 0:00.05 0:00.04 0:00.04
0:00.04 0:00.05 0:00.04 0:00.33 0:00.01 0:00.01    0:00.01 libcall
        8192  0:00.01 0:00.02 0:00.02 0:00.02 0:00.02 0:00.04 0:00.04 0:00.04
0:00.04 0:00.04 0:00.04 0:00.16 0:00.01 0:00.02    0:00.01 libcall
        4096  0:00.02 0:00.02 0:00.01 0:00.02 0:00.02 0:00.04 0:00.04 0:00.04
0:00.04 0:00.04 0:00.04 0:00.15 0:00.02 0:00.02    0:00.01 rep1noalign
        2048  0:00.02 0:00.03 0:00.03 0:00.02 0:00.02 0:00.05 0:00.04 0:00.05
0:00.04 0:00.04 0:00.04 0:00.16 0:00.02 0:00.02    0:00.02 libcall
        1024  0:00.03 0:00.04 0:00.04 0:00.04 0:00.04 0:00.05 0:00.05 0:00.05
0:00.05 0:00.05 0:00.05 0:00.16 0:00.04 0:00.04    0:00.03 libcall
         512  0:00.04 0:00.06 0:00.06 0:00.05 0:00.05 0:00.06 0:00.06 0:00.06
0:00.05 0:00.05 0:00.06 0:00.17 0:00.05 0:00.05    0:00.04 libcall
         256  0:00.05 0:00.09 0:00.09 0:00.07 0:00.07 0:00.08 0:00.07 0:00.06
0:00.07 0:00.06 0:00.07 0:00.19 0:00.07 0:00.07    0:00.05 libcall
         128  0:00.09 0:00.16 0:00.16 0:00.08 0:00.08 0:00.10 0:00.09 0:00.09
0:00.08 0:00.08 0:00.08 0:00.22 0:00.08 0:00.09    0:00.08 rep4
          64  0:00.15 0:00.26 0:00.25 0:00.14 0:00.14 0:00.14 0:00.14 0:00.14
0:00.13 0:00.13 0:00.13 0:00.27 0:00.13 0:00.14    0:00.13 sse
          48  0:00.19 0:00.30 0:00.30 0:00.17 0:00.17 0:00.17 0:00.17 0:00.16
0:00.16 0:00.16 0:00.16 0:00.42 0:00.16 0:00.17    0:00.16 sse
          32  0:00.27 0:00.30 0:00.30 0:00.23 0:00.24 0:00.24 0:00.24 0:00.25
0:00.24 0:00.25 0:00.25 0:00.34 0:00.23 0:00.23    0:00.23 rep4
          24  0:00.33 0:00.36 0:00.36 0:00.29 0:00.28 0:00.30 0:00.30 0:00.29
0:00.29 0:00.29 0:00.29 0:00.47 0:00.29 0:00.29    0:00.28 rep4noalign
          16  0:00.52 0:00.48 0:00.48 0:00.51 0:00.51 0:00.54 0:00.54 0:00.52
0:00.53 0:00.53 0:00.53 0:00.48 0:00.51 0:00.52    0:00.48 byte
          14  0:00.62 0:00.53 0:00.53 0:00.52 0:00.52 0:00.61 0:00.61 0:00.56
0:00.56 0:00.56 0:00.56 0:00.51 0:00.50 0:00.56    0:00.51 byte
          12  0:00.74 0:00.59 0:00.59 0:00.69 0:00.69 0:00.80 0:00.79 0:00.72
0:00.72 0:00.72 0:00.72 0:00.62 0:00.59 0:00.72    0:00.59 rep1
          10  0:00.85 0:00.69 0:00.69 0:01.03 0:01.02 0:01.11 0:01.10 0:01.00
0:01.01 0:01.00 0:01.01 0:00.69 0:00.81 0:01.01    0:00.69 byte
           8  0:00.98 0:00.81 0:00.82 0:01.38 0:01.39 0:01.39 0:01.38 0:01.33
0:01.36 0:01.35 0:01.34 0:00.80 0:01.39 0:01.40    0:00.80 byte
           6  0:01.34 0:01.03 0:01.03 0:01.76 0:01.76 0:01.76 0:01.77 0:01.71
0:01.71 0:01.71 0:01.70 0:00.99 0:01.66 0:01.76    0:00.99 byte
           4  0:01.93 0:01.46 0:01.49 0:02.18 0:02.16 0:02.16 0:02.16 0:02.19
0:02.19 0:02.19 0:02.19 0:01.56 0:02.17 0:01.57    0:01.46 rep1
           1  0:02.53 0:02.90 0:02.90 0:01.45 0:01.46 0:01.47 0:01.46 0:01.46
0:01.45 0:01.50 0:01.45 0:01.45 0:01.46 0:01.57    0:01.45 byte

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit
  2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
                   ` (6 preceding siblings ...)
  2020-06-01  9:33 ` marxin at gcc dot gnu.org
@ 2020-06-01  9:48 ` ubizjak at gmail dot com
  2020-06-01 10:24 ` amonakov at gcc dot gnu.org
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: ubizjak at gmail dot com @ 2020-06-01  9:48 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

Uroš Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hjl.tools at gmail dot com

--- Comment #7 from Uroš Bizjak <ubizjak at gmail dot com> ---
I think that stringops (including memcmp) for x86 targets should be retuned for
new glibc, once [1] is approved and committed. Please note that currently
bench-stringop doesn't benchmark memcmp.

[1] https://gcc.gnu.org/pipermail/gcc-patches/2020-May/546919.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit
  2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
                   ` (7 preceding siblings ...)
  2020-06-01  9:48 ` ubizjak at gmail dot com
@ 2020-06-01 10:24 ` amonakov at gcc dot gnu.org
  2020-06-01 10:48 ` ubizjak at gmail dot com
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: amonakov at gcc dot gnu.org @ 2020-06-01 10:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

--- Comment #8 from Alexander Monakov <amonakov at gcc dot gnu.org> ---
There's no tuning tables for memcmp at all, existing structs cover only memset
and memcpy. So as far as I see retuning memset/memcpy doesn't need to wait for
[1], because there's no infrastructure in place for memcmp tuning, and adding
that can be done independently. Updating Ryzen tables would not touch any code
updated by H.J.Lu's patchset at all.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit
  2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
                   ` (8 preceding siblings ...)
  2020-06-01 10:24 ` amonakov at gcc dot gnu.org
@ 2020-06-01 10:48 ` ubizjak at gmail dot com
  2020-06-01 10:58 ` marxin at gcc dot gnu.org
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: ubizjak at gmail dot com @ 2020-06-01 10:48 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

--- Comment #9 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Alexander Monakov from comment #8)
> There's no tuning tables for memcmp at all, existing structs cover only
> memset and memcpy. So as far as I see retuning memset/memcpy doesn't need to
> wait for [1], because there's no infrastructure in place for memcmp tuning,
> and adding that can be done independently. Updating Ryzen tables would not
> touch any code updated by H.J.Lu's patchset at all.

Agreed.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit
  2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
                   ` (9 preceding siblings ...)
  2020-06-01 10:48 ` ubizjak at gmail dot com
@ 2020-06-01 10:58 ` marxin at gcc dot gnu.org
  2020-07-30  8:32 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: marxin at gcc dot gnu.org @ 2020-06-01 10:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

--- Comment #10 from Martin Liška <marxin at gcc dot gnu.org> ---
And this is for znver2:
AMD EPYC 7502P 32-Core Processor

64-bit:

memcpy
  block size  libcall rep1    noalg   rep4    noalg   rep8    noalg   loop   
noalg   unrl    noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.05 0:00.08 0:00.08 0:00.08 0:00.08 0:00.08 0:00.08 0:00.09
0:00.10 0:00.06 0:00.09 0:00.04 0:00.04 0:00.63 0:00.04 0:00.04    0:00.04 sse
      819200  0:00.03 0:00.07 0:00.07 0:00.06 0:00.06 0:00.06 0:00.06 0:00.08
0:00.09 0:00.05 0:00.08 0:00.03 0:00.04 0:00.61 0:00.03 0:00.03    0:00.03
libcall
       81920  0:00.02 0:00.06 0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.08
0:00.09 0:00.05 0:00.08 0:00.02 0:00.03 0:00.63 0:00.03 0:00.02    0:00.02
libcall
       20480  0:00.02 0:00.05 0:00.05 0:00.05 0:00.06 0:00.05 0:00.05 0:00.08
0:00.10 0:00.05 0:00.09 0:00.03 0:00.04 0:00.75 0:00.02 0:00.02    0:00.02
libcall
        8192  0:00.02 0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.08
0:00.09 0:00.05 0:00.08 0:00.03 0:00.04 0:00.61 0:00.02 0:00.02    0:00.02
libcall
        4096  0:00.02 0:00.06 0:00.06 0:00.06 0:00.07 0:00.06 0:00.06 0:00.08
0:00.09 0:00.05 0:00.08 0:00.04 0:00.05 0:00.60 0:00.02 0:00.03    0:00.02
libcall
        2048  0:00.03 0:00.09 0:00.09 0:00.09 0:00.09 0:00.08 0:00.09 0:00.09
0:00.10 0:00.06 0:00.09 0:00.06 0:00.06 0:00.61 0:00.03 0:00.03    0:00.03
libcall
        1024  0:00.04 0:00.13 0:00.13 0:00.12 0:00.12 0:00.11 0:00.11 0:00.09
0:00.11 0:00.07 0:00.09 0:00.09 0:00.09 0:00.58 0:00.04 0:00.04    0:00.04
libcall
         512  0:00.06 0:00.21 0:00.20 0:00.17 0:00.18 0:00.14 0:00.15 0:00.11
0:00.12 0:00.08 0:00.10 0:00.14 0:00.14 0:00.62 0:00.06 0:00.05    0:00.06
libcall
         256  0:00.10 0:00.33 0:00.33 0:00.23 0:00.24 0:00.12 0:00.12 0:00.13
0:00.14 0:00.11 0:00.11 0:00.21 0:00.20 0:00.64 0:00.10 0:00.10    0:00.10
libcall
         128  0:00.21 0:00.53 0:00.59 0:00.22 0:00.22 0:00.18 0:00.18 0:00.17
0:00.18 0:00.19 0:00.20 0:00.51 0:00.47 0:00.68 0:00.23 0:00.18    0:00.17 loop
          64  0:00.40 0:00.75 0:00.71 0:00.24 0:00.20 0:00.17 0:00.16 0:00.16
0:00.31 0:00.38 0:00.39 0:00.73 0:00.58 0:00.45 0:00.33 0:00.31    0:00.16 loop
          48  0:00.48 0:00.88 0:00.83 0:00.42 0:00.40 0:00.39 0:00.38 0:00.38
0:00.36 0:00.41 0:00.40 0:00.70 0:00.55 0:00.46 0:00.41 0:00.40    0:00.36
loopnoalign
          32  0:00.85 0:00.76 0:00.76 0:00.56 0:00.54 0:00.57 0:00.54 0:00.55
0:00.60 0:00.79 0:00.85 0:00.72 0:00.85 0:00.85 0:00.41 0:00.33    0:00.54
rep4noalign
          24  0:00.45 0:00.48 0:00.48 0:00.39 0:00.38 0:00.39 0:00.37 0:00.37
0:00.72 0:00.91 0:00.94 0:01.03 0:01.03 0:00.87 0:00.73 0:00.73    0:00.37 loop
          16  0:00.90 0:00.63 0:00.60 0:00.56 0:00.54 0:00.60 0:00.57 0:00.62
0:00.72 0:01.27 0:01.27 0:00.56 0:00.56 0:00.56 0:01.13 0:01.06    0:00.54
rep4noalign
          14  0:00.70 0:00.69 0:00.69 0:00.61 0:00.59 0:00.62 0:00.59 0:00.59
0:00.63 0:00.84 0:00.84 0:00.63 0:00.63 0:00.64 0:01.10 0:01.10    0:00.59 loop
          12  0:01.20 0:00.78 0:00.77 0:00.72 0:00.70 0:00.74 0:00.71 0:00.73
0:00.80 0:01.00 0:01.01 0:00.72 0:00.72 0:00.69 0:01.17 0:01.36    0:00.69 byte
          10  0:01.18 0:00.89 0:00.88 0:01.50 0:01.14 0:00.83 0:00.80 0:00.82
0:01.65 0:01.88 0:01.88 0:01.47 0:01.11 0:00.77 0:01.20 0:00.82    0:00.77 byte
           8  0:01.10 0:01.93 0:01.93 0:01.97 0:01.90 0:01.41 0:01.14 0:01.40
0:01.60 0:03.15 0:03.16 0:01.85 0:01.82 0:01.84 0:01.37 0:02.45    0:01.10
libcall
           6  0:02.16 0:02.37 0:01.39 0:02.18 0:02.14 0:01.39 0:02.21 0:01.43
0:01.38 0:01.37 0:02.41 0:02.10 0:01.26 0:01.16 0:01.30 0:01.30    0:01.16 byte
           4  0:02.07 0:01.96 0:01.95 0:02.00 0:01.96 0:03.61 0:03.59 0:03.61
0:04.76 0:04.71 0:03.65 0:03.26 0:02.15 0:03.19 0:03.98 0:03.20    0:01.95
rep1noalign
           1  0:02.21 0:06.20 0:06.14 0:00.63 0:00.70 0:00.63 0:00.63 0:00.63
0:00.63 0:01.22 0:01.06 0:01.78 0:01.27 0:01.78 0:00.82 0:00.97    0:00.63 loop
Aligned
  block size  libcall rep1    noalg   rep4    noalg   rep8    noalg   loop   
noalg   unrl    noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.08 0:00.10 0:00.10 0:00.11 0:00.11 0:00.11 0:00.11 0:00.10
0:00.10 0:00.09 0:00.09 0:00.09 0:00.08 0:00.65 0:00.08 0:00.08    0:00.08
libcall
      819200  0:00.03 0:00.07 0:00.06 0:00.07 0:00.06 0:00.07 0:00.06 0:00.08
0:00.08 0:00.05 0:00.05 0:00.04 0:00.03 0:00.60 0:00.03 0:00.03    0:00.03
libcall
       81920  0:00.03 0:00.06 0:00.06 0:00.06 0:00.06 0:00.06 0:00.06 0:00.08
0:00.08 0:00.05 0:00.05 0:00.03 0:00.03 0:00.63 0:00.02 0:00.03    0:00.03
libcall
       20480  0:00.03 0:00.06 0:00.06 0:00.06 0:00.06 0:00.05 0:00.05 0:00.08
0:00.09 0:00.05 0:00.05 0:00.03 0:00.03 0:00.77 0:00.03 0:00.03    0:00.03
libcall
        8192  0:00.03 0:00.06 0:00.06 0:00.05 0:00.05 0:00.05 0:00.05 0:00.09
0:00.09 0:00.05 0:00.05 0:00.03 0:00.03 0:00.61 0:00.02 0:00.02    0:00.03
libcall
        4096  0:00.03 0:00.07 0:00.07 0:00.07 0:00.07 0:00.06 0:00.07 0:00.09
0:00.09 0:00.05 0:00.06 0:00.04 0:00.04 0:00.61 0:00.03 0:00.03    0:00.03
libcall
        2048  0:00.04 0:00.10 0:00.10 0:00.09 0:00.09 0:00.09 0:00.09 0:00.10
0:00.10 0:00.07 0:00.07 0:00.07 0:00.07 0:00.61 0:00.04 0:00.04    0:00.04
libcall
        1024  0:00.06 0:00.16 0:00.15 0:00.12 0:00.14 0:00.12 0:00.13 0:00.12
0:00.12 0:00.08 0:00.08 0:00.11 0:00.10 0:00.63 0:00.06 0:00.06    0:00.06
libcall
         512  0:00.09 0:00.25 0:00.23 0:00.19 0:00.19 0:00.16 0:00.16 0:00.14
0:00.14 0:00.10 0:00.11 0:00.17 0:00.17 0:00.64 0:00.09 0:00.09    0:00.09
libcall
         256  0:00.15 0:00.38 0:00.39 0:00.27 0:00.27 0:00.15 0:00.15 0:00.16
0:00.17 0:00.14 0:00.14 0:00.29 0:00.29 0:00.66 0:00.15 0:00.14    0:00.14 unrl
         128  0:00.27 0:00.63 0:00.61 0:00.24 0:00.23 0:00.20 0:00.18 0:00.17
0:00.16 0:00.14 0:00.23 0:00.51 0:00.51 0:00.68 0:00.29 0:00.24    0:00.14 unrl
          64  0:00.49 0:01.01 0:00.95 0:00.23 0:00.22 0:00.34 0:00.34 0:00.31
0:00.31 0:00.23 0:00.28 0:00.79 0:00.79 0:00.79 0:00.37 0:00.41    0:00.22
rep4noalign
          48  0:00.56 0:01.03 0:00.92 0:00.28 0:00.28 0:00.26 0:00.26 0:00.29
0:00.29 0:00.35 0:00.33 0:00.58 0:00.58 0:00.51 0:00.46 0:00.49    0:00.26 rep8
          32  0:00.85 0:00.78 0:00.56 0:00.36 0:00.36 0:00.69 0:00.83 0:00.76
0:00.71 0:00.59 0:00.47 0:00.51 0:00.51 0:00.51 0:00.60 0:00.60    0:00.36 rep4
          24  0:00.67 0:00.58 0:00.56 0:00.81 0:00.81 0:00.69 0:00.51 0:00.47
0:00.46 0:00.52 0:00.95 0:01.08 0:00.76 0:00.56 0:00.80 0:00.81    0:00.46
loopnoalign
          16  0:01.11 0:01.19 0:00.78 0:00.66 0:00.66 0:00.91 0:00.88 0:00.71
0:00.70 0:00.90 0:00.90 0:00.69 0:01.19 0:01.09 0:00.97 0:00.74    0:00.66 rep4
          14  0:01.17 0:01.52 0:01.53 0:01.35 0:01.35 0:01.32 0:01.31 0:01.07
0:00.72 0:01.36 0:01.13 0:00.80 0:00.78 0:00.78 0:01.03 0:01.23    0:00.72
loopnoalign
          12  0:01.16 0:00.96 0:00.92 0:00.85 0:01.45 0:01.50 0:01.07 0:00.82
0:00.82 0:00.86 0:00.86 0:00.88 0:00.88 0:00.85 0:01.05 0:00.84    0:00.82 loop
          10  0:00.94 0:01.06 0:01.80 0:01.68 0:01.64 0:01.19 0:01.68 0:01.56
0:01.22 0:01.03 0:01.03 0:01.07 0:01.08 0:01.06 0:01.20 0:01.56    0:00.94
libcall
           8  0:01.31 0:01.26 0:01.27 0:01.71 0:01.32 0:01.22 0:01.19 0:01.21
0:01.24 0:01.30 0:01.31 0:01.70 0:01.34 0:01.15 0:01.94 0:01.30    0:01.15 byte
           6  0:01.27 0:01.63 0:02.49 0:01.44 0:01.46 0:01.53 0:01.52 0:01.41
0:02.25 0:01.53 0:02.33 0:01.49 0:01.46 0:02.09 0:01.44 0:01.43    0:01.27
libcall
           4  0:02.03 0:02.95 0:02.15 0:02.67 0:01.96 0:02.12 0:02.10 0:02.11
0:02.12 0:02.12 0:02.11 0:01.92 0:01.91 0:01.96 0:02.23 0:02.60    0:01.91
ssenoalign
           1  0:03.64 0:06.56 0:06.73 0:02.90 0:03.04 0:02.97 0:03.03 0:03.10
0:02.96 0:03.20 0:02.98 0:03.14 0:02.93 0:02.92 0:02.83 0:03.01    0:02.90 rep4
memset
  block size  libcall rep1    noalg   rep4    noalg   rep8    noalg   loop   
noalg   unrl    noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.02 0:00.02 0:00.03 0:00.02 0:00.03 0:00.03 0:00.04 0:00.10
0:00.06 0:00.05 0:00.06 0:00.05 0:00.06 0:00.38 0:00.02 0:00.02    0:00.02
libcall
      819200  0:00.02 0:00.03 0:00.02 0:00.02 0:00.03 0:00.03 0:00.03 0:00.09
0:00.06 0:00.05 0:00.06 0:00.05 0:00.06 0:00.36 0:00.02 0:00.02    0:00.02
libcall
       81920  0:00.02 0:00.02 0:00.02 0:00.02 0:00.03 0:00.02 0:00.03 0:00.09
0:00.06 0:00.04 0:00.06 0:00.04 0:00.06 0:00.37 0:00.02 0:00.02    0:00.02
libcall
       20480  0:00.02 0:00.02 0:00.02 0:00.02 0:00.03 0:00.02 0:00.03 0:00.05
0:00.10 0:00.05 0:00.06 0:00.05 0:00.06 0:00.38 0:00.02 0:00.02    0:00.02
libcall
        8192  0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.05
0:00.06 0:00.04 0:00.06 0:00.05 0:00.06 0:00.36 0:00.02 0:00.02    0:00.02
libcall
        4096  0:00.02 0:00.02 0:00.02 0:00.02 0:00.03 0:00.02 0:00.03 0:00.05
0:00.06 0:00.05 0:00.06 0:00.05 0:00.06 0:00.36 0:00.02 0:00.02    0:00.02
libcall
        2048  0:00.02 0:00.03 0:00.03 0:00.03 0:00.03 0:00.03 0:00.03 0:00.05
0:00.06 0:00.05 0:00.06 0:00.05 0:00.06 0:00.36 0:00.02 0:00.02    0:00.02
libcall
        1024  0:00.02 0:00.05 0:00.05 0:00.04 0:00.04 0:00.04 0:00.04 0:00.06
0:00.07 0:00.05 0:00.06 0:00.05 0:00.06 0:00.37 0:00.02 0:00.02    0:00.02
libcall
         512  0:00.04 0:00.08 0:00.09 0:00.07 0:00.07 0:00.07 0:00.07 0:00.07
0:00.08 0:00.06 0:00.07 0:00.06 0:00.07 0:00.38 0:00.04 0:00.03    0:00.04
libcall
         256  0:00.07 0:00.16 0:00.15 0:00.14 0:00.14 0:00.09 0:00.09 0:00.08
0:00.09 0:00.07 0:00.08 0:00.07 0:00.08 0:00.40 0:00.08 0:00.06    0:00.07
libcall
         128  0:00.17 0:00.29 0:00.29 0:00.18 0:00.17 0:00.13 0:00.12 0:00.14
0:00.13 0:00.12 0:00.12 0:00.12 0:00.12 0:00.40 0:00.13 0:00.11    0:00.12
rep8noalign
          64  0:00.51 0:00.52 0:00.52 0:00.25 0:00.22 0:00.19 0:00.16 0:00.16
0:00.17 0:00.14 0:00.13 0:00.13 0:00.13 0:00.28 0:00.22 0:00.22    0:00.13 sse
          48  0:00.75 0:00.55 0:00.42 0:00.19 0:00.17 0:00.28 0:00.27 0:00.30
0:00.34 0:00.30 0:00.30 0:00.30 0:00.30 0:00.52 0:00.29 0:00.28    0:00.17
rep4noalign
          32  0:01.50 0:00.65 0:00.65 0:00.40 0:00.37 0:00.43 0:00.42 0:00.48
0:00.63 0:00.52 0:00.52 0:00.47 0:00.37 0:00.34 0:00.43 0:00.42    0:00.34 byte
          24  0:01.22 0:00.44 0:00.81 0:00.52 0:00.49 0:00.45 0:00.57 0:00.85
0:01.02 0:00.58 0:00.43 0:00.42 0:00.76 0:00.61 0:00.52 0:00.51    0:00.42 sse
          16  0:01.89 0:00.89 0:00.89 0:00.58 0:00.41 0:00.80 0:01.83 0:01.10
0:01.91 0:01.09 0:00.91 0:01.68 0:01.68 0:00.63 0:00.69 0:00.69    0:00.41
rep4noalign
          14  0:01.86 0:00.62 0:00.62 0:00.43 0:00.44 0:00.94 0:01.15 0:01.13
0:01.24 0:01.10 0:01.10 0:01.11 0:01.10 0:00.43 0:00.81 0:00.64    0:00.43 byte
          12  0:02.28 0:00.72 0:01.24 0:00.86 0:00.60 0:01.28 0:01.38 0:02.37
0:02.46 0:01.37 0:01.36 0:01.36 0:02.38 0:00.53 0:00.91 0:00.91    0:00.53 byte
          10  0:02.12 0:00.76 0:00.75 0:00.59 0:00.66 0:01.56 0:01.64 0:01.59
0:01.66 0:01.59 0:02.64 0:01.61 0:01.59 0:00.56 0:00.98 0:00.65    0:00.56 byte
           8  0:02.72 0:01.42 0:01.16 0:01.11 0:01.61 0:01.82 0:01.81 0:01.82
0:01.83 0:02.87 0:02.82 0:01.82 0:01.81 0:00.67 0:01.57 0:01.11    0:00.67 byte
           6  0:02.09 0:01.10 0:01.11 0:01.85 0:02.26 0:02.50 0:03.59 0:03.56
0:03.58 0:03.54 0:03.59 0:02.52 0:02.53 0:00.88 0:02.95 0:02.89    0:00.88 byte
           4  0:03.57 0:02.47 0:01.46 0:03.73 0:03.68 0:02.67 0:03.72 0:02.68
0:02.67 0:03.73 0:03.73 0:02.67 0:02.67 0:01.91 0:02.69 0:01.90    0:01.46
rep1noalign
           1  0:02.87 0:04.79 0:04.82 0:00.58 0:00.58 0:00.59 0:00.59 0:01.08
0:01.04 0:01.07 0:01.03 0:00.70 0:01.08 0:01.17 0:01.09 0:01.17    0:00.58 rep4
Aligned
  block size  libcall rep1    noalg   rep4    noalg   rep8    noalg   loop   
noalg   unrl    noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.06 0:00.07 0:00.07 0:00.07 0:00.07 0:00.07 0:00.07 0:00.08
0:00.08 0:00.08 0:00.08 0:00.08 0:00.08 0:00.39 0:00.06 0:00.06    0:00.06
libcall
      819200  0:00.02 0:00.03 0:00.03 0:00.03 0:00.03 0:00.03 0:00.03 0:00.05
0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.36 0:00.02 0:00.02    0:00.02
libcall
       81920  0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.05
0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.38 0:00.02 0:00.02    0:00.02
libcall
       20480  0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.10
0:00.10 0:00.05 0:00.05 0:00.05 0:00.05 0:00.39 0:00.02 0:00.02    0:00.02
libcall
        8192  0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.05
0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.36 0:00.02 0:00.02    0:00.02
libcall
        4096  0:00.02 0:00.03 0:00.03 0:00.02 0:00.02 0:00.02 0:00.02 0:00.05
0:00.05 0:00.05 0:00.05 0:00.05 0:00.05 0:00.36 0:00.02 0:00.02    0:00.02
libcall
        2048  0:00.03 0:00.04 0:00.04 0:00.04 0:00.04 0:00.03 0:00.04 0:00.06
0:00.06 0:00.06 0:00.06 0:00.06 0:00.06 0:00.37 0:00.03 0:00.03    0:00.03
libcall
        1024  0:00.04 0:00.06 0:00.06 0:00.05 0:00.05 0:00.05 0:00.05 0:00.07
0:00.07 0:00.06 0:00.06 0:00.06 0:00.06 0:00.38 0:00.04 0:00.04    0:00.04
libcall
         512  0:00.06 0:00.10 0:00.10 0:00.08 0:00.08 0:00.08 0:00.08 0:00.09
0:00.09 0:00.07 0:00.07 0:00.07 0:00.07 0:00.39 0:00.06 0:00.06    0:00.06
libcall
         256  0:00.10 0:00.17 0:00.17 0:00.16 0:00.15 0:00.10 0:00.10 0:00.10
0:00.10 0:00.09 0:00.09 0:00.09 0:00.09 0:00.42 0:00.09 0:00.09    0:00.09 sse
         128  0:00.16 0:00.30 0:00.30 0:00.19 0:00.19 0:00.14 0:00.14 0:00.14
0:00.14 0:00.14 0:00.14 0:00.13 0:00.13 0:00.34 0:00.14 0:00.13    0:00.13 sse
          64  0:00.34 0:00.55 0:00.55 0:00.27 0:00.27 0:00.22 0:00.22 0:00.24
0:00.22 0:00.21 0:00.22 0:00.20 0:00.19 0:00.33 0:00.22 0:00.22    0:00.19
ssenoalign
          48  0:00.42 0:00.65 0:00.63 0:00.31 0:00.29 0:00.21 0:00.21 0:00.22
0:00.22 0:00.22 0:00.27 0:00.28 0:00.28 0:00.66 0:00.30 0:00.29    0:00.21 rep8
          32  0:00.54 0:00.75 0:00.75 0:00.42 0:00.37 0:00.32 0:00.30 0:00.35
0:00.37 0:00.36 0:00.36 0:00.36 0:00.35 0:00.66 0:00.37 0:00.36    0:00.30
rep8noalign
          24  0:00.48 0:00.88 0:00.62 0:00.57 0:00.59 0:00.47 0:00.45 0:00.38
0:00.37 0:00.35 0:00.35 0:00.35 0:00.36 0:00.44 0:00.59 0:00.56    0:00.35 sse
          16  0:00.51 0:00.64 0:01.15 0:00.68 0:00.59 0:00.49 0:00.48 0:00.47
0:00.55 0:00.56 0:00.57 0:00.56 0:00.57 0:00.83 0:00.70 0:00.63    0:00.47 loop
          14  0:00.54 0:01.37 0:01.39 0:00.81 0:00.94 0:00.70 0:00.69 0:00.58
0:00.57 0:00.59 0:00.59 0:00.54 0:00.63 0:01.17 0:00.99 0:00.86    0:00.54
libcall
          12  0:00.62 0:00.86 0:00.83 0:00.96 0:00.95 0:00.65 0:00.57 0:00.56
0:00.62 0:00.64 0:00.63 0:00.60 0:00.57 0:00.76 0:00.89 0:00.68    0:00.56 loop
          10  0:00.64 0:01.63 0:01.57 0:00.92 0:00.73 0:00.84 0:00.84 0:00.69
0:00.69 0:00.71 0:00.65 0:00.64 0:00.63 0:01.07 0:01.11 0:01.02    0:00.63
ssenoalign
           8  0:00.75 0:01.03 0:01.51 0:01.12 0:01.09 0:00.80 0:00.91 0:00.81
0:00.82 0:00.83 0:00.82 0:00.78 0:00.81 0:00.89 0:00.98 0:00.83    0:00.75
libcall
           6  0:01.21 0:01.69 0:01.34 0:01.13 0:01.11 0:01.00 0:01.14 0:01.15
0:01.00 0:01.05 0:01.01 0:01.14 0:01.17 0:01.30 0:01.60 0:01.26    0:01.00
loopnoalign
           4  0:01.70 0:01.96 0:02.39 0:01.46 0:01.46 0:01.36 0:01.34 0:01.32
0:01.34 0:01.36 0:01.34 0:01.36 0:01.33 0:01.50 0:01.89 0:01.65    0:01.32 loop
           1  0:03.54 0:05.47 0:05.36 0:02.47 0:02.50 0:02.49 0:02.47 0:02.64
0:02.60 0:02.50 0:02.71 0:02.56 0:02.68 0:02.52 0:02.79 0:02.47    0:02.47 rep4

and 32-bit:

memcpy
  block size  libcall rep1    noalg   rep4    noalg   loop    noalg   unrl   
noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.05 0:00.07 0:00.08 0:00.08 0:00.08 0:00.16 0:00.16 0:00.10
0:00.14 0:00.04 0:00.04 0:00.62 0:00.08 0:00.08    0:00.04 sse
      819200  0:00.04 0:00.06 0:00.06 0:00.06 0:00.06 0:00.15 0:00.15 0:00.10
0:00.13 0:00.03 0:00.04 0:00.58 0:00.07 0:00.06    0:00.03 sse
       81920  0:00.03 0:00.05 0:00.05 0:00.05 0:00.05 0:00.15 0:00.15 0:00.10
0:00.13 0:00.03 0:00.03 0:00.61 0:00.06 0:00.05    0:00.03 libcall
       20480  0:00.03 0:00.05 0:00.05 0:00.05 0:00.05 0:00.19 0:00.15 0:00.10
0:00.14 0:00.03 0:00.04 0:00.62 0:00.05 0:00.05    0:00.03 libcall
        8192  0:00.03 0:00.05 0:00.05 0:00.05 0:00.05 0:00.15 0:00.13 0:00.09
0:00.13 0:00.03 0:00.04 0:00.59 0:00.05 0:00.05    0:00.03 libcall
        4096  0:00.04 0:00.06 0:00.07 0:00.06 0:00.07 0:00.15 0:00.13 0:00.10
0:00.13 0:00.04 0:00.04 0:00.59 0:00.06 0:00.06    0:00.04 libcall
        2048  0:00.05 0:00.09 0:00.09 0:00.08 0:00.09 0:00.16 0:00.14 0:00.10
0:00.13 0:00.05 0:00.06 0:00.59 0:00.09 0:00.08    0:00.05 libcall
        1024  0:00.06 0:00.13 0:00.13 0:00.11 0:00.12 0:00.17 0:00.15 0:00.12
0:00.14 0:00.08 0:00.08 0:00.59 0:00.12 0:00.11    0:00.06 libcall
         512  0:00.07 0:00.21 0:00.21 0:00.17 0:00.18 0:00.18 0:00.16 0:00.14
0:00.16 0:00.14 0:00.12 0:00.60 0:00.17 0:00.18    0:00.07 libcall
         256  0:00.11 0:00.35 0:00.35 0:00.26 0:00.25 0:00.22 0:00.20 0:00.16
0:00.18 0:00.24 0:00.21 0:00.54 0:00.24 0:00.24    0:00.11 libcall
         128  0:00.18 0:00.55 0:00.54 0:00.23 0:00.22 0:00.25 0:00.24 0:00.21
0:00.21 0:00.42 0:00.39 0:00.53 0:00.23 0:00.23    0:00.18 libcall
          64  0:00.30 0:00.76 0:00.72 0:00.23 0:00.20 0:00.18 0:00.18 0:00.17
0:00.18 0:00.38 0:00.38 0:00.38 0:00.33 0:00.33    0:00.17 unrl
          48  0:00.39 0:00.83 0:00.68 0:00.23 0:00.22 0:00.22 0:00.21 0:00.21
0:00.21 0:00.43 0:00.85 0:00.82 0:00.42 0:00.40    0:00.21 loopnoalign
          32  0:00.44 0:00.46 0:00.41 0:00.31 0:00.29 0:00.30 0:00.31 0:00.56
0:00.59 0:00.81 0:00.79 0:00.59 0:00.56 0:00.46    0:00.29 rep4noalign
          24  0:00.46 0:00.49 0:00.49 0:00.40 0:00.73 0:00.68 0:00.67 0:00.68
0:00.61 0:00.88 0:00.88 0:00.72 0:00.65 0:00.48    0:00.40 rep4
          16  0:01.00 0:01.05 0:00.71 0:00.56 0:00.54 0:00.57 0:00.61 0:01.16
0:01.26 0:01.05 0:00.95 0:00.63 0:00.60 0:01.03    0:00.54 rep4noalign
          14  0:01.12 0:00.79 0:00.71 0:00.61 0:01.16 0:01.00 0:00.68 0:00.60
0:00.63 0:00.60 0:00.60 0:00.60 0:01.11 0:01.04    0:00.60 byte
          12  0:00.84 0:00.79 0:00.79 0:00.72 0:00.72 0:00.69 0:00.70 0:00.72
0:00.75 0:00.69 0:00.69 0:01.27 0:01.33 0:01.13    0:00.69 loop
          10  0:00.81 0:00.91 0:00.91 0:00.81 0:00.80 0:00.77 0:00.80 0:01.52
0:01.21 0:00.77 0:00.76 0:00.76 0:01.51 0:01.52    0:00.76 byte
           8  0:01.33 0:01.04 0:01.05 0:01.95 0:01.91 0:01.41 0:01.39 0:01.43
0:01.54 0:01.87 0:01.21 0:01.87 0:01.31 0:01.43    0:01.04 rep1
           6  0:02.12 0:02.41 0:02.37 0:02.18 0:01.30 0:01.18 0:02.22 0:01.35
0:02.32 0:01.18 0:01.14 0:01.14 0:01.17 0:02.15    0:01.14 byte
           4  0:01.99 0:01.94 0:01.94 0:02.02 0:01.96 0:03.89 0:03.13 0:04.16
0:04.10 0:02.25 0:03.28 0:02.25 0:03.66 0:02.26    0:01.94 rep1
           1  0:04.04 0:06.14 0:06.17 0:00.59 0:00.59 0:00.59 0:01.08 0:01.08
0:00.91 0:01.03 0:01.01 0:01.83 0:00.89 0:01.00    0:00.59 loop
Aligned
  block size  libcall rep1    noalg   rep4    noalg   loop    noalg   unrl   
noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.06 0:00.09 0:00.09 0:00.09 0:00.09 0:00.16 0:00.16 0:00.11
0:00.11 0:00.07 0:00.06 0:00.62 0:00.09 0:00.09    0:00.06 libcall
      819200  0:00.04 0:00.06 0:00.06 0:00.06 0:00.06 0:00.15 0:00.15 0:00.10
0:00.10 0:00.03 0:00.03 0:00.59 0:00.07 0:00.07    0:00.03 sse
       81920  0:00.03 0:00.05 0:00.05 0:00.05 0:00.05 0:00.16 0:00.16 0:00.10
0:00.10 0:00.03 0:00.03 0:00.61 0:00.06 0:00.05    0:00.03 libcall
       20480  0:00.03 0:00.06 0:00.05 0:00.05 0:00.05 0:00.16 0:00.16 0:00.10
0:00.10 0:00.03 0:00.03 0:00.63 0:00.05 0:00.05    0:00.03 libcall
        8192  0:00.04 0:00.06 0:00.06 0:00.05 0:00.05 0:00.15 0:00.15 0:00.10
0:00.10 0:00.03 0:00.03 0:00.59 0:00.05 0:00.05    0:00.03 sse
        4096  0:00.04 0:00.07 0:00.07 0:00.07 0:00.06 0:00.14 0:00.15 0:00.10
0:00.10 0:00.04 0:00.04 0:00.58 0:00.07 0:00.06    0:00.04 libcall
        2048  0:00.05 0:00.10 0:00.10 0:00.09 0:00.09 0:00.15 0:00.16 0:00.11
0:00.11 0:00.06 0:00.05 0:00.58 0:00.09 0:00.09    0:00.05 libcall
        1024  0:00.07 0:00.15 0:00.15 0:00.13 0:00.13 0:00.17 0:00.17 0:00.13
0:00.12 0:00.09 0:00.08 0:00.60 0:00.13 0:00.13    0:00.07 libcall
         512  0:00.08 0:00.25 0:00.24 0:00.20 0:00.20 0:00.19 0:00.19 0:00.15
0:00.15 0:00.13 0:00.12 0:00.48 0:00.20 0:00.20    0:00.08 libcall
         256  0:00.12 0:00.40 0:00.40 0:00.27 0:00.26 0:00.23 0:00.23 0:00.18
0:00.18 0:00.25 0:00.23 0:00.63 0:00.27 0:00.27    0:00.12 libcall
         128  0:00.19 0:00.62 0:00.62 0:00.25 0:00.25 0:00.25 0:00.22 0:00.17
0:00.16 0:00.24 0:00.43 0:00.70 0:00.25 0:00.25    0:00.16 unrlnoalign
          64  0:00.33 0:00.86 0:00.73 0:00.27 0:00.27 0:00.29 0:00.30 0:00.26
0:00.24 0:00.43 0:00.43 0:00.43 0:00.38 0:00.40    0:00.24 unrlnoalign
          48  0:00.43 0:01.05 0:00.95 0:00.32 0:00.26 0:00.25 0:00.25 0:00.25
0:00.25 0:00.45 0:00.90 0:00.90 0:00.45 0:00.45    0:00.25 loop
          32  0:00.50 0:00.53 0:00.48 0:00.38 0:00.38 0:00.38 0:00.38 0:00.37
0:00.67 0:00.93 0:00.79 0:00.56 0:00.63 0:00.65    0:00.37 unrl
          24  0:00.75 0:00.66 0:00.97 0:00.81 0:00.80 0:00.74 0:00.74 0:00.74
0:00.68 0:00.61 0:00.53 0:00.53 0:00.67 0:00.50    0:00.53 byte
          16  0:00.63 0:01.35 0:01.16 0:00.73 0:01.18 0:01.17 0:00.81 0:00.81
0:00.81 0:00.77 0:00.77 0:00.76 0:01.19 0:01.13    0:00.63 libcall
          14  0:00.76 0:00.85 0:00.84 0:00.75 0:00.74 0:00.73 0:00.73 0:00.75
0:00.76 0:00.75 0:00.75 0:00.75 0:00.75 0:01.28    0:00.73 loop
          12  0:01.51 0:01.13 0:00.95 0:00.90 0:01.50 0:01.46 0:01.20 0:00.92
0:00.92 0:00.88 0:00.88 0:00.88 0:00.90 0:01.53    0:00.88 byte
          10  0:01.26 0:01.13 0:01.14 0:01.04 0:01.04 0:01.02 0:01.01 0:01.04
0:01.05 0:01.03 0:01.62 0:01.27 0:01.72 0:01.27    0:01.01 loopnoalign
           8  0:01.19 0:01.40 0:01.41 0:01.42 0:01.42 0:02.37 0:02.39 0:01.59
0:02.53 0:02.10 0:02.08 0:02.14 0:01.36 0:01.51    0:01.19 libcall
           6  0:02.38 0:02.65 0:02.67 0:02.53 0:02.49 0:01.54 0:01.52 0:01.76
0:02.61 0:01.64 0:01.57 0:01.51 0:02.49 0:01.68    0:01.51 byte
           4  0:03.15 0:02.56 0:02.58 0:02.54 0:02.50 0:02.91 0:02.91 0:03.13
0:03.14 0:02.50 0:03.32 0:02.52 0:02.58 0:02.48    0:02.50 rep4noalign
           1  0:04.12 0:07.51 0:07.52 0:01.56 0:01.60 0:01.56 0:01.86 0:01.84
0:01.81 0:01.74 0:01.71 0:01.60 0:01.77 0:02.22    0:01.56 loop
memset
  block size  libcall rep1    noalg   rep4    noalg   loop    noalg   unrl   
noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.03 0:00.02 0:00.03 0:00.03 0:00.03 0:00.07 0:00.13 0:00.07
0:00.07 0:00.06 0:00.07 0:00.23 0:00.04 0:00.04    0:00.02 rep1
      819200  0:00.02 0:00.03 0:00.03 0:00.03 0:00.03 0:00.09 0:00.18 0:00.09
0:00.10 0:00.09 0:00.10 0:00.36 0:00.03 0:00.03    0:00.02 libcall
       81920  0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.09 0:00.19 0:00.09
0:00.10 0:00.09 0:00.10 0:00.37 0:00.02 0:00.02    0:00.02 libcall
       20480  0:00.03 0:00.02 0:00.02 0:00.02 0:00.03 0:00.10 0:00.11 0:00.10
0:00.11 0:00.10 0:00.11 0:00.76 0:00.02 0:00.03    0:00.02 rep1
        8192  0:00.03 0:00.02 0:00.02 0:00.02 0:00.03 0:00.18 0:00.10 0:00.09
0:00.10 0:00.09 0:00.10 0:00.36 0:00.02 0:00.03    0:00.02 rep1
        4096  0:00.03 0:00.02 0:00.02 0:00.02 0:00.03 0:00.18 0:00.10 0:00.09
0:00.10 0:00.09 0:00.10 0:00.36 0:00.03 0:00.03    0:00.02 rep1
        2048  0:00.03 0:00.03 0:00.03 0:00.03 0:00.03 0:00.18 0:00.10 0:00.09
0:00.10 0:00.09 0:00.10 0:00.36 0:00.03 0:00.03    0:00.03 libcall
        1024  0:00.04 0:00.05 0:00.05 0:00.04 0:00.04 0:00.19 0:00.11 0:00.10
0:00.11 0:00.10 0:00.11 0:00.37 0:00.04 0:00.04    0:00.04 libcall
         512  0:00.05 0:00.09 0:00.09 0:00.07 0:00.07 0:00.19 0:00.12 0:00.11
0:00.12 0:00.11 0:00.12 0:00.38 0:00.07 0:00.07    0:00.05 libcall
         256  0:00.08 0:00.16 0:00.16 0:00.14 0:00.14 0:00.22 0:00.15 0:00.12
0:00.12 0:00.12 0:00.12 0:00.36 0:00.14 0:00.14    0:00.08 libcall
         128  0:00.13 0:00.29 0:00.29 0:00.18 0:00.17 0:00.23 0:00.17 0:00.14
0:00.14 0:00.14 0:00.13 0:00.36 0:00.18 0:00.17    0:00.13 libcall
          64  0:00.25 0:00.52 0:00.52 0:00.26 0:00.23 0:00.20 0:00.19 0:00.16
0:00.16 0:00.14 0:00.14 0:00.29 0:00.26 0:00.26    0:00.14 sse
          48  0:00.34 0:00.60 0:00.55 0:00.24 0:00.21 0:00.15 0:00.15 0:00.14
0:00.14 0:00.14 0:00.15 0:00.49 0:00.32 0:00.32    0:00.14 sse
          32  0:00.48 0:00.64 0:00.64 0:00.40 0:00.35 0:00.30 0:00.27 0:00.21
0:00.23 0:00.20 0:00.24 0:00.38 0:00.22 0:00.41    0:00.20 sse
          24  0:00.58 0:00.79 0:00.64 0:00.32 0:00.28 0:00.26 0:00.28 0:00.26
0:00.28 0:00.49 0:00.52 0:00.94 0:00.46 0:00.39    0:00.26 loop
          16  0:00.99 0:00.89 0:00.90 0:00.69 0:00.57 0:00.50 0:00.53 0:00.44
0:00.92 0:00.81 0:00.73 0:00.43 0:00.55 0:00.80    0:00.43 byte
          14  0:01.21 0:00.74 0:00.60 0:00.45 0:00.44 0:00.52 0:00.67 0:00.51
0:00.60 0:00.51 0:00.60 0:00.50 0:00.54 0:00.94    0:00.44 rep4noalign
          12  0:01.47 0:01.02 0:00.67 0:00.50 0:00.49 0:00.70 0:00.95 0:01.23
0:01.31 0:00.67 0:00.82 0:00.53 0:00.63 0:00.66    0:00.49 rep4noalign
          10  0:00.94 0:00.74 0:00.74 0:00.59 0:00.63 0:01.07 0:01.43 0:00.96
0:01.21 0:00.96 0:01.21 0:00.59 0:00.94 0:00.96    0:00.59 byte
           8  0:00.99 0:00.77 0:01.42 0:01.98 0:01.72 0:02.74 0:01.75 0:01.57
0:01.69 0:02.65 0:01.74 0:00.67 0:01.68 0:02.76    0:00.67 byte
           6  0:01.34 0:01.10 0:02.00 0:02.72 0:03.10 0:03.32 0:03.50 0:03.28
0:02.35 0:02.23 0:03.38 0:00.87 0:03.28 0:02.26    0:00.87 byte
           4  0:01.97 0:02.46 0:02.46 0:03.71 0:03.67 0:03.72 0:03.72 0:02.69
0:02.67 0:02.69 0:02.67 0:01.86 0:02.68 0:02.91    0:01.86 byte
           1  0:03.17 0:04.85 0:04.86 0:00.61 0:01.12 0:01.12 0:01.05 0:00.69
0:00.61 0:00.61 0:00.61 0:01.08 0:00.68 0:00.59    0:00.61 rep4
Aligned
  block size  libcall rep1    noalg   rep4    noalg   loop    noalg   unrl   
noalg   sse     noalg   byte    PGO     dynamic    BEST
     8192000  0:00.04 0:00.04 0:00.04 0:00.04 0:00.04 0:00.12 0:00.11 0:00.07
0:00.11 0:00.11 0:00.11 0:00.38 0:00.04 0:00.04    0:00.04 libcall
      819200  0:00.03 0:00.03 0:00.03 0:00.03 0:00.03 0:00.18 0:00.18 0:00.09
0:00.09 0:00.09 0:00.09 0:00.36 0:00.03 0:00.03    0:00.03 libcall
       81920  0:00.02 0:00.02 0:00.02 0:00.02 0:00.02 0:00.19 0:00.19 0:00.09
0:00.09 0:00.09 0:00.09 0:00.38 0:00.02 0:00.02    0:00.02 libcall
       20480  0:00.03 0:00.02 0:00.02 0:00.02 0:00.02 0:00.10 0:00.10 0:00.10
0:00.10 0:00.10 0:00.10 0:00.76 0:00.03 0:00.03    0:00.02 rep1
        8192  0:00.03 0:00.02 0:00.02 0:00.02 0:00.02 0:00.09 0:00.09 0:00.09
0:00.09 0:00.09 0:00.09 0:00.36 0:00.03 0:00.03    0:00.02 rep1
        4096  0:00.03 0:00.03 0:00.03 0:00.02 0:00.02 0:00.09 0:00.09 0:00.09
0:00.09 0:00.09 0:00.09 0:00.36 0:00.03 0:00.03    0:00.02 rep4
        2048  0:00.03 0:00.03 0:00.04 0:00.03 0:00.03 0:00.10 0:00.10 0:00.10
0:00.10 0:00.10 0:00.10 0:00.35 0:00.04 0:00.03    0:00.03 libcall
        1024  0:00.05 0:00.06 0:00.05 0:00.05 0:00.05 0:00.11 0:00.11 0:00.11
0:00.11 0:00.11 0:00.11 0:00.38 0:00.05 0:00.05    0:00.05 libcall
         512  0:00.06 0:00.09 0:00.09 0:00.08 0:00.08 0:00.12 0:00.12 0:00.12
0:00.12 0:00.12 0:00.12 0:00.37 0:00.08 0:00.08    0:00.06 libcall
         256  0:00.09 0:00.16 0:00.16 0:00.15 0:00.15 0:00.15 0:00.15 0:00.13
0:00.13 0:00.13 0:00.13 0:00.41 0:00.14 0:00.15    0:00.09 libcall
         128  0:00.16 0:00.30 0:00.30 0:00.18 0:00.17 0:00.18 0:00.18 0:00.16
0:00.15 0:00.16 0:00.16 0:00.46 0:00.18 0:00.18    0:00.15 unrlnoalign
          64  0:00.29 0:00.54 0:00.54 0:00.26 0:00.26 0:00.24 0:00.24 0:00.33
0:00.32 0:00.31 0:00.30 0:00.36 0:00.25 0:00.26    0:00.24 loop
          48  0:00.36 0:00.61 0:00.57 0:00.27 0:00.23 0:00.18 0:00.29 0:00.29
0:00.29 0:00.29 0:00.29 0:00.81 0:00.34 0:00.34    0:00.18 loop
          32  0:00.46 0:00.50 0:00.41 0:00.25 0:00.25 0:00.26 0:00.26 0:00.26
0:00.26 0:00.26 0:00.26 0:00.39 0:00.43 0:00.42    0:00.25 rep4
          24  0:00.61 0:00.83 0:00.76 0:00.40 0:00.33 0:00.31 0:00.31 0:00.31
0:00.31 0:00.31 0:00.31 0:00.54 0:00.49 0:00.45    0:00.31 loop
          16  0:00.66 0:00.98 0:00.97 0:00.61 0:00.49 0:00.56 0:00.55 0:00.54
0:00.55 0:00.54 0:00.55 0:00.90 0:00.58 0:00.91    0:00.49 rep4noalign
          14  0:01.24 0:00.76 0:00.71 0:00.89 0:00.88 0:00.77 0:00.61 0:00.58
0:00.92 0:00.91 0:00.74 0:00.57 0:00.83 0:00.91    0:00.57 byte
          12  0:01.05 0:01.27 0:01.27 0:00.88 0:01.02 0:01.21 0:01.12 0:00.75
0:00.71 0:00.71 0:00.71 0:00.65 0:00.61 0:00.72    0:00.65 byte
          10  0:01.76 0:01.09 0:01.45 0:01.27 0:01.15 0:01.90 0:01.29 0:01.02
0:01.04 0:01.70 0:01.69 0:00.86 0:00.82 0:01.70    0:00.86 byte
           8  0:01.85 0:01.10 0:01.01 0:01.05 0:01.06 0:01.44 0:01.45 0:01.42
0:01.43 0:01.42 0:01.42 0:00.83 0:02.32 0:01.48    0:00.83 byte
           6  0:01.60 0:01.36 0:01.35 0:01.43 0:02.27 0:01.93 0:01.90 0:01.78
0:01.75 0:01.75 0:01.76 0:01.07 0:01.67 0:01.86    0:01.07 byte
           4  0:02.18 0:01.85 0:01.90 0:02.17 0:02.20 0:02.34 0:02.34 0:02.36
0:02.37 0:02.39 0:03.22 0:01.59 0:02.36 0:01.62    0:01.59 byte
           1  0:03.24 0:06.12 0:06.04 0:01.64 0:01.56 0:01.73 0:01.63 0:01.62
0:01.59 0:01.56 0:01.60 0:01.62 0:01.87 0:01.59    0:01.56 rep4noalign

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit
  2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
                   ` (10 preceding siblings ...)
  2020-06-01 10:58 ` marxin at gcc dot gnu.org
@ 2020-07-30  8:32 ` cvs-commit at gcc dot gnu.org
  2020-07-30  8:39 ` cvs-commit at gcc dot gnu.org
  2020-07-30  8:44 ` marxin at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-07-30  8:32 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Liska <marxin@gcc.gnu.org>:

https://gcc.gnu.org/g:dc65aba7a4725d1b464c8c64a5f739ee910e8943

commit r11-2422-gdc65aba7a4725d1b464c8c64a5f739ee910e8943
Author: Martin Liska <mliska@suse.cz>
Date:   Mon Jun 1 13:21:40 2020 +0200

    Tune memcpy and memset for Zen cores.

    Based on the collected numbers in PR95435, I suggest the following
    tuning changes:

    gcc/ChangeLog:

            PR target/95435
            * config/i386/x86-tune-costs.h: Use libcall for large sizes for
            -m32. Start using libcall from 128+ bytes.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit
  2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
                   ` (11 preceding siblings ...)
  2020-07-30  8:32 ` cvs-commit at gcc dot gnu.org
@ 2020-07-30  8:39 ` cvs-commit at gcc dot gnu.org
  2020-07-30  8:44 ` marxin at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2020-07-30  8:39 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Martin Liska
<marxin@gcc.gnu.org>:

https://gcc.gnu.org/g:809b4d226c7f5ded392a88ffafe8d652f911b473

commit r10-8554-g809b4d226c7f5ded392a88ffafe8d652f911b473
Author: Martin Liska <mliska@suse.cz>
Date:   Mon Jun 1 13:21:40 2020 +0200

    Tune memcpy and memset for Zen cores.

    Based on the collected numbers in PR95435, I suggest the following
    tuning changes:

    gcc/ChangeLog:

            PR target/95435
            * config/i386/x86-tune-costs.h: Use libcall for large sizes for
            -m32. Start using libcall from 128+ bytes.

    (cherry picked from commit dc65aba7a4725d1b464c8c64a5f739ee910e8943)

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit
  2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
                   ` (12 preceding siblings ...)
  2020-07-30  8:39 ` cvs-commit at gcc dot gnu.org
@ 2020-07-30  8:44 ` marxin at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: marxin at gcc dot gnu.org @ 2020-07-30  8:44 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95435

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #13 from Martin Liška <marxin at gcc dot gnu.org> ---
Fixed on master and gcc-10 release branch, closing now.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2020-07-30  8:44 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-30 10:12 [Bug target/95435] New: bad builtin memcpy performance with znver1/znver2 and 32bit jan at jki dot io
2020-05-30 10:12 ` [Bug target/95435] " jan at jki dot io
2020-05-30 10:16 ` jan at jki dot io
2020-05-30 10:18 ` glisse at gcc dot gnu.org
2020-05-30 10:23 ` jan at jki dot io
2020-05-30 16:43 ` amonakov at gcc dot gnu.org
2020-06-01  9:27 ` marxin at gcc dot gnu.org
2020-06-01  9:33 ` marxin at gcc dot gnu.org
2020-06-01  9:48 ` ubizjak at gmail dot com
2020-06-01 10:24 ` amonakov at gcc dot gnu.org
2020-06-01 10:48 ` ubizjak at gmail dot com
2020-06-01 10:58 ` marxin at gcc dot gnu.org
2020-07-30  8:32 ` cvs-commit at gcc dot gnu.org
2020-07-30  8:39 ` cvs-commit at gcc dot gnu.org
2020-07-30  8:44 ` marxin at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).