[Bug target/95435] bad builtin memcpy performance with znver1/znver2 and 32bit

marxin at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jun 1 09:33:24 GMT 2020


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


More information about the Gcc-bugs mailing list