public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: Performance degradation on g++ 4.6
@ 2011-07-30 14:57 Benjamin Redelings I
  2011-08-01 18:04 ` Oleg Smolsky
  0 siblings, 1 reply; 22+ messages in thread
From: Benjamin Redelings I @ 2011-07-30 14:57 UTC (permalink / raw)
  To: Oleg Smolsky; +Cc: gcc

Hi Oleg,

I had some performance degradation with 4.6 as well.

However, I was able to cure it by using -finline-limit=800 or 1000 I 
think.  However, this lead to a code size increase.  Were the old 
higher-performance binaries larger?

IIRC, setting finline-limit=n actually sets two params to n/2, but I 
think you may only need to change 1 to get the old performance back.  
--param max-inline-insns-single defaults to 450, but --param 
max-inline-insns-auto defaults to 90.  Perhaps you can get the old 
performance back by adjusting just one of these two parameters, or by 
setting them to different values, instead of the same value, as would be 
achieved by -finline-limit.

-BenRI

^ permalink raw reply	[flat|nested] 22+ messages in thread
* Performance degradation on g++ 4.6
@ 2011-07-29 18:08 Oleg Smolsky
  2011-07-29 18:14 ` Xinliang David Li
  2011-07-30  9:24 ` Richard Guenther
  0 siblings, 2 replies; 22+ messages in thread
From: Oleg Smolsky @ 2011-07-29 18:08 UTC (permalink / raw)
  To: gcc

[-- Attachment #1: Type: text/plain, Size: 1529 bytes --]

Hi there, I have compiled and run a set of C++ benchmarks on a 
CentOS4/64 box using the following compilers:
     a) g++4.1 that is available for this distro (GCC version 4.1.2 
20071124 (Red Hat 4.1.2-42)
     b) g++4.6 that I built (stock version 4.6.1)

The machine has two Intel quad core processors in x86_64 mode 
(/proc/cpuinfo attached)

Benchmarks were taken from this page:
     http://stlab.adobe.com/performance/

Results:
     - some of these tests showed 20..30% performance degradation
       (eg the second section in the simple_types_constant_folding test: 
30s -> 44s)
     - a few were quicker
     - full reports are attached

I would assume that performance of the generated code is closely 
monitored by the dev community and obvious blunders should not sneak 
in... However, my findings are reproducible with these synthetic 
benchmarks as well as production code at work. The latter shows 
approximately 25% degradation on CPU bound tests.

Is there a trick to building the compiler or using a specific 
-mtune/-march flag for my CPU? I built the compiler with all the default 
options (it just has a distinct installation path):
     ../gcc-%{version}/configure --prefix=/work/tools/gcc46 
--enable-languages=c,c++ --with-system-zlib 
--with-mpfr=/work/tools/mpfr24 --with-gmp=/work/tools/gmp 
--with-mpc=/work/tools/mpc 
LD_LIBRARY_PATH=/work/tools/mpfr/lib24:/work/tools/gmp/lib:/work/tools/mpc/lib

Are there any published benchmarks? I'd appreciate any advice or pointers.

Thanks in advance,
Oleg.

[-- Attachment #2: cpuinfo --]
[-- Type: text/plain, Size: 4816 bytes --]

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 15
model name	: Genuine Intel(R) CPU                  @ 2.40GHz
stepping	: 4
cpu MHz		: 2393.943
cache size	: 4096 KB
physical id	: 0
siblings	: 4
core id		: 0
cpu cores	: 4
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl tm2 cx16 xtpr lahf_lm
bogomips	: 4793.09
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 15
model name	: Genuine Intel(R) CPU                  @ 2.40GHz
stepping	: 4
cpu MHz		: 2393.943
cache size	: 4096 KB
physical id	: 1
siblings	: 4
core id		: 4
cpu cores	: 4
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl tm2 cx16 xtpr lahf_lm
bogomips	: 4787.17
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

processor	: 2
vendor_id	: GenuineIntel
cpu family	: 6
model		: 15
model name	: Genuine Intel(R) CPU                  @ 2.40GHz
stepping	: 4
cpu MHz		: 2393.943
cache size	: 4096 KB
physical id	: 0
siblings	: 4
core id		: 1
cpu cores	: 4
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl tm2 cx16 xtpr lahf_lm
bogomips	: 4787.12
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

processor	: 3
vendor_id	: GenuineIntel
cpu family	: 6
model		: 15
model name	: Genuine Intel(R) CPU                  @ 2.40GHz
stepping	: 4
cpu MHz		: 2393.943
cache size	: 4096 KB
physical id	: 1
siblings	: 4
core id		: 5
cpu cores	: 4
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl tm2 cx16 xtpr lahf_lm
bogomips	: 4787.16
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

processor	: 4
vendor_id	: GenuineIntel
cpu family	: 6
model		: 15
model name	: Genuine Intel(R) CPU                  @ 2.40GHz
stepping	: 4
cpu MHz		: 2393.943
cache size	: 4096 KB
physical id	: 0
siblings	: 4
core id		: 2
cpu cores	: 4
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl tm2 cx16 xtpr lahf_lm
bogomips	: 4787.15
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

processor	: 5
vendor_id	: GenuineIntel
cpu family	: 6
model		: 15
model name	: Genuine Intel(R) CPU                  @ 2.40GHz
stepping	: 4
cpu MHz		: 2393.943
cache size	: 4096 KB
physical id	: 1
siblings	: 4
core id		: 6
cpu cores	: 4
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl tm2 cx16 xtpr lahf_lm
bogomips	: 4787.16
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

processor	: 6
vendor_id	: GenuineIntel
cpu family	: 6
model		: 15
model name	: Genuine Intel(R) CPU                  @ 2.40GHz
stepping	: 4
cpu MHz		: 2393.943
cache size	: 4096 KB
physical id	: 0
siblings	: 4
core id		: 3
cpu cores	: 4
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl tm2 cx16 xtpr lahf_lm
bogomips	: 4787.15
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

processor	: 7
vendor_id	: GenuineIntel
cpu family	: 6
model		: 15
model name	: Genuine Intel(R) CPU                  @ 2.40GHz
stepping	: 4
cpu MHz		: 2393.943
cache size	: 4096 KB
physical id	: 1
siblings	: 4
core id		: 7
cpu cores	: 4
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl tm2 cx16 xtpr lahf_lm
bogomips	: 4787.19
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:


[-- Attachment #3: report41.txt --]
[-- Type: text/plain, Size: 66594 bytes --]

##STARTING Version 1.0
Thu Jul 28 11:58:41 PDT 2011
##CFlags: 
##CPPFlags: -I. -O3
##Start machine report version 1.0
##Compiler
GCC version 4.1.2 20071124 (Red Hat 4.1.2-42)
Compiled for LP64
##Target CPU
Compiled for x86 64bit
##Physical CPU
Little Endian
##Machine
##Operating System
##End machine report
./stepanov_abstraction 

test                        description   absolute   operations   ratio with
number                                    time       per second   test0

 0                     "double pointer"   5.03 sec   795.23 M     1.00
 1               "double pointer_class"   5.04 sec   793.65 M     1.00
 2         "DoubleValueWrapper pointer"   5.03 sec   795.23 M     1.00
 3   "DoubleValueWrapper pointer_class"   5.04 sec   793.65 M     1.00
 4       "DoubleValueWrapper10 pointer"   5.04 sec   793.65 M     1.00
 5 "DoubleValueWrapper10 pointer_class"   5.04 sec   793.65 M     1.00

Total absolute time for Abstraction Accumulate: 30.22 sec

Abstraction Accumulate Penalty: 1.00


test                                       description   absolute   operations   ratio with
number                                                   time       per second   test0

 0                     "insertion_sort double pointer"   0.86 sec    2.33 M     1.00
 1               "insertion_sort double pointer_class"   0.86 sec    2.33 M     1.00
 2         "insertion_sort DoubleValueWrapper pointer"   1.28 sec    1.56 M     1.49
 3   "insertion_sort DoubleValueWrapper pointer_class"   1.28 sec    1.56 M     1.49
 4       "insertion_sort DoubleValueWrapper10 pointer"   1.28 sec    1.56 M     1.49
 5 "insertion_sort DoubleValueWrapper10 pointer_class"   1.27 sec    1.57 M     1.48

Total absolute time for Abstraction Insertion Sort: 6.83 sec

Abstraction Insertion Sort Penalty: 1.37


test                                  description   absolute   operations   ratio with
number                                              time       per second   test0

 0                     "quicksort double pointer"   1.35 sec   11.85 M     1.00
 1               "quicksort double pointer_class"   1.30 sec   12.31 M     0.96
 2         "quicksort DoubleValueWrapper pointer"   1.37 sec   11.68 M     1.01
 3   "quicksort DoubleValueWrapper pointer_class"   1.27 sec   12.60 M     0.94
 4       "quicksort DoubleValueWrapper10 pointer"   1.36 sec   11.76 M     1.01
 5 "quicksort DoubleValueWrapper10 pointer_class"   1.27 sec   12.60 M     0.94

Total absolute time for Abstraction Quicksort: 7.92 sec

Abstraction Quicksort Penalty: 0.97


test                                  description   absolute   operations   ratio with
number                                              time       per second   test0

 0                     "heap_sort double pointer"   1.34 sec   11.94 M     1.00
 1               "heap_sort double pointer_class"   1.40 sec   11.43 M     1.04
 2         "heap_sort DoubleValueWrapper pointer"   1.37 sec   11.68 M     1.02
 3   "heap_sort DoubleValueWrapper pointer_class"   1.38 sec   11.59 M     1.03
 4       "heap_sort DoubleValueWrapper10 pointer"   1.34 sec   11.94 M     1.00
 5 "heap_sort DoubleValueWrapper10 pointer_class"   1.42 sec   11.27 M     1.06

Total absolute time for Abstraction Heap Sort: 8.25 sec

Abstraction Heap Sort Penalty: 1.03

./stepanov_vector 

test                            description   absolute   operations   ratio with
number                                        time       per second   test0

 0                 "double pointer verify2"   3.78 sec   793.65 M     1.00
 1                 "double vector iterator"   3.77 sec   795.76 M     1.00
 2                 "double pointer reverse"   3.78 sec   793.65 M     1.00
 3         "double vector reverse_iterator"   3.78 sec   793.65 M     1.00
 4         "double vector iterator reverse"   3.78 sec   793.65 M     1.00
 5         "double pointer reverse reverse"   3.81 sec   787.40 M     1.01
 6 "double vector reverse_iterator reverse"   3.80 sec   789.47 M     1.01
 7 "double vector iterator reverse reverse"   3.79 sec   791.56 M     1.00

Total absolute time for Vector accumulate: 30.29 sec

Vector accumulate Penalty: 1.00


test                                           description   absolute   operations   ratio with
number                                                       time       per second   test0

 0                 "insertion_sort double pointer verify2"   1.29 sec    2.33 M     1.00
 1                 "insertion_sort double vector iterator"   1.30 sec    2.31 M     1.01
 2                 "insertion_sort double pointer reverse"   1.30 sec    2.31 M     1.01
 3         "insertion_sort double vector reverse_iterator"   1.53 sec    1.96 M     1.19
 4         "insertion_sort double vector iterator reverse"   1.52 sec    1.97 M     1.18
 5         "insertion_sort double pointer reverse reverse"   1.91 sec    1.57 M     1.48
 6 "insertion_sort double vector reverse_iterator reverse"   1.92 sec    1.56 M     1.49
 7 "insertion_sort double vector iterator reverse reverse"   1.91 sec    1.57 M     1.48

Total absolute time for Vector Insertion Sort: 12.68 sec

Vector Insertion Sort Penalty: 1.24


test                                      description   absolute   operations   ratio with
number                                                  time       per second   test0

 0                 "quicksort double pointer verify2"   2.04 sec   11.76 M     1.00
 1                 "quicksort double vector iterator"   1.93 sec   12.44 M     0.95
 2                 "quicksort double pointer reverse"   2.18 sec   11.01 M     1.07
 3         "quicksort double vector reverse_iterator"   2.24 sec   10.71 M     1.10
 4         "quicksort double vector iterator reverse"   2.23 sec   10.76 M     1.09
 5         "quicksort double pointer reverse reverse"   2.15 sec   11.16 M     1.05
 6 "quicksort double vector reverse_iterator reverse"   2.18 sec   11.01 M     1.07
 7 "quicksort double vector iterator reverse reverse"   2.19 sec   10.96 M     1.07

Total absolute time for Vector Quicksort: 17.14 sec

Vector Quicksort Penalty: 1.06


test                                      description   absolute   operations   ratio with
number                                                  time       per second   test0

 0                 "heap_sort double pointer verify2"   1.97 sec   12.18 M     1.00
 1                 "heap_sort double vector iterator"   2.07 sec   11.59 M     1.05
 2                 "heap_sort double pointer reverse"   2.49 sec    9.64 M     1.26
 3         "heap_sort double vector reverse_iterator"   2.48 sec    9.68 M     1.26
 4         "heap_sort double vector iterator reverse"   2.48 sec    9.68 M     1.26
 5         "heap_sort double pointer reverse reverse"   2.20 sec   10.91 M     1.12
 6 "heap_sort double vector reverse_iterator reverse"   2.14 sec   11.21 M     1.09
 7 "heap_sort double vector iterator reverse reverse"   2.15 sec   11.16 M     1.09

Total absolute time for Vector Heap Sort: 17.98 sec

Vector Heap Sort Penalty: 1.16

./functionobjects 

test                                                description   absolute   operations   ratio with
number                                                            time       per second   test0

 0                          "qsort array with function pointer"   4.43 sec    4.51 M     1.00
 1             "quicksort function array with function pointer"   2.57 sec    7.78 M     0.58
 2             "quicksort template array with function pointer"   2.57 sec    7.78 M     0.58
 3    "quicksort template array with template function pointer"   2.52 sec    7.94 M     0.57
 4                           "sort array with function pointer"   2.00 sec   10.00 M     0.45
 5        "quicksort template array with user-supplied functor"   1.97 sec   10.15 M     0.44
 6                      "sort array with user-supplied functor"   1.44 sec   13.89 M     0.33
 7 "quicksort template array with user-supplied inline functor"   1.97 sec   10.15 M     0.44
 8               "sort array with user-supplied inline functor"   1.43 sec   13.99 M     0.32
 9             "quicksort template array with standard functor"   1.97 sec   10.15 M     0.44
10                           "sort array with standard functor"   1.44 sec   13.89 M     0.33
11            "quicksort template array with native < operator"   1.96 sec   10.20 M     0.44
12                          "sort array with native < operator"   1.42 sec   14.08 M     0.32

Total absolute time for Function Objects: 27.69 sec
./simple_types_constant_folding 

test                         description   absolute   operations   ratio with
number                                     time       per second   test0

 0                     "int8_t constant"   0.00 sec     inf M     nan
 1                "int8_t add constants"   0.00 sec     inf M     nan
 2           "int8_t subtract constants"   0.00 sec     inf M     nan
 3           "int8_t multiply constants"   0.01 sec   1600000.00 M     inf
 4             "int8_t divide constants"   0.01 sec   1600000.00 M     inf
 5                "int8_t mod constants"   0.00 sec     inf M     nan
 6              "int8_t equal constants"   0.01 sec   1600000.00 M     inf
 7           "int8_t notequal constants"   0.01 sec   1600000.00 M     inf
 8       "int8_t greater than constants"   0.00 sec     inf M     nan
 9          "int8_t less than constants"   0.01 sec   1600000.00 M     inf
10 "int8_t greater than equal constants"   0.01 sec   1600000.00 M     inf
11    "int8_t less than equal constants"   0.00 sec     inf M     nan
12                "int8_t and constants"   0.01 sec   1600000.00 M     inf
13                 "int8_t or constants"   0.01 sec   1600000.00 M     inf
14                "int8_t xor constants"   0.00 sec     inf M     nan

Total absolute time for int8_t simple constant folding: 0.08 sec

test                         description   absolute   operations   ratio with
number                                     time       per second   test0

 0                 "int8_t constant add"   1.35 sec   1185.19 M     1.00
 1       "int8_t multiple constant adds"   1.34 sec   1194.03 M     0.99
 2            "int8_t constant subtract"   1.34 sec   1194.03 M     0.99
 3  "int8_t multiple constant subtracts"   1.34 sec   1194.03 M     0.99
 4            "int8_t constant multiply"   1.71 sec   935.67 M     1.27
 5 "int8_t multiple constant multiplies"   1.71 sec   935.67 M     1.27
 6  "int8_t multiple constant multiply2"   1.34 sec   1194.03 M     0.99
 7              "int8_t constant divide"   3.85 sec   415.58 M     2.85
 8    "int8_t multiple constant divides"   6.02 sec   265.78 M     4.46
 9    "int8_t multiple constant divide2"   1.34 sec   1194.03 M     0.99
10      "int8_t multiple constant mixed"   0.97 sec   1649.48 M     0.72
11                 "int8_t constant and"   1.34 sec   1194.03 M     0.99
12        "int8_t multiple constant and"   1.34 sec   1194.03 M     0.99
13                  "int8_t constant or"   1.34 sec   1194.03 M     0.99
14         "int8_t multiple constant or"   1.34 sec   1194.03 M     0.99
15                 "int8_t constant xor"   1.34 sec   1194.03 M     0.99
16        "int8_t multiple constant xor"   1.34 sec   1194.03 M     0.99

Total absolute time for int8_t constant folding: 30.35 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                     "uint8_t constant"   0.01 sec   1600000.00 M     1.00
 1                "uint8_t add constants"   0.01 sec   1600000.00 M     1.00
 2           "uint8_t subtract constants"   0.00 sec     inf M     0.00
 3           "uint8_t multiply constants"   0.01 sec   1600000.00 M     1.00
 4             "uint8_t divide constants"   0.00 sec     inf M     0.00
 5                "uint8_t mod constants"   0.01 sec   1600000.00 M     1.00
 6              "uint8_t equal constants"   0.01 sec   1600000.00 M     1.00
 7           "uint8_t notequal constants"   0.00 sec     inf M     0.00
 8       "uint8_t greater than constants"   0.01 sec   1600000.00 M     1.00
 9          "uint8_t less than constants"   0.00 sec     inf M     0.00
10 "uint8_t greater than equal constants"   0.01 sec   1600000.00 M     1.00
11    "uint8_t less than equal constants"   0.01 sec   1600000.00 M     1.00
12                "uint8_t and constants"   0.00 sec     inf M     0.00
13                 "uint8_t or constants"   0.01 sec   1600000.00 M     1.00
14                "uint8_t xor constants"   0.01 sec   1600000.00 M     1.00

Total absolute time for uint8_t simple constant folding: 0.10 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                 "uint8_t constant add"   1.34 sec   1194.03 M     1.00
 1       "uint8_t multiple constant adds"   1.34 sec   1194.03 M     1.00
 2            "uint8_t constant subtract"   1.34 sec   1194.03 M     1.00
 3  "uint8_t multiple constant subtracts"   1.34 sec   1194.03 M     1.00
 4            "uint8_t constant multiply"   1.68 sec   952.38 M     1.25
 5 "uint8_t multiple constant multiplies"   1.69 sec   946.75 M     1.26
 6  "uint8_t multiple constant multiply2"   1.34 sec   1194.03 M     1.00
 7              "uint8_t constant divide"   3.51 sec   455.84 M     2.62
 8    "uint8_t multiple constant divides"   3.52 sec   454.55 M     2.63
 9    "uint8_t multiple constant divide2"   1.34 sec   1194.03 M     1.00
10      "uint8_t multiple constant mixed"   0.96 sec   1666.67 M     0.72
11                 "uint8_t constant and"   1.35 sec   1185.19 M     1.01
12        "uint8_t multiple constant and"   1.34 sec   1194.03 M     1.00
13                  "uint8_t constant or"   1.35 sec   1185.19 M     1.01
14         "uint8_t multiple constant or"   1.35 sec   1185.19 M     1.01
15                 "uint8_t constant xor"   1.35 sec   1185.19 M     1.01
16        "uint8_t multiple constant xor"   1.35 sec   1185.19 M     1.01

Total absolute time for uint8_t constant folding: 27.49 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                     "int16_t constant"   0.01 sec   1600000.00 M     1.00
 1                "int16_t add constants"   0.01 sec   1600000.00 M     1.00
 2           "int16_t subtract constants"   0.01 sec   1600000.00 M     1.00
 3           "int16_t multiply constants"   0.01 sec   1600000.00 M     1.00
 4             "int16_t divide constants"   0.01 sec   1600000.00 M     1.00
 5                "int16_t mod constants"   0.01 sec   1600000.00 M     1.00
 6              "int16_t equal constants"   0.01 sec   1600000.00 M     1.00
 7           "int16_t notequal constants"   0.01 sec   1600000.00 M     1.00
 8       "int16_t greater than constants"   0.01 sec   1600000.00 M     1.00
 9          "int16_t less than constants"   0.01 sec   1600000.00 M     1.00
10 "int16_t greater than equal constants"   0.01 sec   1600000.00 M     1.00
11    "int16_t less than equal constants"   0.01 sec   1600000.00 M     1.00
12                "int16_t and constants"   0.01 sec   1600000.00 M     1.00
13                 "int16_t or constants"   0.01 sec   1600000.00 M     1.00
14                "int16_t xor constants"   0.01 sec   1600000.00 M     1.00

Total absolute time for int16_t simple constant folding: 0.15 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                 "int16_t constant add"   1.35 sec   1185.19 M     1.00
 1       "int16_t multiple constant adds"   1.35 sec   1185.19 M     1.00
 2            "int16_t constant subtract"   1.35 sec   1185.19 M     1.00
 3  "int16_t multiple constant subtracts"   1.34 sec   1194.03 M     0.99
 4            "int16_t constant multiply"   1.76 sec   909.09 M     1.30
 5 "int16_t multiple constant multiplies"   1.72 sec   930.23 M     1.27
 6  "int16_t multiple constant multiply2"   1.34 sec   1194.03 M     0.99
 7              "int16_t constant divide"   3.85 sec   415.58 M     2.85
 8    "int16_t multiple constant divides"   4.02 sec   398.01 M     2.98
 9    "int16_t multiple constant divide2"   1.34 sec   1194.03 M     0.99
10      "int16_t multiple constant mixed"   0.97 sec   1649.48 M     0.72
11                 "int16_t constant and"   1.34 sec   1194.03 M     0.99
12        "int16_t multiple constant and"   1.37 sec   1167.88 M     1.01
13                  "int16_t constant or"   1.34 sec   1194.03 M     0.99
14         "int16_t multiple constant or"   1.34 sec   1194.03 M     0.99
15                 "int16_t constant xor"   1.34 sec   1194.03 M     0.99
16        "int16_t multiple constant xor"   1.34 sec   1194.03 M     0.99

Total absolute time for int16_t constant folding: 28.46 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                     "uint16_t constant"   0.01 sec   1600000.00 M     1.00
 1                "uint16_t add constants"   0.01 sec   1600000.00 M     1.00
 2           "uint16_t subtract constants"   0.01 sec   1600000.00 M     1.00
 3           "uint16_t multiply constants"   0.01 sec   1600000.00 M     1.00
 4             "uint16_t divide constants"   0.01 sec   1600000.00 M     1.00
 5                "uint16_t mod constants"   0.01 sec   1600000.00 M     1.00
 6              "uint16_t equal constants"   0.00 sec     inf M     0.00
 7           "uint16_t notequal constants"   0.01 sec   1600000.00 M     1.00
 8       "uint16_t greater than constants"   0.01 sec   1600000.00 M     1.00
 9          "uint16_t less than constants"   0.01 sec   1600000.00 M     1.00
10 "uint16_t greater than equal constants"   0.01 sec   1600000.00 M     1.00
11    "uint16_t less than equal constants"   0.00 sec     inf M     0.00
12                "uint16_t and constants"   0.00 sec     inf M     0.00
13                 "uint16_t or constants"   0.00 sec     inf M     0.00
14                "uint16_t xor constants"   0.01 sec   1600000.00 M     1.00

Total absolute time for uint16_t simple constant folding: 0.11 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                 "uint16_t constant add"   1.52 sec   1052.63 M     1.00
 1       "uint16_t multiple constant adds"   1.52 sec   1052.63 M     1.00
 2            "uint16_t constant subtract"   1.53 sec   1045.75 M     1.01
 3  "uint16_t multiple constant subtracts"   1.52 sec   1052.63 M     1.00
 4            "uint16_t constant multiply"   2.04 sec   784.31 M     1.34
 5 "uint16_t multiple constant multiplies"   2.03 sec   788.18 M     1.34
 6  "uint16_t multiple constant multiply2"   1.52 sec   1052.63 M     1.00
 7              "uint16_t constant divide"   1.99 sec   804.02 M     1.31
 8    "uint16_t multiple constant divides"   1.99 sec   804.02 M     1.31
 9    "uint16_t multiple constant divide2"   1.52 sec   1052.63 M     1.00
10      "uint16_t multiple constant mixed"   1.34 sec   1194.03 M     0.88
11                 "uint16_t constant and"   1.52 sec   1052.63 M     1.00
12        "uint16_t multiple constant and"   1.52 sec   1052.63 M     1.00
13                  "uint16_t constant or"   1.52 sec   1052.63 M     1.00
14         "uint16_t multiple constant or"   1.52 sec   1052.63 M     1.00
15                 "uint16_t constant xor"   1.52 sec   1052.63 M     1.00
16        "uint16_t multiple constant xor"   1.53 sec   1045.75 M     1.01

Total absolute time for uint16_t constant folding: 27.65 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                     "int32_t constant"   0.00 sec     inf M     nan
 1                "int32_t add constants"   0.00 sec     inf M     nan
 2           "int32_t subtract constants"   0.00 sec     inf M     nan
 3           "int32_t multiply constants"   0.00 sec     inf M     nan
 4             "int32_t divide constants"   0.00 sec     inf M     nan
 5                "int32_t mod constants"   0.00 sec     inf M     nan
 6              "int32_t equal constants"   0.00 sec     inf M     nan
 7           "int32_t notequal constants"   0.00 sec     inf M     nan
 8       "int32_t greater than constants"   0.00 sec     inf M     nan
 9          "int32_t less than constants"   0.00 sec     inf M     nan
10 "int32_t greater than equal constants"   0.00 sec     inf M     nan
11    "int32_t less than equal constants"   0.00 sec     inf M     nan
12                "int32_t and constants"   0.01 sec   1600000.00 M     inf
13                 "int32_t or constants"   0.00 sec     inf M     nan
14                "int32_t xor constants"   0.00 sec     inf M     nan

Total absolute time for int32_t simple constant folding: 0.01 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                 "int32_t constant add"   1.51 sec   1059.60 M     1.00
 1       "int32_t multiple constant adds"   1.51 sec   1059.60 M     1.00
 2            "int32_t constant subtract"   1.51 sec   1059.60 M     1.00
 3  "int32_t multiple constant subtracts"   1.52 sec   1052.63 M     1.01
 4            "int32_t constant multiply"   1.94 sec   824.74 M     1.28
 5 "int32_t multiple constant multiplies"   1.78 sec   898.88 M     1.18
 6  "int32_t multiple constant multiply2"   1.51 sec   1059.60 M     1.00
 7              "int32_t constant divide"   3.53 sec   453.26 M     2.34
 8    "int32_t multiple constant divides"   3.86 sec   414.51 M     2.56
 9    "int32_t multiple constant divide2"   1.52 sec   1052.63 M     1.01
10      "int32_t multiple constant mixed"   1.35 sec   1185.19 M     0.89
11                 "int32_t constant and"   1.53 sec   1045.75 M     1.01
12        "int32_t multiple constant and"   1.52 sec   1052.63 M     1.01
13                  "int32_t constant or"   1.52 sec   1052.63 M     1.01
14         "int32_t multiple constant or"   1.53 sec   1045.75 M     1.01
15                 "int32_t constant xor"   1.51 sec   1059.60 M     1.00
16        "int32_t multiple constant xor"   1.51 sec   1059.60 M     1.00

Total absolute time for int32_t constant folding: 30.66 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                     "uint32_t constant"   0.01 sec   1600000.00 M     1.00
 1                "uint32_t add constants"   0.00 sec     inf M     0.00
 2           "uint32_t subtract constants"   0.00 sec     inf M     0.00
 3           "uint32_t multiply constants"   0.00 sec     inf M     0.00
 4             "uint32_t divide constants"   0.00 sec     inf M     0.00
 5                "uint32_t mod constants"   0.00 sec     inf M     0.00
 6              "uint32_t equal constants"   0.00 sec     inf M     0.00
 7           "uint32_t notequal constants"   0.00 sec     inf M     0.00
 8       "uint32_t greater than constants"   0.00 sec     inf M     0.00
 9          "uint32_t less than constants"   0.00 sec     inf M     0.00
10 "uint32_t greater than equal constants"   0.00 sec     inf M     0.00
11    "uint32_t less than equal constants"   0.00 sec     inf M     0.00
12                "uint32_t and constants"   0.01 sec   1600000.00 M     1.00
13                 "uint32_t or constants"   0.00 sec     inf M     0.00
14                "uint32_t xor constants"   0.00 sec     inf M     0.00

Total absolute time for uint32_t simple constant folding: 0.02 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                 "uint32_t constant add"   1.51 sec   1059.60 M     1.00
 1       "uint32_t multiple constant adds"   1.51 sec   1059.60 M     1.00
 2            "uint32_t constant subtract"   1.51 sec   1059.60 M     1.00
 3  "uint32_t multiple constant subtracts"   1.52 sec   1052.63 M     1.01
 4            "uint32_t constant multiply"   1.94 sec   824.74 M     1.28
 5 "uint32_t multiple constant multiplies"   1.78 sec   898.88 M     1.18
 6  "uint32_t multiple constant multiply2"   1.51 sec   1059.60 M     1.00
 7              "uint32_t constant divide"   2.77 sec   577.62 M     1.83
 8    "uint32_t multiple constant divides"   2.77 sec   577.62 M     1.83
 9    "uint32_t multiple constant divide2"   1.52 sec   1052.63 M     1.01
10      "uint32_t multiple constant mixed"   1.35 sec   1185.19 M     0.89
11                 "uint32_t constant and"   1.51 sec   1059.60 M     1.00
12        "uint32_t multiple constant and"   1.51 sec   1059.60 M     1.00
13                  "uint32_t constant or"   1.52 sec   1052.63 M     1.01
14         "uint32_t multiple constant or"   1.51 sec   1059.60 M     1.00
15                 "uint32_t constant xor"   1.51 sec   1059.60 M     1.00
16        "uint32_t multiple constant xor"   1.51 sec   1059.60 M     1.00

Total absolute time for uint32_t constant folding: 28.76 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                     "int64_t constant"   0.01 sec   1600000.00 M     1.00
 1                "int64_t add constants"   0.00 sec     inf M     0.00
 2           "int64_t subtract constants"   0.00 sec     inf M     0.00
 3           "int64_t multiply constants"   0.00 sec     inf M     0.00
 4             "int64_t divide constants"   0.00 sec     inf M     0.00
 5                "int64_t mod constants"   0.00 sec     inf M     0.00
 6              "int64_t equal constants"   0.00 sec     inf M     0.00
 7           "int64_t notequal constants"   0.00 sec     inf M     0.00
 8       "int64_t greater than constants"   0.00 sec     inf M     0.00
 9          "int64_t less than constants"   0.00 sec     inf M     0.00
10 "int64_t greater than equal constants"   0.00 sec     inf M     0.00
11    "int64_t less than equal constants"   0.00 sec     inf M     0.00
12                "int64_t and constants"   0.00 sec     inf M     0.00
13                 "int64_t or constants"   0.00 sec     inf M     0.00
14                "int64_t xor constants"   0.00 sec     inf M     0.00

Total absolute time for int64_t simple constant folding: 0.01 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                 "int64_t constant add"   1.57 sec   1019.11 M     1.00
 1       "int64_t multiple constant adds"   1.57 sec   1019.11 M     1.00
 2            "int64_t constant subtract"   1.57 sec   1019.11 M     1.00
 3  "int64_t multiple constant subtracts"   1.56 sec   1025.64 M     0.99
 4            "int64_t constant multiply"   2.02 sec   792.08 M     1.29
 5 "int64_t multiple constant multiplies"   2.01 sec   796.02 M     1.28
 6  "int64_t multiple constant multiply2"   1.57 sec   1019.11 M     1.00
 7              "int64_t constant divide"   3.38 sec   473.37 M     2.15
 8    "int64_t multiple constant divides"   3.76 sec   425.53 M     2.39
 9    "int64_t multiple constant divide2"   1.57 sec   1019.11 M     1.00
10      "int64_t multiple constant mixed"   1.34 sec   1194.03 M     0.85
11                 "int64_t constant and"   1.57 sec   1019.11 M     1.00
12        "int64_t multiple constant and"   1.56 sec   1025.64 M     0.99
13                  "int64_t constant or"   1.57 sec   1019.11 M     1.00
14         "int64_t multiple constant or"   1.57 sec   1019.11 M     1.00
15                 "int64_t constant xor"   1.56 sec   1025.64 M     0.99
16        "int64_t multiple constant xor"   1.57 sec   1019.11 M     1.00

Total absolute time for int64_t constant folding: 31.32 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                     "uint64_t constant"   0.00 sec     inf M     nan
 1                "uint64_t add constants"   0.00 sec     inf M     nan
 2           "uint64_t subtract constants"   0.00 sec     inf M     nan
 3           "uint64_t multiply constants"   0.00 sec     inf M     nan
 4             "uint64_t divide constants"   0.01 sec   1600000.00 M     inf
 5                "uint64_t mod constants"   0.00 sec     inf M     nan
 6              "uint64_t equal constants"   0.00 sec     inf M     nan
 7           "uint64_t notequal constants"   0.00 sec     inf M     nan
 8       "uint64_t greater than constants"   0.00 sec     inf M     nan
 9          "uint64_t less than constants"   0.00 sec     inf M     nan
10 "uint64_t greater than equal constants"   0.00 sec     inf M     nan
11    "uint64_t less than equal constants"   0.00 sec     inf M     nan
12                "uint64_t and constants"   0.00 sec     inf M     nan
13                 "uint64_t or constants"   0.00 sec     inf M     nan
14                "uint64_t xor constants"   0.00 sec     inf M     nan

Total absolute time for uint64_t simple constant folding: 0.01 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                 "uint64_t constant add"   1.57 sec   1019.11 M     1.00
 1       "uint64_t multiple constant adds"   1.57 sec   1019.11 M     1.00
 2            "uint64_t constant subtract"   1.57 sec   1019.11 M     1.00
 3  "uint64_t multiple constant subtracts"   1.57 sec   1019.11 M     1.00
 4            "uint64_t constant multiply"   2.03 sec   788.18 M     1.29
 5 "uint64_t multiple constant multiplies"   2.03 sec   788.18 M     1.29
 6  "uint64_t multiple constant multiply2"   1.58 sec   1012.66 M     1.01
 7              "uint64_t constant divide"   2.70 sec   592.59 M     1.72
 8    "uint64_t multiple constant divides"   2.70 sec   592.59 M     1.72
 9    "uint64_t multiple constant divide2"   1.57 sec   1019.11 M     1.00
10      "uint64_t multiple constant mixed"   1.35 sec   1185.19 M     0.86
11                 "uint64_t constant and"   1.57 sec   1019.11 M     1.00
12        "uint64_t multiple constant and"   1.57 sec   1019.11 M     1.00
13                  "uint64_t constant or"   1.57 sec   1019.11 M     1.00
14         "uint64_t multiple constant or"   1.57 sec   1019.11 M     1.00
15                 "uint64_t constant xor"   1.57 sec   1019.11 M     1.00
16        "uint64_t multiple constant xor"   1.57 sec   1019.11 M     1.00

Total absolute time for uint64_t constant folding: 29.66 sec

test              description   absolute   operations   ratio with
number                          time       per second   test0

 0           "float constant"  20.09 sec   796.42 M     1.00
 1      "float add constants"  20.09 sec   796.42 M     1.00
 2 "float subtract constants"  20.11 sec   795.62 M     1.00
 3 "float multiply constants"  20.14 sec   794.44 M     1.00
 4   "float divide constants"  20.09 sec   796.42 M     1.00

Total absolute time for float simple constant folding: 100.52 sec

test                        description   absolute   operations   ratio with
number                                    time       per second   test0

 0                 "float constant add"   2.01 sec   796.02 M     1.00
 1       "float multiple constant adds"   3.36 sec   476.19 M     1.67
 2            "float constant subtract"   2.01 sec   796.02 M     1.00
 3  "float multiple constant subtracts"   3.36 sec   476.19 M     1.67
 4            "float constant multiply"   2.01 sec   796.02 M     1.00
 5 "float multiple constant multiplies"   2.70 sec   592.59 M     1.34
 6  "float multiple constant multiply2"   2.01 sec   796.02 M     1.00
 7              "float constant divide"  11.45 sec   139.74 M     5.70
 8    "float multiple constant divides"  22.92 sec   69.81 M     11.40
 9    "float multiple constant divide2"   2.01 sec   796.02 M     1.00
10      "float multiple constant mixed"   2.02 sec   792.08 M     1.00

Total absolute time for float constant folding: 55.86 sec

test               description   absolute   operations   ratio with
number                           time       per second   test0

 0           "double constant"  20.09 sec   796.42 M     1.00
 1      "double add constants"  20.10 sec   796.02 M     1.00
 2 "double subtract constants"  20.09 sec   796.42 M     1.00
 3 "double multiply constants"  20.16 sec   793.65 M     1.00
 4   "double divide constants"  20.09 sec   796.42 M     1.00

Total absolute time for double simple constant folding: 100.53 sec

test                         description   absolute   operations   ratio with
number                                     time       per second   test0

 0                 "double constant add"   2.04 sec   784.31 M     1.00
 1       "double multiple constant adds"   3.52 sec   454.55 M     1.73
 2            "double constant subtract"   2.05 sec   780.49 M     1.00
 3  "double multiple constant subtracts"   3.52 sec   454.55 M     1.73
 4            "double constant multiply"   2.01 sec   796.02 M     0.99
 5 "double multiple constant multiplies"   2.88 sec   555.56 M     1.41
 6  "double multiple constant multiply2"   2.04 sec   784.31 M     1.00
 7              "double constant divide"  20.74 sec   77.15 M     10.17
 8    "double multiple constant divides"  42.41 sec   37.73 M     20.79
 9    "double multiple constant divide2"   2.04 sec   784.31 M     1.00
10      "double multiple constant mixed"   2.19 sec   730.59 M     1.07

Total absolute time for double constant folding: 85.44 sec
./simple_types_loop_invariant 

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                  "int8_t variable add"   1.52 sec   1052.63 M     1.00
 1          "int8_t variable add hoisted"   1.34 sec   1194.03 M     0.88
 2        "int8_t multiple variable adds"   1.34 sec   1194.03 M     0.88
 3             "int8_t variable subtract"   1.71 sec   935.67 M     1.12
 4   "int8_t multiple variable subtracts"   4.02 sec   398.01 M     2.64
 5             "int8_t variable multiply"   1.81 sec   883.98 M     1.19
 6  "int8_t multiple variable multiplies"   1.62 sec   987.65 M     1.07
 7 "int8_t multiple variable multiplies2"   1.35 sec   1185.19 M     0.89
 8               "int8_t variable divide"   8.03 sec   199.25 M     5.28
 9     "int8_t multiple variable divides"  32.29 sec   49.55 M     21.24
10    "int8_t multiple variable divides2"   1.68 sec   952.38 M     1.11
11       "int8_t multiple variable mixed"   1.65 sec   969.70 M     1.09
12                  "int8_t variable and"   1.53 sec   1045.75 M     1.01
13         "int8_t multiple variable and"   1.34 sec   1194.03 M     0.88
14                   "int8_t variable or"   1.52 sec   1052.63 M     1.00
15          "int8_t multiple variable or"   1.34 sec   1194.03 M     0.88
16                  "int8_t variable xor"   1.51 sec   1059.60 M     0.99
17         "int8_t multiple variable xor"   1.34 sec   1194.03 M     0.88

Total absolute time for int8_t loop invariant: 66.94 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                  "uint8_t variable add"   1.52 sec   1052.63 M     1.00
 1          "uint8_t variable add hoisted"   1.34 sec   1194.03 M     0.88
 2        "uint8_t multiple variable adds"   1.34 sec   1194.03 M     0.88
 3             "uint8_t variable subtract"   1.68 sec   952.38 M     1.11
 4   "uint8_t multiple variable subtracts"   4.02 sec   398.01 M     2.64
 5             "uint8_t variable multiply"   1.80 sec   888.89 M     1.18
 6  "uint8_t multiple variable multiplies"   1.63 sec   981.60 M     1.07
 7 "uint8_t multiple variable multiplies2"   1.34 sec   1194.03 M     0.88
 8               "uint8_t variable divide"   8.04 sec   199.00 M     5.29
 9     "uint8_t multiple variable divides"  32.23 sec   49.64 M     21.20
10    "uint8_t multiple variable divides2"   1.83 sec   874.32 M     1.20
11       "uint8_t multiple variable mixed"   1.82 sec   879.12 M     1.20
12                  "uint8_t variable and"   1.53 sec   1045.75 M     1.01
13         "uint8_t multiple variable and"   1.51 sec   1059.60 M     0.99
14                   "uint8_t variable or"   1.52 sec   1052.63 M     1.00
15          "uint8_t multiple variable or"   1.51 sec   1059.60 M     0.99
16                  "uint8_t variable xor"   1.52 sec   1052.63 M     1.00
17         "uint8_t multiple variable xor"   1.52 sec   1052.63 M     1.00

Total absolute time for uint8_t loop invariant: 67.70 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                  "int16_t variable add"   1.51 sec   1059.60 M     1.00
 1          "int16_t variable add hoisted"   1.35 sec   1185.19 M     0.89
 2        "int16_t multiple variable adds"   1.34 sec   1194.03 M     0.89
 3             "int16_t variable subtract"   1.68 sec   952.38 M     1.11
 4   "int16_t multiple variable subtracts"   4.02 sec   398.01 M     2.66
 5             "int16_t variable multiply"   1.81 sec   883.98 M     1.20
 6  "int16_t multiple variable multiplies"   1.58 sec   1012.66 M     1.05
 7 "int16_t multiple variable multiplies2"   1.34 sec   1194.03 M     0.89
 8               "int16_t variable divide"   8.03 sec   199.25 M     5.32
 9     "int16_t multiple variable divides"  32.22 sec   49.66 M     21.34
10    "int16_t multiple variable divides2"   1.82 sec   879.12 M     1.21
11       "int16_t multiple variable mixed"   1.81 sec   883.98 M     1.20
12                  "int16_t variable and"   1.52 sec   1052.63 M     1.01
13         "int16_t multiple variable and"   1.34 sec   1194.03 M     0.89
14                   "int16_t variable or"   1.53 sec   1045.75 M     1.01
15          "int16_t multiple variable or"   1.35 sec   1185.19 M     0.89
16                  "int16_t variable xor"   1.52 sec   1052.63 M     1.01
17         "int16_t multiple variable xor"   1.36 sec   1176.47 M     0.90

Total absolute time for int16_t loop invariant: 67.13 sec

test                            description   absolute   operations   ratio with
number                                        time       per second   test0

 0                  "uint16_t variable add"   1.53 sec   1045.75 M     1.00
 1          "uint16_t variable add hoisted"   1.35 sec   1185.19 M     0.88
 2        "uint16_t multiple variable adds"   1.35 sec   1185.19 M     0.88
 3             "uint16_t variable subtract"   1.68 sec   952.38 M     1.10
 4   "uint16_t multiple variable subtracts"   4.01 sec   399.00 M     2.62
 5             "uint16_t variable multiply"   1.80 sec   888.89 M     1.18
 6  "uint16_t multiple variable multiplies"   1.63 sec   981.60 M     1.07
 7 "uint16_t multiple variable multiplies2"   1.34 sec   1194.03 M     0.88
 8               "uint16_t variable divide"   8.15 sec   196.32 M     5.33
 9     "uint16_t multiple variable divides"  32.17 sec   49.74 M     21.03
10    "uint16_t multiple variable divides2"   1.66 sec   963.86 M     1.08
11       "uint16_t multiple variable mixed"   1.65 sec   969.70 M     1.08
12                  "uint16_t variable and"   1.52 sec   1052.63 M     0.99
13         "uint16_t multiple variable and"   1.51 sec   1059.60 M     0.99
14                   "uint16_t variable or"   1.53 sec   1045.75 M     1.00
15          "uint16_t multiple variable or"   1.50 sec   1066.67 M     0.98
16                  "uint16_t variable xor"   1.53 sec   1045.75 M     1.00
17         "uint16_t multiple variable xor"   1.50 sec   1066.67 M     0.98

Total absolute time for uint16_t loop invariant: 67.41 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                  "int32_t variable add"   1.67 sec   958.08 M     1.00
 1          "int32_t variable add hoisted"   1.34 sec   1194.03 M     0.80
 2        "int32_t multiple variable adds"   1.43 sec   1118.88 M     0.86
 3             "int32_t variable subtract"   1.51 sec   1059.60 M     0.90
 4   "int32_t multiple variable subtracts"   2.05 sec   780.49 M     1.23
 5             "int32_t variable multiply"   1.93 sec   829.02 M     1.16
 6  "int32_t multiple variable multiplies"   1.72 sec   930.23 M     1.03
 7 "int32_t multiple variable multiplies2"   1.41 sec   1134.75 M     0.84
 8               "int32_t variable divide"   8.06 sec   198.51 M     4.83
 9     "int32_t multiple variable divides"  32.14 sec   49.78 M     19.25
10    "int32_t multiple variable divides2"   1.66 sec   963.86 M     0.99
11       "int32_t multiple variable mixed"   1.65 sec   969.70 M     0.99
12                  "int32_t variable and"   1.41 sec   1134.75 M     0.84
13         "int32_t multiple variable and"   1.41 sec   1134.75 M     0.84
14                   "int32_t variable or"   1.41 sec   1134.75 M     0.84
15          "int32_t multiple variable or"   1.43 sec   1118.88 M     0.86
16                  "int32_t variable xor"   1.66 sec   963.86 M     0.99
17         "int32_t multiple variable xor"   1.43 sec   1118.88 M     0.86

Total absolute time for int32_t loop invariant: 65.32 sec

test                            description   absolute   operations   ratio with
number                                        time       per second   test0

 0                  "uint32_t variable add"   1.66 sec   963.86 M     1.00
 1          "uint32_t variable add hoisted"   1.34 sec   1194.03 M     0.81
 2        "uint32_t multiple variable adds"   1.43 sec   1118.88 M     0.86
 3             "uint32_t variable subtract"   1.52 sec   1052.63 M     0.92
 4   "uint32_t multiple variable subtracts"   2.03 sec   788.18 M     1.22
 5             "uint32_t variable multiply"   1.87 sec   855.61 M     1.13
 6  "uint32_t multiple variable multiplies"   1.71 sec   935.67 M     1.03
 7 "uint32_t multiple variable multiplies2"   1.43 sec   1118.88 M     0.86
 8               "uint32_t variable divide"   8.04 sec   199.00 M     4.84
 9     "uint32_t multiple variable divides"  32.21 sec   49.67 M     19.40
10    "uint32_t multiple variable divides2"   1.67 sec   958.08 M     1.01
11       "uint32_t multiple variable mixed"   1.65 sec   969.70 M     0.99
12                  "uint32_t variable and"   1.66 sec   963.86 M     1.00
13         "uint32_t multiple variable and"   1.44 sec   1111.11 M     0.87
14                   "uint32_t variable or"   1.65 sec   969.70 M     0.99
15          "uint32_t multiple variable or"   1.43 sec   1118.88 M     0.86
16                  "uint32_t variable xor"   1.66 sec   963.86 M     1.00
17         "uint32_t multiple variable xor"   1.43 sec   1118.88 M     0.86

Total absolute time for uint32_t loop invariant: 65.83 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                  "int64_t variable add"   1.69 sec   946.75 M     1.00
 1          "int64_t variable add hoisted"   1.34 sec   1194.03 M     0.79
 2        "int64_t multiple variable adds"   1.50 sec   1066.67 M     0.89
 3             "int64_t variable subtract"   1.57 sec   1019.11 M     0.93
 4   "int64_t multiple variable subtracts"   2.04 sec   784.31 M     1.21
 5             "int64_t variable multiply"   1.81 sec   883.98 M     1.07
 6  "int64_t multiple variable multiplies"   1.59 sec   1006.29 M     0.94
 7 "int64_t multiple variable multiplies2"   1.50 sec   1066.67 M     0.89
 8               "int64_t variable divide"  22.18 sec   72.14 M     13.12
 9     "int64_t multiple variable divides"  100.84 sec   15.87 M     59.67
10    "int64_t multiple variable divides2"   1.69 sec   946.75 M     1.00
11       "int64_t multiple variable mixed"   1.69 sec   946.75 M     1.00
12                  "int64_t variable and"   1.70 sec   941.18 M     1.01
13         "int64_t multiple variable and"   1.50 sec   1066.67 M     0.89
14                   "int64_t variable or"   1.69 sec   946.75 M     1.00
15          "int64_t multiple variable or"   1.50 sec   1066.67 M     0.89
16                  "int64_t variable xor"   1.70 sec   941.18 M     1.01
17         "int64_t multiple variable xor"   1.50 sec   1066.67 M     0.89

Total absolute time for int64_t loop invariant: 149.03 sec

test                            description   absolute   operations   ratio with
number                                        time       per second   test0

 0                  "uint64_t variable add"   1.69 sec   946.75 M     1.00
 1          "uint64_t variable add hoisted"   1.34 sec   1194.03 M     0.79
 2        "uint64_t multiple variable adds"   1.50 sec   1066.67 M     0.89
 3             "uint64_t variable subtract"   1.57 sec   1019.11 M     0.93
 4   "uint64_t multiple variable subtracts"   2.05 sec   780.49 M     1.21
 5             "uint64_t variable multiply"   1.81 sec   883.98 M     1.07
 6  "uint64_t multiple variable multiplies"   1.59 sec   1006.29 M     0.94
 7 "uint64_t multiple variable multiplies2"   1.49 sec   1073.83 M     0.88
 8               "uint64_t variable divide"  13.08 sec   122.32 M     7.74
 9     "uint64_t multiple variable divides"  64.18 sec   24.93 M     37.98
10    "uint64_t multiple variable divides2"   1.69 sec   946.75 M     1.00
11       "uint64_t multiple variable mixed"   1.69 sec   946.75 M     1.00
12                  "uint64_t variable and"   1.70 sec   941.18 M     1.01
13         "uint64_t multiple variable and"   1.50 sec   1066.67 M     0.89
14                   "uint64_t variable or"   1.69 sec   946.75 M     1.00
15          "uint64_t multiple variable or"   1.50 sec   1066.67 M     0.89
16                  "uint64_t variable xor"   1.69 sec   946.75 M     1.00
17         "uint64_t multiple variable xor"   1.50 sec   1066.67 M     0.89

Total absolute time for uint64_t loop invariant: 103.26 sec

test                         description   absolute   operations   ratio with
number                                     time       per second   test0

 0                  "float variable add"   2.01 sec   796.02 M     1.00
 1          "float variable add hoisted"   2.01 sec   796.02 M     1.00
 2        "float multiple variable adds"   3.36 sec   476.19 M     1.67
 3             "float variable subtract"   2.01 sec   796.02 M     1.00
 4   "float multiple variable subtracts"   3.36 sec   476.19 M     1.67
 5             "float variable multiply"   2.01 sec   796.02 M     1.00
 6  "float multiple variable multiplies"   3.36 sec   476.19 M     1.67
 7 "float multiple variable multiplies2"   2.01 sec   796.02 M     1.00
 8               "float variable divide"   3.36 sec   476.19 M     1.67
 9     "float multiple variable divides"  29.68 sec   53.91 M     14.77
10    "float multiple variable divides2"   2.01 sec   796.02 M     1.00
11       "float multiple variable mixed"   2.02 sec   792.08 M     1.00

Total absolute time for float loop invariant: 57.20 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                  "double variable add"   2.01 sec   796.02 M     1.00
 1          "double variable add hoisted"   2.01 sec   796.02 M     1.00
 2        "double multiple variable adds"   3.53 sec   453.26 M     1.76
 3             "double variable subtract"   2.04 sec   784.31 M     1.01
 4   "double multiple variable subtracts"   3.52 sec   454.55 M     1.75
 5             "double variable multiply"   2.02 sec   792.08 M     1.00
 6  "double multiple variable multiplies"   3.64 sec   439.56 M     1.81
 7 "double multiple variable multiplies2"   2.02 sec   792.08 M     1.00
 8               "double variable divide"   3.35 sec   477.61 M     1.67
 9     "double multiple variable divides"  49.13 sec   32.57 M     24.44
10    "double multiple variable divides2"   2.02 sec   792.08 M     1.00
11       "double multiple variable mixed"   2.03 sec   788.18 M     1.01

Total absolute time for double loop invariant: 77.32 sec
./loop_unroll 

test                description   absolute   operations   ratio with
number                            time       per second   test0

 0  "int32_t for loop unroll 1"   3.14 sec   764.33 M     1.00
 1  "int32_t for loop unroll 2"   2.15 sec   1116.28 M     0.68
 2  "int32_t for loop unroll 3"   1.82 sec   1318.68 M     0.58
 3  "int32_t for loop unroll 4"   1.73 sec   1387.28 M     0.55
 4  "int32_t for loop unroll 5"   1.61 sec   1490.68 M     0.51
 5  "int32_t for loop unroll 6"   1.76 sec   1363.64 M     0.56
 6  "int32_t for loop unroll 7"   1.64 sec   1463.41 M     0.52
 7  "int32_t for loop unroll 8"   1.63 sec   1472.39 M     0.52
 8  "int32_t for loop unroll 9"   1.53 sec   1568.63 M     0.49
 9 "int32_t for loop unroll 10"   1.45 sec   1655.17 M     0.46
10 "int32_t for loop unroll 11"   2.31 sec   1038.96 M     0.74
11 "int32_t for loop unroll 12"   2.27 sec   1057.27 M     0.72
12 "int32_t for loop unroll 13"   2.14 sec   1121.50 M     0.68
13 "int32_t for loop unroll 14"   2.07 sec   1159.42 M     0.66
14 "int32_t for loop unroll 15"   1.96 sec   1224.49 M     0.62
15 "int32_t for loop unroll 16"   1.96 sec   1224.49 M     0.62
16 "int32_t for loop unroll 17"   1.86 sec   1290.32 M     0.59
17 "int32_t for loop unroll 18"   2.34 sec   1025.64 M     0.75
18 "int32_t for loop unroll 19"   2.44 sec   983.61 M     0.78
19 "int32_t for loop unroll 20"   2.38 sec   1008.40 M     0.76
20 "int32_t for loop unroll 21"   2.28 sec   1052.63 M     0.73
21 "int32_t for loop unroll 22"   2.18 sec   1100.92 M     0.69
22 "int32_t for loop unroll 23"   2.25 sec   1066.67 M     0.72
23 "int32_t for loop unroll 24"   2.13 sec   1126.76 M     0.68
24 "int32_t for loop unroll 25"   2.12 sec   1132.08 M     0.68
25 "int32_t for loop unroll 26"   2.03 sec   1182.27 M     0.65
26 "int32_t for loop unroll 27"   2.08 sec   1153.85 M     0.66
27 "int32_t for loop unroll 28"   1.97 sec   1218.27 M     0.63
28 "int32_t for loop unroll 29"   2.44 sec   983.61 M     0.78
29 "int32_t for loop unroll 30"   2.60 sec   923.08 M     0.83
30 "int32_t for loop unroll 31"   1.96 sec   1224.49 M     0.62
31 "int32_t for loop unroll 32"   1.92 sec   1250.00 M     0.61

Total absolute time for int32_t for loop unrolling: 66.15 sec

test                  description   absolute   operations   ratio with
number                              time       per second   test0

 0  "int32_t while loop unroll 1"   3.14 sec   764.33 M     1.00
 1  "int32_t while loop unroll 2"   2.16 sec   1111.11 M     0.69
 2  "int32_t while loop unroll 3"   1.83 sec   1311.48 M     0.58
 3  "int32_t while loop unroll 4"   1.72 sec   1395.35 M     0.55
 4  "int32_t while loop unroll 5"   1.62 sec   1481.48 M     0.52
 5  "int32_t while loop unroll 6"   1.76 sec   1363.64 M     0.56
 6  "int32_t while loop unroll 7"   1.75 sec   1371.43 M     0.56
 7  "int32_t while loop unroll 8"   1.64 sec   1463.41 M     0.52
 8  "int32_t while loop unroll 9"   1.53 sec   1568.63 M     0.49
 9 "int32_t while loop unroll 10"   2.44 sec   983.61 M     0.78
10 "int32_t while loop unroll 11"   2.31 sec   1038.96 M     0.74
11 "int32_t while loop unroll 12"   2.27 sec   1057.27 M     0.72
12 "int32_t while loop unroll 13"   2.14 sec   1121.50 M     0.68
13 "int32_t while loop unroll 14"   2.07 sec   1159.42 M     0.66
14 "int32_t while loop unroll 15"   1.96 sec   1224.49 M     0.62
15 "int32_t while loop unroll 16"   1.45 sec   1655.17 M     0.46
16 "int32_t while loop unroll 17"   1.87 sec   1283.42 M     0.60
17 "int32_t while loop unroll 18"   2.36 sec   1016.95 M     0.75
18 "int32_t while loop unroll 19"   2.46 sec   975.61 M     0.78
19 "int32_t while loop unroll 20"   2.41 sec   995.85 M     0.77
20 "int32_t while loop unroll 21"   2.28 sec   1052.63 M     0.73
21 "int32_t while loop unroll 22"   2.18 sec   1100.92 M     0.69
22 "int32_t while loop unroll 23"   2.25 sec   1066.67 M     0.72
23 "int32_t while loop unroll 24"   2.13 sec   1126.76 M     0.68
24 "int32_t while loop unroll 25"   2.12 sec   1132.08 M     0.68
25 "int32_t while loop unroll 26"   2.03 sec   1182.27 M     0.65
26 "int32_t while loop unroll 27"   2.08 sec   1153.85 M     0.66
27 "int32_t while loop unroll 28"   1.96 sec   1224.49 M     0.62
28 "int32_t while loop unroll 29"   2.45 sec   979.59 M     0.78
29 "int32_t while loop unroll 30"   2.59 sec   926.64 M     0.82
30 "int32_t while loop unroll 31"   2.48 sec   967.74 M     0.79
31 "int32_t while loop unroll 32"   2.49 sec   963.86 M     0.79

Total absolute time for int32_t while loop unrolling: 67.93 sec

test               description   absolute   operations   ratio with
number                           time       per second   test0

 0  "int32_t do loop unroll 1"   3.15 sec   761.90 M     1.00
 1  "int32_t do loop unroll 2"   2.16 sec   1111.11 M     0.69
 2  "int32_t do loop unroll 3"   1.83 sec   1311.48 M     0.58
 3  "int32_t do loop unroll 4"   1.73 sec   1387.28 M     0.55
 4  "int32_t do loop unroll 5"   1.62 sec   1481.48 M     0.51
 5  "int32_t do loop unroll 6"   1.74 sec   1379.31 M     0.55
 6  "int32_t do loop unroll 7"   1.67 sec   1437.13 M     0.53
 7  "int32_t do loop unroll 8"   1.70 sec   1411.76 M     0.54
 8  "int32_t do loop unroll 9"   1.56 sec   1538.46 M     0.50
 9 "int32_t do loop unroll 10"   2.47 sec   971.66 M     0.78
10 "int32_t do loop unroll 11"   2.34 sec   1025.64 M     0.74
11 "int32_t do loop unroll 12"   2.21 sec   1085.97 M     0.70
12 "int32_t do loop unroll 13"   2.14 sec   1121.50 M     0.68
13 "int32_t do loop unroll 14"   2.09 sec   1148.33 M     0.66
14 "int32_t do loop unroll 15"   2.02 sec   1188.12 M     0.64
15 "int32_t do loop unroll 16"   1.45 sec   1655.17 M     0.46
16 "int32_t do loop unroll 17"   1.92 sec   1250.00 M     0.61
17 "int32_t do loop unroll 18"   1.41 sec   1702.13 M     0.45
18 "int32_t do loop unroll 19"   2.41 sec   995.85 M     0.77
19 "int32_t do loop unroll 20"   2.41 sec   995.85 M     0.77
20 "int32_t do loop unroll 21"   2.38 sec   1008.40 M     0.76
21 "int32_t do loop unroll 22"   2.29 sec   1048.03 M     0.73
22 "int32_t do loop unroll 23"   2.25 sec   1066.67 M     0.71
23 "int32_t do loop unroll 24"   2.26 sec   1061.95 M     0.72
24 "int32_t do loop unroll 25"   2.26 sec   1061.95 M     0.72
25 "int32_t do loop unroll 26"   2.09 sec   1148.33 M     0.66
26 "int32_t do loop unroll 27"   2.14 sec   1121.50 M     0.68
27 "int32_t do loop unroll 28"   2.41 sec   995.85 M     0.77
28 "int32_t do loop unroll 29"   2.36 sec   1016.95 M     0.75
29 "int32_t do loop unroll 30"   1.96 sec   1224.49 M     0.62
30 "int32_t do loop unroll 31"   2.54 sec   944.88 M     0.81
31 "int32_t do loop unroll 32"   2.34 sec   1025.64 M     0.74

Total absolute time for int32_t do loop unrolling: 67.31 sec

test                 description   absolute   operations   ratio with
number                             time       per second   test0

 0  "int32_t goto loop unroll 1"   3.14 sec   764.33 M     1.00
 1  "int32_t goto loop unroll 2"   2.15 sec   1116.28 M     0.68
 2  "int32_t goto loop unroll 3"   1.83 sec   1311.48 M     0.58
 3  "int32_t goto loop unroll 4"   1.73 sec   1387.28 M     0.55
 4  "int32_t goto loop unroll 5"   1.63 sec   1472.39 M     0.52
 5  "int32_t goto loop unroll 6"   1.75 sec   1371.43 M     0.56
 6  "int32_t goto loop unroll 7"   1.67 sec   1437.13 M     0.53
 7  "int32_t goto loop unroll 8"   2.69 sec   892.19 M     0.86
 8  "int32_t goto loop unroll 9"   1.57 sec   1528.66 M     0.50
 9 "int32_t goto loop unroll 10"   2.47 sec   971.66 M     0.79
10 "int32_t goto loop unroll 11"   2.34 sec   1025.64 M     0.75
11 "int32_t goto loop unroll 12"   2.21 sec   1085.97 M     0.70
12 "int32_t goto loop unroll 13"   2.14 sec   1121.50 M     0.68
13 "int32_t goto loop unroll 14"   2.08 sec   1153.85 M     0.66
14 "int32_t goto loop unroll 15"   2.04 sec   1176.47 M     0.65
15 "int32_t goto loop unroll 16"   1.45 sec   1655.17 M     0.46
16 "int32_t goto loop unroll 17"   1.92 sec   1250.00 M     0.61
17 "int32_t goto loop unroll 18"   1.40 sec   1714.29 M     0.45
18 "int32_t goto loop unroll 19"   2.39 sec   1004.18 M     0.76
19 "int32_t goto loop unroll 20"   2.39 sec   1004.18 M     0.76
20 "int32_t goto loop unroll 21"   2.37 sec   1012.66 M     0.75
21 "int32_t goto loop unroll 22"   2.27 sec   1057.27 M     0.72
22 "int32_t goto loop unroll 23"   2.27 sec   1057.27 M     0.72
23 "int32_t goto loop unroll 24"   2.96 sec   810.81 M     0.94
24 "int32_t goto loop unroll 25"   2.28 sec   1052.63 M     0.73
25 "int32_t goto loop unroll 26"   2.81 sec   854.09 M     0.89
26 "int32_t goto loop unroll 27"   2.14 sec   1121.50 M     0.68
27 "int32_t goto loop unroll 28"   1.94 sec   1237.11 M     0.62
28 "int32_t goto loop unroll 29"   2.36 sec   1016.95 M     0.75
29 "int32_t goto loop unroll 30"   1.97 sec   1218.27 M     0.63
30 "int32_t goto loop unroll 31"   2.54 sec   944.88 M     0.81
31 "int32_t goto loop unroll 32"   2.36 sec   1016.95 M     0.75

Total absolute time for int32_t goto loop unrolling: 69.26 sec

test               description   absolute   operations   ratio with
number                           time       per second   test0

 0  "double for loop unroll 1"   2.12 sec   283.02 M     1.00
 1  "double for loop unroll 2"   2.10 sec   285.71 M     0.99
 2  "double for loop unroll 3"   2.07 sec   289.86 M     0.98
 3  "double for loop unroll 4"   2.08 sec   288.46 M     0.98
 4  "double for loop unroll 5"   2.06 sec   291.26 M     0.97
 5  "double for loop unroll 6"   2.04 sec   294.12 M     0.96
 6  "double for loop unroll 7"   2.05 sec   292.68 M     0.97
 7  "double for loop unroll 8"   2.05 sec   292.68 M     0.97
 8  "double for loop unroll 9"   2.04 sec   294.12 M     0.96
 9 "double for loop unroll 10"   2.03 sec   295.57 M     0.96
10 "double for loop unroll 11"   2.03 sec   295.57 M     0.96
11 "double for loop unroll 12"   2.04 sec   294.12 M     0.96
12 "double for loop unroll 13"   2.03 sec   295.57 M     0.96
13 "double for loop unroll 14"   2.18 sec   275.23 M     1.03
14 "double for loop unroll 15"   2.32 sec   258.62 M     1.09
15 "double for loop unroll 16"   2.29 sec   262.01 M     1.08
16 "double for loop unroll 17"   2.18 sec   275.23 M     1.03
17 "double for loop unroll 18"   2.32 sec   258.62 M     1.09
18 "double for loop unroll 19"   2.30 sec   260.87 M     1.08
19 "double for loop unroll 20"   2.27 sec   264.32 M     1.07
20 "double for loop unroll 21"   2.27 sec   264.32 M     1.07
21 "double for loop unroll 22"   2.39 sec   251.05 M     1.13
22 "double for loop unroll 23"   2.24 sec   267.86 M     1.06
23 "double for loop unroll 24"   2.24 sec   267.86 M     1.06
24 "double for loop unroll 25"   2.38 sec   252.10 M     1.12
25 "double for loop unroll 26"   2.21 sec   271.49 M     1.04
26 "double for loop unroll 27"   2.36 sec   254.24 M     1.11
27 "double for loop unroll 28"   2.22 sec   270.27 M     1.05
28 "double for loop unroll 29"   2.35 sec   255.32 M     1.11
29 "double for loop unroll 30"   2.38 sec   252.10 M     1.12
30 "double for loop unroll 31"   2.32 sec   258.62 M     1.09
31 "double for loop unroll 32"   2.32 sec   258.62 M     1.09

Total absolute time for double for loop unrolling: 70.28 sec

test                 description   absolute   operations   ratio with
number                             time       per second   test0

 0  "double while loop unroll 1"   2.12 sec   283.02 M     1.00
 1  "double while loop unroll 2"   2.10 sec   285.71 M     0.99
 2  "double while loop unroll 3"   2.07 sec   289.86 M     0.98
 3  "double while loop unroll 4"   2.08 sec   288.46 M     0.98
 4  "double while loop unroll 5"   2.06 sec   291.26 M     0.97
 5  "double while loop unroll 6"   2.04 sec   294.12 M     0.96
 6  "double while loop unroll 7"   2.05 sec   292.68 M     0.97
 7  "double while loop unroll 8"   2.05 sec   292.68 M     0.97
 8  "double while loop unroll 9"   2.04 sec   294.12 M     0.96
 9 "double while loop unroll 10"   2.04 sec   294.12 M     0.96
10 "double while loop unroll 11"   2.24 sec   267.86 M     1.06
11 "double while loop unroll 12"   2.35 sec   255.32 M     1.11
12 "double while loop unroll 13"   2.31 sec   259.74 M     1.09
13 "double while loop unroll 14"   2.27 sec   264.32 M     1.07
14 "double while loop unroll 15"   2.32 sec   258.62 M     1.09
15 "double while loop unroll 16"   2.18 sec   275.23 M     1.03
16 "double while loop unroll 17"   2.18 sec   275.23 M     1.03
17 "double while loop unroll 18"   2.16 sec   277.78 M     1.02
18 "double while loop unroll 19"   2.30 sec   260.87 M     1.08
19 "double while loop unroll 20"   2.27 sec   264.32 M     1.07
20 "double while loop unroll 21"   2.27 sec   264.32 M     1.07
21 "double while loop unroll 22"   2.24 sec   267.86 M     1.06
22 "double while loop unroll 23"   2.24 sec   267.86 M     1.06
23 "double while loop unroll 24"   2.24 sec   267.86 M     1.06
24 "double while loop unroll 25"   2.21 sec   271.49 M     1.04
25 "double while loop unroll 26"   2.22 sec   270.27 M     1.05
26 "double while loop unroll 27"   2.35 sec   255.32 M     1.11
27 "double while loop unroll 28"   2.20 sec   272.73 M     1.04
28 "double while loop unroll 29"   2.34 sec   256.41 M     1.10
29 "double while loop unroll 30"   2.36 sec   254.24 M     1.11
30 "double while loop unroll 31"   2.35 sec   255.32 M     1.11
31 "double while loop unroll 32"   2.33 sec   257.51 M     1.10

Total absolute time for double while loop unrolling: 70.58 sec

test              description   absolute   operations   ratio with
number                          time       per second   test0

 0  "double do loop unroll 1"   2.14 sec   280.37 M     1.00
 1  "double do loop unroll 2"   2.11 sec   284.36 M     0.99
 2  "double do loop unroll 3"   2.09 sec   287.08 M     0.98
 3  "double do loop unroll 4"   2.08 sec   288.46 M     0.97
 4  "double do loop unroll 5"   2.07 sec   289.86 M     0.97
 5  "double do loop unroll 6"   2.03 sec   295.57 M     0.95
 6  "double do loop unroll 7"   2.05 sec   292.68 M     0.96
 7  "double do loop unroll 8"   2.05 sec   292.68 M     0.96
 8  "double do loop unroll 9"   2.03 sec   295.57 M     0.95
 9 "double do loop unroll 10"   2.04 sec   294.12 M     0.95
10 "double do loop unroll 11"   2.03 sec   295.57 M     0.95
11 "double do loop unroll 12"   2.04 sec   294.12 M     0.95
12 "double do loop unroll 13"   2.22 sec   270.27 M     1.04
13 "double do loop unroll 14"   2.02 sec   297.03 M     0.94
14 "double do loop unroll 15"   2.32 sec   258.62 M     1.08
15 "double do loop unroll 16"   2.18 sec   275.23 M     1.02
16 "double do loop unroll 17"   2.18 sec   275.23 M     1.02
17 "double do loop unroll 18"   2.02 sec   297.03 M     0.94
18 "double do loop unroll 19"   2.31 sec   259.74 M     1.08
19 "double do loop unroll 20"   2.27 sec   264.32 M     1.06
20 "double do loop unroll 21"   2.26 sec   265.49 M     1.06
21 "double do loop unroll 22"   2.27 sec   264.32 M     1.06
22 "double do loop unroll 23"   2.24 sec   267.86 M     1.05
23 "double do loop unroll 24"   2.24 sec   267.86 M     1.05
24 "double do loop unroll 25"   2.22 sec   270.27 M     1.04
25 "double do loop unroll 26"   2.21 sec   271.49 M     1.03
26 "double do loop unroll 27"   2.22 sec   270.27 M     1.04
27 "double do loop unroll 28"   2.21 sec   271.49 M     1.03
28 "double do loop unroll 29"   2.33 sec   257.51 M     1.09
29 "double do loop unroll 30"   2.33 sec   257.51 M     1.09
30 "double do loop unroll 31"   2.18 sec   275.23 M     1.02
31 "double do loop unroll 32"   2.33 sec   257.51 M     1.09

Total absolute time for double do loop unrolling: 69.32 sec

test                description   absolute   operations   ratio with
number                            time       per second   test0

 0  "double goto loop unroll 1"   2.13 sec   281.69 M     1.00
 1  "double goto loop unroll 2"   2.09 sec   287.08 M     0.98
 2  "double goto loop unroll 3"   2.07 sec   289.86 M     0.97
 3  "double goto loop unroll 4"   2.09 sec   287.08 M     0.98
 4  "double goto loop unroll 5"   2.08 sec   288.46 M     0.98
 5  "double goto loop unroll 6"   2.05 sec   292.68 M     0.96
 6  "double goto loop unroll 7"   2.07 sec   289.86 M     0.97
 7  "double goto loop unroll 8"   2.07 sec   289.86 M     0.97
 8  "double goto loop unroll 9"   2.03 sec   295.57 M     0.95
 9 "double goto loop unroll 10"   2.04 sec   294.12 M     0.96
10 "double goto loop unroll 11"   2.24 sec   267.86 M     1.05
11 "double goto loop unroll 12"   2.04 sec   294.12 M     0.96
12 "double goto loop unroll 13"   2.22 sec   270.27 M     1.04
13 "double goto loop unroll 14"   2.02 sec   297.03 M     0.95
14 "double goto loop unroll 15"   2.32 sec   258.62 M     1.09
15 "double goto loop unroll 16"   2.30 sec   260.87 M     1.08
16 "double goto loop unroll 17"   2.18 sec   275.23 M     1.02
17 "double goto loop unroll 18"   2.15 sec   279.07 M     1.01
18 "double goto loop unroll 19"   2.31 sec   259.74 M     1.08
19 "double goto loop unroll 20"   2.27 sec   264.32 M     1.07
20 "double goto loop unroll 21"   2.27 sec   264.32 M     1.07
21 "double goto loop unroll 22"   2.26 sec   265.49 M     1.06
22 "double goto loop unroll 23"   2.24 sec   267.86 M     1.05
23 "double goto loop unroll 24"   2.24 sec   267.86 M     1.05
24 "double goto loop unroll 25"   2.22 sec   270.27 M     1.04
25 "double goto loop unroll 26"   2.22 sec   270.27 M     1.04
26 "double goto loop unroll 27"   2.35 sec   255.32 M     1.10
27 "double goto loop unroll 28"   2.35 sec   255.32 M     1.10
28 "double goto loop unroll 29"   2.33 sec   257.51 M     1.09
29 "double goto loop unroll 30"   2.20 sec   272.73 M     1.03
30 "double goto loop unroll 31"   2.35 sec   255.32 M     1.10
31 "double goto loop unroll 32"   2.33 sec   257.51 M     1.09

Total absolute time for double goto loop unrolling: 70.13 sec
Thu Jul 28 12:33:16 PDT 2011
##END Version 1.0

[-- Attachment #4: report46.txt --]
[-- Type: text/plain, Size: 66238 bytes --]

##STARTING Version 1.0
Thu Jul 28 12:36:13 PDT 2011
##CFlags: 
##CPPFlags: -I. -O3 -static-libstdc++ -static-libgcc
##Start machine report version 1.0
##Compiler
GCC version 4.6.1
Compiled for LP64
##Target CPU
Compiled for x86 64bit
##Physical CPU
Little Endian
##Machine
##Operating System
##End machine report
./stepanov_abstraction 

test                        description   absolute   operations   ratio with
number                                    time       per second   test0

 0                     "double pointer"   5.03 sec   795.23 M     1.00
 1               "double pointer_class"   5.03 sec   795.23 M     1.00
 2         "DoubleValueWrapper pointer"   5.03 sec   795.23 M     1.00
 3   "DoubleValueWrapper pointer_class"   5.03 sec   795.23 M     1.00
 4       "DoubleValueWrapper10 pointer"   5.03 sec   795.23 M     1.00
 5 "DoubleValueWrapper10 pointer_class"   5.03 sec   795.23 M     1.00

Total absolute time for Abstraction Accumulate: 30.18 sec

Abstraction Accumulate Penalty: 1.00


test                                       description   absolute   operations   ratio with
number                                                   time       per second   test0

 0                     "insertion_sort double pointer"   0.86 sec    2.33 M     1.00
 1               "insertion_sort double pointer_class"   1.28 sec    1.56 M     1.49
 2         "insertion_sort DoubleValueWrapper pointer"   1.27 sec    1.57 M     1.48
 3   "insertion_sort DoubleValueWrapper pointer_class"   1.28 sec    1.56 M     1.49
 4       "insertion_sort DoubleValueWrapper10 pointer"   1.28 sec    1.56 M     1.49
 5 "insertion_sort DoubleValueWrapper10 pointer_class"   1.28 sec    1.56 M     1.49

Total absolute time for Abstraction Insertion Sort: 7.25 sec

Abstraction Insertion Sort Penalty: 1.49


test                                  description   absolute   operations   ratio with
number                                              time       per second   test0

 0                     "quicksort double pointer"   1.31 sec   12.21 M     1.00
 1               "quicksort double pointer_class"   1.39 sec   11.51 M     1.06
 2         "quicksort DoubleValueWrapper pointer"   1.51 sec   10.60 M     1.15
 3   "quicksort DoubleValueWrapper pointer_class"   1.52 sec   10.53 M     1.16
 4       "quicksort DoubleValueWrapper10 pointer"   1.52 sec   10.53 M     1.16
 5 "quicksort DoubleValueWrapper10 pointer_class"   1.53 sec   10.46 M     1.17

Total absolute time for Abstraction Quicksort: 8.78 sec

Abstraction Quicksort Penalty: 1.14


test                                  description   absolute   operations   ratio with
number                                              time       per second   test0

 0                     "heap_sort double pointer"   1.37 sec   11.68 M     1.00
 1               "heap_sort double pointer_class"   1.37 sec   11.68 M     1.00
 2         "heap_sort DoubleValueWrapper pointer"   1.17 sec   13.68 M     0.85
 3   "heap_sort DoubleValueWrapper pointer_class"   1.27 sec   12.60 M     0.93
 4       "heap_sort DoubleValueWrapper10 pointer"   1.20 sec   13.33 M     0.88
 5 "heap_sort DoubleValueWrapper10 pointer_class"   1.26 sec   12.70 M     0.92

Total absolute time for Abstraction Heap Sort: 7.64 sec

Abstraction Heap Sort Penalty: 0.91

./stepanov_vector 

test                            description   absolute   operations   ratio with
number                                        time       per second   test0

 0                 "double pointer verify2"   3.77 sec   795.76 M     1.00
 1                 "double vector iterator"   3.77 sec   795.76 M     1.00
 2                 "double pointer reverse"   3.77 sec   795.76 M     1.00
 3         "double vector reverse_iterator"   3.78 sec   793.65 M     1.00
 4         "double vector iterator reverse"   3.77 sec   795.76 M     1.00
 5         "double pointer reverse reverse"   3.78 sec   793.65 M     1.00
 6 "double vector reverse_iterator reverse"   3.77 sec   795.76 M     1.00
 7 "double vector iterator reverse reverse"   3.78 sec   793.65 M     1.00

Total absolute time for Vector accumulate: 30.19 sec

Vector accumulate Penalty: 1.00


test                                           description   absolute   operations   ratio with
number                                                       time       per second   test0

 0                 "insertion_sort double pointer verify2"   1.30 sec    2.31 M     1.00
 1                 "insertion_sort double vector iterator"   1.90 sec    1.58 M     1.46
 2                 "insertion_sort double pointer reverse"   1.95 sec    1.54 M     1.50
 3         "insertion_sort double vector reverse_iterator"   1.93 sec    1.55 M     1.48
 4         "insertion_sort double vector iterator reverse"   1.92 sec    1.56 M     1.48
 5         "insertion_sort double pointer reverse reverse"   1.91 sec    1.57 M     1.47
 6 "insertion_sort double vector reverse_iterator reverse"   1.91 sec    1.57 M     1.47
 7 "insertion_sort double vector iterator reverse reverse"   1.91 sec    1.57 M     1.47

Total absolute time for Vector Insertion Sort: 14.73 sec

Vector Insertion Sort Penalty: 1.48


test                                      description   absolute   operations   ratio with
number                                                  time       per second   test0

 0                 "quicksort double pointer verify2"   1.96 sec   12.24 M     1.00
 1                 "quicksort double vector iterator"   2.07 sec   11.59 M     1.06
 2                 "quicksort double pointer reverse"   2.24 sec   10.71 M     1.14
 3         "quicksort double vector reverse_iterator"   2.23 sec   10.76 M     1.14
 4         "quicksort double vector iterator reverse"   2.23 sec   10.76 M     1.14
 5         "quicksort double pointer reverse reverse"   2.17 sec   11.06 M     1.11
 6 "quicksort double vector reverse_iterator reverse"   2.14 sec   11.21 M     1.09
 7 "quicksort double vector iterator reverse reverse"   2.14 sec   11.21 M     1.09

Total absolute time for Vector Quicksort: 17.18 sec

Vector Quicksort Penalty: 1.11


test                                      description   absolute   operations   ratio with
number                                                  time       per second   test0

 0                 "heap_sort double pointer verify2"   2.09 sec   11.48 M     1.00
 1                 "heap_sort double vector iterator"   2.09 sec   11.48 M     1.00
 2                 "heap_sort double pointer reverse"   2.47 sec    9.72 M     1.18
 3         "heap_sort double vector reverse_iterator"   2.45 sec    9.80 M     1.17
 4         "heap_sort double vector iterator reverse"   2.44 sec    9.84 M     1.17
 5         "heap_sort double pointer reverse reverse"   2.10 sec   11.43 M     1.00
 6 "heap_sort double vector reverse_iterator reverse"   2.12 sec   11.32 M     1.01
 7 "heap_sort double vector iterator reverse reverse"   2.12 sec   11.32 M     1.01

Total absolute time for Vector Heap Sort: 17.88 sec

Vector Heap Sort Penalty: 1.08

./functionobjects 

test                                                description   absolute   operations   ratio with
number                                                            time       per second   test0

 0                          "qsort array with function pointer"   4.41 sec    4.54 M     1.00
 1             "quicksort function array with function pointer"   2.59 sec    7.72 M     0.59
 2             "quicksort template array with function pointer"   2.62 sec    7.63 M     0.59
 3    "quicksort template array with template function pointer"   2.57 sec    7.78 M     0.58
 4                           "sort array with function pointer"   1.40 sec   14.29 M     0.32
 5        "quicksort template array with user-supplied functor"   1.94 sec   10.31 M     0.44
 6                      "sort array with user-supplied functor"   1.40 sec   14.29 M     0.32
 7 "quicksort template array with user-supplied inline functor"   2.02 sec    9.90 M     0.46
 8               "sort array with user-supplied inline functor"   1.44 sec   13.89 M     0.33
 9             "quicksort template array with standard functor"   2.01 sec    9.95 M     0.46
10                           "sort array with standard functor"   1.45 sec   13.79 M     0.33
11            "quicksort template array with native < operator"   1.94 sec   10.31 M     0.44
12                          "sort array with native < operator"   1.43 sec   13.99 M     0.32

Total absolute time for Function Objects: 27.22 sec
./simple_types_constant_folding 

test                         description   absolute   operations   ratio with
number                                     time       per second   test0

 0                     "int8_t constant"   0.00 sec     inf M     nan
 1                "int8_t add constants"   0.00 sec     inf M     nan
 2           "int8_t subtract constants"   0.00 sec     inf M     nan
 3           "int8_t multiply constants"   0.00 sec     inf M     nan
 4             "int8_t divide constants"   0.00 sec     inf M     nan
 5                "int8_t mod constants"   0.00 sec     inf M     nan
 6              "int8_t equal constants"   0.00 sec     inf M     nan
 7           "int8_t notequal constants"   0.00 sec     inf M     nan
 8       "int8_t greater than constants"   0.00 sec     inf M     nan
 9          "int8_t less than constants"   0.00 sec     inf M     nan
10 "int8_t greater than equal constants"   0.00 sec     inf M     nan
11    "int8_t less than equal constants"   0.00 sec     inf M     nan
12                "int8_t and constants"   0.00 sec     inf M     nan
13                 "int8_t or constants"   0.00 sec     inf M     nan
14                "int8_t xor constants"   0.00 sec     inf M     nan

Total absolute time for int8_t simple constant folding: 0.00 sec

test                         description   absolute   operations   ratio with
number                                     time       per second   test0

 0                 "int8_t constant add"   2.84 sec   563.38 M     1.00
 1       "int8_t multiple constant adds"   2.84 sec   563.38 M     1.00
 2            "int8_t constant subtract"   2.85 sec   561.40 M     1.00
 3  "int8_t multiple constant subtracts"   2.84 sec   563.38 M     1.00
 4            "int8_t constant multiply"   3.35 sec   477.61 M     1.18
 5 "int8_t multiple constant multiplies"   3.35 sec   477.61 M     1.18
 6  "int8_t multiple constant multiply2"   2.84 sec   563.38 M     1.00
 7              "int8_t constant divide"   3.85 sec   415.58 M     1.36
 8    "int8_t multiple constant divides"   6.72 sec   238.10 M     2.37
 9    "int8_t multiple constant divide2"   2.86 sec   559.44 M     1.01
10      "int8_t multiple constant mixed"   0.98 sec   1632.65 M     0.35
11                 "int8_t constant and"   1.48 sec   1081.08 M     0.52
12        "int8_t multiple constant and"   1.44 sec   1111.11 M     0.51
13                  "int8_t constant or"   1.48 sec   1081.08 M     0.52
14         "int8_t multiple constant or"   1.47 sec   1088.44 M     0.52
15                 "int8_t constant xor"   1.43 sec   1118.88 M     0.50
16        "int8_t multiple constant xor"   1.47 sec   1088.44 M     0.52

Total absolute time for int8_t constant folding: 44.09 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                     "uint8_t constant"   0.00 sec     inf M     nan
 1                "uint8_t add constants"   0.00 sec     inf M     nan
 2           "uint8_t subtract constants"   0.00 sec     inf M     nan
 3           "uint8_t multiply constants"   0.00 sec     inf M     nan
 4             "uint8_t divide constants"   0.00 sec     inf M     nan
 5                "uint8_t mod constants"   0.00 sec     inf M     nan
 6              "uint8_t equal constants"   0.00 sec     inf M     nan
 7           "uint8_t notequal constants"   0.00 sec     inf M     nan
 8       "uint8_t greater than constants"   0.00 sec     inf M     nan
 9          "uint8_t less than constants"   0.00 sec     inf M     nan
10 "uint8_t greater than equal constants"   0.00 sec     inf M     nan
11    "uint8_t less than equal constants"   0.00 sec     inf M     nan
12                "uint8_t and constants"   0.00 sec     inf M     nan
13                 "uint8_t or constants"   0.00 sec     inf M     nan
14                "uint8_t xor constants"   0.00 sec     inf M     nan

Total absolute time for uint8_t simple constant folding: 0.00 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                 "uint8_t constant add"   0.10 sec   16000.00 M     1.00
 1       "uint8_t multiple constant adds"   0.10 sec   16000.00 M     1.00
 2            "uint8_t constant subtract"   0.10 sec   16000.00 M     1.00
 3  "uint8_t multiple constant subtracts"   0.10 sec   16000.00 M     1.00
 4            "uint8_t constant multiply"   1.04 sec   1538.46 M     10.40
 5 "uint8_t multiple constant multiplies"   1.05 sec   1523.81 M     10.50
 6  "uint8_t multiple constant multiply2"   0.10 sec   16000.00 M     1.00
 7              "uint8_t constant divide"   3.34 sec   479.04 M     33.40
 8    "uint8_t multiple constant divides"   3.35 sec   477.61 M     33.50
 9    "uint8_t multiple constant divide2"   0.10 sec   16000.00 M     1.00
10      "uint8_t multiple constant mixed"   0.08 sec   20000.00 M     0.80
11                 "uint8_t constant and"   0.10 sec   16000.00 M     1.00
12        "uint8_t multiple constant and"   0.09 sec   17777.78 M     0.90
13                  "uint8_t constant or"   0.10 sec   16000.00 M     1.00
14         "uint8_t multiple constant or"   0.10 sec   16000.00 M     1.00
15                 "uint8_t constant xor"   0.10 sec   16000.00 M     1.00
16        "uint8_t multiple constant xor"   0.10 sec   16000.00 M     1.00

Total absolute time for uint8_t constant folding: 10.05 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                     "int16_t constant"   0.00 sec     inf M     nan
 1                "int16_t add constants"   0.00 sec     inf M     nan
 2           "int16_t subtract constants"   0.00 sec     inf M     nan
 3           "int16_t multiply constants"   0.00 sec     inf M     nan
 4             "int16_t divide constants"   0.00 sec     inf M     nan
 5                "int16_t mod constants"   0.00 sec     inf M     nan
 6              "int16_t equal constants"   0.00 sec     inf M     nan
 7           "int16_t notequal constants"   0.00 sec     inf M     nan
 8       "int16_t greater than constants"   0.00 sec     inf M     nan
 9          "int16_t less than constants"   0.00 sec     inf M     nan
10 "int16_t greater than equal constants"   0.00 sec     inf M     nan
11    "int16_t less than equal constants"   0.00 sec     inf M     nan
12                "int16_t and constants"   0.00 sec     inf M     nan
13                 "int16_t or constants"   0.00 sec     inf M     nan
14                "int16_t xor constants"   0.00 sec     inf M     nan

Total absolute time for int16_t simple constant folding: 0.00 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                 "int16_t constant add"   2.84 sec   563.38 M     1.00
 1       "int16_t multiple constant adds"   2.85 sec   561.40 M     1.00
 2            "int16_t constant subtract"   2.84 sec   563.38 M     1.00
 3  "int16_t multiple constant subtracts"   2.85 sec   561.40 M     1.00
 4            "int16_t constant multiply"   3.35 sec   477.61 M     1.18
 5 "int16_t multiple constant multiplies"   3.35 sec   477.61 M     1.18
 6  "int16_t multiple constant multiply2"   2.84 sec   563.38 M     1.00
 7              "int16_t constant divide"   3.85 sec   415.58 M     1.36
 8    "int16_t multiple constant divides"   4.02 sec   398.01 M     1.42
 9    "int16_t multiple constant divide2"   2.84 sec   563.38 M     1.00
10      "int16_t multiple constant mixed"   0.97 sec   1649.48 M     0.34
11                 "int16_t constant and"   1.44 sec   1111.11 M     0.51
12        "int16_t multiple constant and"   1.46 sec   1095.89 M     0.51
13                  "int16_t constant or"   1.44 sec   1111.11 M     0.51
14         "int16_t multiple constant or"   1.47 sec   1088.44 M     0.52
15                 "int16_t constant xor"   1.44 sec   1111.11 M     0.51
16        "int16_t multiple constant xor"   1.47 sec   1088.44 M     0.52

Total absolute time for int16_t constant folding: 41.32 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                     "uint16_t constant"   0.00 sec     inf M     nan
 1                "uint16_t add constants"   0.00 sec     inf M     nan
 2           "uint16_t subtract constants"   0.00 sec     inf M     nan
 3           "uint16_t multiply constants"   0.00 sec     inf M     nan
 4             "uint16_t divide constants"   0.00 sec     inf M     nan
 5                "uint16_t mod constants"   0.00 sec     inf M     nan
 6              "uint16_t equal constants"   0.00 sec     inf M     nan
 7           "uint16_t notequal constants"   0.00 sec     inf M     nan
 8       "uint16_t greater than constants"   0.00 sec     inf M     nan
 9          "uint16_t less than constants"   0.00 sec     inf M     nan
10 "uint16_t greater than equal constants"   0.00 sec     inf M     nan
11    "uint16_t less than equal constants"   0.00 sec     inf M     nan
12                "uint16_t and constants"   0.00 sec     inf M     nan
13                 "uint16_t or constants"   0.00 sec     inf M     nan
14                "uint16_t xor constants"   0.00 sec     inf M     nan

Total absolute time for uint16_t simple constant folding: 0.00 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                 "uint16_t constant add"   0.19 sec   8421.05 M     1.00
 1       "uint16_t multiple constant adds"   0.20 sec   8000.00 M     1.05
 2            "uint16_t constant subtract"   0.20 sec   8000.00 M     1.05
 3  "uint16_t multiple constant subtracts"   0.20 sec   8000.00 M     1.05
 4            "uint16_t constant multiply"   0.22 sec   7272.73 M     1.16
 5 "uint16_t multiple constant multiplies"   0.22 sec   7272.73 M     1.16
 6  "uint16_t multiple constant multiply2"   0.20 sec   8000.00 M     1.05
 7              "uint16_t constant divide"   1.81 sec   883.98 M     9.53
 8    "uint16_t multiple constant divides"   1.83 sec   874.32 M     9.63
 9    "uint16_t multiple constant divide2"   0.20 sec   8000.00 M     1.05
10      "uint16_t multiple constant mixed"   0.17 sec   9411.76 M     0.89
11                 "uint16_t constant and"   0.19 sec   8421.05 M     1.00
12        "uint16_t multiple constant and"   0.20 sec   8000.00 M     1.05
13                  "uint16_t constant or"   0.19 sec   8421.05 M     1.00
14         "uint16_t multiple constant or"   0.19 sec   8421.05 M     1.00
15                 "uint16_t constant xor"   0.19 sec   8421.05 M     1.00
16        "uint16_t multiple constant xor"   0.20 sec   8000.00 M     1.05

Total absolute time for uint16_t constant folding: 6.60 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                     "int32_t constant"   0.00 sec     inf M     nan
 1                "int32_t add constants"   0.00 sec     inf M     nan
 2           "int32_t subtract constants"   0.00 sec     inf M     nan
 3           "int32_t multiply constants"   0.00 sec     inf M     nan
 4             "int32_t divide constants"   0.00 sec     inf M     nan
 5                "int32_t mod constants"   0.00 sec     inf M     nan
 6              "int32_t equal constants"   0.00 sec     inf M     nan
 7           "int32_t notequal constants"   0.00 sec     inf M     nan
 8       "int32_t greater than constants"   0.00 sec     inf M     nan
 9          "int32_t less than constants"   0.00 sec     inf M     nan
10 "int32_t greater than equal constants"   0.00 sec     inf M     nan
11    "int32_t less than equal constants"   0.00 sec     inf M     nan
12                "int32_t and constants"   0.00 sec     inf M     nan
13                 "int32_t or constants"   0.00 sec     inf M     nan
14                "int32_t xor constants"   0.00 sec     inf M     nan

Total absolute time for int32_t simple constant folding: 0.00 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                 "int32_t constant add"   0.39 sec   4102.56 M     1.00
 1       "int32_t multiple constant adds"   0.33 sec   4848.48 M     0.85
 2            "int32_t constant subtract"   0.39 sec   4102.56 M     1.00
 3  "int32_t multiple constant subtracts"   0.39 sec   4102.56 M     1.00
 4            "int32_t constant multiply"   1.35 sec   1185.19 M     3.46
 5 "int32_t multiple constant multiplies"   1.41 sec   1134.75 M     3.62
 6  "int32_t multiple constant multiply2"   0.39 sec   4102.56 M     1.00
 7              "int32_t constant divide"   3.03 sec   528.05 M     7.77
 8    "int32_t multiple constant divides"   3.33 sec   480.48 M     8.54
 9    "int32_t multiple constant divide2"   0.34 sec   4705.88 M     0.87
10      "int32_t multiple constant mixed"   0.26 sec   6153.85 M     0.67
11                 "int32_t constant and"   0.38 sec   4210.53 M     0.97
12        "int32_t multiple constant and"   0.34 sec   4705.88 M     0.87
13                  "int32_t constant or"   0.39 sec   4102.56 M     1.00
14         "int32_t multiple constant or"   0.34 sec   4705.88 M     0.87
15                 "int32_t constant xor"   0.34 sec   4705.88 M     0.87
16        "int32_t multiple constant xor"   0.35 sec   4571.43 M     0.90

Total absolute time for int32_t constant folding: 13.75 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                     "uint32_t constant"   0.00 sec     inf M     nan
 1                "uint32_t add constants"   0.00 sec     inf M     nan
 2           "uint32_t subtract constants"   0.00 sec     inf M     nan
 3           "uint32_t multiply constants"   0.00 sec     inf M     nan
 4             "uint32_t divide constants"   0.00 sec     inf M     nan
 5                "uint32_t mod constants"   0.00 sec     inf M     nan
 6              "uint32_t equal constants"   0.00 sec     inf M     nan
 7           "uint32_t notequal constants"   0.00 sec     inf M     nan
 8       "uint32_t greater than constants"   0.00 sec     inf M     nan
 9          "uint32_t less than constants"   0.00 sec     inf M     nan
10 "uint32_t greater than equal constants"   0.00 sec     inf M     nan
11    "uint32_t less than equal constants"   0.00 sec     inf M     nan
12                "uint32_t and constants"   0.00 sec     inf M     nan
13                 "uint32_t or constants"   0.00 sec     inf M     nan
14                "uint32_t xor constants"   0.00 sec     inf M     nan

Total absolute time for uint32_t simple constant folding: 0.00 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                 "uint32_t constant add"   0.34 sec   4705.88 M     1.00
 1       "uint32_t multiple constant adds"   0.34 sec   4705.88 M     1.00
 2            "uint32_t constant subtract"   0.34 sec   4705.88 M     1.00
 3  "uint32_t multiple constant subtracts"   0.34 sec   4705.88 M     1.00
 4            "uint32_t constant multiply"   1.35 sec   1185.19 M     3.97
 5 "uint32_t multiple constant multiplies"   1.35 sec   1185.19 M     3.97
 6  "uint32_t multiple constant multiply2"   0.33 sec   4848.48 M     0.97
 7              "uint32_t constant divide"   2.64 sec   606.06 M     7.76
 8    "uint32_t multiple constant divides"   2.63 sec   608.37 M     7.74
 9    "uint32_t multiple constant divide2"   0.34 sec   4705.88 M     1.00
10      "uint32_t multiple constant mixed"   0.27 sec   5925.93 M     0.79
11                 "uint32_t constant and"   0.34 sec   4705.88 M     1.00
12        "uint32_t multiple constant and"   0.34 sec   4705.88 M     1.00
13                  "uint32_t constant or"   0.33 sec   4848.48 M     0.97
14         "uint32_t multiple constant or"   0.34 sec   4705.88 M     1.00
15                 "uint32_t constant xor"   0.34 sec   4705.88 M     1.00
16        "uint32_t multiple constant xor"   0.34 sec   4705.88 M     1.00

Total absolute time for uint32_t constant folding: 12.30 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                     "int64_t constant"   0.00 sec     inf M     nan
 1                "int64_t add constants"   0.00 sec     inf M     nan
 2           "int64_t subtract constants"   0.00 sec     inf M     nan
 3           "int64_t multiply constants"   0.00 sec     inf M     nan
 4             "int64_t divide constants"   0.00 sec     inf M     nan
 5                "int64_t mod constants"   0.00 sec     inf M     nan
 6              "int64_t equal constants"   0.00 sec     inf M     nan
 7           "int64_t notequal constants"   0.00 sec     inf M     nan
 8       "int64_t greater than constants"   0.00 sec     inf M     nan
 9          "int64_t less than constants"   0.00 sec     inf M     nan
10 "int64_t greater than equal constants"   0.00 sec     inf M     nan
11    "int64_t less than equal constants"   0.00 sec     inf M     nan
12                "int64_t and constants"   0.00 sec     inf M     nan
13                 "int64_t or constants"   0.00 sec     inf M     nan
14                "int64_t xor constants"   0.00 sec     inf M     nan

Total absolute time for int64_t simple constant folding: 0.00 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                 "int64_t constant add"   1.05 sec   1523.81 M     1.00
 1       "int64_t multiple constant adds"   1.06 sec   1509.43 M     1.01
 2            "int64_t constant subtract"   1.05 sec   1523.81 M     1.00
 3  "int64_t multiple constant subtracts"   1.06 sec   1509.43 M     1.01
 4            "int64_t constant multiply"   2.72 sec   588.24 M     2.59
 5 "int64_t multiple constant multiplies"   2.73 sec   586.08 M     2.60
 6  "int64_t multiple constant multiply2"   1.05 sec   1523.81 M     1.00
 7              "int64_t constant divide"   2.94 sec   544.22 M     2.80
 8    "int64_t multiple constant divides"   3.29 sec   486.32 M     3.13
 9    "int64_t multiple constant divide2"   1.05 sec   1523.81 M     1.00
10      "int64_t multiple constant mixed"   0.80 sec   2000.00 M     0.76
11                 "int64_t constant and"   0.97 sec   1649.48 M     0.92
12        "int64_t multiple constant and"   0.96 sec   1666.67 M     0.91
13                  "int64_t constant or"   0.97 sec   1649.48 M     0.92
14         "int64_t multiple constant or"   0.96 sec   1666.67 M     0.91
15                 "int64_t constant xor"   0.97 sec   1649.48 M     0.92
16        "int64_t multiple constant xor"   0.96 sec   1666.67 M     0.91

Total absolute time for int64_t constant folding: 24.59 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                     "uint64_t constant"   0.00 sec     inf M     nan
 1                "uint64_t add constants"   0.00 sec     inf M     nan
 2           "uint64_t subtract constants"   0.00 sec     inf M     nan
 3           "uint64_t multiply constants"   0.00 sec     inf M     nan
 4             "uint64_t divide constants"   0.00 sec     inf M     nan
 5                "uint64_t mod constants"   0.00 sec     inf M     nan
 6              "uint64_t equal constants"   0.00 sec     inf M     nan
 7           "uint64_t notequal constants"   0.00 sec     inf M     nan
 8       "uint64_t greater than constants"   0.00 sec     inf M     nan
 9          "uint64_t less than constants"   0.00 sec     inf M     nan
10 "uint64_t greater than equal constants"   0.00 sec     inf M     nan
11    "uint64_t less than equal constants"   0.00 sec     inf M     nan
12                "uint64_t and constants"   0.00 sec     inf M     nan
13                 "uint64_t or constants"   0.00 sec     inf M     nan
14                "uint64_t xor constants"   0.00 sec     inf M     nan

Total absolute time for uint64_t simple constant folding: 0.00 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                 "uint64_t constant add"   1.06 sec   1509.43 M     1.00
 1       "uint64_t multiple constant adds"   1.06 sec   1509.43 M     1.00
 2            "uint64_t constant subtract"   1.05 sec   1523.81 M     0.99
 3  "uint64_t multiple constant subtracts"   1.06 sec   1509.43 M     1.00
 4            "uint64_t constant multiply"   2.55 sec   627.45 M     2.41
 5 "uint64_t multiple constant multiplies"   2.55 sec   627.45 M     2.41
 6  "uint64_t multiple constant multiply2"   1.06 sec   1509.43 M     1.00
 7              "uint64_t constant divide"   2.68 sec   597.01 M     2.53
 8    "uint64_t multiple constant divides"   2.69 sec   594.80 M     2.54
 9    "uint64_t multiple constant divide2"   1.05 sec   1523.81 M     0.99
10      "uint64_t multiple constant mixed"   0.80 sec   2000.00 M     0.75
11                 "uint64_t constant and"   0.97 sec   1649.48 M     0.92
12        "uint64_t multiple constant and"   0.96 sec   1666.67 M     0.91
13                  "uint64_t constant or"   0.97 sec   1649.48 M     0.92
14         "uint64_t multiple constant or"   0.96 sec   1666.67 M     0.91
15                 "uint64_t constant xor"   0.97 sec   1649.48 M     0.92
16        "uint64_t multiple constant xor"   0.97 sec   1649.48 M     0.92

Total absolute time for uint64_t constant folding: 23.41 sec

test              description   absolute   operations   ratio with
number                          time       per second   test0

 0           "float constant"  20.15 sec   794.04 M     1.00
 1      "float add constants"  20.10 sec   796.02 M     1.00
 2 "float subtract constants"  20.10 sec   796.02 M     1.00
 3 "float multiply constants"  20.08 sec   796.81 M     1.00
 4   "float divide constants"  20.16 sec   793.65 M     1.00

Total absolute time for float simple constant folding: 100.59 sec

test                        description   absolute   operations   ratio with
number                                    time       per second   test0

 0                 "float constant add"   2.03 sec   788.18 M     1.00
 1       "float multiple constant adds"   3.35 sec   477.61 M     1.65
 2            "float constant subtract"   2.01 sec   796.02 M     0.99
 3  "float multiple constant subtracts"   3.35 sec   477.61 M     1.65
 4            "float constant multiply"   2.01 sec   796.02 M     0.99
 5 "float multiple constant multiplies"   2.21 sec   723.98 M     1.09
 6  "float multiple constant multiply2"   2.01 sec   796.02 M     0.99
 7              "float constant divide"  11.42 sec   140.11 M     5.63
 8    "float multiple constant divides"  22.78 sec   70.24 M     11.22
 9    "float multiple constant divide2"   2.01 sec   796.02 M     0.99
10      "float multiple constant mixed"   2.06 sec   776.70 M     1.01

Total absolute time for float constant folding: 55.24 sec

test               description   absolute   operations   ratio with
number                           time       per second   test0

 0           "double constant"  20.11 sec   795.62 M     1.00
 1      "double add constants"  20.14 sec   794.44 M     1.00
 2 "double subtract constants"  20.08 sec   796.81 M     1.00
 3 "double multiply constants"  20.11 sec   795.62 M     1.00
 4   "double divide constants"  20.13 sec   794.83 M     1.00

Total absolute time for double simple constant folding: 100.57 sec

test                         description   absolute   operations   ratio with
number                                     time       per second   test0

 0                 "double constant add"   2.03 sec   788.18 M     1.00
 1       "double multiple constant adds"   3.35 sec   477.61 M     1.65
 2            "double constant subtract"   2.03 sec   788.18 M     1.00
 3  "double multiple constant subtracts"   3.35 sec   477.61 M     1.65
 4            "double constant multiply"   2.01 sec   796.02 M     0.99
 5 "double multiple constant multiplies"   2.34 sec   683.76 M     1.15
 6  "double multiple constant multiply2"   2.02 sec   792.08 M     1.00
 7              "double constant divide"  20.91 sec   76.52 M     10.30
 8    "double multiple constant divides"  41.53 sec   38.53 M     20.46
 9    "double multiple constant divide2"   2.03 sec   788.18 M     1.00
10      "double multiple constant mixed"   2.11 sec   758.29 M     1.04

Total absolute time for double constant folding: 83.71 sec
./simple_types_loop_invariant 

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                  "int8_t variable add"   3.03 sec   528.05 M     1.00
 1          "int8_t variable add hoisted"   0.96 sec   1666.67 M     0.32
 2        "int8_t multiple variable adds"   3.01 sec   531.56 M     0.99
 3             "int8_t variable subtract"   1.57 sec   1019.11 M     0.52
 4   "int8_t multiple variable subtracts"   6.02 sec   265.78 M     1.99
 5             "int8_t variable multiply"   3.36 sec   476.19 M     1.11
 6  "int8_t multiple variable multiplies"   3.01 sec   531.56 M     0.99
 7 "int8_t multiple variable multiplies2"   3.02 sec   529.80 M     1.00
 8               "int8_t variable divide"   8.47 sec   188.90 M     2.80
 9     "int8_t multiple variable divides"  32.12 sec   49.81 M     10.60
10    "int8_t multiple variable divides2"   3.01 sec   531.56 M     0.99
11       "int8_t multiple variable mixed"   3.02 sec   529.80 M     1.00
12                  "int8_t variable and"   3.35 sec   477.61 M     1.11
13         "int8_t multiple variable and"   3.38 sec   473.37 M     1.12
14                   "int8_t variable or"   3.37 sec   474.78 M     1.11
15          "int8_t multiple variable or"   3.36 sec   476.19 M     1.11
16                  "int8_t variable xor"   3.35 sec   477.61 M     1.11
17         "int8_t multiple variable xor"   3.34 sec   479.04 M     1.10

Total absolute time for int8_t loop invariant: 90.75 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                  "uint8_t variable add"   0.10 sec   16000.00 M     1.00
 1          "uint8_t variable add hoisted"   0.09 sec   17777.78 M     0.90
 2        "uint8_t multiple variable adds"   1.35 sec   1185.19 M     13.50
 3             "uint8_t variable subtract"   0.10 sec   16000.00 M     1.00
 4   "uint8_t multiple variable subtracts"   0.15 sec   10666.67 M     1.50
 5             "uint8_t variable multiply"   1.03 sec   1553.40 M     10.30
 6  "uint8_t multiple variable multiplies"   1.04 sec   1538.46 M     10.40
 7 "uint8_t multiple variable multiplies2"   0.10 sec   16000.00 M     1.00
 8               "uint8_t variable divide"   8.04 sec   199.00 M     80.40
 9     "uint8_t multiple variable divides"  32.13 sec   49.80 M     321.30
10    "uint8_t multiple variable divides2"   0.10 sec   16000.00 M     1.00
11       "uint8_t multiple variable mixed"   1.34 sec   1194.03 M     13.40
12                  "uint8_t variable and"   0.10 sec   16000.00 M     1.00
13         "uint8_t multiple variable and"   0.10 sec   16000.00 M     1.00
14                   "uint8_t variable or"   0.10 sec   16000.00 M     1.00
15          "uint8_t multiple variable or"   0.09 sec   17777.78 M     0.90
16                  "uint8_t variable xor"   0.10 sec   16000.00 M     1.00
17         "uint8_t multiple variable xor"   0.10 sec   16000.00 M     1.00

Total absolute time for uint8_t loop invariant: 46.16 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                  "int16_t variable add"   3.01 sec   531.56 M     1.00
 1          "int16_t variable add hoisted"   1.01 sec   1584.16 M     0.34
 2        "int16_t multiple variable adds"   3.01 sec   531.56 M     1.00
 3             "int16_t variable subtract"   1.52 sec   1052.63 M     0.50
 4   "int16_t multiple variable subtracts"   6.36 sec   251.57 M     2.11
 5             "int16_t variable multiply"   3.03 sec   528.05 M     1.01
 6  "int16_t multiple variable multiplies"   3.04 sec   526.32 M     1.01
 7 "int16_t multiple variable multiplies2"   3.01 sec   531.56 M     1.00
 8               "int16_t variable divide"   8.46 sec   189.13 M     2.81
 9     "int16_t multiple variable divides"  32.20 sec   49.69 M     10.70
10    "int16_t multiple variable divides2"   3.02 sec   529.80 M     1.00
11       "int16_t multiple variable mixed"   3.01 sec   531.56 M     1.00
12                  "int16_t variable and"   3.35 sec   477.61 M     1.11
13         "int16_t multiple variable and"   3.01 sec   531.56 M     1.00
14                   "int16_t variable or"   3.35 sec   477.61 M     1.11
15          "int16_t multiple variable or"   3.02 sec   529.80 M     1.00
16                  "int16_t variable xor"   3.34 sec   479.04 M     1.11
17         "int16_t multiple variable xor"   3.02 sec   529.80 M     1.00

Total absolute time for int16_t loop invariant: 89.77 sec

test                            description   absolute   operations   ratio with
number                                        time       per second   test0

 0                  "uint16_t variable add"   0.19 sec   8421.05 M     1.00
 1          "uint16_t variable add hoisted"   0.17 sec   9411.76 M     0.89
 2        "uint16_t multiple variable adds"   3.02 sec   529.80 M     15.89
 3             "uint16_t variable subtract"   0.20 sec   8000.00 M     1.05
 4   "uint16_t multiple variable subtracts"   0.30 sec   5333.33 M     1.58
 5             "uint16_t variable multiply"   0.22 sec   7272.73 M     1.16
 6  "uint16_t multiple variable multiplies"   0.22 sec   7272.73 M     1.16
 7 "uint16_t multiple variable multiplies2"   0.19 sec   8421.05 M     1.00
 8               "uint16_t variable divide"   8.26 sec   193.70 M     43.47
 9     "uint16_t multiple variable divides"  32.18 sec   49.72 M     169.37
10    "uint16_t multiple variable divides2"   0.19 sec   8421.05 M     1.00
11       "uint16_t multiple variable mixed"   3.02 sec   529.80 M     15.89
12                  "uint16_t variable and"   0.19 sec   8421.05 M     1.00
13         "uint16_t multiple variable and"   0.20 sec   8000.00 M     1.05
14                   "uint16_t variable or"   0.19 sec   8421.05 M     1.00
15          "uint16_t multiple variable or"   0.19 sec   8421.05 M     1.00
16                  "uint16_t variable xor"   0.20 sec   8000.00 M     1.05
17         "uint16_t multiple variable xor"   0.19 sec   8421.05 M     1.00

Total absolute time for uint16_t loop invariant: 49.32 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                  "int32_t variable add"   0.39 sec   4102.56 M     1.00
 1          "int32_t variable add hoisted"   0.34 sec   4705.88 M     0.87
 2        "int32_t multiple variable adds"   0.59 sec   2711.86 M     1.51
 3             "int32_t variable subtract"   0.41 sec   3902.44 M     1.05
 4   "int32_t multiple variable subtracts"   0.59 sec   2711.86 M     1.51
 5             "int32_t variable multiply"   1.45 sec   1103.45 M     3.72
 6  "int32_t multiple variable multiplies"   6.48 sec   246.91 M     16.62
 7 "int32_t multiple variable multiplies2"   0.39 sec   4102.56 M     1.00
 8               "int32_t variable divide"   8.48 sec   188.68 M     21.74
 9     "int32_t multiple variable divides"  32.18 sec   49.72 M     82.51
10    "int32_t multiple variable divides2"   0.39 sec   4102.56 M     1.00
11       "int32_t multiple variable mixed"   0.43 sec   3720.93 M     1.10
12                  "int32_t variable and"   0.38 sec   4210.53 M     0.97
13         "int32_t multiple variable and"   0.39 sec   4102.56 M     1.00
14                   "int32_t variable or"   0.39 sec   4102.56 M     1.00
15          "int32_t multiple variable or"   0.38 sec   4210.53 M     0.97
16                  "int32_t variable xor"   0.39 sec   4102.56 M     1.00
17         "int32_t multiple variable xor"   0.38 sec   4210.53 M     0.97

Total absolute time for int32_t loop invariant: 54.43 sec

test                            description   absolute   operations   ratio with
number                                        time       per second   test0

 0                  "uint32_t variable add"   0.40 sec   4000.00 M     1.00
 1          "uint32_t variable add hoisted"   0.34 sec   4705.88 M     0.85
 2        "uint32_t multiple variable adds"   1.44 sec   1111.11 M     3.60
 3             "uint32_t variable subtract"   0.41 sec   3902.44 M     1.02
 4   "uint32_t multiple variable subtracts"   0.59 sec   2711.86 M     1.47
 5             "uint32_t variable multiply"   1.46 sec   1095.89 M     3.65
 6  "uint32_t multiple variable multiplies"   1.44 sec   1111.11 M     3.60
 7 "uint32_t multiple variable multiplies2"   0.39 sec   4102.56 M     0.97
 8               "uint32_t variable divide"   8.03 sec   199.25 M     20.07
 9     "uint32_t multiple variable divides"  32.37 sec   49.43 M     80.92
10    "uint32_t multiple variable divides2"   0.39 sec   4102.56 M     0.97
11       "uint32_t multiple variable mixed"   1.48 sec   1081.08 M     3.70
12                  "uint32_t variable and"   0.34 sec   4705.88 M     0.85
13         "uint32_t multiple variable and"   0.34 sec   4705.88 M     0.85
14                   "uint32_t variable or"   0.34 sec   4705.88 M     0.85
15          "uint32_t multiple variable or"   0.34 sec   4705.88 M     0.85
16                  "uint32_t variable xor"   0.34 sec   4705.88 M     0.85
17         "uint32_t multiple variable xor"   0.34 sec   4705.88 M     0.85

Total absolute time for uint32_t loop invariant: 50.78 sec

test                           description   absolute   operations   ratio with
number                                       time       per second   test0

 0                  "int64_t variable add"   1.07 sec   1495.33 M     1.00
 1          "int64_t variable add hoisted"   0.80 sec   2000.00 M     0.75
 2        "int64_t multiple variable adds"   2.02 sec   792.08 M     1.89
 3             "int64_t variable subtract"   1.38 sec   1159.42 M     1.29
 4   "int64_t multiple variable subtracts"   2.01 sec   796.02 M     1.88
 5             "int64_t variable multiply"   2.65 sec   603.77 M     2.48
 6  "int64_t multiple variable multiplies"  11.37 sec   140.72 M     10.63
 7 "int64_t multiple variable multiplies2"   1.05 sec   1523.81 M     0.98
 8               "int64_t variable divide"  21.85 sec   73.23 M     20.42
 9     "int64_t multiple variable divides"  100.13 sec   15.98 M     93.58
10    "int64_t multiple variable divides2"   1.05 sec   1523.81 M     0.98
11       "int64_t multiple variable mixed"   1.36 sec   1176.47 M     1.27
12                  "int64_t variable and"   0.97 sec   1649.48 M     0.91
13         "int64_t multiple variable and"   0.97 sec   1649.48 M     0.91
14                   "int64_t variable or"   0.96 sec   1666.67 M     0.90
15          "int64_t multiple variable or"   0.98 sec   1632.65 M     0.92
16                  "int64_t variable xor"   0.97 sec   1649.48 M     0.91
17         "int64_t multiple variable xor"   0.96 sec   1666.67 M     0.90

Total absolute time for int64_t loop invariant: 152.55 sec

test                            description   absolute   operations   ratio with
number                                        time       per second   test0

 0                  "uint64_t variable add"   1.06 sec   1509.43 M     1.00
 1          "uint64_t variable add hoisted"   0.81 sec   1975.31 M     0.76
 2        "uint64_t multiple variable adds"   1.49 sec   1073.83 M     1.41
 3             "uint64_t variable subtract"   1.38 sec   1159.42 M     1.30
 4   "uint64_t multiple variable subtracts"   2.02 sec   792.08 M     1.91
 5             "uint64_t variable multiply"   2.69 sec   594.80 M     2.54
 6  "uint64_t multiple variable multiplies"   2.67 sec   599.25 M     2.52
 7 "uint64_t multiple variable multiplies2"   1.05 sec   1523.81 M     0.99
 8               "uint64_t variable divide"  12.88 sec   124.22 M     12.15
 9     "uint64_t multiple variable divides"  63.52 sec   25.19 M     59.92
10    "uint64_t multiple variable divides2"   1.06 sec   1509.43 M     1.00
11       "uint64_t multiple variable mixed"   1.49 sec   1073.83 M     1.41
12                  "uint64_t variable and"   0.97 sec   1649.48 M     0.92
13         "uint64_t multiple variable and"   0.96 sec   1666.67 M     0.91
14                   "uint64_t variable or"   0.97 sec   1649.48 M     0.92
15          "uint64_t multiple variable or"   0.97 sec   1649.48 M     0.92
16                  "uint64_t variable xor"   0.97 sec   1649.48 M     0.92
17         "uint64_t multiple variable xor"   0.96 sec   1666.67 M     0.91

Total absolute time for uint64_t loop invariant: 97.92 sec

test                         description   absolute   operations   ratio with
number                                     time       per second   test0

 0                  "float variable add"   2.01 sec   796.02 M     1.00
 1          "float variable add hoisted"   2.01 sec   796.02 M     1.00
 2        "float multiple variable adds"   3.35 sec   477.61 M     1.67
 3             "float variable subtract"   2.01 sec   796.02 M     1.00
 4   "float multiple variable subtracts"   3.37 sec   474.78 M     1.68
 5             "float variable multiply"   2.02 sec   792.08 M     1.00
 6  "float multiple variable multiplies"   2.71 sec   590.41 M     1.35
 7 "float multiple variable multiplies2"   2.02 sec   792.08 M     1.00
 8               "float variable divide"   3.36 sec   476.19 M     1.67
 9     "float multiple variable divides"  29.47 sec   54.29 M     14.66
10    "float multiple variable divides2"   2.01 sec   796.02 M     1.00
11       "float multiple variable mixed"   2.06 sec   776.70 M     1.02

Total absolute time for float loop invariant: 56.40 sec

test                          description   absolute   operations   ratio with
number                                      time       per second   test0

 0                  "double variable add"   2.05 sec   780.49 M     1.00
 1          "double variable add hoisted"   2.01 sec   796.02 M     0.98
 2        "double multiple variable adds"   3.35 sec   477.61 M     1.63
 3             "double variable subtract"   2.07 sec   772.95 M     1.01
 4   "double multiple variable subtracts"   3.35 sec   477.61 M     1.63
 5             "double variable multiply"   2.01 sec   796.02 M     0.98
 6  "double multiple variable multiplies"   2.69 sec   594.80 M     1.31
 7 "double multiple variable multiplies2"   2.03 sec   788.18 M     0.99
 8               "double variable divide"   3.35 sec   477.61 M     1.63
 9     "double multiple variable divides"  48.29 sec   33.13 M     23.56
10    "double multiple variable divides2"   2.03 sec   788.18 M     0.99
11       "double multiple variable mixed"   2.11 sec   758.29 M     1.03

Total absolute time for double loop invariant: 75.34 sec
./loop_unroll 

test                description   absolute   operations   ratio with
number                            time       per second   test0

 0  "int32_t for loop unroll 1"   7.09 sec   338.50 M     1.00
 1  "int32_t for loop unroll 2"   2.05 sec   1170.73 M     0.29
 2  "int32_t for loop unroll 3"   3.46 sec   693.64 M     0.49
 3  "int32_t for loop unroll 4"   3.69 sec   650.41 M     0.52
 4  "int32_t for loop unroll 5"   3.25 sec   738.46 M     0.46
 5  "int32_t for loop unroll 6"   2.92 sec   821.92 M     0.41
 6  "int32_t for loop unroll 7"   3.64 sec   659.34 M     0.51
 7  "int32_t for loop unroll 8"   3.49 sec   687.68 M     0.49
 8  "int32_t for loop unroll 9"   3.35 sec   716.42 M     0.47
 9 "int32_t for loop unroll 10"   4.15 sec   578.31 M     0.59
10 "int32_t for loop unroll 11"   3.94 sec   609.14 M     0.56
11 "int32_t for loop unroll 12"   3.79 sec   633.25 M     0.53
12 "int32_t for loop unroll 13"   3.63 sec   661.16 M     0.51
13 "int32_t for loop unroll 14"   3.52 sec   681.82 M     0.50
14 "int32_t for loop unroll 15"   3.91 sec   613.81 M     0.55
15 "int32_t for loop unroll 16"   3.66 sec   655.74 M     0.52
16 "int32_t for loop unroll 17"   3.74 sec   641.71 M     0.53
17 "int32_t for loop unroll 18"   3.62 sec   662.98 M     0.51
18 "int32_t for loop unroll 19"   3.46 sec   693.64 M     0.49
19 "int32_t for loop unroll 20"   3.77 sec   636.60 M     0.53
20 "int32_t for loop unroll 21"   3.76 sec   638.30 M     0.53
21 "int32_t for loop unroll 22"   3.60 sec   666.67 M     0.51
22 "int32_t for loop unroll 23"   3.97 sec   604.53 M     0.56
23 "int32_t for loop unroll 24"   3.80 sec   631.58 M     0.54
24 "int32_t for loop unroll 25"   3.69 sec   650.41 M     0.52
25 "int32_t for loop unroll 26"   3.71 sec   646.90 M     0.52
26 "int32_t for loop unroll 27"   3.92 sec   612.24 M     0.55
27 "int32_t for loop unroll 28"   4.00 sec   600.00 M     0.56
28 "int32_t for loop unroll 29"   3.90 sec   615.38 M     0.55
29 "int32_t for loop unroll 30"   3.82 sec   628.27 M     0.54
30 "int32_t for loop unroll 31"   3.71 sec   646.90 M     0.52
31 "int32_t for loop unroll 32"   3.55 sec   676.06 M     0.50

Total absolute time for int32_t for loop unrolling: 119.56 sec

test                  description   absolute   operations   ratio with
number                              time       per second   test0

 0  "int32_t while loop unroll 1"   7.21 sec   332.87 M     1.00
 1  "int32_t while loop unroll 2"   2.06 sec   1165.05 M     0.29
 2  "int32_t while loop unroll 3"   3.45 sec   695.65 M     0.48
 3  "int32_t while loop unroll 4"   3.64 sec   659.34 M     0.50
 4  "int32_t while loop unroll 5"   3.27 sec   733.94 M     0.45
 5  "int32_t while loop unroll 6"   2.91 sec   824.74 M     0.40
 6  "int32_t while loop unroll 7"   3.67 sec   653.95 M     0.51
 7  "int32_t while loop unroll 8"   3.41 sec   703.81 M     0.47
 8  "int32_t while loop unroll 9"   3.33 sec   720.72 M     0.46
 9 "int32_t while loop unroll 10"   4.11 sec   583.94 M     0.57
10 "int32_t while loop unroll 11"   3.94 sec   609.14 M     0.55
11 "int32_t while loop unroll 12"   3.77 sec   636.60 M     0.52
12 "int32_t while loop unroll 13"   3.66 sec   655.74 M     0.51
13 "int32_t while loop unroll 14"   3.54 sec   677.97 M     0.49
14 "int32_t while loop unroll 15"   3.90 sec   615.38 M     0.54
15 "int32_t while loop unroll 16"   3.77 sec   636.60 M     0.52
16 "int32_t while loop unroll 17"   3.73 sec   643.43 M     0.52
17 "int32_t while loop unroll 18"   3.62 sec   662.98 M     0.50
18 "int32_t while loop unroll 19"   3.47 sec   691.64 M     0.48
19 "int32_t while loop unroll 20"   3.80 sec   631.58 M     0.53
20 "int32_t while loop unroll 21"   3.78 sec   634.92 M     0.52
21 "int32_t while loop unroll 22"   3.62 sec   662.98 M     0.50
22 "int32_t while loop unroll 23"   3.98 sec   603.02 M     0.55
23 "int32_t while loop unroll 24"   3.80 sec   631.58 M     0.53
24 "int32_t while loop unroll 25"   3.69 sec   650.41 M     0.51
25 "int32_t while loop unroll 26"   3.71 sec   646.90 M     0.51
26 "int32_t while loop unroll 27"   3.92 sec   612.24 M     0.54
27 "int32_t while loop unroll 28"   3.99 sec   601.50 M     0.55
28 "int32_t while loop unroll 29"   3.89 sec   616.97 M     0.54
29 "int32_t while loop unroll 30"   3.73 sec   643.43 M     0.52
30 "int32_t while loop unroll 31"   3.68 sec   652.17 M     0.51
31 "int32_t while loop unroll 32"   3.53 sec   679.89 M     0.49

Total absolute time for int32_t while loop unrolling: 119.58 sec

test               description   absolute   operations   ratio with
number                           time       per second   test0

 0  "int32_t do loop unroll 1"   7.10 sec   338.03 M     1.00
 1  "int32_t do loop unroll 2"   2.08 sec   1153.85 M     0.29
 2  "int32_t do loop unroll 3"   3.48 sec   689.66 M     0.49
 3  "int32_t do loop unroll 4"   3.61 sec   664.82 M     0.51
 4  "int32_t do loop unroll 5"   3.27 sec   733.94 M     0.46
 5  "int32_t do loop unroll 6"   2.94 sec   816.33 M     0.41
 6  "int32_t do loop unroll 7"   3.69 sec   650.41 M     0.52
 7  "int32_t do loop unroll 8"   3.41 sec   703.81 M     0.48
 8  "int32_t do loop unroll 9"   3.33 sec   720.72 M     0.47
 9 "int32_t do loop unroll 10"   4.15 sec   578.31 M     0.58
10 "int32_t do loop unroll 11"   4.05 sec   592.59 M     0.57
11 "int32_t do loop unroll 12"   3.86 sec   621.76 M     0.54
12 "int32_t do loop unroll 13"   3.71 sec   646.90 M     0.52
13 "int32_t do loop unroll 14"   3.56 sec   674.16 M     0.50
14 "int32_t do loop unroll 15"   3.96 sec   606.06 M     0.56
15 "int32_t do loop unroll 16"   3.77 sec   636.60 M     0.53
16 "int32_t do loop unroll 17"   3.84 sec   625.00 M     0.54
17 "int32_t do loop unroll 18"   3.63 sec   661.16 M     0.51
18 "int32_t do loop unroll 19"   3.53 sec   679.89 M     0.50
19 "int32_t do loop unroll 20"   3.77 sec   636.60 M     0.53
20 "int32_t do loop unroll 21"   3.82 sec   628.27 M     0.54
21 "int32_t do loop unroll 22"   3.68 sec   652.17 M     0.52
22 "int32_t do loop unroll 23"   3.79 sec   633.25 M     0.53
23 "int32_t do loop unroll 24"   3.81 sec   629.92 M     0.54
24 "int32_t do loop unroll 25"   3.95 sec   607.59 M     0.56
25 "int32_t do loop unroll 26"   3.93 sec   610.69 M     0.55
26 "int32_t do loop unroll 27"   3.89 sec   616.97 M     0.55
27 "int32_t do loop unroll 28"   3.93 sec   610.69 M     0.55
28 "int32_t do loop unroll 29"   3.81 sec   629.92 M     0.54
29 "int32_t do loop unroll 30"   3.69 sec   650.41 M     0.52
30 "int32_t do loop unroll 31"   3.69 sec   650.41 M     0.52
31 "int32_t do loop unroll 32"   3.52 sec   681.82 M     0.50

Total absolute time for int32_t do loop unrolling: 120.25 sec

test                 description   absolute   operations   ratio with
number                             time       per second   test0

 0  "int32_t goto loop unroll 1"   7.21 sec   332.87 M     1.00
 1  "int32_t goto loop unroll 2"   2.09 sec   1148.33 M     0.29
 2  "int32_t goto loop unroll 3"   3.47 sec   691.64 M     0.48
 3  "int32_t goto loop unroll 4"   3.63 sec   661.16 M     0.50
 4  "int32_t goto loop unroll 5"   3.26 sec   736.20 M     0.45
 5  "int32_t goto loop unroll 6"   2.94 sec   816.33 M     0.41
 6  "int32_t goto loop unroll 7"   3.67 sec   653.95 M     0.51
 7  "int32_t goto loop unroll 8"   3.35 sec   716.42 M     0.46
 8  "int32_t goto loop unroll 9"   3.32 sec   722.89 M     0.46
 9 "int32_t goto loop unroll 10"   4.12 sec   582.52 M     0.57
10 "int32_t goto loop unroll 11"   4.03 sec   595.53 M     0.56
11 "int32_t goto loop unroll 12"   3.89 sec   616.97 M     0.54
12 "int32_t goto loop unroll 13"   3.74 sec   641.71 M     0.52
13 "int32_t goto loop unroll 14"   3.56 sec   674.16 M     0.49
14 "int32_t goto loop unroll 15"   3.96 sec   606.06 M     0.55
15 "int32_t goto loop unroll 16"   3.82 sec   628.27 M     0.53
16 "int32_t goto loop unroll 17"   3.84 sec   625.00 M     0.53
17 "int32_t goto loop unroll 18"   3.63 sec   661.16 M     0.50
18 "int32_t goto loop unroll 19"   3.52 sec   681.82 M     0.49
19 "int32_t goto loop unroll 20"   3.74 sec   641.71 M     0.52
20 "int32_t goto loop unroll 21"   3.80 sec   631.58 M     0.53
21 "int32_t goto loop unroll 22"   3.66 sec   655.74 M     0.51
22 "int32_t goto loop unroll 23"   3.90 sec   615.38 M     0.54
23 "int32_t goto loop unroll 24"   3.82 sec   628.27 M     0.53
24 "int32_t goto loop unroll 25"   3.73 sec   643.43 M     0.52
25 "int32_t goto loop unroll 26"   3.70 sec   648.65 M     0.51
26 "int32_t goto loop unroll 27"   3.89 sec   616.97 M     0.54
27 "int32_t goto loop unroll 28"   3.93 sec   610.69 M     0.55
28 "int32_t goto loop unroll 29"   3.81 sec   629.92 M     0.53
29 "int32_t goto loop unroll 30"   3.70 sec   648.65 M     0.51
30 "int32_t goto loop unroll 31"   3.72 sec   645.16 M     0.52
31 "int32_t goto loop unroll 32"   3.54 sec   677.97 M     0.49

Total absolute time for int32_t goto loop unrolling: 119.99 sec

test               description   absolute   operations   ratio with
number                           time       per second   test0

 0  "double for loop unroll 1"   2.07 sec   289.86 M     1.00
 1  "double for loop unroll 2"   2.11 sec   284.36 M     1.02
 2  "double for loop unroll 3"   2.09 sec   287.08 M     1.01
 3  "double for loop unroll 4"   2.61 sec   229.89 M     1.26
 4  "double for loop unroll 5"   2.65 sec   226.42 M     1.28
 5  "double for loop unroll 6"   2.50 sec   240.00 M     1.21
 6  "double for loop unroll 7"   2.33 sec   257.51 M     1.13
 7  "double for loop unroll 8"   2.69 sec   223.05 M     1.30
 8  "double for loop unroll 9"   2.67 sec   224.72 M     1.29
 9 "double for loop unroll 10"   2.52 sec   238.10 M     1.22
10 "double for loop unroll 11"   2.45 sec   244.90 M     1.18
11 "double for loop unroll 12"   2.32 sec   258.62 M     1.12
12 "double for loop unroll 13"   2.62 sec   229.01 M     1.27
13 "double for loop unroll 14"   2.65 sec   226.42 M     1.28
14 "double for loop unroll 15"   2.61 sec   229.89 M     1.26
15 "double for loop unroll 16"   2.52 sec   238.10 M     1.22
16 "double for loop unroll 17"   2.62 sec   229.01 M     1.27
17 "double for loop unroll 18"   2.65 sec   226.42 M     1.28
18 "double for loop unroll 19"   2.57 sec   233.46 M     1.24
19 "double for loop unroll 20"   2.86 sec   209.79 M     1.38
20 "double for loop unroll 21"   2.90 sec   206.90 M     1.40
21 "double for loop unroll 22"   2.83 sec   212.01 M     1.37
22 "double for loop unroll 23"   2.72 sec   220.59 M     1.31
23 "double for loop unroll 24"   2.92 sec   205.48 M     1.41
24 "double for loop unroll 25"   2.91 sec   206.19 M     1.41
25 "double for loop unroll 26"   2.97 sec   202.02 M     1.43
26 "double for loop unroll 27"   2.97 sec   202.02 M     1.43
27 "double for loop unroll 28"   2.91 sec   206.19 M     1.41
28 "double for loop unroll 29"   2.85 sec   210.53 M     1.38
29 "double for loop unroll 30"   2.97 sec   202.02 M     1.43
30 "double for loop unroll 31"   2.99 sec   200.67 M     1.44
31 "double for loop unroll 32"   2.95 sec   203.39 M     1.43

Total absolute time for double for loop unrolling: 85.00 sec

test                 description   absolute   operations   ratio with
number                             time       per second   test0

 0  "double while loop unroll 1"   2.07 sec   289.86 M     1.00
 1  "double while loop unroll 2"   2.11 sec   284.36 M     1.02
 2  "double while loop unroll 3"   2.07 sec   289.86 M     1.00
 3  "double while loop unroll 4"   2.60 sec   230.77 M     1.26
 4  "double while loop unroll 5"   2.64 sec   227.27 M     1.28
 5  "double while loop unroll 6"   2.49 sec   240.96 M     1.20
 6  "double while loop unroll 7"   2.33 sec   257.51 M     1.13
 7  "double while loop unroll 8"   2.69 sec   223.05 M     1.30
 8  "double while loop unroll 9"   2.68 sec   223.88 M     1.29
 9 "double while loop unroll 10"   2.52 sec   238.10 M     1.22
10 "double while loop unroll 11"   2.45 sec   244.90 M     1.18
11 "double while loop unroll 12"   2.35 sec   255.32 M     1.14
12 "double while loop unroll 13"   2.62 sec   229.01 M     1.27
13 "double while loop unroll 14"   2.65 sec   226.42 M     1.28
14 "double while loop unroll 15"   2.61 sec   229.89 M     1.26
15 "double while loop unroll 16"   2.52 sec   238.10 M     1.22
16 "double while loop unroll 17"   2.62 sec   229.01 M     1.27
17 "double while loop unroll 18"   2.64 sec   227.27 M     1.28
18 "double while loop unroll 19"   2.58 sec   232.56 M     1.25
19 "double while loop unroll 20"   2.86 sec   209.79 M     1.38
20 "double while loop unroll 21"   2.90 sec   206.90 M     1.40
21 "double while loop unroll 22"   2.82 sec   212.77 M     1.36
22 "double while loop unroll 23"   2.73 sec   219.78 M     1.32
23 "double while loop unroll 24"   2.92 sec   205.48 M     1.41
24 "double while loop unroll 25"   2.91 sec   206.19 M     1.41
25 "double while loop unroll 26"   2.97 sec   202.02 M     1.43
26 "double while loop unroll 27"   2.98 sec   201.34 M     1.44
27 "double while loop unroll 28"   2.90 sec   206.90 M     1.40
28 "double while loop unroll 29"   2.87 sec   209.06 M     1.39
29 "double while loop unroll 30"   2.99 sec   200.67 M     1.44
30 "double while loop unroll 31"   3.00 sec   200.00 M     1.45
31 "double while loop unroll 32"   2.94 sec   204.08 M     1.42

Total absolute time for double while loop unrolling: 85.03 sec

test              description   absolute   operations   ratio with
number                          time       per second   test0

 0  "double do loop unroll 1"   2.05 sec   292.68 M     1.00
 1  "double do loop unroll 2"   2.09 sec   287.08 M     1.02
 2  "double do loop unroll 3"   2.07 sec   289.86 M     1.01
 3  "double do loop unroll 4"   2.59 sec   231.66 M     1.26
 4  "double do loop unroll 5"   2.65 sec   226.42 M     1.29
 5  "double do loop unroll 6"   2.46 sec   243.90 M     1.20
 6  "double do loop unroll 7"   2.33 sec   257.51 M     1.14
 7  "double do loop unroll 8"   2.63 sec   228.14 M     1.28
 8  "double do loop unroll 9"   2.68 sec   223.88 M     1.31
 9 "double do loop unroll 10"   2.52 sec   238.10 M     1.23
10 "double do loop unroll 11"   2.45 sec   244.90 M     1.20
11 "double do loop unroll 12"   2.32 sec   258.62 M     1.13
12 "double do loop unroll 13"   2.60 sec   230.77 M     1.27
13 "double do loop unroll 14"   2.64 sec   227.27 M     1.29
14 "double do loop unroll 15"   2.61 sec   229.89 M     1.27
15 "double do loop unroll 16"   2.52 sec   238.10 M     1.23
16 "double do loop unroll 17"   2.62 sec   229.01 M     1.28
17 "double do loop unroll 18"   2.65 sec   226.42 M     1.29
18 "double do loop unroll 19"   2.57 sec   233.46 M     1.25
19 "double do loop unroll 20"   2.80 sec   214.29 M     1.37
20 "double do loop unroll 21"   2.90 sec   206.90 M     1.41
21 "double do loop unroll 22"   2.82 sec   212.77 M     1.38
22 "double do loop unroll 23"   2.73 sec   219.78 M     1.33
23 "double do loop unroll 24"   2.91 sec   206.19 M     1.42
24 "double do loop unroll 25"   2.91 sec   206.19 M     1.42
25 "double do loop unroll 26"   2.94 sec   204.08 M     1.43
26 "double do loop unroll 27"   2.97 sec   202.02 M     1.45
27 "double do loop unroll 28"   2.93 sec   204.78 M     1.43
28 "double do loop unroll 29"   2.70 sec   222.22 M     1.32
29 "double do loop unroll 30"   2.94 sec   204.08 M     1.43
30 "double do loop unroll 31"   2.98 sec   201.34 M     1.45
31 "double do loop unroll 32"   2.93 sec   204.78 M     1.43

Total absolute time for double do loop unrolling: 84.51 sec

test                description   absolute   operations   ratio with
number                            time       per second   test0

 0  "double goto loop unroll 1"   2.05 sec   292.68 M     1.00
 1  "double goto loop unroll 2"   2.09 sec   287.08 M     1.02
 2  "double goto loop unroll 3"   2.07 sec   289.86 M     1.01
 3  "double goto loop unroll 4"   2.60 sec   230.77 M     1.27
 4  "double goto loop unroll 5"   2.64 sec   227.27 M     1.29
 5  "double goto loop unroll 6"   2.47 sec   242.91 M     1.20
 6  "double goto loop unroll 7"   2.33 sec   257.51 M     1.14
 7  "double goto loop unroll 8"   2.63 sec   228.14 M     1.28
 8  "double goto loop unroll 9"   2.67 sec   224.72 M     1.30
 9 "double goto loop unroll 10"   2.53 sec   237.15 M     1.23
10 "double goto loop unroll 11"   2.45 sec   244.90 M     1.20
11 "double goto loop unroll 12"   2.32 sec   258.62 M     1.13
12 "double goto loop unroll 13"   2.60 sec   230.77 M     1.27
13 "double goto loop unroll 14"   2.63 sec   228.14 M     1.28
14 "double goto loop unroll 15"   2.62 sec   229.01 M     1.28
15 "double goto loop unroll 16"   2.52 sec   238.10 M     1.23
16 "double goto loop unroll 17"   2.62 sec   229.01 M     1.28
17 "double goto loop unroll 18"   2.64 sec   227.27 M     1.29
18 "double goto loop unroll 19"   2.57 sec   233.46 M     1.25
19 "double goto loop unroll 20"   2.80 sec   214.29 M     1.37
20 "double goto loop unroll 21"   2.91 sec   206.19 M     1.42
21 "double goto loop unroll 22"   2.82 sec   212.77 M     1.38
22 "double goto loop unroll 23"   2.73 sec   219.78 M     1.33
23 "double goto loop unroll 24"   2.91 sec   206.19 M     1.42
24 "double goto loop unroll 25"   2.90 sec   206.90 M     1.41
25 "double goto loop unroll 26"   2.96 sec   202.70 M     1.44
26 "double goto loop unroll 27"   2.99 sec   200.67 M     1.46
27 "double goto loop unroll 28"   2.93 sec   204.78 M     1.43
28 "double goto loop unroll 29"   2.87 sec   209.06 M     1.40
29 "double goto loop unroll 30"   2.92 sec   205.48 M     1.42
30 "double goto loop unroll 31"   2.98 sec   201.34 M     1.45
31 "double goto loop unroll 32"   2.92 sec   205.48 M     1.42

Total absolute time for double goto loop unrolling: 84.69 sec
Thu Jul 28 13:13:53 PDT 2011
##END Version 1.0

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

end of thread, other threads:[~2011-08-24 22:14 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-30 14:57 Performance degradation on g++ 4.6 Benjamin Redelings I
2011-08-01 18:04 ` Oleg Smolsky
2011-08-01 18:14   ` Marc Glisse
  -- strict thread matches above, loose matches on Subject: below --
2011-07-29 18:08 Oleg Smolsky
2011-07-29 18:14 ` Xinliang David Li
2011-07-29 21:08   ` Oleg Smolsky
2011-07-29 21:29     ` Xinliang David Li
2011-08-01 18:44       ` Oleg Smolsky
2011-08-02  5:48         ` Xinliang David Li
2011-08-23  1:09           ` Oleg Smolsky
2011-08-23  1:34             ` Oleg Smolsky
2011-08-23  1:37               ` Andrew Pinski
2011-08-23 17:47                 ` Oleg Smolsky
2011-08-23 18:38                   ` Xinliang David Li
2011-08-24 19:51                     ` Oleg Smolsky
2011-08-24 20:03                       ` Xinliang David Li
2011-08-24 21:26                         ` Oleg Smolsky
2011-08-24 21:57                           ` Xinliang David Li
2011-08-24 22:14                             ` Oleg Smolsky
2011-08-02  9:27         ` Richard Guenther
2011-08-03 19:12         ` Xinliang David Li
2011-07-30  9:24 ` Richard Guenther

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).