1. .file "compression_bench.cpp"
  2. .text
  3. .align 16, 0x90
  4. .type _Z7mainGtUjjPhPtjPi,@function
  5. _Z7mainGtUjjPhPtjPi: # @_Z7mainGtUjjPhPtjPi
  6. .cfi_startproc
  7. # BB#0: # %entry
  8. pushq %rbp
  9. .Ltmp244:
  10. .cfi_def_cfa_offset 16
  11. pushq %rbx
  12. .Ltmp245:
  13. .cfi_def_cfa_offset 24
  14. .Ltmp246:
  15. .cfi_offset %rbx, -24
  16. .Ltmp247:
  17. .cfi_offset %rbp, -16
  18. # kill: R8D<def> R8D<kill> R8<def>
  19. # kill: ESI<def> ESI<kill> RSI<def>
  20. # kill: EDI<def> EDI<kill> RDI<def>
  21. movl %edi, %eax
  22. movb (%rdx,%rax), %al
  23. movl %esi, %ebp
  24. movb (%rdx,%rbp), %bl
  25. cmpb %bl, %al
  26. jne .LBB27_1
  27. # BB#2: # %if.end
  28. leal 1(%rdi), %eax
  29. leal 1(%rsi), %ebp
  30. movb (%rdx,%rax), %al
  31. movb (%rdx,%rbp), %bl
  32. cmpb %bl, %al
  33. jne .LBB27_1
  34. # BB#3: # %if.end21
  35. leal 2(%rdi), %eax
  36. leal 2(%rsi), %ebp
  37. movb (%rdx,%rax), %al
  38. movb (%rdx,%rbp), %bl
  39. cmpb %bl, %al
  40. jne .LBB27_1
  41. # BB#4: # %if.end36
  42. leal 3(%rdi), %eax
  43. leal 3(%rsi), %ebp
  44. movb (%rdx,%rax), %al
  45. movb (%rdx,%rbp), %bl
  46. cmpb %bl, %al
  47. jne .LBB27_1
  48. # BB#5: # %if.end51
  49. leal 4(%rdi), %eax
  50. leal 4(%rsi), %ebp
  51. movb (%rdx,%rax), %al
  52. movb (%rdx,%rbp), %bl
  53. cmpb %bl, %al
  54. jne .LBB27_1
  55. # BB#6: # %if.end66
  56. leal 5(%rdi), %eax
  57. leal 5(%rsi), %ebp
  58. movb (%rdx,%rax), %al
  59. movb (%rdx,%rbp), %bl
  60. cmpb %bl, %al
  61. jne .LBB27_1
  62. # BB#7: # %if.end81
  63. leal 6(%rdi), %eax
  64. leal 6(%rsi), %ebp
  65. movb (%rdx,%rax), %al
  66. movb (%rdx,%rbp), %bl
  67. cmpb %bl, %al
  68. jne .LBB27_1
  69. # BB#8: # %if.end96
  70. leal 7(%rdi), %eax
  71. leal 7(%rsi), %ebp
  72. movb (%rdx,%rax), %al
  73. movb (%rdx,%rbp), %bl
  74. cmpb %bl, %al
  75. jne .LBB27_1
  76. # BB#9: # %if.end111
  77. leal 8(%rdi), %eax
  78. leal 8(%rsi), %ebp
  79. movb (%rdx,%rax), %al
  80. movb (%rdx,%rbp), %bl
  81. cmpb %bl, %al
  82. jne .LBB27_1
  83. # BB#10: # %if.end126
  84. leal 9(%rdi), %eax
  85. leal 9(%rsi), %ebp
  86. movb (%rdx,%rax), %al
  87. movb (%rdx,%rbp), %bl
  88. cmpb %bl, %al
  89. jne .LBB27_1
  90. # BB#11: # %if.end141
  91. leal 10(%rdi), %eax
  92. leal 10(%rsi), %ebp
  93. movb (%rdx,%rax), %al
  94. movb (%rdx,%rbp), %bl
  95. cmpb %bl, %al
  96. jne .LBB27_1
  97. # BB#12: # %if.end156
  98. leal 11(%rdi), %eax
  99. leal 11(%rsi), %ebp
  100. movb (%rdx,%rax), %al
  101. movb (%rdx,%rbp), %bl
  102. cmpb %bl, %al
  103. jne .LBB27_1
  104. # BB#13: # %if.end171
  105. addl $12, %edi
  106. addl $12, %esi
  107. leal 8(%r8), %r10d
  108. .LBB27_14: # %do.body174
  109. # =>This Inner Loop Header: Depth=1
  110. movl %edi, %edi
  111. movb (%rdx,%rdi), %al
  112. movl %esi, %esi
  113. movb (%rdx,%rsi), %bl
  114. cmpb %bl, %al
  115. jne .LBB27_1
  116. # BB#15: # %if.end187
  117. # in Loop: Header=BB27_14 Depth=1
  118. movw (%rcx,%rdi,2), %ax
  119. movw (%rcx,%rsi,2), %bx
  120. cmpw %bx, %ax
  121. jne .LBB27_16
  122. # BB#17: # %if.end200
  123. # in Loop: Header=BB27_14 Depth=1
  124. leal 1(%rdi), %r11d
  125. leal 1(%rsi), %eax
  126. movb (%rdx,%r11), %bpl
  127. movb (%rdx,%rax), %bl
  128. cmpb %bl, %bpl
  129. jne .LBB27_18
  130. # BB#19: # %if.end215
  131. # in Loop: Header=BB27_14 Depth=1
  132. movw (%rcx,%r11,2), %bx
  133. movw (%rcx,%rax,2), %ax
  134. cmpw %ax, %bx
  135. jne .LBB27_20
  136. # BB#21: # %if.end228
  137. # in Loop: Header=BB27_14 Depth=1
  138. leal 2(%rdi), %r11d
  139. leal 2(%rsi), %eax
  140. movb (%rdx,%r11), %bpl
  141. movb (%rdx,%rax), %bl
  142. cmpb %bl, %bpl
  143. jne .LBB27_18
  144. # BB#22: # %if.end243
  145. # in Loop: Header=BB27_14 Depth=1
  146. movw (%rcx,%r11,2), %bx
  147. movw (%rcx,%rax,2), %ax
  148. cmpw %ax, %bx
  149. jne .LBB27_20
  150. # BB#23: # %if.end256
  151. # in Loop: Header=BB27_14 Depth=1
  152. leal 3(%rdi), %r11d
  153. leal 3(%rsi), %eax
  154. movb (%rdx,%r11), %bpl
  155. movb (%rdx,%rax), %bl
  156. cmpb %bl, %bpl
  157. jne .LBB27_18
  158. # BB#24: # %if.end271
  159. # in Loop: Header=BB27_14 Depth=1
  160. movw (%rcx,%r11,2), %bx
  161. movw (%rcx,%rax,2), %ax
  162. cmpw %ax, %bx
  163. jne .LBB27_20
  164. # BB#25: # %if.end284
  165. # in Loop: Header=BB27_14 Depth=1
  166. leal 4(%rdi), %r11d
  167. leal 4(%rsi), %ebp
  168. movb (%rdx,%r11), %bl
  169. movb (%rdx,%rbp), %al
  170. cmpb %al, %bl
  171. jne .LBB27_26
  172. # BB#27: # %if.end299
  173. # in Loop: Header=BB27_14 Depth=1
  174. movw (%rcx,%r11,2), %bx
  175. movw (%rcx,%rbp,2), %ax
  176. cmpw %ax, %bx
  177. jne .LBB27_20
  178. # BB#28: # %if.end312
  179. # in Loop: Header=BB27_14 Depth=1
  180. leal 5(%rdi), %eax
  181. leal 5(%rsi), %r11d
  182. movb (%rdx,%rax), %bl
  183. movb (%rdx,%r11), %bpl
  184. cmpb %bpl, %bl
  185. jne .LBB27_29
  186. # BB#30: # %if.end327
  187. # in Loop: Header=BB27_14 Depth=1
  188. movw (%rcx,%rax,2), %ax
  189. movw (%rcx,%r11,2), %bp
  190. cmpw %bp, %ax
  191. jne .LBB27_31
  192. # BB#32: # %if.end340
  193. # in Loop: Header=BB27_14 Depth=1
  194. leal 6(%rdi), %eax
  195. leal 6(%rsi), %r11d
  196. movb (%rdx,%rax), %bl
  197. movb (%rdx,%r11), %bpl
  198. cmpb %bpl, %bl
  199. jne .LBB27_29
  200. # BB#33: # %if.end355
  201. # in Loop: Header=BB27_14 Depth=1
  202. movw (%rcx,%rax,2), %ax
  203. movw (%rcx,%r11,2), %bp
  204. cmpw %bp, %ax
  205. jne .LBB27_31
  206. # BB#34: # %if.end368
  207. # in Loop: Header=BB27_14 Depth=1
  208. leal 7(%rdi), %eax
  209. leal 7(%rsi), %r11d
  210. movb (%rdx,%rax), %bl
  211. movb (%rdx,%r11), %bpl
  212. cmpb %bpl, %bl
  213. jne .LBB27_29
  214. # BB#35: # %if.end383
  215. # in Loop: Header=BB27_14 Depth=1
  216. movw (%rcx,%rax,2), %ax
  217. movw (%rcx,%r11,2), %bp
  218. cmpw %bp, %ax
  219. jne .LBB27_31
  220. # BB#36: # %if.end396
  221. # in Loop: Header=BB27_14 Depth=1
  222. addl $8, %edi
  223. addl $8, %esi
  224. xorl %eax, %eax
  225. cmpl %r8d, %edi
  226. movl %r8d, %ebp
  227. cmovbl %eax, %ebp
  228. subl %ebp, %edi
  229. cmpl %r8d, %esi
  230. movl %r8d, %ebp
  231. cmovbl %eax, %ebp
  232. subl %ebp, %esi
  233. decl (%r9)
  234. addl $-8, %r10d
  235. jns .LBB27_14
  236. jmp .LBB27_37
  237. .LBB27_1: # %if.then
  238. cmpb %al, %bl
  239. setb %al
  240. .LBB27_37: # %return
  241. movzbl %al, %eax
  242. popq %rbx
  243. popq %rbp
  244. ret
  245. .LBB27_16: # %if.then195
  246. cmpw %ax, %bx
  247. setb %al
  248. jmp .LBB27_37
  249. .LBB27_18: # %if.then210
  250. cmpb %bpl, %bl
  251. setb %al
  252. jmp .LBB27_37
  253. .LBB27_26: # %if.then294
  254. cmpb %bl, %al
  255. setb %al
  256. jmp .LBB27_37
  257. .LBB27_20: # %if.then223
  258. cmpw %bx, %ax
  259. setb %al
  260. jmp .LBB27_37
  261. .LBB27_29: # %if.then322
  262. cmpb %bl, %bpl
  263. setb %al
  264. jmp .LBB27_37
  265. .LBB27_31: # %if.then335
  266. cmpw %ax, %bp
  267. setb %al
  268. jmp .LBB27_37
  269. .Ltmp248:
  270. .size _Z7mainGtUjjPhPtjPi, .Ltmp248-_Z7mainGtUjjPhPtjPi
  271. .cfi_endproc
  272. .ident "clang version 3.5 "
  273. .section ".note.GNU-stack","",@progbits