Advertisement
Codefox

Untitled

Apr 4th, 2014
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 67.00 KB | None | 0 0
  1. Nico@CODEFOX-VM01 ~/C++Benchmarks
  2. $ ./machine.exe
  3. ##Start machine report version 1.0
  4. ##Compiler
  5. GCC version 4.2.1 Compatible Clang 3.4 (tags/RELEASE_34/final) (https://github.com/flurreh/obfuscator.git 6d7cc01e6a45a4d67466b9835760befe52c35295)
  6. ##Target CPU
  7. Compiled for x86 32bit
  8. ##Physical CPU
  9. Little Endian
  10. ##Machine
  11. ##Operating System
  12. ##End machine report
  13.  
  14.  
  15. --------------------------------------------------------------------------------
  16.  
  17. Nico@CODEFOX-VM01 ~/C++Benchmarks
  18. $ ./loop_unroll.exe
  19. ./loop_unroll
  20.  
  21. test description absolute operations ratio with
  22. number time per second test0
  23.  
  24. 0 "int32_t for loop unroll 1" 0.62 sec 3840.00 M 1.00
  25. 1 "int32_t for loop unroll 2" 1.08 sec 2226.35 M 1.72
  26. 2 "int32_t for loop unroll 3" 0.72 sec 3342.62 M 1.15
  27. 3 "int32_t for loop unroll 4" 0.61 sec 3934.43 M 0.98
  28. 4 "int32_t for loop unroll 5" 0.61 sec 3940.89 M 0.97
  29. 5 "int32_t for loop unroll 6" 0.59 sec 4040.40 M 0.95
  30. 6 "int32_t for loop unroll 7" 0.56 sec 4270.46 M 0.90
  31. 7 "int32_t for loop unroll 8" 0.56 sec 4262.88 M 0.90
  32. 8 "int32_t for loop unroll 9" 0.56 sec 4270.46 M 0.90
  33. 9 "int32_t for loop unroll 10" 0.56 sec 4262.88 M 0.90
  34. 10 "int32_t for loop unroll 11" 0.55 sec 4387.57 M 0.88
  35. 11 "int32_t for loop unroll 12" 0.53 sec 4519.77 M 0.85
  36. 12 "int32_t for loop unroll 13" 0.55 sec 4387.57 M 0.88
  37. 13 "int32_t for loop unroll 14" 0.55 sec 4387.57 M 0.88
  38. 14 "int32_t for loop unroll 15" 2.44 sec 984.82 M 3.90
  39. 15 "int32_t for loop unroll 16" 2.62 sec 914.29 M 4.20
  40. 16 "int32_t for loop unroll 17" 2.53 sec 947.87 M 4.05
  41. 17 "int32_t for loop unroll 18" 2.42 sec 991.33 M 3.87
  42. 18 "int32_t for loop unroll 19" 2.33 sec 1030.49 M 3.73
  43. 19 "int32_t for loop unroll 20" 2.25 sec 1066.67 M 3.60
  44. 20 "int32_t for loop unroll 21" 2.17 sec 1105.48 M 3.47
  45. 21 "int32_t for loop unroll 22" 2.11 sec 1137.44 M 3.38
  46. 22 "int32_t for loop unroll 23" 2.05 sec 1172.45 M 3.28
  47. 23 "int32_t for loop unroll 24" 2.00 sec 1200.00 M 3.20
  48. 24 "int32_t for loop unroll 25" 1.94 sec 1239.03 M 3.10
  49. 25 "int32_t for loop unroll 26" 1.89 sec 1269.17 M 3.03
  50. 26 "int32_t for loop unroll 27" 1.86 sec 1291.02 M 2.97
  51. 27 "int32_t for loop unroll 28" 2.45 sec 978.39 M 3.92
  52. 28 "int32_t for loop unroll 29" 2.56 sec 936.40 M 4.10
  53. 29 "int32_t for loop unroll 30" 2.50 sec 960.00 M 4.00
  54. 30 "int32_t for loop unroll 31" 2.45 sec 978.39 M 3.92
  55. 31 "int32_t for loop unroll 32" 2.41 sec 997.51 M 3.85
  56.  
  57. Total absolute time for int32_t for loop unrolling: 49.64 sec
  58.  
  59. test description absolute operations ratio with
  60. number time per second test0
  61.  
  62. 0 "int32_t while loop unroll 1" 0.62 sec 3840.00 M 1.00
  63. 1 "int32_t while loop unroll 2" 1.08 sec 2226.35 M 1.72
  64. 2 "int32_t while loop unroll 3" 0.72 sec 3337.97 M 1.15
  65. 3 "int32_t while loop unroll 4" 0.61 sec 3940.89 M 0.97
  66. 4 "int32_t while loop unroll 5" 0.59 sec 4040.40 M 0.95
  67. 5 "int32_t while loop unroll 6" 0.58 sec 4152.25 M 0.92
  68. 6 "int32_t while loop unroll 7" 0.58 sec 4152.25 M 0.92
  69. 7 "int32_t while loop unroll 8" 0.56 sec 4262.88 M 0.90
  70. 8 "int32_t while loop unroll 9" 0.58 sec 4152.25 M 0.92
  71. 9 "int32_t while loop unroll 10" 0.55 sec 4387.57 M 0.88
  72. 10 "int32_t while loop unroll 11" 0.55 sec 4387.57 M 0.88
  73. 11 "int32_t while loop unroll 12" 0.55 sec 4387.57 M 0.88
  74. 12 "int32_t while loop unroll 13" 0.55 sec 4387.57 M 0.88
  75. 13 "int32_t while loop unroll 14" 0.55 sec 4395.60 M 0.87
  76. 14 "int32_t while loop unroll 15" 2.42 sec 990.92 M 3.88
  77. 15 "int32_t while loop unroll 16" 2.64 sec 909.09 M 4.22
  78. 16 "int32_t while loop unroll 17" 2.53 sec 948.24 M 4.05
  79. 17 "int32_t while loop unroll 18" 2.42 sec 990.92 M 3.88
  80. 18 "int32_t while loop unroll 19" 2.31 sec 1037.61 M 3.70
  81. 19 "int32_t while loop unroll 20" 2.25 sec 1066.67 M 3.60
  82. 20 "int32_t while loop unroll 21" 2.14 sec 1121.50 M 3.42
  83. 21 "int32_t while loop unroll 22" 2.11 sec 1137.44 M 3.38
  84. 22 "int32_t while loop unroll 23" 2.05 sec 1172.45 M 3.28
  85. 23 "int32_t while loop unroll 24" 2.00 sec 1200.00 M 3.20
  86. 24 "int32_t while loop unroll 25" 1.91 sec 1259.18 M 3.05
  87. 25 "int32_t while loop unroll 26" 1.88 sec 1280.00 M 3.00
  88. 26 "int32_t while loop unroll 27" 1.86 sec 1291.02 M 2.97
  89. 27 "int32_t while loop unroll 28" 2.45 sec 978.00 M 3.93
  90. 28 "int32_t while loop unroll 29" 2.58 sec 930.95 M 4.12
  91. 29 "int32_t while loop unroll 30" 2.50 sec 960.00 M 4.00
  92. 30 "int32_t while loop unroll 31" 2.45 sec 978.39 M 3.92
  93. 31 "int32_t while loop unroll 32" 2.38 sec 1010.53 M 3.80
  94.  
  95. Total absolute time for int32_t while loop unrolling: 49.53 sec
  96.  
  97. test description absolute operations ratio with
  98. number time per second test0
  99.  
  100. 0 "int32_t do loop unroll 1" 0.64 sec 3744.15 M 1.00
  101. 1 "int32_t do loop unroll 2" 1.06 sec 2259.89 M 1.66
  102. 2 "int32_t do loop unroll 3" 0.72 sec 3337.97 M 1.12
  103. 3 "int32_t do loop unroll 4" 0.62 sec 3840.00 M 0.98
  104. 4 "int32_t do loop unroll 5" 0.59 sec 4040.40 M 0.93
  105. 5 "int32_t do loop unroll 6" 0.58 sec 4152.25 M 0.90
  106. 6 "int32_t do loop unroll 7" 0.58 sec 4152.25 M 0.90
  107. 7 "int32_t do loop unroll 8" 0.58 sec 4152.25 M 0.90
  108. 8 "int32_t do loop unroll 9" 0.55 sec 4387.57 M 0.85
  109. 9 "int32_t do loop unroll 10" 0.56 sec 4270.46 M 0.88
  110. 10 "int32_t do loop unroll 11" 0.55 sec 4387.57 M 0.85
  111. 11 "int32_t do loop unroll 12" 0.55 sec 4387.57 M 0.85
  112. 12 "int32_t do loop unroll 13" 0.55 sec 4387.57 M 0.85
  113. 13 "int32_t do loop unroll 14" 0.53 sec 4519.77 M 0.83
  114. 14 "int32_t do loop unroll 15" 2.44 sec 984.41 M 3.80
  115. 15 "int32_t do loop unroll 16" 2.62 sec 914.29 M 4.10
  116. 16 "int32_t do loop unroll 17" 2.53 sec 948.24 M 3.95
  117. 17 "int32_t do loop unroll 18" 2.44 sec 984.41 M 3.80
  118. 18 "int32_t do loop unroll 19" 2.33 sec 1030.93 M 3.63
  119. 19 "int32_t do loop unroll 20" 2.27 sec 1059.60 M 3.53
  120. 20 "int32_t do loop unroll 21" 2.14 sec 1120.97 M 3.34
  121. 21 "int32_t do loop unroll 22" 2.11 sec 1137.98 M 3.29
  122. 22 "int32_t do loop unroll 23" 2.05 sec 1172.45 M 3.19
  123. 23 "int32_t do loop unroll 24" 2.00 sec 1200.00 M 3.12
  124. 24 "int32_t do loop unroll 25" 1.95 sec 1228.88 M 3.05
  125. 25 "int32_t do loop unroll 26" 1.91 sec 1258.52 M 2.98
  126. 26 "int32_t do loop unroll 27" 1.84 sec 1302.22 M 2.88
  127. 27 "int32_t do loop unroll 28" 2.44 sec 984.41 M 3.80
  128. 28 "int32_t do loop unroll 29" 2.55 sec 942.29 M 3.97
  129. 29 "int32_t do loop unroll 30" 2.52 sec 954.27 M 3.92
  130. 30 "int32_t do loop unroll 31" 2.45 sec 978.39 M 3.83
  131. 31 "int32_t do loop unroll 32" 2.39 sec 1003.76 M 3.73
  132.  
  133. Total absolute time for int32_t do loop unrolling: 49.63 sec
  134.  
  135. test description absolute operations ratio with
  136. number time per second test0
  137.  
  138. 0 "int32_t goto loop unroll 1" 0.62 sec 3840.00 M 1.00
  139. 1 "int32_t goto loop unroll 2" 1.05 sec 2292.26 M 1.68
  140. 2 "int32_t goto loop unroll 3" 0.72 sec 3337.97 M 1.15
  141. 3 "int32_t goto loop unroll 4" 0.62 sec 3840.00 M 1.00
  142. 4 "int32_t goto loop unroll 5" 0.58 sec 4152.25 M 0.92
  143. 5 "int32_t goto loop unroll 6" 0.59 sec 4040.40 M 0.95
  144. 6 "int32_t goto loop unroll 7" 0.58 sec 4152.25 M 0.92
  145. 7 "int32_t goto loop unroll 8" 0.56 sec 4270.46 M 0.90
  146. 8 "int32_t goto loop unroll 9" 0.56 sec 4262.88 M 0.90
  147. 9 "int32_t goto loop unroll 10" 0.55 sec 4387.57 M 0.88
  148. 10 "int32_t goto loop unroll 11" 0.55 sec 4387.57 M 0.88
  149. 11 "int32_t goto loop unroll 12" 0.55 sec 4395.60 M 0.87
  150. 12 "int32_t goto loop unroll 13" 0.55 sec 4387.57 M 0.88
  151. 13 "int32_t goto loop unroll 14" 0.55 sec 4387.57 M 0.88
  152. 14 "int32_t goto loop unroll 15" 2.42 sec 990.92 M 3.88
  153. 15 "int32_t goto loop unroll 16" 2.64 sec 908.75 M 4.23
  154. 16 "int32_t goto loop unroll 17" 2.53 sec 948.24 M 4.05
  155. 17 "int32_t goto loop unroll 18" 2.42 sec 990.92 M 3.88
  156. 18 "int32_t goto loop unroll 19" 2.33 sec 1030.93 M 3.72
  157. 19 "int32_t goto loop unroll 20" 2.25 sec 1066.67 M 3.60
  158. 20 "int32_t goto loop unroll 21" 2.19 sec 1097.39 M 3.50
  159. 21 "int32_t goto loop unroll 22" 2.11 sec 1137.44 M 3.38
  160. 22 "int32_t goto loop unroll 23" 2.06 sec 1163.92 M 3.30
  161. 23 "int32_t goto loop unroll 24" 2.00 sec 1200.00 M 3.20
  162. 24 "int32_t goto loop unroll 25" 1.94 sec 1238.39 M 3.10
  163. 25 "int32_t goto loop unroll 26" 1.89 sec 1269.17 M 3.03
  164. 26 "int32_t goto loop unroll 27" 1.84 sec 1301.52 M 2.95
  165. 27 "int32_t goto loop unroll 28" 2.42 sec 991.33 M 3.87
  166. 28 "int32_t goto loop unroll 29" 2.58 sec 930.59 M 4.13
  167. 29 "int32_t goto loop unroll 30" 2.48 sec 966.18 M 3.97
  168. 30 "int32_t goto loop unroll 31" 2.45 sec 978.39 M 3.92
  169. 31 "int32_t goto loop unroll 32" 2.41 sec 997.09 M 3.85
  170.  
  171. Total absolute time for int32_t goto loop unrolling: 49.60 sec
  172.  
  173. test description absolute operations ratio with
  174. number time per second test0
  175.  
  176. 0 "double for loop unroll 1" 1.28 sec 468.38 M 1.00
  177. 1 "double for loop unroll 2" 1.25 sec 480.00 M 0.98
  178. 2 "double for loop unroll 3" 1.30 sec 462.61 M 1.01
  179. 3 "double for loop unroll 4" 1.28 sec 468.38 M 1.00
  180. 4 "double for loop unroll 5" 1.24 sec 485.83 M 0.96
  181. 5 "double for loop unroll 6" 1.30 sec 462.96 M 1.01
  182. 6 "double for loop unroll 7" 1.30 sec 462.61 M 1.01
  183. 7 "double for loop unroll 8" 1.47 sec 408.72 M 1.15
  184. 8 "double for loop unroll 9" 1.49 sec 404.04 M 1.16
  185. 9 "double for loop unroll 10" 1.45 sec 412.94 M 1.13
  186. 10 "double for loop unroll 11" 1.36 sec 441.18 M 1.06
  187. 11 "double for loop unroll 12" 1.41 sec 426.74 M 1.10
  188. 12 "double for loop unroll 13" 1.39 sec 431.65 M 1.09
  189. 13 "double for loop unroll 14" 1.38 sec 436.36 M 1.07
  190. 14 "double for loop unroll 15" 1.52 sec 395.78 M 1.18
  191. 15 "double for loop unroll 16" 1.45 sec 412.94 M 1.13
  192. 16 "double for loop unroll 17" 1.45 sec 412.94 M 1.13
  193. 17 "double for loop unroll 18" 1.45 sec 412.65 M 1.14
  194. 18 "double for loop unroll 19" 1.42 sec 422.24 M 1.11
  195. 19 "double for loop unroll 20" 1.44 sec 417.54 M 1.12
  196. 20 "double for loop unroll 21" 1.41 sec 426.44 M 1.10
  197. 21 "double for loop unroll 22" 1.50 sec 400.00 M 1.17
  198. 22 "double for loop unroll 23" 1.51 sec 396.04 M 1.18
  199. 23 "double for loop unroll 24" 1.45 sec 412.94 M 1.13
  200. 24 "double for loop unroll 25" 1.49 sec 404.04 M 1.16
  201. 25 "double for loop unroll 26" 1.44 sec 417.54 M 1.12
  202. 26 "double for loop unroll 27" 1.45 sec 412.94 M 1.13
  203. 27 "double for loop unroll 28" 1.45 sec 412.65 M 1.14
  204. 28 "double for loop unroll 29" 1.55 sec 388.10 M 1.21
  205. 29 "double for loop unroll 30" 1.53 sec 391.64 M 1.20
  206. 30 "double for loop unroll 31" 1.53 sec 391.90 M 1.20
  207. 31 "double for loop unroll 32" 1.48 sec 404.31 M 1.16
  208.  
  209. Total absolute time for double for loop unrolling: 45.41 sec
  210.  
  211. test description absolute operations ratio with
  212. number time per second test0
  213.  
  214. 0 "double while loop unroll 1" 1.28 sec 468.02 M 1.00
  215. 1 "double while loop unroll 2" 1.28 sec 468.38 M 1.00
  216. 2 "double while loop unroll 3" 1.28 sec 468.38 M 1.00
  217. 3 "double while loop unroll 4" 1.30 sec 462.61 M 1.01
  218. 4 "double while loop unroll 5" 1.30 sec 462.61 M 1.01
  219. 5 "double while loop unroll 6" 1.28 sec 468.38 M 1.00
  220. 6 "double while loop unroll 7" 1.30 sec 462.61 M 1.01
  221. 7 "double while loop unroll 8" 1.47 sec 408.44 M 1.15
  222. 8 "double while loop unroll 9" 1.45 sec 412.94 M 1.13
  223. 9 "double while loop unroll 10" 1.45 sec 412.65 M 1.13
  224. 10 "double while loop unroll 11" 1.41 sec 427.05 M 1.10
  225. 11 "double while loop unroll 12" 1.39 sec 431.34 M 1.09
  226. 12 "double while loop unroll 13" 1.41 sec 426.44 M 1.10
  227. 13 "double while loop unroll 14" 1.38 sec 436.36 M 1.07
  228. 14 "double while loop unroll 15" 1.51 sec 396.04 M 1.18
  229. 15 "double while loop unroll 16" 1.49 sec 404.04 M 1.16
  230. 16 "double while loop unroll 17" 1.45 sec 413.22 M 1.13
  231. 17 "double while loop unroll 18" 1.47 sec 408.16 M 1.15
  232. 18 "double while loop unroll 19" 1.44 sec 417.54 M 1.12
  233. 19 "double while loop unroll 20" 1.44 sec 417.25 M 1.12
  234. 20 "double while loop unroll 21" 1.41 sec 426.74 M 1.10
  235. 21 "double while loop unroll 22" 1.53 sec 391.90 M 1.19
  236. 22 "double while loop unroll 23" 1.50 sec 400.00 M 1.17
  237. 23 "double while loop unroll 24" 1.50 sec 400.00 M 1.17
  238. 24 "double while loop unroll 25" 1.47 sec 408.44 M 1.15
  239. 25 "double while loop unroll 26" 1.45 sec 413.22 M 1.13
  240. 26 "double while loop unroll 27" 1.44 sec 417.25 M 1.12
  241. 27 "double while loop unroll 28" 1.45 sec 412.94 M 1.13
  242. 28 "double while loop unroll 29" 1.55 sec 387.85 M 1.21
  243. 29 "double while loop unroll 30" 1.53 sec 391.90 M 1.19
  244. 30 "double while loop unroll 31" 1.52 sec 395.78 M 1.18
  245. 31 "double while loop unroll 32" 1.50 sec 400.00 M 1.17
  246.  
  247. Total absolute time for double while loop unrolling: 45.61 sec
  248.  
  249. test description absolute operations ratio with
  250. number time per second test0
  251.  
  252. 0 "double do loop unroll 1" 1.30 sec 462.61 M 1.00
  253. 1 "double do loop unroll 2" 1.28 sec 468.38 M 0.99
  254. 2 "double do loop unroll 3" 1.30 sec 462.61 M 1.00
  255. 3 "double do loop unroll 4" 1.28 sec 468.38 M 0.99
  256. 4 "double do loop unroll 5" 1.30 sec 462.61 M 1.00
  257. 5 "double do loop unroll 6" 1.25 sec 480.00 M 0.96
  258. 6 "double do loop unroll 7" 1.30 sec 462.61 M 1.00
  259. 7 "double do loop unroll 8" 1.45 sec 412.94 M 1.12
  260. 8 "double do loop unroll 9" 1.47 sec 408.44 M 1.13
  261. 9 "double do loop unroll 10" 1.45 sec 412.94 M 1.12
  262. 10 "double do loop unroll 11" 1.41 sec 426.74 M 1.08
  263. 11 "double do loop unroll 12" 1.44 sec 417.25 M 1.11
  264. 12 "double do loop unroll 13" 1.37 sec 436.68 M 1.06
  265. 13 "double do loop unroll 14" 1.38 sec 436.36 M 1.06
  266. 14 "double do loop unroll 15" 1.50 sec 400.00 M 1.16
  267. 15 "double do loop unroll 16" 1.47 sec 408.44 M 1.13
  268. 16 "double do loop unroll 17" 1.49 sec 404.04 M 1.14
  269. 17 "double do loop unroll 18" 1.45 sec 412.94 M 1.12
  270. 18 "double do loop unroll 19" 1.44 sec 417.25 M 1.11
  271. 19 "double do loop unroll 20" 1.42 sec 421.94 M 1.10
  272. 20 "double do loop unroll 21" 1.41 sec 426.74 M 1.08
  273. 21 "double do loop unroll 22" 1.53 sec 391.90 M 1.18
  274. 22 "double do loop unroll 23" 1.50 sec 400.00 M 1.16
  275. 23 "double do loop unroll 24" 1.50 sec 400.00 M 1.16
  276. 24 "double do loop unroll 25" 1.47 sec 408.72 M 1.13
  277. 25 "double do loop unroll 26" 1.47 sec 408.44 M 1.13
  278. 26 "double do loop unroll 27" 1.44 sec 417.25 M 1.11
  279. 27 "double do loop unroll 28" 1.45 sec 412.94 M 1.12
  280. 28 "double do loop unroll 29" 1.55 sec 387.85 M 1.19
  281. 29 "double do loop unroll 30" 1.53 sec 391.90 M 1.18
  282. 30 "double do loop unroll 31" 1.52 sec 395.78 M 1.17
  283. 31 "double do loop unroll 32" 1.50 sec 400.00 M 1.16
  284.  
  285. Total absolute time for double do loop unrolling: 45.59 sec
  286.  
  287. test description absolute operations ratio with
  288. number time per second test0
  289.  
  290. 0 "double goto loop unroll 1" 1.28 sec 468.38 M 1.00
  291. 1 "double goto loop unroll 2" 1.28 sec 468.38 M 1.00
  292. 2 "double goto loop unroll 3" 1.30 sec 462.61 M 1.01
  293. 3 "double goto loop unroll 4" 1.28 sec 468.38 M 1.00
  294. 4 "double goto loop unroll 5" 1.30 sec 462.61 M 1.01
  295. 5 "double goto loop unroll 6" 1.28 sec 468.38 M 1.00
  296. 6 "double goto loop unroll 7" 1.28 sec 468.02 M 1.00
  297. 7 "double goto loop unroll 8" 1.45 sec 412.94 M 1.13
  298. 8 "double goto loop unroll 9" 1.47 sec 408.72 M 1.15
  299. 9 "double goto loop unroll 10" 1.45 sec 412.65 M 1.14
  300. 10 "double goto loop unroll 11" 1.41 sec 426.74 M 1.10
  301. 11 "double goto loop unroll 12" 1.41 sec 426.74 M 1.10
  302. 12 "double goto loop unroll 13" 1.38 sec 436.36 M 1.07
  303. 13 "double goto loop unroll 14" 1.38 sec 436.36 M 1.07
  304. 14 "double goto loop unroll 15" 1.50 sec 400.00 M 1.17
  305. 15 "double goto loop unroll 16" 1.49 sec 404.04 M 1.16
  306. 16 "double goto loop unroll 17" 1.45 sec 412.94 M 1.13
  307. 17 "double goto loop unroll 18" 1.45 sec 412.94 M 1.13
  308. 18 "double goto loop unroll 19" 1.44 sec 417.25 M 1.12
  309. 19 "double goto loop unroll 20" 1.42 sec 422.24 M 1.11
  310. 20 "double goto loop unroll 21" 1.36 sec 441.18 M 1.06
  311. 21 "double goto loop unroll 22" 1.53 sec 391.90 M 1.20
  312. 22 "double goto loop unroll 23" 1.52 sec 395.78 M 1.18
  313. 23 "double goto loop unroll 24" 1.50 sec 400.00 M 1.17
  314. 24 "double goto loop unroll 25" 1.48 sec 404.31 M 1.16
  315. 25 "double goto loop unroll 26" 1.45 sec 412.94 M 1.13
  316. 26 "double goto loop unroll 27" 1.45 sec 412.94 M 1.13
  317. 27 "double goto loop unroll 28" 1.44 sec 417.25 M 1.12
  318. 28 "double goto loop unroll 29" 1.55 sec 387.85 M 1.21
  319. 29 "double goto loop unroll 30" 1.53 sec 392.16 M 1.19
  320. 30 "double goto loop unroll 31" 1.52 sec 395.78 M 1.18
  321. 31 "double goto loop unroll 32" 1.50 sec 399.73 M 1.17
  322.  
  323. Total absolute time for double goto loop unrolling: 45.52 sec
  324.  
  325. --------------------------------------------------------------------------------
  326.  
  327. Nico@CODEFOX-VM01 ~/C++Benchmarks
  328. $ ./functionobjects.exe
  329. ./functionobjects
  330.  
  331. test description absolute operations ratio with
  332. number time per second test0
  333.  
  334. 0 "qsort array with function pointer" 2.55 sec 7.86 M 1.00
  335. 1 "quicksort function array with function pointer" 2.11 sec 9.48 M 0.83
  336. 2 "quicksort template array with function pointer" 2.14 sec 9.35 M 0.84
  337. 3 "quicksort template array with template function pointer" 2.11 sec 9.48 M 0.83
  338. 4 "sort array with function pointer" 1.69 sec 11.86 M 0.66
  339. 5 "quicksort template array with user-supplied functor" 1.20 sec 16.63 M 0.47
  340. 6 "sort array with user-supplied functor" 0.95 sec 20.96 M 0.37
  341. 7 "quicksort template array with user-supplied inline functor" 1.20 sec 16.63 M 0.47
  342. 8 "sort array with user-supplied inline functor" 0.95 sec 20.99 M 0.37
  343. 9 "quicksort template array with standard functor" 1.25 sec 16.00 M 0.49
  344. 10 "sort array with standard functor" 0.97 sec 20.64 M 0.38
  345. 11 "quicksort template array with native < operator" 1.19 sec 16.85 M 0.47
  346. 12 "sort array with native < operator" 0.97 sec 20.64 M 0.38
  347.  
  348. Total absolute time for Function Objects: 19.28 sec
  349.  
  350. -------------------------------------------------------------------------------
  351.  
  352. Nico@CODEFOX-VM01 ~/C++Benchmarks
  353. $ ./stepanov_vector.exe
  354. ./stepanov_vector
  355.  
  356. test description absolute operations ratio with
  357. number time per second test0
  358.  
  359. 0 "double pointer verify2" 2.66 sec 1129.52 M 1.00
  360. 1 "double vector iterator" 2.66 sec 1129.52 M 1.00
  361. 2 "double pointer reverse" 2.66 sec 1129.52 M 1.00
  362. 3 "double vector reverse_iterator" 2.66 sec 1129.09 M 1.00
  363. 4 "double vector iterator reverse" 2.66 sec 1129.52 M 1.00
  364. 5 "double pointer reverse reverse" 2.66 sec 1129.52 M 1.00
  365. 6 "double vector reverse_iterator reverse" 2.67 sec 1122.75 M 1.01
  366. 7 "double vector iterator reverse reverse" 2.66 sec 1129.52 M 1.00
  367.  
  368. Total absolute time for Vector accumulate: 21.27 sec
  369.  
  370. Vector accumulate Penalty: 1.00
  371.  
  372.  
  373. test description absolute operations ratio with
  374. number time per second test0
  375.  
  376. 0 "insertion_sort double pointer verify2" 0.91 sec 3.31 M 1.00
  377. 1 "insertion_sort double vector iterator" 0.89 sec 3.37 M 0.98
  378. 2 "insertion_sort double pointer reverse" 0.97 sec 3.10 M 1.07
  379. 3 "insertion_sort double vector reverse_iterator" 0.98 sec 3.05 M 1.09
  380. 4 "insertion_sort double vector iterator reverse" 0.97 sec 3.10 M 1.07
  381. 5 "insertion_sort double pointer reverse reverse" 0.89 sec 3.37 M 0.98
  382. 6 "insertion_sort double vector reverse_iterator reverse" 0.89 sec 3.37 M 0.98
  383. 7 "insertion_sort double vector iterator reverse reverse" 0.89 sec 3.37 M 0.98
  384.  
  385. Total absolute time for Vector Insertion Sort: 7.39 sec
  386.  
  387. Vector Insertion Sort Penalty: 1.02
  388.  
  389.  
  390. test description absolute operations ratio with
  391. number time per second test0
  392.  
  393. 0 "quicksort double pointer verify2" 1.16 sec 20.76 M 1.00
  394. 1 "quicksort double vector iterator" 1.31 sec 18.28 M 1.14
  395. 2 "quicksort double pointer reverse" 1.26 sec 18.97 M 1.09
  396. 3 "quicksort double vector reverse_iterator" 1.25 sec 19.20 M 1.08
  397. 4 "quicksort double vector iterator reverse" 1.27 sec 18.96 M 1.10
  398. 5 "quicksort double pointer reverse reverse" 1.28 sec 18.74 M 1.11
  399. 6 "quicksort double vector reverse_iterator reverse" 1.28 sec 18.74 M 1.11
  400. 7 "quicksort double vector iterator reverse reverse" 1.27 sec 18.96 M 1.10
  401.  
  402. Total absolute time for Vector Quicksort: 10.08 sec
  403.  
  404. Vector Quicksort Penalty: 1.10
  405.  
  406.  
  407. test description absolute operations ratio with
  408. number time per second test0
  409.  
  410. 0 "heap_sort double pointer verify2" 1.11 sec 21.64 M 1.00
  411. 1 "heap_sort double vector iterator" 1.14 sec 21.03 M 1.03
  412. 2 "heap_sort double pointer reverse" 1.44 sec 16.70 M 1.30
  413. 3 "heap_sort double vector reverse_iterator" 1.47 sec 16.34 M 1.32
  414. 4 "heap_sort double vector iterator reverse" 1.47 sec 16.34 M 1.32
  415. 5 "heap_sort double pointer reverse reverse" 1.14 sec 21.03 M 1.03
  416. 6 "heap_sort double vector reverse_iterator reverse" 1.14 sec 21.05 M 1.03
  417. 7 "heap_sort double vector iterator reverse reverse" 1.14 sec 21.03 M 1.03
  418.  
  419. Total absolute time for Vector Heap Sort: 10.05 sec
  420.  
  421. Vector Heap Sort Penalty: 1.14
  422.  
  423. --------------------------------------------------------------------------------
  424.  
  425. Nico@CODEFOX-VM01 ~/C++Benchmarks
  426. $ ./stepanov_abstraction.exe
  427. ./stepanov_abstraction
  428.  
  429. test description absolute operations ratio with
  430. number time per second test0
  431.  
  432. 0 "double pointer" 3.55 sec 1128.03 M 1.00
  433. 1 "double pointer_class" 3.53 sec 1132.50 M 1.00
  434. 2 "DoubleValueWrapper pointer" 3.55 sec 1127.71 M 1.00
  435. 3 "DoubleValueWrapper pointer_class" 3.53 sec 1132.82 M 1.00
  436. 4 "DoubleValueWrapper10 pointer" 3.53 sec 1132.82 M 1.00
  437. 5 "DoubleValueWrapper10 pointer_class" 3.55 sec 1127.71 M 1.00
  438.  
  439. Total absolute time for Abstraction Accumulate: 21.23 sec
  440.  
  441. Abstraction Accumulate Penalty: 1.00
  442.  
  443.  
  444. test description absolute operations ratio with
  445. number time per second test0
  446.  
  447. 0 "insertion_sort double pointer" 0.61 sec 3.28 M 1.00
  448. 1 "insertion_sort double pointer_class" 0.58 sec 3.46 M 0.95
  449. 2 "insertion_sort DoubleValueWrapper pointer" 0.61 sec 3.28 M 1.00
  450. 3 "insertion_sort DoubleValueWrapper pointer_class" 0.59 sec 3.37 M 0.98
  451. 4 "insertion_sort DoubleValueWrapper10 pointer" 0.61 sec 3.28 M 1.00
  452. 5 "insertion_sort DoubleValueWrapper10 pointer_class" 0.61 sec 3.28 M 1.00
  453.  
  454. Total absolute time for Abstraction Insertion Sort: 3.61 sec
  455.  
  456. Abstraction Insertion Sort Penalty: 0.99
  457.  
  458.  
  459. test description absolute operations ratio with
  460. number time per second test0
  461.  
  462. 0 "quicksort double pointer" 0.77 sec 20.89 M 1.00
  463. 1 "quicksort double pointer_class" 0.88 sec 18.29 M 1.14
  464. 2 "quicksort DoubleValueWrapper pointer" 0.77 sec 20.89 M 1.00
  465. 3 "quicksort DoubleValueWrapper pointer_class" 0.88 sec 18.29 M 1.14
  466. 4 "quicksort DoubleValueWrapper10 pointer" 0.80 sec 20.10 M 1.04
  467. 5 "quicksort DoubleValueWrapper10 pointer_class" 0.89 sec 17.96 M 1.16
  468.  
  469. Total absolute time for Abstraction Quicksort: 4.97 sec
  470.  
  471. Abstraction Quicksort Penalty: 1.10
  472.  
  473.  
  474. test description absolute operations ratio with
  475. number time per second test0
  476.  
  477. 0 "heap_sort double pointer" 0.73 sec 21.80 M 1.00
  478. 1 "heap_sort double pointer_class" 0.75 sec 21.33 M 1.02
  479. 2 "heap_sort DoubleValueWrapper pointer" 0.75 sec 21.33 M 1.02
  480. 3 "heap_sort DoubleValueWrapper pointer_class" 0.73 sec 21.77 M 1.00
  481. 4 "heap_sort DoubleValueWrapper10 pointer" 0.75 sec 21.33 M 1.02
  482. 5 "heap_sort DoubleValueWrapper10 pointer_class" 0.75 sec 21.33 M 1.02
  483.  
  484. Total absolute time for Abstraction Heap Sort: 4.47 sec
  485.  
  486. Abstraction Heap Sort Penalty: 1.02
  487.  
  488. --------------------------------------------------------------------------------
  489.  
  490. Nico@CODEFOX-VM01 ~/C++Benchmarks
  491. $ ./simple_types_loop_invariant.exe
  492. ./simple_types_loop_invariant
  493.  
  494. test description absolute operations ratio with
  495. number time per second test0
  496.  
  497. 0 "int8_t variable add" 0.05 sec 34782.61 M 1.00
  498. 1 "int8_t variable add hoisted" 0.95 sec 1677.15 M 20.74
  499. 2 "int8_t multiple variable adds" 0.05 sec 34782.61 M 1.00
  500. 3 "int8_t variable subtract" 0.05 sec 34042.55 M 1.02
  501. 4 "int8_t multiple variable subtracts" 0.05 sec 34042.55 M 1.02
  502. 5 "int8_t variable multiply" 0.12 sec 12800.00 M 2.72
  503. 6 "int8_t multiple variable multiplies" 0.12 sec 12800.00 M 2.72
  504. 7 "int8_t multiple variable multiplies2" 0.05 sec 34042.55 M 1.02
  505. 8 "int8_t variable divide" 5.22 sec 306.57 M 113.46
  506. 9 "int8_t multiple variable divides" 20.22 sec 79.13 M 439.54
  507. 10 "int8_t multiple variable divides2" 0.81 sec 1970.44 M 17.65
  508. 11 "int8_t multiple variable mixed" 0.86 sec 1862.63 M 18.67
  509. 12 "int8_t variable and" 0.05 sec 34042.55 M 1.02
  510. 13 "int8_t multiple variable and" 0.06 sec 25396.83 M 1.37
  511. 14 "int8_t variable or" 0.05 sec 34042.55 M 1.02
  512. 15 "int8_t multiple variable or" 0.05 sec 34042.55 M 1.02
  513. 16 "int8_t variable xor" 0.06 sec 25806.45 M 1.35
  514. 17 "int8_t multiple variable xor" 0.05 sec 34042.55 M 1.02
  515.  
  516. Total absolute time for int8_t loop invariant: 28.86 sec
  517.  
  518. test description absolute operations ratio with
  519. number time per second test0
  520.  
  521. 0 "uint8_t variable add" 0.06 sec 25806.45 M 1.00
  522. 1 "uint8_t variable add hoisted" 0.94 sec 1705.76 M 15.13
  523. 2 "uint8_t multiple variable adds" 0.05 sec 34042.55 M 0.76
  524. 3 "uint8_t variable subtract" 0.03 sec 51612.90 M 0.50
  525. 4 "uint8_t multiple variable subtracts" 0.05 sec 34042.55 M 0.76
  526. 5 "uint8_t variable multiply" 0.12 sec 12800.00 M 2.02
  527. 6 "uint8_t multiple variable multiplies" 0.12 sec 12800.00 M 2.02
  528. 7 "uint8_t multiple variable multiplies2" 0.05 sec 34042.55 M 0.76
  529. 8 "uint8_t variable divide" 5.22 sec 306.57 M 84.18
  530. 9 "uint8_t multiple variable divides" 21.16 sec 75.63 M 341.23
  531. 10 "uint8_t multiple variable divides2" 0.05 sec 34042.55 M 0.76
  532. 11 "uint8_t multiple variable mixed" 0.86 sec 1862.63 M 13.85
  533. 12 "uint8_t variable and" 0.06 sec 25396.83 M 1.02
  534. 13 "uint8_t multiple variable and" 0.05 sec 34782.61 M 0.74
  535. 14 "uint8_t variable or" 0.06 sec 25396.83 M 1.02
  536. 15 "uint8_t multiple variable or" 0.05 sec 34042.55 M 0.76
  537. 16 "uint8_t variable xor" 0.06 sec 25806.45 M 1.00
  538. 17 "uint8_t multiple variable xor" 0.05 sec 34042.55 M 0.76
  539.  
  540. Total absolute time for uint8_t loop invariant: 29.03 sec
  541.  
  542. test description absolute operations ratio with
  543. number time per second test0
  544.  
  545. 0 "int16_t variable add" 0.09 sec 17021.28 M 1.00
  546. 1 "int16_t variable add hoisted" 0.95 sec 1678.91 M 10.14
  547. 2 "int16_t multiple variable adds" 0.09 sec 17021.28 M 1.00
  548. 3 "int16_t variable subtract" 0.08 sec 20512.82 M 0.83
  549. 4 "int16_t multiple variable subtracts" 0.09 sec 17021.28 M 1.00
  550. 5 "int16_t variable multiply" 0.12 sec 12800.00 M 1.33
  551. 6 "int16_t multiple variable multiplies" 0.12 sec 12800.00 M 1.33
  552. 7 "int16_t multiple variable multiplies2" 0.09 sec 17204.30 M 0.99
  553. 8 "int16_t variable divide" 5.24 sec 305.64 M 55.69
  554. 9 "int16_t multiple variable divides" 20.22 sec 79.13 M 215.10
  555. 10 "int16_t multiple variable divides2" 0.25 sec 6400.00 M 2.66
  556. 11 "int16_t multiple variable mixed" 0.30 sec 5405.41 M 3.15
  557. 12 "int16_t variable and" 0.11 sec 14545.45 M 1.17
  558. 13 "int16_t multiple variable and" 0.11 sec 14678.90 M 1.16
  559. 14 "int16_t variable or" 0.11 sec 14545.45 M 1.17
  560. 15 "int16_t multiple variable or" 0.09 sec 17204.30 M 0.99
  561. 16 "int16_t variable xor" 0.11 sec 14545.45 M 1.17
  562. 17 "int16_t multiple variable xor" 0.11 sec 14678.90 M 1.16
  563.  
  564. Total absolute time for int16_t loop invariant: 28.30 sec
  565.  
  566. test description absolute operations ratio with
  567. number time per second test0
  568.  
  569. 0 "uint16_t variable add" 0.09 sec 17021.28 M 1.00
  570. 1 "uint16_t variable add hoisted" 0.95 sec 1678.91 M 10.14
  571. 2 "uint16_t multiple variable adds" 0.09 sec 17021.28 M 1.00
  572. 3 "uint16_t variable subtract" 0.08 sec 20512.82 M 0.83
  573. 4 "uint16_t multiple variable subtracts" 0.09 sec 17021.28 M 1.00
  574. 5 "uint16_t variable multiply" 0.12 sec 12800.00 M 1.33
  575. 6 "uint16_t multiple variable multiplies" 0.11 sec 14678.90 M 1.16
  576. 7 "uint16_t multiple variable multiplies2" 0.09 sec 17021.28 M 1.00
  577. 8 "uint16_t variable divide" 5.08 sec 315.08 M 54.02
  578. 9 "uint16_t multiple variable divides" 23.39 sec 68.41 M 248.83
  579. 10 "uint16_t multiple variable divides2" 0.09 sec 17021.28 M 1.00
  580. 11 "uint16_t multiple variable mixed" 0.30 sec 5387.21 M 3.16
  581. 12 "uint16_t variable and" 0.11 sec 14678.90 M 1.16
  582. 13 "uint16_t multiple variable and" 0.11 sec 14545.45 M 1.17
  583. 14 "uint16_t variable or" 0.09 sec 17021.28 M 1.00
  584. 15 "uint16_t multiple variable or" 0.11 sec 14678.90 M 1.16
  585. 16 "uint16_t variable xor" 0.11 sec 14678.90 M 1.16
  586. 17 "uint16_t multiple variable xor" 0.11 sec 14545.45 M 1.17
  587.  
  588. Total absolute time for uint16_t loop invariant: 31.14 sec
  589.  
  590. test description absolute operations ratio with
  591. number time per second test0
  592.  
  593. 0 "int32_t variable add" 0.19 sec 8556.15 M 1.00
  594. 1 "int32_t variable add hoisted" 0.17 sec 9302.33 M 0.92
  595. 2 "int32_t multiple variable adds" 0.19 sec 8510.64 M 1.01
  596. 3 "int32_t variable subtract" 0.19 sec 8556.15 M 1.00
  597. 4 "int32_t multiple variable subtracts" 0.17 sec 9302.33 M 0.92
  598. 5 "int32_t variable multiply" 0.45 sec 3532.01 M 2.42
  599. 6 "int32_t multiple variable multiplies" 0.48 sec 3305.79 M 2.59
  600. 7 "int32_t multiple variable multiplies2" 0.19 sec 8510.64 M 1.01
  601. 8 "int32_t variable divide" 5.22 sec 306.57 M 27.91
  602. 9 "int32_t multiple variable divides" 21.47 sec 74.53 M 114.80
  603. 10 "int32_t multiple variable divides2" 0.19 sec 8510.64 M 1.01
  604. 11 "int32_t multiple variable mixed" 0.23 sec 6837.61 M 1.25
  605. 12 "int32_t variable and" 0.22 sec 7305.94 M 1.17
  606. 13 "int32_t multiple variable and" 0.22 sec 7305.94 M 1.17
  607. 14 "int32_t variable or" 0.20 sec 7881.77 M 1.09
  608. 15 "int32_t multiple variable or" 0.22 sec 7305.94 M 1.17
  609. 16 "int32_t variable xor" 0.22 sec 7339.45 M 1.17
  610. 17 "int32_t multiple variable xor" 0.22 sec 7305.94 M 1.17
  611.  
  612. Total absolute time for int32_t loop invariant: 30.44 sec
  613.  
  614. test description absolute operations ratio with
  615. number time per second test0
  616.  
  617. 0 "uint32_t variable add" 0.19 sec 8510.64 M 1.00
  618. 1 "uint32_t variable add hoisted" 0.17 sec 9302.33 M 0.91
  619. 2 "uint32_t multiple variable adds" 0.19 sec 8556.15 M 0.99
  620. 3 "uint32_t variable subtract" 0.19 sec 8510.64 M 1.00
  621. 4 "uint32_t multiple variable subtracts" 0.19 sec 8556.15 M 0.99
  622. 5 "uint32_t variable multiply" 0.45 sec 3532.01 M 2.41
  623. 6 "uint32_t multiple variable multiplies" 0.48 sec 3298.97 M 2.58
  624. 7 "uint32_t multiple variable multiplies2" 0.19 sec 8556.15 M 0.99
  625. 8 "uint32_t variable divide" 5.33 sec 300.30 M 28.34
  626. 9 "uint32_t multiple variable divides" 21.19 sec 75.51 M 112.70
  627. 10 "uint32_t multiple variable divides2" 0.19 sec 8556.15 M 0.99
  628. 11 "uint32_t multiple variable mixed" 0.23 sec 6808.51 M 1.25
  629. 12 "uint32_t variable and" 0.22 sec 7339.45 M 1.16
  630. 13 "uint32_t multiple variable and" 0.22 sec 7305.94 M 1.16
  631. 14 "uint32_t variable or" 0.20 sec 7881.77 M 1.08
  632. 15 "uint32_t multiple variable or" 0.22 sec 7305.94 M 1.16
  633. 16 "uint32_t variable xor" 0.22 sec 7305.94 M 1.16
  634. 17 "uint32_t multiple variable xor" 0.22 sec 7339.45 M 1.16
  635.  
  636. Total absolute time for uint32_t loop invariant: 30.28 sec
  637.  
  638. test description absolute operations ratio with
  639. number time per second test0
  640.  
  641. 0 "int64_t variable add" 0.44 sec 3652.97 M 1.00
  642. 1 "int64_t variable add hoisted" 0.42 sec 3791.47 M 0.96
  643. 2 "int64_t multiple variable adds" 0.45 sec 3532.01 M 1.03
  644. 3 "int64_t variable subtract" 0.44 sec 3661.33 M 1.00
  645. 4 "int64_t multiple variable subtracts" 0.44 sec 3652.97 M 1.00
  646. 5 "int64_t variable multiply" 1.69 sec 948.43 M 3.85
  647. 6 "int64_t multiple variable multiplies" 1.78 sec 897.87 M 4.07
  648. 7 "int64_t multiple variable multiplies2" 0.44 sec 3661.33 M 1.00
  649. 8 "int64_t variable divide" 15.14 sec 105.67 M 34.57
  650. 9 "int64_t multiple variable divides" 53.77 sec 29.76 M 122.75
  651. 10 "int64_t multiple variable divides2" 0.45 sec 3524.23 M 1.04
  652. 11 "int64_t multiple variable mixed" 0.50 sec 3200.00 M 1.14
  653. 12 "int64_t variable and" 0.48 sec 3305.79 M 1.11
  654. 13 "int64_t multiple variable and" 0.50 sec 3200.00 M 1.14
  655. 14 "int64_t variable or" 0.48 sec 3305.79 M 1.11
  656. 15 "int64_t multiple variable or" 0.50 sec 3200.00 M 1.14
  657. 16 "int64_t variable xor" 0.48 sec 3298.97 M 1.11
  658. 17 "int64_t multiple variable xor" 0.48 sec 3305.79 M 1.11
  659.  
  660. Total absolute time for int64_t loop invariant: 78.89 sec
  661.  
  662. test description absolute operations ratio with
  663. number time per second test0
  664.  
  665. 0 "uint64_t variable add" 0.44 sec 3652.97 M 1.00
  666. 1 "uint64_t variable add hoisted" 0.45 sec 3532.01 M 1.03
  667. 2 "uint64_t multiple variable adds" 0.44 sec 3661.33 M 1.00
  668. 3 "uint64_t variable subtract" 0.44 sec 3652.97 M 1.00
  669. 4 "uint64_t multiple variable subtracts" 0.44 sec 3661.33 M 1.00
  670. 5 "uint64_t variable multiply" 1.70 sec 939.52 M 3.89
  671. 6 "uint64_t multiple variable multiplies" 1.78 sec 897.87 M 4.07
  672. 7 "uint64_t multiple variable multiplies2" 0.44 sec 3661.33 M 1.00
  673. 8 "uint64_t variable divide" 13.05 sec 122.63 M 29.79
  674. 9 "uint64_t multiple variable divides" 45.22 sec 35.38 M 103.24
  675. 10 "uint64_t multiple variable divides2" 0.45 sec 3532.01 M 1.03
  676. 11 "uint64_t multiple variable mixed" 0.50 sec 3200.00 M 1.14
  677. 12 "uint64_t variable and" 0.50 sec 3200.00 M 1.14
  678. 13 "uint64_t multiple variable and" 0.50 sec 3200.00 M 1.14
  679. 14 "uint64_t variable or" 0.48 sec 3298.97 M 1.11
  680. 15 "uint64_t multiple variable or" 0.50 sec 3200.00 M 1.14
  681. 16 "uint64_t variable xor" 0.48 sec 3305.79 M 1.11
  682. 17 "uint64_t multiple variable xor" 0.50 sec 3200.00 M 1.14
  683.  
  684. Total absolute time for uint64_t loop invariant: 68.31 sec
  685.  
  686. test description absolute operations ratio with
  687. number time per second test0
  688.  
  689. 0 "float variable add" 1.42 sec 1125.18 M 1.00
  690. 1 "float variable add hoisted" 1.42 sec 1125.18 M 1.00
  691. 2 "float multiple variable adds" 2.41 sec 665.00 M 1.69
  692. 3 "float variable subtract" 1.42 sec 1125.18 M 1.00
  693. 4 "float multiple variable subtracts" 2.41 sec 665.00 M 1.69
  694. 5 "float variable multiply" 1.42 sec 1125.18 M 1.00
  695. 6 "float multiple variable multiplies" 1.92 sec 832.47 M 1.35
  696. 7 "float multiple variable multiplies2" 1.42 sec 1125.18 M 1.00
  697. 8 "float variable divide" 4.78 sec 334.66 M 3.36
  698. 9 "float multiple variable divides" 22.92 sec 69.80 M 16.12
  699. 10 "float multiple variable divides2" 1.42 sec 1125.18 M 1.00
  700. 11 "float multiple variable mixed" 1.45 sec 1101.17 M 1.02
  701.  
  702. Total absolute time for float loop invariant: 44.42 sec
  703.  
  704. test description absolute operations ratio with
  705. number time per second test0
  706.  
  707. 0 "double variable add" 1.42 sec 1125.18 M 1.00
  708. 1 "double variable add hoisted" 1.42 sec 1125.18 M 1.00
  709. 2 "double multiple variable adds" 2.41 sec 665.00 M 1.69
  710. 3 "double variable subtract" 1.42 sec 1125.18 M 1.00
  711. 4 "double multiple variable subtracts" 2.41 sec 665.00 M 1.69
  712. 5 "double variable multiply" 1.42 sec 1125.18 M 1.00
  713. 6 "double multiple variable multiplies" 1.92 sec 832.47 M 1.35
  714. 7 "double multiple variable multiplies2" 1.42 sec 1125.18 M 1.00
  715. 8 "double variable divide" 4.75 sec 336.84 M 3.34
  716. 9 "double multiple variable divides" 30.52 sec 52.43 M 21.46
  717. 10 "double multiple variable divides2" 1.42 sec 1125.18 M 1.00
  718. 11 "double multiple variable mixed" 1.45 sec 1101.17 M 1.02
  719.  
  720. Total absolute time for double loop invariant: 51.98 sec
  721.  
  722. --------------------------------------------------------------------------------
  723.  
  724. Nico@CODEFOX-VM01 ~/C++Benchmarks
  725. $ ./simple_types_constant_folding.exe
  726. ./simple_types_constant_folding
  727.  
  728. test description absolute operations ratio with
  729. number time per second test0
  730.  
  731. 0 "int8_t constant" 0.00 sec inf M nan
  732. 1 "int8_t add constants" 0.01 sec 1066666.67 M inf
  733. 2 "int8_t subtract constants" 0.00 sec inf M nan
  734. 3 "int8_t multiply constants" 0.00 sec inf M nan
  735. 4 "int8_t divide constants" 0.00 sec inf M nan
  736. 5 "int8_t mod constants" 0.00 sec inf M nan
  737. 6 "int8_t equal constants" 0.00 sec inf M nan
  738. 7 "int8_t notequal constants" 0.00 sec inf M nan
  739. 8 "int8_t greater than constants" 0.02 sec 1000000.00 M inf
  740. 9 "int8_t less than constants" 0.00 sec inf M nan
  741. 10 "int8_t greater than equal constants" 0.00 sec inf M nan
  742. 11 "int8_t less than equal constants" 0.00 sec inf M nan
  743. 12 "int8_t and constants" 0.00 sec inf M nan
  744. 13 "int8_t or constants" 0.00 sec inf M nan
  745. 14 "int8_t xor constants" 0.00 sec inf M nan
  746.  
  747. Total absolute time for int8_t simple constant folding: 0.03 sec
  748.  
  749. test description absolute operations ratio with
  750. number time per second test0
  751.  
  752. 0 "int8_t constant add" 0.05 sec 34042.55 M 1.00
  753. 1 "int8_t multiple constant adds" 0.05 sec 34042.55 M 1.00
  754. 2 "int8_t constant subtract" 0.05 sec 34782.61 M 0.98
  755. 3 "int8_t multiple constant subtracts" 0.05 sec 34042.55 M 1.00
  756. 4 "int8_t constant multiply" 0.12 sec 12800.00 M 2.66
  757. 5 "int8_t multiple constant multiplies" 0.12 sec 12800.00 M 2.66
  758. 6 "int8_t multiple constant multiply2" 0.05 sec 34042.55 M 1.00
  759. 7 "int8_t constant divide" 2.38 sec 673.68 M 50.53
  760. 8 "int8_t multiple constant divides" 2.83 sec 565.77 M 60.17
  761. 9 "int8_t multiple constant divide2" 0.05 sec 34042.55 M 1.00
  762. 10 "int8_t multiple constant mixed" 0.06 sec 25396.83 M 1.34
  763. 11 "int8_t constant and" 0.05 sec 34042.55 M 1.00
  764. 12 "int8_t multiple constant and" 0.05 sec 34782.61 M 0.98
  765. 13 "int8_t constant or" 0.06 sec 25396.83 M 1.34
  766. 14 "int8_t multiple constant or" 0.05 sec 34042.55 M 1.00
  767. 15 "int8_t constant xor" 0.06 sec 25806.45 M 1.32
  768. 16 "int8_t multiple constant xor" 0.05 sec 34042.55 M 1.00
  769.  
  770. Total absolute time for int8_t constant folding: 6.11 sec
  771.  
  772. test description absolute operations ratio with
  773. number time per second test0
  774.  
  775. 0 "uint8_t constant" 0.00 sec inf M nan
  776. 1 "uint8_t add constants" 0.00 sec inf M nan
  777. 2 "uint8_t subtract constants" 0.02 sec 1000000.00 M inf
  778. 3 "uint8_t multiply constants" 0.00 sec inf M nan
  779. 4 "uint8_t divide constants" 0.00 sec inf M nan
  780. 5 "uint8_t mod constants" 0.00 sec inf M nan
  781. 6 "uint8_t equal constants" 0.00 sec inf M nan
  782. 7 "uint8_t notequal constants" 0.00 sec inf M nan
  783. 8 "uint8_t greater than constants" 0.00 sec inf M nan
  784. 9 "uint8_t less than constants" 0.00 sec inf M nan
  785. 10 "uint8_t greater than equal constants" 0.00 sec inf M nan
  786. 11 "uint8_t less than equal constants" 0.00 sec inf M nan
  787. 12 "uint8_t and constants" 0.00 sec inf M nan
  788. 13 "uint8_t or constants" 0.00 sec inf M nan
  789. 14 "uint8_t xor constants" 0.01 sec 1066666.67 M inf
  790.  
  791. Total absolute time for uint8_t simple constant folding: 0.03 sec
  792.  
  793. test description absolute operations ratio with
  794. number time per second test0
  795.  
  796. 0 "uint8_t constant add" 0.05 sec 34042.55 M 1.00
  797. 1 "uint8_t multiple constant adds" 0.03 sec 50000.00 M 0.68
  798. 2 "uint8_t constant subtract" 0.05 sec 34782.61 M 0.98
  799. 3 "uint8_t multiple constant subtracts" 0.05 sec 34042.55 M 1.00
  800. 4 "uint8_t constant multiply" 0.14 sec 11347.52 M 3.00
  801. 5 "uint8_t multiple constant multiplies" 0.11 sec 14678.90 M 2.32
  802. 6 "uint8_t multiple constant multiply2" 0.05 sec 34042.55 M 1.00
  803. 7 "uint8_t constant divide" 1.08 sec 1484.23 M 22.94
  804. 8 "uint8_t multiple constant divides" 1.08 sec 1484.23 M 22.94
  805. 9 "uint8_t multiple constant divide2" 0.05 sec 34042.55 M 1.00
  806. 10 "uint8_t multiple constant mixed" 0.05 sec 34042.55 M 1.00
  807. 11 "uint8_t constant and" 0.06 sec 25396.83 M 1.34
  808. 12 "uint8_t multiple constant and" 0.05 sec 34042.55 M 1.00
  809. 13 "uint8_t constant or" 0.06 sec 25806.45 M 1.32
  810. 14 "uint8_t multiple constant or" 0.05 sec 34042.55 M 1.00
  811. 15 "uint8_t constant xor" 0.06 sec 25806.45 M 1.32
  812. 16 "uint8_t multiple constant xor" 0.05 sec 34042.55 M 1.00
  813.  
  814. Total absolute time for uint8_t constant folding: 3.05 sec
  815.  
  816. test description absolute operations ratio with
  817. number time per second test0
  818.  
  819. 0 "int16_t constant" 0.00 sec inf M nan
  820. 1 "int16_t add constants" 0.00 sec inf M nan
  821. 2 "int16_t subtract constants" 0.02 sec 1000000.00 M inf
  822. 3 "int16_t multiply constants" 0.00 sec inf M nan
  823. 4 "int16_t divide constants" 0.00 sec inf M nan
  824. 5 "int16_t mod constants" 0.00 sec inf M nan
  825. 6 "int16_t equal constants" 0.00 sec inf M nan
  826. 7 "int16_t notequal constants" 0.00 sec inf M nan
  827. 8 "int16_t greater than constants" 0.00 sec inf M nan
  828. 9 "int16_t less than constants" 0.00 sec inf M nan
  829. 10 "int16_t greater than equal constants" 0.02 sec 1000000.00 M inf
  830. 11 "int16_t less than equal constants" 0.00 sec inf M nan
  831. 12 "int16_t and constants" 0.00 sec inf M nan
  832. 13 "int16_t or constants" 0.00 sec inf M nan
  833. 14 "int16_t xor constants" 0.00 sec inf M nan
  834.  
  835. Total absolute time for int16_t simple constant folding: 0.03 sec
  836.  
  837. test description absolute operations ratio with
  838. number time per second test0
  839.  
  840. 0 "int16_t constant add" 0.09 sec 17204.30 M 1.00
  841. 1 "int16_t multiple constant adds" 0.09 sec 17021.28 M 1.01
  842. 2 "int16_t constant subtract" 0.08 sec 20512.82 M 0.84
  843. 3 "int16_t multiple constant subtracts" 0.11 sec 14545.45 M 1.18
  844. 4 "int16_t constant multiply" 0.11 sec 14678.90 M 1.17
  845. 5 "int16_t multiple constant multiplies" 0.12 sec 12800.00 M 1.34
  846. 6 "int16_t multiple constant multiply2" 0.09 sec 17021.28 M 1.01
  847. 7 "int16_t constant divide" 2.44 sec 656.54 M 26.20
  848. 8 "int16_t multiple constant divides" 2.78 sec 575.33 M 29.90
  849. 9 "int16_t multiple constant divide2" 0.11 sec 14545.45 M 1.18
  850. 10 "int16_t multiple constant mixed" 0.08 sec 20512.82 M 0.84
  851. 11 "int16_t constant and" 0.11 sec 14678.90 M 1.17
  852. 12 "int16_t multiple constant and" 0.11 sec 14545.45 M 1.18
  853. 13 "int16_t constant or" 0.11 sec 14678.90 M 1.17
  854. 14 "int16_t multiple constant or" 0.11 sec 14678.90 M 1.17
  855. 15 "int16_t constant xor" 0.11 sec 14545.45 M 1.18
  856. 16 "int16_t multiple constant xor" 0.11 sec 14678.90 M 1.17
  857.  
  858. Total absolute time for int16_t constant folding: 6.77 sec
  859.  
  860. test description absolute operations ratio with
  861. number time per second test0
  862.  
  863. 0 "uint16_t constant" 0.00 sec inf M nan
  864. 1 "uint16_t add constants" 0.00 sec inf M nan
  865. 2 "uint16_t subtract constants" 0.00 sec inf M nan
  866. 3 "uint16_t multiply constants" 0.00 sec inf M nan
  867. 4 "uint16_t divide constants" 0.00 sec inf M nan
  868. 5 "uint16_t mod constants" 0.00 sec inf M nan
  869. 6 "uint16_t equal constants" 0.00 sec inf M nan
  870. 7 "uint16_t notequal constants" 0.00 sec inf M nan
  871. 8 "uint16_t greater than constants" 0.02 sec 1000000.00 M inf
  872. 9 "uint16_t less than constants" 0.00 sec inf M nan
  873. 10 "uint16_t greater than equal constants" 0.00 sec inf M nan
  874. 11 "uint16_t less than equal constants" 0.00 sec inf M nan
  875. 12 "uint16_t and constants" 0.00 sec inf M nan
  876. 13 "uint16_t or constants" 0.00 sec inf M nan
  877. 14 "uint16_t xor constants" 0.00 sec inf M nan
  878.  
  879. Total absolute time for uint16_t simple constant folding: 0.02 sec
  880.  
  881. test description absolute operations ratio with
  882. number time per second test0
  883.  
  884. 0 "uint16_t constant add" 0.09 sec 17021.28 M 1.00
  885. 1 "uint16_t multiple constant adds" 0.09 sec 17204.30 M 0.99
  886. 2 "uint16_t constant subtract" 0.08 sec 20512.82 M 0.83
  887. 3 "uint16_t multiple constant subtracts" 0.09 sec 17021.28 M 1.00
  888. 4 "uint16_t constant multiply" 0.12 sec 12800.00 M 1.33
  889. 5 "uint16_t multiple constant multiplies" 0.12 sec 12800.00 M 1.33
  890. 6 "uint16_t multiple constant multiply2" 0.09 sec 17021.28 M 1.00
  891. 7 "uint16_t constant divide" 0.83 sec 1932.37 M 8.81
  892. 8 "uint16_t multiple constant divides" 0.84 sec 1895.73 M 8.98
  893. 9 "uint16_t multiple constant divide2" 0.08 sec 20512.82 M 0.83
  894. 10 "uint16_t multiple constant mixed" 0.09 sec 17021.28 M 1.00
  895. 11 "uint16_t constant and" 0.11 sec 14678.90 M 1.16
  896. 12 "uint16_t multiple constant and" 0.11 sec 14678.90 M 1.16
  897. 13 "uint16_t constant or" 0.11 sec 14545.45 M 1.17
  898. 14 "uint16_t multiple constant or" 0.11 sec 14678.90 M 1.16
  899. 15 "uint16_t constant xor" 0.11 sec 14545.45 M 1.17
  900. 16 "uint16_t multiple constant xor" 0.09 sec 17204.30 M 0.99
  901.  
  902. Total absolute time for uint16_t constant folding: 3.19 sec
  903.  
  904. test description absolute operations ratio with
  905. number time per second test0
  906.  
  907. 0 "int32_t constant" 0.02 sec 1000000.00 M 1.00
  908. 1 "int32_t add constants" 0.00 sec inf M 0.00
  909. 2 "int32_t subtract constants" 0.00 sec inf M 0.00
  910. 3 "int32_t multiply constants" 0.00 sec inf M 0.00
  911. 4 "int32_t divide constants" 0.00 sec inf M 0.00
  912. 5 "int32_t mod constants" 0.00 sec inf M 0.00
  913. 6 "int32_t equal constants" 0.00 sec inf M 0.00
  914. 7 "int32_t notequal constants" 0.00 sec inf M 0.00
  915. 8 "int32_t greater than constants" 0.00 sec inf M 0.00
  916. 9 "int32_t less than constants" 0.00 sec inf M 0.00
  917. 10 "int32_t greater than equal constants" 0.00 sec inf M 0.00
  918. 11 "int32_t less than equal constants" 0.00 sec inf M 0.00
  919. 12 "int32_t and constants" 0.00 sec inf M 0.00
  920. 13 "int32_t or constants" 0.02 sec 1000000.00 M 1.00
  921. 14 "int32_t xor constants" 0.00 sec inf M 0.00
  922.  
  923. Total absolute time for int32_t simple constant folding: 0.03 sec
  924.  
  925. test description absolute operations ratio with
  926. number time per second test0
  927.  
  928. 0 "int32_t constant add" 0.17 sec 9356.73 M 1.00
  929. 1 "int32_t multiple constant adds" 0.19 sec 8510.64 M 1.10
  930. 2 "int32_t constant subtract" 0.17 sec 9302.33 M 1.01
  931. 3 "int32_t multiple constant subtracts" 0.19 sec 8556.15 M 1.09
  932. 4 "int32_t constant multiply" 0.45 sec 3532.01 M 2.65
  933. 5 "int32_t multiple constant multiplies" 0.45 sec 3524.23 M 2.65
  934. 6 "int32_t multiple constant multiply2" 0.19 sec 8556.15 M 1.09
  935. 7 "int32_t constant divide" 2.22 sec 721.05 M 12.98
  936. 8 "int32_t multiple constant divides" 2.67 sec 598.80 M 15.63
  937. 9 "int32_t multiple constant divide2" 0.17 sec 9302.33 M 1.01
  938. 10 "int32_t multiple constant mixed" 0.19 sec 8556.15 M 1.09
  939. 11 "int32_t constant and" 0.20 sec 7881.77 M 1.19
  940. 12 "int32_t multiple constant and" 0.22 sec 7305.94 M 1.28
  941. 13 "int32_t constant or" 0.22 sec 7305.94 M 1.28
  942. 14 "int32_t multiple constant or" 0.22 sec 7339.45 M 1.27
  943. 15 "int32_t constant xor" 0.22 sec 7305.94 M 1.28
  944. 16 "int32_t multiple constant xor" 0.20 sec 7881.77 M 1.19
  945.  
  946. Total absolute time for int32_t constant folding: 8.34 sec
  947.  
  948. test description absolute operations ratio with
  949. number time per second test0
  950.  
  951. 0 "uint32_t constant" 0.00 sec inf M nan
  952. 1 "uint32_t add constants" 0.02 sec 1000000.00 M inf
  953. 2 "uint32_t subtract constants" 0.00 sec inf M nan
  954. 3 "uint32_t multiply constants" 0.00 sec inf M nan
  955. 4 "uint32_t divide constants" 0.00 sec inf M nan
  956. 5 "uint32_t mod constants" 0.00 sec inf M nan
  957. 6 "uint32_t equal constants" 0.00 sec inf M nan
  958. 7 "uint32_t notequal constants" 0.00 sec inf M nan
  959. 8 "uint32_t greater than constants" 0.00 sec inf M nan
  960. 9 "uint32_t less than constants" 0.00 sec inf M nan
  961. 10 "uint32_t greater than equal constants" 0.00 sec inf M nan
  962. 11 "uint32_t less than equal constants" 0.00 sec inf M nan
  963. 12 "uint32_t and constants" 0.00 sec inf M nan
  964. 13 "uint32_t or constants" 0.00 sec inf M nan
  965. 14 "uint32_t xor constants" 0.02 sec 1000000.00 M inf
  966.  
  967. Total absolute time for uint32_t simple constant folding: 0.03 sec
  968.  
  969. test description absolute operations ratio with
  970. number time per second test0
  971.  
  972. 0 "uint32_t constant add" 0.17 sec 9356.73 M 1.00
  973. 1 "uint32_t multiple constant adds" 0.19 sec 8510.64 M 1.10
  974. 2 "uint32_t constant subtract" 0.19 sec 8556.15 M 1.09
  975. 3 "uint32_t multiple constant subtracts" 0.19 sec 8510.64 M 1.10
  976. 4 "uint32_t constant multiply" 0.45 sec 3532.01 M 2.65
  977. 5 "uint32_t multiple constant multiplies" 0.45 sec 3532.01 M 2.65
  978. 6 "uint32_t multiple constant multiply2" 0.19 sec 8510.64 M 1.10
  979. 7 "uint32_t constant divide" 1.70 sec 939.52 M 9.96
  980. 8 "uint32_t multiple constant divides" 1.69 sec 948.43 M 9.87
  981. 9 "uint32_t multiple constant divide2" 0.19 sec 8510.64 M 1.10
  982. 10 "uint32_t multiple constant mixed" 0.19 sec 8556.15 M 1.09
  983. 11 "uint32_t constant and" 0.22 sec 7305.94 M 1.28
  984. 12 "uint32_t multiple constant and" 0.20 sec 7881.77 M 1.19
  985. 13 "uint32_t constant or" 0.22 sec 7305.94 M 1.28
  986. 14 "uint32_t multiple constant or" 0.22 sec 7305.94 M 1.28
  987. 15 "uint32_t constant xor" 0.22 sec 7339.45 M 1.27
  988. 16 "uint32_t multiple constant xor" 0.22 sec 7305.94 M 1.28
  989.  
  990. Total absolute time for uint32_t constant folding: 6.89 sec
  991.  
  992. test description absolute operations ratio with
  993. number time per second test0
  994.  
  995. 0 "int64_t constant" 0.00 sec inf M nan
  996. 1 "int64_t add constants" 0.00 sec inf M nan
  997. 2 "int64_t subtract constants" 0.00 sec inf M nan
  998. 3 "int64_t multiply constants" 0.00 sec inf M nan
  999. 4 "int64_t divide constants" 0.00 sec inf M nan
  1000. 5 "int64_t mod constants" 0.00 sec inf M nan
  1001. 6 "int64_t equal constants" 0.00 sec inf M nan
  1002. 7 "int64_t notequal constants" 0.00 sec inf M nan
  1003. 8 "int64_t greater than constants" 0.00 sec inf M nan
  1004. 9 "int64_t less than constants" 0.00 sec inf M nan
  1005. 10 "int64_t greater than equal constants" 0.00 sec inf M nan
  1006. 11 "int64_t less than equal constants" 0.00 sec inf M nan
  1007. 12 "int64_t and constants" 0.02 sec 1000000.00 M inf
  1008. 13 "int64_t or constants" 0.00 sec inf M nan
  1009. 14 "int64_t xor constants" 0.00 sec inf M nan
  1010.  
  1011. Total absolute time for int64_t simple constant folding: 0.02 sec
  1012.  
  1013. test description absolute operations ratio with
  1014. number time per second test0
  1015.  
  1016. 0 "int64_t constant add" 0.44 sec 3661.33 M 1.00
  1017. 1 "int64_t multiple constant adds" 0.42 sec 3791.47 M 0.97
  1018. 2 "int64_t constant subtract" 0.44 sec 3652.97 M 1.00
  1019. 3 "int64_t multiple constant subtracts" 0.44 sec 3661.33 M 1.00
  1020. 4 "int64_t constant multiply" 1.70 sec 939.52 M 3.90
  1021. 5 "int64_t multiple constant multiplies" 1.69 sec 947.87 M 3.86
  1022. 6 "int64_t multiple constant multiply2" 0.44 sec 3661.33 M 1.00
  1023. 7 "int64_t constant divide" 15.34 sec 104.28 M 35.11
  1024. 8 "int64_t multiple constant divides" 15.22 sec 105.13 M 34.83
  1025. 9 "int64_t multiple constant divide2" 0.44 sec 3661.33 M 1.00
  1026. 10 "int64_t multiple constant mixed" 0.44 sec 3652.97 M 1.00
  1027. 11 "int64_t constant and" 0.50 sec 3200.00 M 1.14
  1028. 12 "int64_t multiple constant and" 0.50 sec 3200.00 M 1.14
  1029. 13 "int64_t constant or" 0.48 sec 3305.79 M 1.11
  1030. 14 "int64_t multiple constant or" 0.50 sec 3200.00 M 1.14
  1031. 15 "int64_t constant xor" 0.50 sec 3200.00 M 1.14
  1032. 16 "int64_t multiple constant xor" 0.50 sec 3200.00 M 1.14
  1033.  
  1034. Total absolute time for int64_t constant folding: 39.98 sec
  1035.  
  1036. test description absolute operations ratio with
  1037. number time per second test0
  1038.  
  1039. 0 "uint64_t constant" 0.00 sec inf M nan
  1040. 1 "uint64_t add constants" 0.00 sec inf M nan
  1041. 2 "uint64_t subtract constants" 0.00 sec inf M nan
  1042. 3 "uint64_t multiply constants" 0.00 sec inf M nan
  1043. 4 "uint64_t divide constants" 0.00 sec inf M nan
  1044. 5 "uint64_t mod constants" 0.00 sec inf M nan
  1045. 6 "uint64_t equal constants" 0.00 sec inf M nan
  1046. 7 "uint64_t notequal constants" 0.00 sec inf M nan
  1047. 8 "uint64_t greater than constants" 0.00 sec inf M nan
  1048. 9 "uint64_t less than constants" 0.00 sec inf M nan
  1049. 10 "uint64_t greater than equal constants" 0.02 sec 1000000.00 M inf
  1050. 11 "uint64_t less than equal constants" 0.00 sec inf M nan
  1051. 12 "uint64_t and constants" 0.00 sec inf M nan
  1052. 13 "uint64_t or constants" 0.00 sec inf M nan
  1053. 14 "uint64_t xor constants" 0.00 sec inf M nan
  1054.  
  1055. Total absolute time for uint64_t simple constant folding: 0.02 sec
  1056.  
  1057. test description absolute operations ratio with
  1058. number time per second test0
  1059.  
  1060. 0 "uint64_t constant add" 0.45 sec 3532.01 M 1.00
  1061. 1 "uint64_t multiple constant adds" 0.44 sec 3661.33 M 0.96
  1062. 2 "uint64_t constant subtract" 0.44 sec 3652.97 M 0.97
  1063. 3 "uint64_t multiple constant subtracts" 0.44 sec 3661.33 M 0.96
  1064. 4 "uint64_t constant multiply" 1.70 sec 938.97 M 3.76
  1065. 5 "uint64_t multiple constant multiplies" 1.70 sec 939.52 M 3.76
  1066. 6 "uint64_t multiple constant multiply2" 0.45 sec 3532.01 M 1.00
  1067. 7 "uint64_t constant divide" 12.69 sec 126.11 M 28.01
  1068. 8 "uint64_t multiple constant divides" 12.73 sec 125.64 M 28.11
  1069. 9 "uint64_t multiple constant divide2" 0.44 sec 3661.33 M 0.96
  1070. 10 "uint64_t multiple constant mixed" 0.44 sec 3652.97 M 0.97
  1071. 11 "uint64_t constant and" 0.50 sec 3200.00 M 1.10
  1072. 12 "uint64_t multiple constant and" 0.50 sec 3200.00 M 1.10
  1073. 13 "uint64_t constant or" 0.50 sec 3200.00 M 1.10
  1074. 14 "uint64_t multiple constant or" 0.50 sec 3200.00 M 1.10
  1075. 15 "uint64_t constant xor" 0.50 sec 3200.00 M 1.10
  1076. 16 "uint64_t multiple constant xor" 0.50 sec 3200.00 M 1.10
  1077.  
  1078. Total absolute time for uint64_t constant folding: 34.92 sec
  1079.  
  1080. test description absolute operations ratio with
  1081. number time per second test0
  1082.  
  1083. 0 "float constant" 14.20 sec 1126.52 M 1.00
  1084. 1 "float add constants" 14.19 sec 1127.79 M 1.00
  1085. 2 "float subtract constants" 14.22 sec 1125.25 M 1.00
  1086. 3 "float multiply constants" 14.20 sec 1126.52 M 1.00
  1087. 4 "float divide constants" 14.20 sec 1126.52 M 1.00
  1088.  
  1089. Total absolute time for float simple constant folding: 71.02 sec
  1090.  
  1091. test description absolute operations ratio with
  1092. number time per second test0
  1093.  
  1094. 0 "float constant add" 1.42 sec 1125.18 M 1.00
  1095. 1 "float multiple constant adds" 2.41 sec 665.00 M 1.69
  1096. 2 "float constant subtract" 1.42 sec 1125.18 M 1.00
  1097. 3 "float multiple constant subtracts" 2.41 sec 664.73 M 1.69
  1098. 4 "float constant multiply" 1.42 sec 1125.97 M 1.00
  1099. 5 "float multiple constant multiplies" 1.45 sec 1100.41 M 1.02
  1100. 6 "float multiple constant multiply2" 1.42 sec 1125.97 M 1.00
  1101. 7 "float constant divide" 6.64 sec 240.93 M 4.67
  1102. 8 "float multiple constant divides" 13.62 sec 117.43 M 9.58
  1103. 9 "float multiple constant divide2" 1.42 sec 1125.18 M 1.00
  1104. 10 "float multiple constant mixed" 1.45 sec 1101.17 M 1.02
  1105.  
  1106. Total absolute time for float constant folding: 35.09 sec
  1107.  
  1108. test description absolute operations ratio with
  1109. number time per second test0
  1110.  
  1111. 0 "double constant" 14.20 sec 1126.52 M 1.00
  1112. 1 "double add constants" 14.22 sec 1125.25 M 1.00
  1113. 2 "double subtract constants" 14.20 sec 1126.52 M 1.00
  1114. 3 "double multiply constants" 14.20 sec 1126.52 M 1.00
  1115. 4 "double divide constants" 14.22 sec 1125.25 M 1.00
  1116.  
  1117. Total absolute time for double simple constant folding: 71.05 sec
  1118.  
  1119. test description absolute operations ratio with
  1120. number time per second test0
  1121.  
  1122. 0 "double constant add" 1.42 sec 1125.18 M 1.00
  1123. 1 "double multiple constant adds" 2.41 sec 665.00 M 1.69
  1124. 2 "double constant subtract" 1.42 sec 1125.18 M 1.00
  1125. 3 "double multiple constant subtracts" 2.41 sec 665.00 M 1.69
  1126. 4 "double constant multiply" 1.42 sec 1125.18 M 1.00
  1127. 5 "double multiple constant multiplies" 1.45 sec 1101.17 M 1.02
  1128. 6 "double multiple constant multiply2" 1.42 sec 1125.18 M 1.00
  1129. 7 "double constant divide" 10.44 sec 153.30 M 7.34
  1130. 8 "double multiple constant divides" 21.22 sec 75.40 M 14.92
  1131. 9 "double multiple constant divide2" 1.42 sec 1125.18 M 1.00
  1132. 10 "double multiple constant mixed" 1.45 sec 1101.17 M 1.02
  1133.  
  1134. Total absolute time for double constant folding: 46.48 sec
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement