Guest User

Untitled

a guest
Mar 2nd, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 80.19 KB | None | 0 0
  1. pen2: # @pen2
  2. # %bb.0:
  3. push rbp
  4. push r15
  5. push r14
  6. push r13
  7. push r12
  8. push rbx
  9. sub rsp, 40
  10. mov r12, rdx
  11. mov r15, rsi
  12. mov rbp, rdi
  13. mov cl, byte ptr [rbp - 15]
  14. test cl, cl
  15. je .LBB0_6
  16. # %bb.1:
  17. mov al, byte ptr [r15 - 15]
  18. test al, al
  19. je .LBB0_6
  20. # %bb.2:
  21. cmp cl, 5
  22. sete bl
  23. add bl, bl
  24. cmp al, 5
  25. sete dl
  26. or dl, bl
  27. cmp dl, 3
  28. je .LBB0_7
  29. # %bb.3:
  30. cmp dl, 2
  31. je .LBB0_11
  32. # %bb.4:
  33. cmp dl, 1
  34. jne .LBB0_14
  35. # %bb.5:
  36. mov rdi, r15
  37. call mut10
  38. mov r13, rax
  39. mov rsi, qword ptr [r13 + 8]
  40. mov rdi, rbp
  41. jmp .LBB0_12
  42. .LBB0_6:
  43. mov qword ptr [rsp + 16], rbp
  44. mov qword ptr [rsp + 24], r15
  45. shl r12, 5
  46. lea rdi, [r12 + cuvw_+1040]
  47. lea rsi, [rsp + 16]
  48. mov edx, 2
  49. call eac
  50. mov r13, rax
  51. jmp .LBB0_13
  52. .LBB0_7:
  53. mov rsi, qword ptr [r15]
  54. shl r12, 5
  55. lea rdx, [r12 + cuvw_+1040]
  56. lea rcx, [r15 + 8]
  57. mov r8d, 1
  58. mov rdi, rbp
  59. call amd
  60. mov r13, rax
  61. cmp dword ptr [r15 - 12], 0
  62. jne .LBB0_13
  63. # %bb.8:
  64. movzx eax, byte ptr [r15 - 15]
  65. mov ecx, 2017
  66. bt ecx, eax
  67. jae .LBB0_10
  68. # %bb.9:
  69. mov rdi, r15
  70. call mdAll
  71. .LBB0_10:
  72. movzx eax, byte ptr [r15 - 16]
  73. mov rcx, qword ptr [8*rax + mx]
  74. mov qword ptr [r15 - 16], rcx
  75. mov qword ptr [8*rax + mx], r15
  76. jmp .LBB0_13
  77. .LBB0_11:
  78. mov rdi, rbp
  79. call mut10
  80. mov r13, rax
  81. mov rdi, qword ptr [r13 + 8]
  82. mov rsi, r15
  83. .LBB0_12:
  84. mov rdx, r12
  85. call pen2
  86. add dword ptr [rax - 12], 1
  87. mov qword ptr [r13 + 8], rax
  88. .LBB0_13:
  89. mov rax, r13
  90. add rsp, 40
  91. pop rbx
  92. pop r12
  93. pop r13
  94. pop r14
  95. pop r15
  96. pop rbp
  97. vzeroupper
  98. ret
  99. .LBB0_14:
  100. mov ebx, ecx
  101. shr bl, 6
  102. and bl, 2
  103. mov edx, eax
  104. shr dl, 7
  105. or dl, bl
  106. cmp dl, 2
  107. mov rsi, r15
  108. cmovb rsi, rbp
  109. mov rbx, qword ptr [rsi - 8]
  110. test dl, dl
  111. jne .LBB0_16
  112. # %bb.15:
  113. mov rsi, qword ptr [rbp - 8]
  114. cmp rsi, qword ptr [r15 - 8]
  115. jne .LBB0_37
  116. .LBB0_16:
  117. movzx r14d, dl
  118. cmp cl, -4
  119. je .LBB0_20
  120. # %bb.17:
  121. cmp cl, 4
  122. je .LBB0_20
  123. # %bb.18:
  124. cmp al, 4
  125. je .LBB0_20
  126. # %bb.19:
  127. cmp al, -4
  128. jne .LBB0_75
  129. .LBB0_20:
  130. mov r13d, offset gd
  131. mov al, 1
  132. mov dword ptr [rsp + 12], eax # 4-byte Spill
  133. .LBB0_21:
  134. mov rdi, rbp
  135. call r13
  136. mov rdi, r15
  137. mov r15, rax
  138. call r13
  139. mov rbp, rax
  140. cmp dword ptr [r15 - 12], 0
  141. jne .LBB0_23
  142. # %bb.22:
  143. cmp qword ptr [r15 - 8], rbx
  144. mov r13, r15
  145. je .LBB0_26
  146. .LBB0_23:
  147. cmp dword ptr [rbp - 12], 0
  148. jne .LBB0_25
  149. # %bb.24:
  150. cmp qword ptr [rbp - 8], rbx
  151. mov r13, rbp
  152. je .LBB0_26
  153. .LBB0_25:
  154. lea rax, [rbx + 1]
  155. lzcnt rax, rax
  156. mov edi, 67
  157. sub rdi, rax
  158. or rdi, 512
  159. mov rsi, rbx
  160. call ma
  161. mov r13, rax
  162. .LBB0_26:
  163. mov r9, rbx
  164. xor eax, eax
  165. cmp r14b, 3
  166. sete cl
  167. setne bl
  168. mov edx, ebx
  169. shl dl, 2
  170. add dl, -2
  171. mov esi, dword ptr [rsp + 12] # 4-byte Reload
  172. test sil, sil
  173. jne .LBB0_28
  174. # %bb.27:
  175. mov ebx, edx
  176. cmp r12, 8
  177. jl .LBB0_30
  178. .LBB0_29:
  179. mov ebx, edx
  180. .LBB0_30:
  181. mov byte ptr [r13 - 15], bl
  182. mov al, cl
  183. sub r14, rax
  184. movzx eax, sil
  185. lea rax, [rax + 2*rax]
  186. add rax, r14
  187. cmp rax, 5
  188. ja .LBB0_38
  189. # %bb.31:
  190. jmp qword ptr [8*rax + .LJTI0_0]
  191. .LBB0_32:
  192. cmp r12, 10
  193. mov rbx, r9
  194. ja .LBB0_39
  195. # %bb.33:
  196. jmp qword ptr [8*r12 + .LJTI0_6]
  197. .LBB0_34:
  198. test rbx, rbx
  199. jle .LBB0_39
  200. # %bb.35:
  201. cmp rbx, 4
  202. jb .LBB0_36
  203. # %bb.292:
  204. lea rax, [8*rbx]
  205. add rax, rbp
  206. cmp r13, rax
  207. jae .LBB0_516
  208. # %bb.293:
  209. lea rax, [8*rbx]
  210. add rax, r13
  211. cmp rbp, rax
  212. jae .LBB0_516
  213. .LBB0_36:
  214. xor eax, eax
  215. jmp .LBB0_742
  216. .LBB0_28:
  217. shl bl, 3
  218. add bl, -4
  219. cmp r12, 8
  220. jl .LBB0_30
  221. jmp .LBB0_29
  222. .LBB0_37:
  223. mov edi, offset .L.str
  224. call e_
  225. mov r13, rax
  226. jmp .LBB0_13
  227. .LBB0_38:
  228. mov edi, offset .L.str.1
  229. call e_
  230. .LBB0_39:
  231. cmp r15, r13
  232. je .LBB0_44
  233. # %bb.40:
  234. cmp dword ptr [r15 - 12], 0
  235. jne .LBB0_44
  236. # %bb.41:
  237. movzx eax, byte ptr [r15 - 15]
  238. mov ecx, 2017
  239. bt ecx, eax
  240. jae .LBB0_43
  241. # %bb.42:
  242. mov rdi, r15
  243. vzeroupper
  244. call mdAll
  245. .LBB0_43:
  246. movzx eax, byte ptr [r15 - 16]
  247. mov rcx, qword ptr [8*rax + mx]
  248. mov qword ptr [r15 - 16], rcx
  249. mov qword ptr [8*rax + mx], r15
  250. .LBB0_44:
  251. cmp rbp, r13
  252. je .LBB0_49
  253. # %bb.45:
  254. cmp dword ptr [rbp - 12], 0
  255. jne .LBB0_13
  256. # %bb.46:
  257. movzx eax, byte ptr [rbp - 15]
  258. mov ecx, 2017
  259. bt ecx, eax
  260. jae .LBB0_48
  261. # %bb.47:
  262. mov rdi, rbp
  263. vzeroupper
  264. call mdAll
  265. .LBB0_48:
  266. movzx eax, byte ptr [rbp - 16]
  267. mov rcx, qword ptr [8*rax + mx]
  268. mov qword ptr [rbp - 16], rcx
  269. mov qword ptr [8*rax + mx], rbp
  270. jmp .LBB0_13
  271. .LBB0_49:
  272. mov r13, rbp
  273. jmp .LBB0_13
  274. .LBB0_50:
  275. cmp r12, 10
  276. mov rbx, r9
  277. ja .LBB0_39
  278. # %bb.51:
  279. mov rcx, qword ptr [rbp]
  280. jmp qword ptr [8*r12 + .LJTI0_5]
  281. .LBB0_52:
  282. test rbx, rbx
  283. jle .LBB0_39
  284. # %bb.53:
  285. cmp rbx, 4
  286. jae .LBB0_295
  287. # %bb.54:
  288. xor eax, eax
  289. jmp .LBB0_298
  290. .LBB0_55:
  291. cmp r12, 10
  292. mov rbx, r9
  293. ja .LBB0_39
  294. # %bb.56:
  295. mov rcx, qword ptr [r15]
  296. jmp qword ptr [8*r12 + .LJTI0_4]
  297. .LBB0_57:
  298. test rbx, rbx
  299. jle .LBB0_39
  300. # %bb.58:
  301. cmp rbx, 4
  302. jae .LBB0_300
  303. # %bb.59:
  304. xor eax, eax
  305. jmp .LBB0_521
  306. .LBB0_60:
  307. cmp r12, 10
  308. mov rsi, r9
  309. ja .LBB0_39
  310. # %bb.61:
  311. jmp qword ptr [8*r12 + .LJTI0_3]
  312. .LBB0_62:
  313. test rsi, rsi
  314. jle .LBB0_39
  315. # %bb.63:
  316. cmp rsi, 4
  317. jae .LBB0_303
  318. # %bb.64:
  319. xor eax, eax
  320. jmp .LBB0_525
  321. .LBB0_65:
  322. cmp r12, 10
  323. mov rsi, r9
  324. ja .LBB0_39
  325. # %bb.66:
  326. vmovsd xmm0, qword ptr [rbp] # xmm0 = mem[0],zero
  327. jmp qword ptr [8*r12 + .LJTI0_2]
  328. .LBB0_67:
  329. test rsi, rsi
  330. jle .LBB0_39
  331. # %bb.68:
  332. cmp rsi, 4
  333. jae .LBB0_306
  334. # %bb.69:
  335. xor eax, eax
  336. jmp .LBB0_309
  337. .LBB0_70:
  338. cmp r12, 10
  339. mov rsi, r9
  340. ja .LBB0_39
  341. # %bb.71:
  342. vmovsd xmm0, qword ptr [r15] # xmm0 = mem[0],zero
  343. jmp qword ptr [8*r12 + .LJTI0_1]
  344. .LBB0_72:
  345. test rsi, rsi
  346. jle .LBB0_39
  347. # %bb.73:
  348. cmp rsi, 4
  349. jae .LBB0_311
  350. # %bb.74:
  351. xor eax, eax
  352. jmp .LBB0_529
  353. .LBB0_75:
  354. mov r13d, offset gl
  355. mov dword ptr [rsp + 12], 0 # 4-byte Folded Spill
  356. jmp .LBB0_21
  357. .LBB0_76:
  358. test rbx, rbx
  359. jle .LBB0_39
  360. # %bb.77:
  361. cmp rbx, 4
  362. jae .LBB0_314
  363. # %bb.78:
  364. xor eax, eax
  365. jmp .LBB0_744
  366. .LBB0_79:
  367. test rbx, rbx
  368. jle .LBB0_39
  369. # %bb.80:
  370. cmp rbx, 4
  371. jae .LBB0_318
  372. # %bb.81:
  373. xor eax, eax
  374. jmp .LBB0_746
  375. .LBB0_82:
  376. test rbx, rbx
  377. jle .LBB0_39
  378. # %bb.83:
  379. cmp rbx, 4
  380. jae .LBB0_322
  381. # %bb.84:
  382. xor eax, eax
  383. jmp .LBB0_748
  384. .LBB0_85:
  385. test rbx, rbx
  386. jle .LBB0_39
  387. # %bb.86:
  388. cmp rbx, 4
  389. jae .LBB0_326
  390. # %bb.87:
  391. xor esi, esi
  392. jmp .LBB0_685
  393. .LBB0_88:
  394. test rbx, rbx
  395. jle .LBB0_39
  396. # %bb.89:
  397. movabs rcx, -9223372036854775808
  398. xor esi, esi
  399. .LBB0_90: # =>This Inner Loop Header: Depth=1
  400. mov rdi, qword ptr [r15 + 8*rsi]
  401. mov rax, qword ptr [rbp + 8*rsi]
  402. test rdi, rdi
  403. jle .LBB0_93
  404. # %bb.91: # in Loop: Header=BB0_90 Depth=1
  405. mov rdx, rax
  406. or rdx, rdi
  407. shr rdx, 32
  408. je .LBB0_96
  409. # %bb.92: # in Loop: Header=BB0_90 Depth=1
  410. cqo
  411. idiv rdi
  412. mov rax, rdx
  413. jmp .LBB0_97
  414. .LBB0_93: # in Loop: Header=BB0_90 Depth=1
  415. mov rdx, rcx
  416. je .LBB0_101
  417. # %bb.94: # in Loop: Header=BB0_90 Depth=1
  418. neg rdi
  419. mov rdx, rax
  420. or rdx, rdi
  421. shr rdx, 32
  422. je .LBB0_100
  423. # %bb.95: # in Loop: Header=BB0_90 Depth=1
  424. cqo
  425. idiv rdi
  426. mov rdx, rax
  427. jmp .LBB0_101
  428. .LBB0_96: # in Loop: Header=BB0_90 Depth=1
  429. xor edx, edx
  430. # kill: def %eax killed %eax killed %rax
  431. div edi
  432. mov eax, edx
  433. .LBB0_97: # in Loop: Header=BB0_90 Depth=1
  434. add rax, rdi
  435. mov rdx, rax
  436. or rdx, rdi
  437. shr rdx, 32
  438. je .LBB0_99
  439. # %bb.98: # in Loop: Header=BB0_90 Depth=1
  440. cqo
  441. idiv rdi
  442. jmp .LBB0_101
  443. .LBB0_99: # in Loop: Header=BB0_90 Depth=1
  444. xor edx, edx
  445. # kill: def %eax killed %eax killed %rax
  446. div edi
  447. # kill: def %edx killed %edx def %rdx
  448. jmp .LBB0_101
  449. .LBB0_100: # in Loop: Header=BB0_90 Depth=1
  450. xor edx, edx
  451. # kill: def %eax killed %eax killed %rax
  452. div edi
  453. mov edx, eax
  454. .LBB0_101: # in Loop: Header=BB0_90 Depth=1
  455. mov qword ptr [r13 + 8*rsi], rdx
  456. add rsi, 1
  457. cmp rbx, rsi
  458. jne .LBB0_90
  459. jmp .LBB0_39
  460. .LBB0_102:
  461. test rbx, rbx
  462. jle .LBB0_39
  463. # %bb.103:
  464. cmp rbx, 4
  465. jae .LBB0_350
  466. # %bb.104:
  467. xor eax, eax
  468. jmp .LBB0_750
  469. .LBB0_105:
  470. test rbx, rbx
  471. jle .LBB0_39
  472. # %bb.106:
  473. cmp rbx, 4
  474. jae .LBB0_354
  475. # %bb.107:
  476. xor eax, eax
  477. jmp .LBB0_752
  478. .LBB0_108:
  479. test rbx, rbx
  480. jle .LBB0_39
  481. # %bb.109:
  482. cmp rbx, 4
  483. jae .LBB0_358
  484. # %bb.110:
  485. xor eax, eax
  486. jmp .LBB0_754
  487. .LBB0_111:
  488. test rbx, rbx
  489. jle .LBB0_39
  490. # %bb.112:
  491. cmp rbx, 4
  492. jae .LBB0_362
  493. # %bb.113:
  494. xor eax, eax
  495. jmp .LBB0_756
  496. .LBB0_114:
  497. test rbx, rbx
  498. jle .LBB0_39
  499. # %bb.115:
  500. cmp rbx, 4
  501. jae .LBB0_366
  502. # %bb.116:
  503. xor eax, eax
  504. jmp .LBB0_758
  505. .LBB0_117:
  506. test rbx, rbx
  507. jle .LBB0_39
  508. # %bb.118:
  509. cmp rbx, 4
  510. jb .LBB0_119
  511. # %bb.370:
  512. lea rax, [r15 + 8*rbx]
  513. cmp r13, rax
  514. jae .LBB0_530
  515. # %bb.371:
  516. lea rax, [8*rbx]
  517. add rax, r13
  518. cmp r15, rax
  519. jae .LBB0_530
  520. .LBB0_119:
  521. xor eax, eax
  522. jmp .LBB0_760
  523. .LBB0_120:
  524. test rbx, rbx
  525. jle .LBB0_39
  526. # %bb.121:
  527. cmp rbx, 4
  528. jb .LBB0_122
  529. # %bb.373:
  530. lea rax, [r15 + 8*rbx]
  531. cmp r13, rax
  532. jae .LBB0_532
  533. # %bb.374:
  534. lea rax, [8*rbx]
  535. add rax, r13
  536. cmp r15, rax
  537. jae .LBB0_532
  538. .LBB0_122:
  539. xor eax, eax
  540. jmp .LBB0_762
  541. .LBB0_123:
  542. test rbx, rbx
  543. jle .LBB0_39
  544. # %bb.124:
  545. cmp rbx, 4
  546. jb .LBB0_125
  547. # %bb.376:
  548. lea rax, [r15 + 8*rbx]
  549. cmp r13, rax
  550. jae .LBB0_534
  551. # %bb.377:
  552. lea rax, [8*rbx]
  553. add rax, r13
  554. cmp r15, rax
  555. jae .LBB0_534
  556. .LBB0_125:
  557. xor eax, eax
  558. jmp .LBB0_764
  559. .LBB0_126:
  560. test rbx, rbx
  561. jle .LBB0_39
  562. # %bb.127:
  563. test rcx, rcx
  564. je .LBB0_493
  565. # %bb.128:
  566. xor esi, esi
  567. .LBB0_129: # =>This Inner Loop Header: Depth=1
  568. mov rax, qword ptr [r15 + 8*rsi]
  569. mov rdx, rax
  570. or rdx, rcx
  571. shr rdx, 32
  572. je .LBB0_131
  573. # %bb.130: # in Loop: Header=BB0_129 Depth=1
  574. cqo
  575. idiv rcx
  576. jmp .LBB0_132
  577. .LBB0_131: # in Loop: Header=BB0_129 Depth=1
  578. xor edx, edx
  579. # kill: def %eax killed %eax killed %rax
  580. div ecx
  581. # kill: def %eax killed %eax def %rax
  582. .LBB0_132: # in Loop: Header=BB0_129 Depth=1
  583. mov qword ptr [r13 + 8*rsi], rax
  584. add rsi, 1
  585. cmp rbx, rsi
  586. jne .LBB0_129
  587. jmp .LBB0_39
  588. .LBB0_133:
  589. test rbx, rbx
  590. jle .LBB0_39
  591. # %bb.134:
  592. movabs r8, -9223372036854775808
  593. xor edi, edi
  594. .LBB0_135: # =>This Inner Loop Header: Depth=1
  595. mov rsi, qword ptr [r15 + 8*rdi]
  596. test rsi, rsi
  597. jle .LBB0_138
  598. # %bb.136: # in Loop: Header=BB0_135 Depth=1
  599. mov rax, rcx
  600. or rax, rsi
  601. shr rax, 32
  602. je .LBB0_141
  603. # %bb.137: # in Loop: Header=BB0_135 Depth=1
  604. mov rax, rcx
  605. cqo
  606. idiv rsi
  607. mov rax, rdx
  608. jmp .LBB0_142
  609. .LBB0_138: # in Loop: Header=BB0_135 Depth=1
  610. mov rdx, r8
  611. je .LBB0_146
  612. # %bb.139: # in Loop: Header=BB0_135 Depth=1
  613. neg rsi
  614. mov rax, rcx
  615. or rax, rsi
  616. shr rax, 32
  617. je .LBB0_145
  618. # %bb.140: # in Loop: Header=BB0_135 Depth=1
  619. mov rax, rcx
  620. cqo
  621. idiv rsi
  622. mov rdx, rax
  623. jmp .LBB0_146
  624. .LBB0_141: # in Loop: Header=BB0_135 Depth=1
  625. xor edx, edx
  626. mov eax, ecx
  627. div esi
  628. mov eax, edx
  629. .LBB0_142: # in Loop: Header=BB0_135 Depth=1
  630. add rax, rsi
  631. mov rdx, rax
  632. or rdx, rsi
  633. shr rdx, 32
  634. je .LBB0_144
  635. # %bb.143: # in Loop: Header=BB0_135 Depth=1
  636. cqo
  637. idiv rsi
  638. jmp .LBB0_146
  639. .LBB0_144: # in Loop: Header=BB0_135 Depth=1
  640. xor edx, edx
  641. # kill: def %eax killed %eax killed %rax
  642. div esi
  643. # kill: def %edx killed %edx def %rdx
  644. jmp .LBB0_146
  645. .LBB0_145: # in Loop: Header=BB0_135 Depth=1
  646. xor edx, edx
  647. mov eax, ecx
  648. div esi
  649. mov edx, eax
  650. .LBB0_146: # in Loop: Header=BB0_135 Depth=1
  651. mov qword ptr [r13 + 8*rdi], rdx
  652. add rdi, 1
  653. cmp rbx, rdi
  654. jne .LBB0_135
  655. jmp .LBB0_39
  656. .LBB0_147:
  657. test rbx, rbx
  658. jle .LBB0_39
  659. # %bb.148:
  660. cmp rbx, 4
  661. jae .LBB0_379
  662. # %bb.149:
  663. xor eax, eax
  664. jmp .LBB0_539
  665. .LBB0_150:
  666. test rbx, rbx
  667. jle .LBB0_39
  668. # %bb.151:
  669. cmp rbx, 4
  670. jae .LBB0_382
  671. # %bb.152:
  672. xor eax, eax
  673. jmp .LBB0_543
  674. .LBB0_153:
  675. test rbx, rbx
  676. jle .LBB0_39
  677. # %bb.154:
  678. cmp rbx, 4
  679. jae .LBB0_385
  680. # %bb.155:
  681. xor eax, eax
  682. jmp .LBB0_547
  683. .LBB0_156:
  684. test rbx, rbx
  685. jle .LBB0_39
  686. # %bb.157:
  687. cmp rbx, 4
  688. jae .LBB0_388
  689. # %bb.158:
  690. xor eax, eax
  691. jmp .LBB0_551
  692. .LBB0_159:
  693. test rbx, rbx
  694. jle .LBB0_39
  695. # %bb.160:
  696. cmp rbx, 4
  697. jae .LBB0_391
  698. # %bb.161:
  699. xor eax, eax
  700. jmp .LBB0_555
  701. .LBB0_162:
  702. test rbx, rbx
  703. jle .LBB0_39
  704. # %bb.163:
  705. cmp rbx, 4
  706. jae .LBB0_394
  707. # %bb.164:
  708. xor eax, eax
  709. jmp .LBB0_559
  710. .LBB0_165:
  711. test rbx, rbx
  712. jle .LBB0_39
  713. # %bb.166:
  714. cmp rbx, 4
  715. jae .LBB0_397
  716. # %bb.167:
  717. xor eax, eax
  718. jmp .LBB0_563
  719. .LBB0_168:
  720. test rbx, rbx
  721. jle .LBB0_39
  722. # %bb.169:
  723. cmp rbx, 4
  724. jae .LBB0_400
  725. # %bb.170:
  726. xor eax, eax
  727. jmp .LBB0_567
  728. .LBB0_171:
  729. test rbx, rbx
  730. jle .LBB0_39
  731. # %bb.172:
  732. movabs rax, -9223372036854775808
  733. lea rdx, [rax - 1]
  734. lea r8, [rax + 1]
  735. test rcx, rcx
  736. cmovg r8, rdx
  737. je .LBB0_495
  738. # %bb.173:
  739. cmp rbx, 4
  740. jae .LBB0_507
  741. # %bb.174:
  742. xor edi, edi
  743. mov rsi, qword ptr [rbp + 8*rdi]
  744. mov rax, r8
  745. test rsi, rsi
  746. jne .LBB0_664
  747. jmp .LBB0_667
  748. .LBB0_175:
  749. test rbx, rbx
  750. jle .LBB0_39
  751. # %bb.176:
  752. test rcx, rcx
  753. jle .LBB0_497
  754. # %bb.177:
  755. xor esi, esi
  756. .LBB0_178: # =>This Inner Loop Header: Depth=1
  757. mov rax, qword ptr [rbp + 8*rsi]
  758. mov rdx, rax
  759. or rdx, rcx
  760. shr rdx, 32
  761. je .LBB0_180
  762. # %bb.179: # in Loop: Header=BB0_178 Depth=1
  763. cqo
  764. idiv rcx
  765. mov rax, rdx
  766. jmp .LBB0_181
  767. .LBB0_180: # in Loop: Header=BB0_178 Depth=1
  768. xor edx, edx
  769. # kill: def %eax killed %eax killed %rax
  770. div ecx
  771. mov eax, edx
  772. .LBB0_181: # in Loop: Header=BB0_178 Depth=1
  773. add rax, rcx
  774. mov rdx, rax
  775. or rdx, rcx
  776. shr rdx, 32
  777. je .LBB0_183
  778. # %bb.182: # in Loop: Header=BB0_178 Depth=1
  779. cqo
  780. idiv rcx
  781. jmp .LBB0_184
  782. .LBB0_183: # in Loop: Header=BB0_178 Depth=1
  783. xor edx, edx
  784. # kill: def %eax killed %eax killed %rax
  785. div ecx
  786. # kill: def %edx killed %edx def %rdx
  787. .LBB0_184: # in Loop: Header=BB0_178 Depth=1
  788. mov qword ptr [r13 + 8*rsi], rdx
  789. add rsi, 1
  790. cmp rbx, rsi
  791. jne .LBB0_178
  792. jmp .LBB0_39
  793. .LBB0_185:
  794. test rbx, rbx
  795. jle .LBB0_39
  796. # %bb.186:
  797. cmp rbx, 4
  798. jae .LBB0_403
  799. # %bb.187:
  800. xor eax, eax
  801. jmp .LBB0_571
  802. .LBB0_188:
  803. test rbx, rbx
  804. jle .LBB0_39
  805. # %bb.189:
  806. cmp rbx, 4
  807. jae .LBB0_406
  808. # %bb.190:
  809. xor eax, eax
  810. jmp .LBB0_575
  811. .LBB0_191:
  812. test rbx, rbx
  813. jle .LBB0_39
  814. # %bb.192:
  815. cmp rbx, 4
  816. jae .LBB0_409
  817. # %bb.193:
  818. xor eax, eax
  819. jmp .LBB0_579
  820. .LBB0_194:
  821. test rbx, rbx
  822. jle .LBB0_39
  823. # %bb.195:
  824. cmp rbx, 4
  825. jae .LBB0_412
  826. # %bb.196:
  827. xor eax, eax
  828. jmp .LBB0_583
  829. .LBB0_197:
  830. test rbx, rbx
  831. jle .LBB0_39
  832. # %bb.198:
  833. cmp rbx, 4
  834. jae .LBB0_415
  835. # %bb.199:
  836. xor eax, eax
  837. jmp .LBB0_587
  838. .LBB0_200:
  839. test rsi, rsi
  840. jle .LBB0_39
  841. # %bb.201:
  842. cmp rsi, 4
  843. jae .LBB0_418
  844. # %bb.202:
  845. xor eax, eax
  846. jmp .LBB0_699
  847. .LBB0_203:
  848. test rsi, rsi
  849. jle .LBB0_39
  850. # %bb.204:
  851. cmp rsi, 4
  852. jae .LBB0_423
  853. # %bb.205:
  854. xor eax, eax
  855. jmp .LBB0_701
  856. .LBB0_206:
  857. test rsi, rsi
  858. jle .LBB0_39
  859. # %bb.207:
  860. cmp rsi, 4
  861. jae .LBB0_428
  862. # %bb.208:
  863. xor eax, eax
  864. jmp .LBB0_703
  865. .LBB0_209:
  866. test rsi, rsi
  867. jle .LBB0_39
  868. # %bb.210:
  869. cmp rsi, 4
  870. jae .LBB0_433
  871. # %bb.211:
  872. xor eax, eax
  873. jmp .LBB0_705
  874. .LBB0_212:
  875. test rsi, rsi
  876. jle .LBB0_39
  877. # %bb.213:
  878. cmp rsi, 4
  879. jae .LBB0_438
  880. # %bb.214:
  881. xor eax, eax
  882. jmp .LBB0_441
  883. .LBB0_215:
  884. test rsi, rsi
  885. jle .LBB0_39
  886. # %bb.216:
  887. cmp rsi, 4
  888. jae .LBB0_443
  889. # %bb.217:
  890. xor eax, eax
  891. jmp .LBB0_712
  892. .LBB0_218:
  893. test rsi, rsi
  894. jle .LBB0_39
  895. # %bb.219:
  896. cmp rsi, 4
  897. jae .LBB0_448
  898. # %bb.220:
  899. xor eax, eax
  900. jmp .LBB0_714
  901. .LBB0_221:
  902. test rsi, rsi
  903. jle .LBB0_39
  904. # %bb.222:
  905. xor eax, eax
  906. .LBB0_223: # =>This Inner Loop Header: Depth=1
  907. vmovsd xmm0, qword ptr [rbp + 8*rax] # xmm0 = mem[0],zero
  908. xor ecx, ecx
  909. vucomisd xmm0, qword ptr [r15 + 8*rax]
  910. seta cl
  911. shl rcx, 5
  912. mov rcx, qword ptr [rcx + cb_+16]
  913. mov qword ptr [r13 + 8*rax], rcx
  914. add rax, 1
  915. cmp rsi, rax
  916. jne .LBB0_223
  917. jmp .LBB0_39
  918. .LBB0_224:
  919. test rsi, rsi
  920. jle .LBB0_39
  921. # %bb.225:
  922. xor eax, eax
  923. .LBB0_226: # =>This Inner Loop Header: Depth=1
  924. vmovsd xmm0, qword ptr [r15 + 8*rax] # xmm0 = mem[0],zero
  925. xor ecx, ecx
  926. vucomisd xmm0, qword ptr [rbp + 8*rax]
  927. seta cl
  928. shl rcx, 5
  929. mov rcx, qword ptr [rcx + cb_+16]
  930. mov qword ptr [r13 + 8*rax], rcx
  931. add rax, 1
  932. cmp rsi, rax
  933. jne .LBB0_226
  934. jmp .LBB0_39
  935. .LBB0_227:
  936. test rsi, rsi
  937. jle .LBB0_39
  938. # %bb.228:
  939. xor eax, eax
  940. .LBB0_229: # =>This Inner Loop Header: Depth=1
  941. vmovsd xmm0, qword ptr [rbp + 8*rax] # xmm0 = mem[0],zero
  942. vcmpeqsd xmm0, xmm0, qword ptr [r15 + 8*rax]
  943. vmovq rcx, xmm0
  944. and ecx, 1
  945. shl rcx, 5
  946. mov rcx, qword ptr [rcx + cb_+16]
  947. mov qword ptr [r13 + 8*rax], rcx
  948. add rax, 1
  949. cmp rsi, rax
  950. jne .LBB0_229
  951. jmp .LBB0_39
  952. .LBB0_230:
  953. test rsi, rsi
  954. jle .LBB0_39
  955. # %bb.231:
  956. cmp rsi, 4
  957. jae .LBB0_453
  958. # %bb.232:
  959. xor eax, eax
  960. jmp .LBB0_591
  961. .LBB0_233:
  962. test rsi, rsi
  963. jle .LBB0_39
  964. # %bb.234:
  965. cmp rsi, 4
  966. jae .LBB0_456
  967. # %bb.235:
  968. xor eax, eax
  969. jmp .LBB0_595
  970. .LBB0_236:
  971. test rsi, rsi
  972. jle .LBB0_39
  973. # %bb.237:
  974. cmp rsi, 4
  975. jae .LBB0_459
  976. # %bb.238:
  977. xor eax, eax
  978. jmp .LBB0_599
  979. .LBB0_239:
  980. test rsi, rsi
  981. jle .LBB0_39
  982. # %bb.240:
  983. vxorpd xmm1, xmm1, xmm1
  984. vucomisd xmm0, xmm1
  985. jne .LBB0_241
  986. jnp .LBB0_503
  987. .LBB0_241:
  988. cmp rsi, 4
  989. jae .LBB0_510
  990. # %bb.242:
  991. xor eax, eax
  992. jmp .LBB0_671
  993. .LBB0_243:
  994. test rsi, rsi
  995. jle .LBB0_39
  996. # %bb.244:
  997. cmp rsi, 4
  998. jae .LBB0_462
  999. # %bb.245:
  1000. xor eax, eax
  1001. jmp .LBB0_465
  1002. .LBB0_246:
  1003. test rsi, rsi
  1004. jle .LBB0_39
  1005. # %bb.247:
  1006. cmp rsi, 4
  1007. jae .LBB0_467
  1008. # %bb.248:
  1009. xor eax, eax
  1010. jmp .LBB0_603
  1011. .LBB0_249:
  1012. test rsi, rsi
  1013. jle .LBB0_39
  1014. # %bb.250:
  1015. cmp rsi, 4
  1016. jae .LBB0_470
  1017. # %bb.251:
  1018. xor eax, eax
  1019. jmp .LBB0_607
  1020. .LBB0_252:
  1021. test rsi, rsi
  1022. jle .LBB0_39
  1023. # %bb.253:
  1024. xor eax, eax
  1025. .LBB0_254: # =>This Inner Loop Header: Depth=1
  1026. xor ecx, ecx
  1027. vucomisd xmm0, qword ptr [r15 + 8*rax]
  1028. seta cl
  1029. shl rcx, 5
  1030. mov rcx, qword ptr [rcx + cb_+16]
  1031. mov qword ptr [r13 + 8*rax], rcx
  1032. add rax, 1
  1033. cmp rsi, rax
  1034. jne .LBB0_254
  1035. jmp .LBB0_39
  1036. .LBB0_255:
  1037. test rsi, rsi
  1038. jle .LBB0_39
  1039. # %bb.256:
  1040. xor eax, eax
  1041. .LBB0_257: # =>This Inner Loop Header: Depth=1
  1042. vmovsd xmm1, qword ptr [r15 + 8*rax] # xmm1 = mem[0],zero
  1043. xor ecx, ecx
  1044. vucomisd xmm1, xmm0
  1045. seta cl
  1046. shl rcx, 5
  1047. mov rcx, qword ptr [rcx + cb_+16]
  1048. mov qword ptr [r13 + 8*rax], rcx
  1049. add rax, 1
  1050. cmp rsi, rax
  1051. jne .LBB0_257
  1052. jmp .LBB0_39
  1053. .LBB0_258:
  1054. test rsi, rsi
  1055. jle .LBB0_39
  1056. # %bb.259:
  1057. xor eax, eax
  1058. .LBB0_260: # =>This Inner Loop Header: Depth=1
  1059. vcmpeqsd xmm1, xmm0, qword ptr [r15 + 8*rax]
  1060. vmovq rcx, xmm1
  1061. and ecx, 1
  1062. shl rcx, 5
  1063. mov rcx, qword ptr [rcx + cb_+16]
  1064. mov qword ptr [r13 + 8*rax], rcx
  1065. add rax, 1
  1066. cmp rsi, rax
  1067. jne .LBB0_260
  1068. jmp .LBB0_39
  1069. .LBB0_261:
  1070. test rsi, rsi
  1071. jle .LBB0_39
  1072. # %bb.262:
  1073. cmp rsi, 4
  1074. jae .LBB0_473
  1075. # %bb.263:
  1076. xor eax, eax
  1077. jmp .LBB0_611
  1078. .LBB0_264:
  1079. test rsi, rsi
  1080. jle .LBB0_39
  1081. # %bb.265:
  1082. cmp rsi, 4
  1083. jae .LBB0_476
  1084. # %bb.266:
  1085. xor eax, eax
  1086. jmp .LBB0_615
  1087. .LBB0_267:
  1088. test rsi, rsi
  1089. jle .LBB0_39
  1090. # %bb.268:
  1091. cmp rsi, 4
  1092. jae .LBB0_479
  1093. # %bb.269:
  1094. xor eax, eax
  1095. jmp .LBB0_619
  1096. .LBB0_270:
  1097. test rsi, rsi
  1098. jle .LBB0_39
  1099. # %bb.271:
  1100. vxorpd xmm1, xmm1, xmm1
  1101. xor eax, eax
  1102. vucomisd xmm0, xmm1
  1103. seta cl
  1104. jne .LBB0_272
  1105. jnp .LBB0_505
  1106. .LBB0_272:
  1107. mov al, cl
  1108. vmovsd xmm1, qword ptr [8*rax + .LCPI0_1] # xmm1 = mem[0],zero
  1109. cmp rsi, 4
  1110. jb .LBB0_273
  1111. # %bb.513:
  1112. lea rax, [8*rsi]
  1113. add rax, rbp
  1114. cmp r13, rax
  1115. jae .LBB0_672
  1116. # %bb.514:
  1117. lea rax, [8*rsi]
  1118. add rax, r13
  1119. cmp rbp, rax
  1120. jae .LBB0_672
  1121. .LBB0_273:
  1122. xor eax, eax
  1123. .LBB0_675:
  1124. vxorpd xmm2, xmm2, xmm2
  1125. .LBB0_676: # =>This Inner Loop Header: Depth=1
  1126. vmovsd xmm4, qword ptr [rbp + 8*rax] # xmm4 = mem[0],zero
  1127. vucomisd xmm4, xmm2
  1128. vmovapd xmm3, xmm1
  1129. jne .LBB0_677
  1130. jnp .LBB0_678
  1131. .LBB0_677: # in Loop: Header=BB0_676 Depth=1
  1132. vdivsd xmm3, xmm0, xmm4
  1133. .LBB0_678: # in Loop: Header=BB0_676 Depth=1
  1134. vmovsd qword ptr [r13 + 8*rax], xmm3
  1135. add rax, 1
  1136. cmp rsi, rax
  1137. jne .LBB0_676
  1138. jmp .LBB0_39
  1139. .LBB0_274:
  1140. test rsi, rsi
  1141. jle .LBB0_39
  1142. # %bb.275:
  1143. cmp rsi, 4
  1144. jae .LBB0_482
  1145. # %bb.276:
  1146. xor eax, eax
  1147. jmp .LBB0_485
  1148. .LBB0_277:
  1149. test rsi, rsi
  1150. jle .LBB0_39
  1151. # %bb.278:
  1152. cmp rsi, 4
  1153. jae .LBB0_487
  1154. # %bb.279:
  1155. xor eax, eax
  1156. jmp .LBB0_623
  1157. .LBB0_280:
  1158. test rsi, rsi
  1159. jle .LBB0_39
  1160. # %bb.281:
  1161. cmp rsi, 4
  1162. jae .LBB0_490
  1163. # %bb.282:
  1164. xor eax, eax
  1165. jmp .LBB0_627
  1166. .LBB0_283:
  1167. test rsi, rsi
  1168. jle .LBB0_39
  1169. # %bb.284:
  1170. xor eax, eax
  1171. .LBB0_285: # =>This Inner Loop Header: Depth=1
  1172. vmovsd xmm1, qword ptr [rbp + 8*rax] # xmm1 = mem[0],zero
  1173. xor ecx, ecx
  1174. vucomisd xmm1, xmm0
  1175. seta cl
  1176. shl rcx, 5
  1177. mov rcx, qword ptr [rcx + cb_+16]
  1178. mov qword ptr [r13 + 8*rax], rcx
  1179. add rax, 1
  1180. cmp rsi, rax
  1181. jne .LBB0_285
  1182. jmp .LBB0_39
  1183. .LBB0_286:
  1184. test rsi, rsi
  1185. jle .LBB0_39
  1186. # %bb.287:
  1187. xor eax, eax
  1188. .LBB0_288: # =>This Inner Loop Header: Depth=1
  1189. xor ecx, ecx
  1190. vucomisd xmm0, qword ptr [rbp + 8*rax]
  1191. seta cl
  1192. shl rcx, 5
  1193. mov rcx, qword ptr [rcx + cb_+16]
  1194. mov qword ptr [r13 + 8*rax], rcx
  1195. add rax, 1
  1196. cmp rsi, rax
  1197. jne .LBB0_288
  1198. jmp .LBB0_39
  1199. .LBB0_289:
  1200. test rsi, rsi
  1201. jle .LBB0_39
  1202. # %bb.290:
  1203. xor eax, eax
  1204. .LBB0_291: # =>This Inner Loop Header: Depth=1
  1205. vcmpeqsd xmm1, xmm0, qword ptr [rbp + 8*rax]
  1206. vmovq rcx, xmm1
  1207. and ecx, 1
  1208. shl rcx, 5
  1209. mov rcx, qword ptr [rcx + cb_+16]
  1210. mov qword ptr [r13 + 8*rax], rcx
  1211. add rax, 1
  1212. cmp rsi, rax
  1213. jne .LBB0_291
  1214. jmp .LBB0_39
  1215. .LBB0_295:
  1216. mov rax, rbx
  1217. and rax, -4
  1218. vmovq xmm0, rcx
  1219. vpbroadcastq ymm0, xmm0
  1220. mov rdx, rax
  1221. mov rsi, r13
  1222. .LBB0_296: # =>This Inner Loop Header: Depth=1
  1223. vmovdqu ymmword ptr [rsi], ymm0
  1224. add rsi, 32
  1225. add rdx, -4
  1226. jne .LBB0_296
  1227. # %bb.297:
  1228. cmp rbx, rax
  1229. je .LBB0_39
  1230. .LBB0_298:
  1231. lea rdx, [8*rax]
  1232. add rdx, r13
  1233. sub rbx, rax
  1234. .LBB0_299: # =>This Inner Loop Header: Depth=1
  1235. mov qword ptr [rdx], rcx
  1236. add rdx, 8
  1237. add rbx, -1
  1238. jne .LBB0_299
  1239. jmp .LBB0_39
  1240. .LBB0_300:
  1241. lea rax, [8*rbx]
  1242. add rax, rbp
  1243. cmp r13, rax
  1244. jae .LBB0_518
  1245. # %bb.301:
  1246. lea rax, [8*rbx]
  1247. add rax, r13
  1248. cmp rbp, rax
  1249. jae .LBB0_518
  1250. # %bb.302:
  1251. xor eax, eax
  1252. jmp .LBB0_521
  1253. .LBB0_303:
  1254. lea rax, [8*rsi]
  1255. add rax, rbp
  1256. cmp r13, rax
  1257. jae .LBB0_522
  1258. # %bb.304:
  1259. lea rax, [8*rsi]
  1260. add rax, r13
  1261. cmp rbp, rax
  1262. jae .LBB0_522
  1263. # %bb.305:
  1264. xor eax, eax
  1265. jmp .LBB0_525
  1266. .LBB0_306:
  1267. mov rax, rsi
  1268. and rax, -4
  1269. vbroadcastsd ymm1, xmm0
  1270. mov rcx, rax
  1271. mov rdx, r13
  1272. .LBB0_307: # =>This Inner Loop Header: Depth=1
  1273. vmovupd ymmword ptr [rdx], ymm1
  1274. add rdx, 32
  1275. add rcx, -4
  1276. jne .LBB0_307
  1277. # %bb.308:
  1278. cmp rsi, rax
  1279. je .LBB0_39
  1280. .LBB0_309:
  1281. lea rcx, [8*rax]
  1282. add rcx, r13
  1283. sub rsi, rax
  1284. .LBB0_310: # =>This Inner Loop Header: Depth=1
  1285. vmovsd qword ptr [rcx], xmm0
  1286. add rcx, 8
  1287. add rsi, -1
  1288. jne .LBB0_310
  1289. jmp .LBB0_39
  1290. .LBB0_311:
  1291. lea rax, [8*rsi]
  1292. add rax, rbp
  1293. cmp r13, rax
  1294. jae .LBB0_526
  1295. # %bb.312:
  1296. lea rax, [8*rsi]
  1297. add rax, r13
  1298. cmp rbp, rax
  1299. jae .LBB0_526
  1300. # %bb.313:
  1301. xor eax, eax
  1302. jmp .LBB0_529
  1303. .LBB0_314:
  1304. lea rax, [8*rbx]
  1305. add rax, r13
  1306. lea rcx, [r15 + 8*rbx]
  1307. lea rdx, [8*rbx]
  1308. add rdx, rbp
  1309. cmp r13, rcx
  1310. setb sil
  1311. cmp r15, rax
  1312. setb bl
  1313. cmp r13, rdx
  1314. setb cl
  1315. cmp rbp, rax
  1316. setb dl
  1317. xor eax, eax
  1318. test sil, bl
  1319. jne .LBB0_681
  1320. # %bb.315:
  1321. and cl, dl
  1322. mov rbx, r9
  1323. jne .LBB0_744
  1324. # %bb.316:
  1325. mov rax, rbx
  1326. and rax, -4
  1327. xor ecx, ecx
  1328. .LBB0_317: # =>This Inner Loop Header: Depth=1
  1329. vmovdqu ymm0, ymmword ptr [rbp + 8*rcx]
  1330. vpaddq ymm0, ymm0, ymmword ptr [r15 + 8*rcx]
  1331. vmovdqu ymmword ptr [r13 + 8*rcx], ymm0
  1332. add rcx, 4
  1333. cmp rax, rcx
  1334. jne .LBB0_317
  1335. jmp .LBB0_743
  1336. .LBB0_318:
  1337. lea rax, [8*rbx]
  1338. add rax, r13
  1339. lea rcx, [r15 + 8*rbx]
  1340. lea rdx, [8*rbx]
  1341. add rdx, rbp
  1342. cmp r13, rcx
  1343. setb sil
  1344. cmp r15, rax
  1345. setb bl
  1346. cmp r13, rdx
  1347. setb cl
  1348. cmp rbp, rax
  1349. setb dl
  1350. xor eax, eax
  1351. test sil, bl
  1352. jne .LBB0_682
  1353. # %bb.319:
  1354. and cl, dl
  1355. mov rbx, r9
  1356. jne .LBB0_746
  1357. # %bb.320:
  1358. mov rax, rbx
  1359. and rax, -4
  1360. xor ecx, ecx
  1361. .LBB0_321: # =>This Inner Loop Header: Depth=1
  1362. vmovdqu ymm0, ymmword ptr [r15 + 8*rcx]
  1363. vpsubq ymm0, ymm0, ymmword ptr [rbp + 8*rcx]
  1364. vmovdqu ymmword ptr [r13 + 8*rcx], ymm0
  1365. add rcx, 4
  1366. cmp rax, rcx
  1367. jne .LBB0_321
  1368. jmp .LBB0_745
  1369. .LBB0_322:
  1370. lea rax, [8*rbx]
  1371. add rax, r13
  1372. lea rcx, [r15 + 8*rbx]
  1373. lea rdx, [8*rbx]
  1374. add rdx, rbp
  1375. cmp r13, rcx
  1376. setb sil
  1377. cmp r15, rax
  1378. setb bl
  1379. cmp r13, rdx
  1380. setb cl
  1381. cmp rbp, rax
  1382. setb dl
  1383. xor eax, eax
  1384. test sil, bl
  1385. jne .LBB0_683
  1386. # %bb.323:
  1387. and cl, dl
  1388. mov rbx, r9
  1389. jne .LBB0_748
  1390. # %bb.324:
  1391. mov rax, rbx
  1392. and rax, -4
  1393. xor ecx, ecx
  1394. .LBB0_325: # =>This Inner Loop Header: Depth=1
  1395. vmovdqu ymm0, ymmword ptr [r15 + 8*rcx]
  1396. vmovdqu ymm1, ymmword ptr [rbp + 8*rcx]
  1397. vpsrlq ymm2, ymm1, 32
  1398. vpmuludq ymm2, ymm2, ymm0
  1399. vpsrlq ymm3, ymm0, 32
  1400. vpmuludq ymm3, ymm1, ymm3
  1401. vpaddq ymm2, ymm3, ymm2
  1402. vpsllq ymm2, ymm2, 32
  1403. vpmuludq ymm0, ymm1, ymm0
  1404. vpaddq ymm0, ymm0, ymm2
  1405. vmovdqu ymmword ptr [r13 + 8*rcx], ymm0
  1406. add rcx, 4
  1407. cmp rax, rcx
  1408. jne .LBB0_325
  1409. jmp .LBB0_747
  1410. .LBB0_326:
  1411. lea rcx, [8*rbx]
  1412. add rcx, r13
  1413. lea rax, [r15 + 8*rbx]
  1414. lea rdx, [8*rbx]
  1415. add rdx, rbp
  1416. cmp r13, rax
  1417. setb dil
  1418. cmp r15, rcx
  1419. setb bl
  1420. cmp r13, rdx
  1421. setb al
  1422. cmp rbp, rcx
  1423. setb cl
  1424. xor esi, esi
  1425. test dil, bl
  1426. jne .LBB0_684
  1427. # %bb.327:
  1428. and al, cl
  1429. mov rbx, r9
  1430. jne .LBB0_685
  1431. # %bb.328:
  1432. mov rsi, rbx
  1433. and rsi, -4
  1434. xor ecx, ecx
  1435. vpxor xmm0, xmm0, xmm0
  1436. vpcmpeqd ymm9, ymm9, ymm9
  1437. vbroadcastsd ymm11, qword ptr [rip + .LCPI0_5] # ymm11 = [9223372036854775807,9223372036854775807,9223372036854775807,9223372036854775807]
  1438. vbroadcastsd ymm3, qword ptr [rip + .LCPI0_6] # ymm3 = [9223372036854775809,9223372036854775809,9223372036854775809,9223372036854775809]
  1439. vbroadcastsd ymm4, qword ptr [rip + .LCPI0_4] # ymm4 = [9223372036854775808,9223372036854775808,9223372036854775808,9223372036854775808]
  1440. .LBB0_329: # =>This Inner Loop Header: Depth=1
  1441. vmovdqu ymm5, ymmword ptr [r15 + 8*rcx]
  1442. vmovdqu ymm7, ymmword ptr [rbp + 8*rcx]
  1443. vpcmpeqq ymm6, ymm7, ymm0
  1444. vpxor ymm8, ymm6, ymm9
  1445. vextracti128 xmm1, ymm8, 1
  1446. vpackssdw xmm1, xmm8, xmm1
  1447. vpextrb eax, xmm8, 0
  1448. # implicit-def: %ymm8
  1449. test al, 1
  1450. je .LBB0_330
  1451. # %bb.333: # in Loop: Header=BB0_329 Depth=1
  1452. vmovq rax, xmm5
  1453. vmovq rdi, xmm7
  1454. mov rdx, rax
  1455. or rdx, rdi
  1456. shr rdx, 32
  1457. je .LBB0_335
  1458. # %bb.334: # in Loop: Header=BB0_329 Depth=1
  1459. cqo
  1460. idiv rdi
  1461. vmovq xmm8, rax
  1462. vpextrb eax, xmm1, 4
  1463. test al, 1
  1464. jne .LBB0_336
  1465. .LBB0_331: # in Loop: Header=BB0_329 Depth=1
  1466. vpextrb eax, xmm1, 8
  1467. test al, 1
  1468. je .LBB0_332
  1469. .LBB0_340: # in Loop: Header=BB0_329 Depth=1
  1470. vextracti128 xmm2, ymm5, 1
  1471. vmovq rax, xmm2
  1472. vextracti128 xmm2, ymm7, 1
  1473. vmovq rdi, xmm2
  1474. mov rdx, rax
  1475. or rdx, rdi
  1476. shr rdx, 32
  1477. je .LBB0_342
  1478. # %bb.341: # in Loop: Header=BB0_329 Depth=1
  1479. cqo
  1480. idiv rdi
  1481. jmp .LBB0_343
  1482. .LBB0_330: # in Loop: Header=BB0_329 Depth=1
  1483. vpextrb eax, xmm1, 4
  1484. test al, 1
  1485. je .LBB0_331
  1486. .LBB0_336: # in Loop: Header=BB0_329 Depth=1
  1487. vpextrq rax, xmm5, 1
  1488. vpextrq rdi, xmm7, 1
  1489. mov rdx, rax
  1490. or rdx, rdi
  1491. shr rdx, 32
  1492. je .LBB0_338
  1493. # %bb.337: # in Loop: Header=BB0_329 Depth=1
  1494. cqo
  1495. idiv rdi
  1496. jmp .LBB0_339
  1497. .LBB0_335: # in Loop: Header=BB0_329 Depth=1
  1498. xor edx, edx
  1499. # kill: def %eax killed %eax killed %rax
  1500. div edi
  1501. # kill: def %eax killed %eax def %rax
  1502. vmovq xmm8, rax
  1503. vpextrb eax, xmm1, 4
  1504. test al, 1
  1505. je .LBB0_331
  1506. jmp .LBB0_336
  1507. .LBB0_342: # in Loop: Header=BB0_329 Depth=1
  1508. xor edx, edx
  1509. # kill: def %eax killed %eax killed %rax
  1510. div edi
  1511. # kill: def %eax killed %eax def %rax
  1512. .LBB0_343: # in Loop: Header=BB0_329 Depth=1
  1513. vextracti128 xmm2, ymm8, 1
  1514. vpinsrq xmm2, xmm2, rax, 0
  1515. vinserti128 ymm8, ymm8, xmm2, 1
  1516. vpextrb eax, xmm1, 12
  1517. test al, 1
  1518. je .LBB0_348
  1519. jmp .LBB0_344
  1520. .LBB0_338: # in Loop: Header=BB0_329 Depth=1
  1521. xor edx, edx
  1522. # kill: def %eax killed %eax killed %rax
  1523. div edi
  1524. # kill: def %eax killed %eax def %rax
  1525. .LBB0_339: # in Loop: Header=BB0_329 Depth=1
  1526. vpinsrq xmm10, xmm8, rax, 1
  1527. vpblendd ymm8, ymm8, ymm10, 15 # ymm8 = ymm10[0,1,2,3],ymm8[4,5,6,7]
  1528. vpextrb eax, xmm1, 8
  1529. test al, 1
  1530. jne .LBB0_340
  1531. .LBB0_332: # in Loop: Header=BB0_329 Depth=1
  1532. vpextrb eax, xmm1, 12
  1533. test al, 1
  1534. je .LBB0_348
  1535. .LBB0_344: # in Loop: Header=BB0_329 Depth=1
  1536. vextracti128 xmm1, ymm5, 1
  1537. vpextrq rax, xmm1, 1
  1538. vextracti128 xmm1, ymm7, 1
  1539. vpextrq rdi, xmm1, 1
  1540. mov rdx, rax
  1541. or rdx, rdi
  1542. shr rdx, 32
  1543. je .LBB0_346
  1544. # %bb.345: # in Loop: Header=BB0_329 Depth=1
  1545. cqo
  1546. idiv rdi
  1547. jmp .LBB0_347
  1548. .LBB0_346: # in Loop: Header=BB0_329 Depth=1
  1549. xor edx, edx
  1550. # kill: def %eax killed %eax killed %rax
  1551. div edi
  1552. # kill: def %eax killed %eax def %rax
  1553. .LBB0_347: # in Loop: Header=BB0_329 Depth=1
  1554. vextracti128 xmm1, ymm8, 1
  1555. vpinsrq xmm1, xmm1, rax, 1
  1556. vinserti128 ymm8, ymm8, xmm1, 1
  1557. .LBB0_348: # in Loop: Header=BB0_329 Depth=1
  1558. vpor ymm1, ymm5, ymm7
  1559. vpcmpeqq ymm2, ymm5, ymm0
  1560. vpcmpgtq ymm5, ymm5, ymm0
  1561. vblendvpd ymm5, ymm3, ymm11, ymm5
  1562. vpandn ymm2, ymm2, ymm6
  1563. vblendvpd ymm2, ymm8, ymm5, ymm2
  1564. vpcmpeqq ymm1, ymm1, ymm0
  1565. vblendvpd ymm1, ymm2, ymm4, ymm1
  1566. vmovupd ymmword ptr [r13 + 8*rcx], ymm1
  1567. add rcx, 4
  1568. cmp rsi, rcx
  1569. jne .LBB0_329
  1570. # %bb.349:
  1571. cmp rbx, rsi
  1572. je .LBB0_39
  1573. jmp .LBB0_685
  1574. .LBB0_350:
  1575. lea rax, [8*rbx]
  1576. add rax, r13
  1577. lea rcx, [r15 + 8*rbx]
  1578. lea rdx, [8*rbx]
  1579. add rdx, rbp
  1580. cmp r13, rcx
  1581. setb sil
  1582. cmp r15, rax
  1583. setb bl
  1584. cmp r13, rdx
  1585. setb cl
  1586. cmp rbp, rax
  1587. setb dl
  1588. xor eax, eax
  1589. test sil, bl
  1590. jne .LBB0_693
  1591. # %bb.351:
  1592. and cl, dl
  1593. mov rbx, r9
  1594. jne .LBB0_750
  1595. # %bb.352:
  1596. mov rax, rbx
  1597. and rax, -4
  1598. xor ecx, ecx
  1599. .LBB0_353: # =>This Inner Loop Header: Depth=1
  1600. vmovdqu ymm0, ymmword ptr [r15 + 8*rcx]
  1601. vmovdqu ymm1, ymmword ptr [rbp + 8*rcx]
  1602. vpcmpgtq ymm2, ymm1, ymm0
  1603. vblendvpd ymm0, ymm1, ymm0, ymm2
  1604. vmovupd ymmword ptr [r13 + 8*rcx], ymm0
  1605. add rcx, 4
  1606. cmp rax, rcx
  1607. jne .LBB0_353
  1608. jmp .LBB0_749
  1609. .LBB0_354:
  1610. lea rax, [8*rbx]
  1611. add rax, r13
  1612. lea rcx, [r15 + 8*rbx]
  1613. lea rdx, [8*rbx]
  1614. add rdx, rbp
  1615. cmp r13, rcx
  1616. setb sil
  1617. cmp r15, rax
  1618. setb bl
  1619. cmp r13, rdx
  1620. setb cl
  1621. cmp rbp, rax
  1622. setb dl
  1623. xor eax, eax
  1624. test sil, bl
  1625. jne .LBB0_694
  1626. # %bb.355:
  1627. and cl, dl
  1628. mov rbx, r9
  1629. jne .LBB0_752
  1630. # %bb.356:
  1631. mov rax, rbx
  1632. and rax, -4
  1633. xor ecx, ecx
  1634. .LBB0_357: # =>This Inner Loop Header: Depth=1
  1635. vmovdqu ymm0, ymmword ptr [r15 + 8*rcx]
  1636. vmovdqu ymm1, ymmword ptr [rbp + 8*rcx]
  1637. vpcmpgtq ymm2, ymm0, ymm1
  1638. vblendvpd ymm0, ymm1, ymm0, ymm2
  1639. vmovupd ymmword ptr [r13 + 8*rcx], ymm0
  1640. add rcx, 4
  1641. cmp rax, rcx
  1642. jne .LBB0_357
  1643. jmp .LBB0_751
  1644. .LBB0_358:
  1645. lea rax, [8*rbx]
  1646. add rax, r13
  1647. lea rcx, [r15 + 8*rbx]
  1648. lea rdx, [8*rbx]
  1649. add rdx, rbp
  1650. cmp r13, rcx
  1651. setb sil
  1652. cmp r15, rax
  1653. setb bl
  1654. cmp r13, rdx
  1655. setb cl
  1656. cmp rbp, rax
  1657. setb dl
  1658. xor eax, eax
  1659. test sil, bl
  1660. jne .LBB0_695
  1661. # %bb.359:
  1662. and cl, dl
  1663. mov rbx, r9
  1664. jne .LBB0_754
  1665. # %bb.360:
  1666. mov rax, rbx
  1667. and rax, -4
  1668. xor ecx, ecx
  1669. .LBB0_361: # =>This Inner Loop Header: Depth=1
  1670. vmovdqu ymm0, ymmword ptr [rbp + 8*rcx]
  1671. vpcmpgtq ymm0, ymm0, ymmword ptr [r15 + 8*rcx]
  1672. vpsrlq ymm0, ymm0, 63
  1673. vmovdqu ymmword ptr [r13 + 8*rcx], ymm0
  1674. add rcx, 4
  1675. cmp rax, rcx
  1676. jne .LBB0_361
  1677. jmp .LBB0_753
  1678. .LBB0_362:
  1679. lea rax, [8*rbx]
  1680. add rax, r13
  1681. lea rcx, [r15 + 8*rbx]
  1682. lea rdx, [8*rbx]
  1683. add rdx, rbp
  1684. cmp r13, rcx
  1685. setb sil
  1686. cmp r15, rax
  1687. setb bl
  1688. cmp r13, rdx
  1689. setb cl
  1690. cmp rbp, rax
  1691. setb dl
  1692. xor eax, eax
  1693. test sil, bl
  1694. jne .LBB0_696
  1695. # %bb.363:
  1696. and cl, dl
  1697. mov rbx, r9
  1698. jne .LBB0_756
  1699. # %bb.364:
  1700. mov rax, rbx
  1701. and rax, -4
  1702. xor ecx, ecx
  1703. .LBB0_365: # =>This Inner Loop Header: Depth=1
  1704. vmovdqu ymm0, ymmword ptr [r15 + 8*rcx]
  1705. vpcmpgtq ymm0, ymm0, ymmword ptr [rbp + 8*rcx]
  1706. vpsrlq ymm0, ymm0, 63
  1707. vmovdqu ymmword ptr [r13 + 8*rcx], ymm0
  1708. add rcx, 4
  1709. cmp rax, rcx
  1710. jne .LBB0_365
  1711. jmp .LBB0_755
  1712. .LBB0_366:
  1713. lea rax, [8*rbx]
  1714. add rax, r13
  1715. lea rcx, [r15 + 8*rbx]
  1716. lea rdx, [8*rbx]
  1717. add rdx, rbp
  1718. cmp r13, rcx
  1719. setb sil
  1720. cmp r15, rax
  1721. setb bl
  1722. cmp r13, rdx
  1723. setb cl
  1724. cmp rbp, rax
  1725. setb dl
  1726. xor eax, eax
  1727. test sil, bl
  1728. jne .LBB0_697
  1729. # %bb.367:
  1730. and cl, dl
  1731. mov rbx, r9
  1732. jne .LBB0_758
  1733. # %bb.368:
  1734. mov rax, rbx
  1735. and rax, -4
  1736. xor ecx, ecx
  1737. .LBB0_369: # =>This Inner Loop Header: Depth=1
  1738. vmovdqu ymm0, ymmword ptr [r15 + 8*rcx]
  1739. vpcmpeqq ymm0, ymm0, ymmword ptr [rbp + 8*rcx]
  1740. vpsrlq ymm0, ymm0, 63
  1741. vmovdqu ymmword ptr [r13 + 8*rcx], ymm0
  1742. add rcx, 4
  1743. cmp rax, rcx
  1744. jne .LBB0_369
  1745. jmp .LBB0_757
  1746. .LBB0_379:
  1747. lea rax, [r15 + 8*rbx]
  1748. cmp r13, rax
  1749. jae .LBB0_536
  1750. # %bb.380:
  1751. lea rax, [8*rbx]
  1752. add rax, r13
  1753. cmp r15, rax
  1754. jae .LBB0_536
  1755. # %bb.381:
  1756. xor eax, eax
  1757. jmp .LBB0_539
  1758. .LBB0_382:
  1759. lea rax, [r15 + 8*rbx]
  1760. cmp r13, rax
  1761. jae .LBB0_540
  1762. # %bb.383:
  1763. lea rax, [8*rbx]
  1764. add rax, r13
  1765. cmp r15, rax
  1766. jae .LBB0_540
  1767. # %bb.384:
  1768. xor eax, eax
  1769. jmp .LBB0_543
  1770. .LBB0_385:
  1771. lea rax, [r15 + 8*rbx]
  1772. cmp r13, rax
  1773. jae .LBB0_544
  1774. # %bb.386:
  1775. lea rax, [8*rbx]
  1776. add rax, r13
  1777. cmp r15, rax
  1778. jae .LBB0_544
  1779. # %bb.387:
  1780. xor eax, eax
  1781. jmp .LBB0_547
  1782. .LBB0_388:
  1783. lea rax, [r15 + 8*rbx]
  1784. cmp r13, rax
  1785. jae .LBB0_548
  1786. # %bb.389:
  1787. lea rax, [8*rbx]
  1788. add rax, r13
  1789. cmp r15, rax
  1790. jae .LBB0_548
  1791. # %bb.390:
  1792. xor eax, eax
  1793. jmp .LBB0_551
  1794. .LBB0_391:
  1795. lea rax, [r15 + 8*rbx]
  1796. cmp r13, rax
  1797. jae .LBB0_552
  1798. # %bb.392:
  1799. lea rax, [8*rbx]
  1800. add rax, r13
  1801. cmp r15, rax
  1802. jae .LBB0_552
  1803. # %bb.393:
  1804. xor eax, eax
  1805. jmp .LBB0_555
  1806. .LBB0_394:
  1807. lea rax, [8*rbx]
  1808. add rax, rbp
  1809. cmp r13, rax
  1810. jae .LBB0_556
  1811. # %bb.395:
  1812. lea rax, [8*rbx]
  1813. add rax, r13
  1814. cmp rbp, rax
  1815. jae .LBB0_556
  1816. # %bb.396:
  1817. xor eax, eax
  1818. jmp .LBB0_559
  1819. .LBB0_397:
  1820. lea rax, [8*rbx]
  1821. add rax, rbp
  1822. cmp r13, rax
  1823. jae .LBB0_560
  1824. # %bb.398:
  1825. lea rax, [8*rbx]
  1826. add rax, r13
  1827. cmp rbp, rax
  1828. jae .LBB0_560
  1829. # %bb.399:
  1830. xor eax, eax
  1831. jmp .LBB0_563
  1832. .LBB0_400:
  1833. lea rax, [8*rbx]
  1834. add rax, rbp
  1835. cmp r13, rax
  1836. jae .LBB0_564
  1837. # %bb.401:
  1838. lea rax, [8*rbx]
  1839. add rax, r13
  1840. cmp rbp, rax
  1841. jae .LBB0_564
  1842. # %bb.402:
  1843. xor eax, eax
  1844. jmp .LBB0_567
  1845. .LBB0_403:
  1846. lea rax, [8*rbx]
  1847. add rax, rbp
  1848. cmp r13, rax
  1849. jae .LBB0_568
  1850. # %bb.404:
  1851. lea rax, [8*rbx]
  1852. add rax, r13
  1853. cmp rbp, rax
  1854. jae .LBB0_568
  1855. # %bb.405:
  1856. xor eax, eax
  1857. jmp .LBB0_571
  1858. .LBB0_406:
  1859. lea rax, [8*rbx]
  1860. add rax, rbp
  1861. cmp r13, rax
  1862. jae .LBB0_572
  1863. # %bb.407:
  1864. lea rax, [8*rbx]
  1865. add rax, r13
  1866. cmp rbp, rax
  1867. jae .LBB0_572
  1868. # %bb.408:
  1869. xor eax, eax
  1870. jmp .LBB0_575
  1871. .LBB0_409:
  1872. lea rax, [8*rbx]
  1873. add rax, rbp
  1874. cmp r13, rax
  1875. jae .LBB0_576
  1876. # %bb.410:
  1877. lea rax, [8*rbx]
  1878. add rax, r13
  1879. cmp rbp, rax
  1880. jae .LBB0_576
  1881. # %bb.411:
  1882. xor eax, eax
  1883. jmp .LBB0_579
  1884. .LBB0_412:
  1885. lea rax, [8*rbx]
  1886. add rax, rbp
  1887. cmp r13, rax
  1888. jae .LBB0_580
  1889. # %bb.413:
  1890. lea rax, [8*rbx]
  1891. add rax, r13
  1892. cmp rbp, rax
  1893. jae .LBB0_580
  1894. # %bb.414:
  1895. xor eax, eax
  1896. jmp .LBB0_583
  1897. .LBB0_415:
  1898. lea rax, [8*rbx]
  1899. add rax, rbp
  1900. cmp r13, rax
  1901. jae .LBB0_584
  1902. # %bb.416:
  1903. lea rax, [8*rbx]
  1904. add rax, r13
  1905. cmp rbp, rax
  1906. jae .LBB0_584
  1907. # %bb.417:
  1908. xor eax, eax
  1909. jmp .LBB0_587
  1910. .LBB0_418:
  1911. lea rax, [8*rsi]
  1912. add rax, r13
  1913. lea rcx, [r15 + 8*rsi]
  1914. lea rdx, [8*rsi]
  1915. add rdx, rbp
  1916. cmp r13, rcx
  1917. setb sil
  1918. cmp r15, rax
  1919. setb bl
  1920. cmp r13, rdx
  1921. setb cl
  1922. cmp rbp, rax
  1923. setb dl
  1924. xor eax, eax
  1925. test sil, bl
  1926. jne .LBB0_698
  1927. # %bb.419:
  1928. and cl, dl
  1929. mov rsi, r9
  1930. jne .LBB0_699
  1931. # %bb.420:
  1932. mov rax, rsi
  1933. and rax, -4
  1934. xor ecx, ecx
  1935. .LBB0_421: # =>This Inner Loop Header: Depth=1
  1936. vmovupd ymm0, ymmword ptr [r15 + 8*rcx]
  1937. vaddpd ymm0, ymm0, ymmword ptr [rbp + 8*rcx]
  1938. vmovupd ymmword ptr [r13 + 8*rcx], ymm0
  1939. add rcx, 4
  1940. cmp rax, rcx
  1941. jne .LBB0_421
  1942. # %bb.422:
  1943. cmp rsi, rax
  1944. jne .LBB0_699
  1945. jmp .LBB0_39
  1946. .LBB0_423:
  1947. lea rax, [8*rsi]
  1948. add rax, r13
  1949. lea rcx, [r15 + 8*rsi]
  1950. lea rdx, [8*rsi]
  1951. add rdx, rbp
  1952. cmp r13, rcx
  1953. setb sil
  1954. cmp r15, rax
  1955. setb bl
  1956. cmp r13, rdx
  1957. setb cl
  1958. cmp rbp, rax
  1959. setb dl
  1960. xor eax, eax
  1961. test sil, bl
  1962. jne .LBB0_700
  1963. # %bb.424:
  1964. and cl, dl
  1965. mov rsi, r9
  1966. jne .LBB0_701
  1967. # %bb.425:
  1968. mov rax, rsi
  1969. and rax, -4
  1970. xor ecx, ecx
  1971. .LBB0_426: # =>This Inner Loop Header: Depth=1
  1972. vmovupd ymm0, ymmword ptr [r15 + 8*rcx]
  1973. vsubpd ymm0, ymm0, ymmword ptr [rbp + 8*rcx]
  1974. vmovupd ymmword ptr [r13 + 8*rcx], ymm0
  1975. add rcx, 4
  1976. cmp rax, rcx
  1977. jne .LBB0_426
  1978. # %bb.427:
  1979. cmp rsi, rax
  1980. jne .LBB0_701
  1981. jmp .LBB0_39
  1982. .LBB0_428:
  1983. lea rax, [8*rsi]
  1984. add rax, r13
  1985. lea rcx, [r15 + 8*rsi]
  1986. lea rdx, [8*rsi]
  1987. add rdx, rbp
  1988. cmp r13, rcx
  1989. setb sil
  1990. cmp r15, rax
  1991. setb bl
  1992. cmp r13, rdx
  1993. setb cl
  1994. cmp rbp, rax
  1995. setb dl
  1996. xor eax, eax
  1997. test sil, bl
  1998. jne .LBB0_702
  1999. # %bb.429:
  2000. and cl, dl
  2001. mov rsi, r9
  2002. jne .LBB0_703
  2003. # %bb.430:
  2004. mov rax, rsi
  2005. and rax, -4
  2006. xor ecx, ecx
  2007. .LBB0_431: # =>This Inner Loop Header: Depth=1
  2008. vmovupd ymm0, ymmword ptr [r15 + 8*rcx]
  2009. vmulpd ymm0, ymm0, ymmword ptr [rbp + 8*rcx]
  2010. vmovupd ymmword ptr [r13 + 8*rcx], ymm0
  2011. add rcx, 4
  2012. cmp rax, rcx
  2013. jne .LBB0_431
  2014. # %bb.432:
  2015. cmp rsi, rax
  2016. jne .LBB0_703
  2017. jmp .LBB0_39
  2018. .LBB0_433:
  2019. lea rax, [8*rsi]
  2020. add rax, r13
  2021. lea rcx, [r15 + 8*rsi]
  2022. lea rdx, [8*rsi]
  2023. add rdx, rbp
  2024. cmp r13, rcx
  2025. setb sil
  2026. cmp r15, rax
  2027. setb bl
  2028. cmp r13, rdx
  2029. setb cl
  2030. cmp rbp, rax
  2031. setb dl
  2032. xor eax, eax
  2033. test sil, bl
  2034. jne .LBB0_704
  2035. # %bb.434:
  2036. and cl, dl
  2037. mov rsi, r9
  2038. jne .LBB0_705
  2039. # %bb.435:
  2040. mov rax, rsi
  2041. and rax, -4
  2042. xor ecx, ecx
  2043. vxorpd xmm0, xmm0, xmm0
  2044. vbroadcastsd ymm1, qword ptr [rip + .LCPI0_2] # ymm1 = [+Inf,+Inf,+Inf,+Inf]
  2045. vbroadcastsd ymm2, qword ptr [rip + .LCPI0_3] # ymm2 = [-Inf,-Inf,-Inf,-Inf]
  2046. vbroadcastsd ymm3, qword ptr [rip + .LCPI0_0] # ymm3 = [NaN,NaN,NaN,NaN]
  2047. .LBB0_436: # =>This Inner Loop Header: Depth=1
  2048. vmovupd ymm4, ymmword ptr [r15 + 8*rcx]
  2049. vmovupd ymm5, ymmword ptr [rbp + 8*rcx]
  2050. vcmpeqpd ymm6, ymm5, ymm0
  2051. vcmpeqpd ymm7, ymm4, ymm0
  2052. vcmpltpd ymm8, ymm0, ymm4
  2053. vblendvpd ymm8, ymm2, ymm1, ymm8
  2054. vcmpneqpd ymm9, ymm4, ymm0
  2055. vdivpd ymm4, ymm4, ymm5
  2056. vandpd ymm5, ymm9, ymm6
  2057. vblendvpd ymm4, ymm4, ymm8, ymm5
  2058. vandpd ymm5, ymm6, ymm7
  2059. vblendvpd ymm4, ymm4, ymm3, ymm5
  2060. vmovupd ymmword ptr [r13 + 8*rcx], ymm4
  2061. add rcx, 4
  2062. cmp rax, rcx
  2063. jne .LBB0_436
  2064. # %bb.437:
  2065. cmp rsi, rax
  2066. je .LBB0_39
  2067. jmp .LBB0_705
  2068. .LBB0_438:
  2069. mov rax, rsi
  2070. and rax, -4
  2071. vbroadcastsd ymm0, qword ptr [rip + .LCPI0_0] # ymm0 = [NaN,NaN,NaN,NaN]
  2072. mov rcx, rax
  2073. mov rdx, r13
  2074. .LBB0_439: # =>This Inner Loop Header: Depth=1
  2075. vmovupd ymmword ptr [rdx], ymm0
  2076. add rdx, 32
  2077. add rcx, -4
  2078. jne .LBB0_439
  2079. # %bb.440:
  2080. cmp rsi, rax
  2081. je .LBB0_39
  2082. .LBB0_441:
  2083. lea rcx, [8*rax]
  2084. add rcx, r13
  2085. sub rsi, rax
  2086. movabs rax, 9221120237041090560
  2087. .LBB0_442: # =>This Inner Loop Header: Depth=1
  2088. mov qword ptr [rcx], rax
  2089. add rcx, 8
  2090. add rsi, -1
  2091. jne .LBB0_442
  2092. jmp .LBB0_39
  2093. .LBB0_443:
  2094. lea rax, [8*rsi]
  2095. add rax, r13
  2096. lea rcx, [r15 + 8*rsi]
  2097. lea rdx, [8*rsi]
  2098. add rdx, rbp
  2099. cmp r13, rcx
  2100. setb sil
  2101. cmp r15, rax
  2102. setb bl
  2103. cmp r13, rdx
  2104. setb cl
  2105. cmp rbp, rax
  2106. setb dl
  2107. xor eax, eax
  2108. test sil, bl
  2109. jne .LBB0_711
  2110. # %bb.444:
  2111. and cl, dl
  2112. mov rsi, r9
  2113. jne .LBB0_712
  2114. # %bb.445:
  2115. mov rax, rsi
  2116. and rax, -4
  2117. xor ecx, ecx
  2118. .LBB0_446: # =>This Inner Loop Header: Depth=1
  2119. vmovupd ymm0, ymmword ptr [r15 + 8*rcx]
  2120. vminpd ymm0, ymm0, ymmword ptr [rbp + 8*rcx]
  2121. vmovupd ymmword ptr [r13 + 8*rcx], ymm0
  2122. add rcx, 4
  2123. cmp rax, rcx
  2124. jne .LBB0_446
  2125. # %bb.447:
  2126. cmp rsi, rax
  2127. jne .LBB0_712
  2128. jmp .LBB0_39
  2129. .LBB0_448:
  2130. lea rax, [8*rsi]
  2131. add rax, r13
  2132. lea rcx, [r15 + 8*rsi]
  2133. lea rdx, [8*rsi]
  2134. add rdx, rbp
  2135. cmp r13, rcx
  2136. setb sil
  2137. cmp r15, rax
  2138. setb bl
  2139. cmp r13, rdx
  2140. setb cl
  2141. cmp rbp, rax
  2142. setb dl
  2143. xor eax, eax
  2144. test sil, bl
  2145. jne .LBB0_713
  2146. # %bb.449:
  2147. and cl, dl
  2148. mov rsi, r9
  2149. jne .LBB0_714
  2150. # %bb.450:
  2151. mov rax, rsi
  2152. and rax, -4
  2153. xor ecx, ecx
  2154. .LBB0_451: # =>This Inner Loop Header: Depth=1
  2155. vmovupd ymm0, ymmword ptr [r15 + 8*rcx]
  2156. vmaxpd ymm0, ymm0, ymmword ptr [rbp + 8*rcx]
  2157. vmovupd ymmword ptr [r13 + 8*rcx], ymm0
  2158. add rcx, 4
  2159. cmp rax, rcx
  2160. jne .LBB0_451
  2161. # %bb.452:
  2162. cmp rsi, rax
  2163. jne .LBB0_714
  2164. jmp .LBB0_39
  2165. .LBB0_453:
  2166. lea rax, [r15 + 8*rsi]
  2167. cmp r13, rax
  2168. jae .LBB0_588
  2169. # %bb.454:
  2170. lea rax, [8*rsi]
  2171. add rax, r13
  2172. cmp r15, rax
  2173. jae .LBB0_588
  2174. # %bb.455:
  2175. xor eax, eax
  2176. jmp .LBB0_591
  2177. .LBB0_456:
  2178. lea rax, [r15 + 8*rsi]
  2179. cmp r13, rax
  2180. jae .LBB0_592
  2181. # %bb.457:
  2182. lea rax, [8*rsi]
  2183. add rax, r13
  2184. cmp r15, rax
  2185. jae .LBB0_592
  2186. # %bb.458:
  2187. xor eax, eax
  2188. jmp .LBB0_595
  2189. .LBB0_459:
  2190. lea rax, [r15 + 8*rsi]
  2191. cmp r13, rax
  2192. jae .LBB0_596
  2193. # %bb.460:
  2194. lea rax, [8*rsi]
  2195. add rax, r13
  2196. cmp r15, rax
  2197. jae .LBB0_596
  2198. # %bb.461:
  2199. xor eax, eax
  2200. jmp .LBB0_599
  2201. .LBB0_462:
  2202. mov rax, rsi
  2203. and rax, -4
  2204. vbroadcastsd ymm0, qword ptr [rip + .LCPI0_0] # ymm0 = [NaN,NaN,NaN,NaN]
  2205. mov rcx, rax
  2206. mov rdx, r13
  2207. .LBB0_463: # =>This Inner Loop Header: Depth=1
  2208. vmovupd ymmword ptr [rdx], ymm0
  2209. add rdx, 32
  2210. add rcx, -4
  2211. jne .LBB0_463
  2212. # %bb.464:
  2213. cmp rsi, rax
  2214. je .LBB0_39
  2215. .LBB0_465:
  2216. lea rcx, [8*rax]
  2217. add rcx, r13
  2218. sub rsi, rax
  2219. movabs rax, 9221120237041090560
  2220. .LBB0_466: # =>This Inner Loop Header: Depth=1
  2221. mov qword ptr [rcx], rax
  2222. add rcx, 8
  2223. add rsi, -1
  2224. jne .LBB0_466
  2225. jmp .LBB0_39
  2226. .LBB0_467:
  2227. lea rax, [r15 + 8*rsi]
  2228. cmp r13, rax
  2229. jae .LBB0_600
  2230. # %bb.468:
  2231. lea rax, [8*rsi]
  2232. add rax, r13
  2233. cmp r15, rax
  2234. jae .LBB0_600
  2235. # %bb.469:
  2236. xor eax, eax
  2237. jmp .LBB0_603
  2238. .LBB0_470:
  2239. lea rax, [r15 + 8*rsi]
  2240. cmp r13, rax
  2241. jae .LBB0_604
  2242. # %bb.471:
  2243. lea rax, [8*rsi]
  2244. add rax, r13
  2245. cmp r15, rax
  2246. jae .LBB0_604
  2247. # %bb.472:
  2248. xor eax, eax
  2249. jmp .LBB0_607
  2250. .LBB0_473:
  2251. lea rax, [8*rsi]
  2252. add rax, rbp
  2253. cmp r13, rax
  2254. jae .LBB0_608
  2255. # %bb.474:
  2256. lea rax, [8*rsi]
  2257. add rax, r13
  2258. cmp rbp, rax
  2259. jae .LBB0_608
  2260. # %bb.475:
  2261. xor eax, eax
  2262. jmp .LBB0_611
  2263. .LBB0_476:
  2264. lea rax, [8*rsi]
  2265. add rax, rbp
  2266. cmp r13, rax
  2267. jae .LBB0_612
  2268. # %bb.477:
  2269. lea rax, [8*rsi]
  2270. add rax, r13
  2271. cmp rbp, rax
  2272. jae .LBB0_612
  2273. # %bb.478:
  2274. xor eax, eax
  2275. jmp .LBB0_615
  2276. .LBB0_479:
  2277. lea rax, [8*rsi]
  2278. add rax, rbp
  2279. cmp r13, rax
  2280. jae .LBB0_616
  2281. # %bb.480:
  2282. lea rax, [8*rsi]
  2283. add rax, r13
  2284. cmp rbp, rax
  2285. jae .LBB0_616
  2286. # %bb.481:
  2287. xor eax, eax
  2288. jmp .LBB0_619
  2289. .LBB0_482:
  2290. mov rax, rsi
  2291. and rax, -4
  2292. vbroadcastsd ymm0, qword ptr [rip + .LCPI0_0] # ymm0 = [NaN,NaN,NaN,NaN]
  2293. mov rcx, rax
  2294. mov rdx, r13
  2295. .LBB0_483: # =>This Inner Loop Header: Depth=1
  2296. vmovupd ymmword ptr [rdx], ymm0
  2297. add rdx, 32
  2298. add rcx, -4
  2299. jne .LBB0_483
  2300. # %bb.484:
  2301. cmp rsi, rax
  2302. je .LBB0_39
  2303. .LBB0_485:
  2304. lea rcx, [8*rax]
  2305. add rcx, r13
  2306. sub rsi, rax
  2307. movabs rax, 9221120237041090560
  2308. .LBB0_486: # =>This Inner Loop Header: Depth=1
  2309. mov qword ptr [rcx], rax
  2310. add rcx, 8
  2311. add rsi, -1
  2312. jne .LBB0_486
  2313. jmp .LBB0_39
  2314. .LBB0_487:
  2315. lea rax, [8*rsi]
  2316. add rax, rbp
  2317. cmp r13, rax
  2318. jae .LBB0_620
  2319. # %bb.488:
  2320. lea rax, [8*rsi]
  2321. add rax, r13
  2322. cmp rbp, rax
  2323. jae .LBB0_620
  2324. # %bb.489:
  2325. xor eax, eax
  2326. jmp .LBB0_623
  2327. .LBB0_490:
  2328. lea rax, [8*rsi]
  2329. add rax, rbp
  2330. cmp r13, rax
  2331. jae .LBB0_624
  2332. # %bb.491:
  2333. lea rax, [8*rsi]
  2334. add rax, r13
  2335. cmp rbp, rax
  2336. jae .LBB0_624
  2337. # %bb.492:
  2338. xor eax, eax
  2339. jmp .LBB0_627
  2340. .LBB0_493:
  2341. cmp rbx, 4
  2342. jb .LBB0_494
  2343. # %bb.628:
  2344. lea rax, [r15 + 8*rbx]
  2345. cmp r13, rax
  2346. jae .LBB0_715
  2347. # %bb.629:
  2348. lea rax, [8*rbx]
  2349. add rax, r13
  2350. cmp r15, rax
  2351. jae .LBB0_715
  2352. .LBB0_494:
  2353. xor eax, eax
  2354. .LBB0_718:
  2355. movabs rcx, -9223372036854775808
  2356. lea rdx, [rcx - 1]
  2357. lea rsi, [rcx + 1]
  2358. .LBB0_719: # =>This Inner Loop Header: Depth=1
  2359. cmp qword ptr [r15 + 8*rax], 0
  2360. mov rdi, rsi
  2361. cmovg rdi, rdx
  2362. cmove rdi, rcx
  2363. mov qword ptr [r13 + 8*rax], rdi
  2364. add rax, 1
  2365. cmp rbx, rax
  2366. jne .LBB0_719
  2367. jmp .LBB0_39
  2368. .LBB0_495:
  2369. cmp rbx, 4
  2370. jae .LBB0_631
  2371. # %bb.496:
  2372. xor ecx, ecx
  2373. jmp .LBB0_723
  2374. .LBB0_497:
  2375. test rcx, rcx
  2376. je .LBB0_679
  2377. # %bb.498:
  2378. neg rcx
  2379. xor esi, esi
  2380. .LBB0_499: # =>This Inner Loop Header: Depth=1
  2381. mov rax, qword ptr [rbp + 8*rsi]
  2382. mov rdx, rax
  2383. or rdx, rcx
  2384. shr rdx, 32
  2385. je .LBB0_501
  2386. # %bb.500: # in Loop: Header=BB0_499 Depth=1
  2387. cqo
  2388. idiv rcx
  2389. jmp .LBB0_502
  2390. .LBB0_501: # in Loop: Header=BB0_499 Depth=1
  2391. xor edx, edx
  2392. # kill: def %eax killed %eax killed %rax
  2393. div ecx
  2394. # kill: def %eax killed %eax def %rax
  2395. .LBB0_502: # in Loop: Header=BB0_499 Depth=1
  2396. mov qword ptr [r13 + 8*rsi], rax
  2397. add rsi, 1
  2398. cmp rbx, rsi
  2399. jne .LBB0_499
  2400. jmp .LBB0_39
  2401. .LBB0_503:
  2402. cmp rsi, 4
  2403. jb .LBB0_504
  2404. # %bb.634:
  2405. lea rax, [r15 + 8*rsi]
  2406. cmp r13, rax
  2407. jae .LBB0_724
  2408. # %bb.635:
  2409. lea rax, [8*rsi]
  2410. add rax, r13
  2411. cmp r15, rax
  2412. jae .LBB0_724
  2413. .LBB0_504:
  2414. xor eax, eax
  2415. .LBB0_727:
  2416. vxorpd xmm0, xmm0, xmm0
  2417. vmovsd xmm1, qword ptr [rip + .LCPI0_0] # xmm1 = mem[0],zero
  2418. .LBB0_728: # =>This Inner Loop Header: Depth=1
  2419. vmovsd xmm2, qword ptr [r15 + 8*rax] # xmm2 = mem[0],zero
  2420. xor ecx, ecx
  2421. vucomisd xmm2, xmm0
  2422. seta cl
  2423. vmovsd xmm3, qword ptr [8*rcx + .LCPI0_1] # xmm3 = mem[0],zero
  2424. vcmpneqsd xmm2, xmm2, xmm0
  2425. vandpd xmm3, xmm2, xmm3
  2426. vandnpd xmm2, xmm2, xmm1
  2427. vorpd xmm2, xmm2, xmm3
  2428. vmovsd qword ptr [r13 + 8*rax], xmm2
  2429. add rax, 1
  2430. cmp rsi, rax
  2431. jne .LBB0_728
  2432. jmp .LBB0_39
  2433. .LBB0_505:
  2434. cmp rsi, 4
  2435. jb .LBB0_506
  2436. # %bb.637:
  2437. lea rax, [8*rsi]
  2438. add rax, rbp
  2439. cmp r13, rax
  2440. jae .LBB0_729
  2441. # %bb.638:
  2442. lea rax, [8*rsi]
  2443. add rax, r13
  2444. cmp rbp, rax
  2445. jae .LBB0_729
  2446. .LBB0_506:
  2447. xor eax, eax
  2448. .LBB0_732:
  2449. vmovsd xmm1, qword ptr [rip + .LCPI0_0] # xmm1 = mem[0],zero
  2450. vxorpd xmm2, xmm2, xmm2
  2451. .LBB0_733: # =>This Inner Loop Header: Depth=1
  2452. vmovsd xmm4, qword ptr [rbp + 8*rax] # xmm4 = mem[0],zero
  2453. vucomisd xmm4, xmm2
  2454. vmovapd xmm3, xmm1
  2455. jne .LBB0_734
  2456. jnp .LBB0_735
  2457. .LBB0_734: # in Loop: Header=BB0_733 Depth=1
  2458. vdivsd xmm3, xmm0, xmm4
  2459. .LBB0_735: # in Loop: Header=BB0_733 Depth=1
  2460. vmovsd qword ptr [r13 + 8*rax], xmm3
  2461. add rax, 1
  2462. cmp rsi, rax
  2463. jne .LBB0_733
  2464. jmp .LBB0_39
  2465. .LBB0_507:
  2466. lea rax, [8*rbx]
  2467. add rax, rbp
  2468. cmp r13, rax
  2469. jae .LBB0_640
  2470. # %bb.508:
  2471. lea rax, [8*rbx]
  2472. add rax, r13
  2473. cmp rbp, rax
  2474. jae .LBB0_640
  2475. # %bb.509:
  2476. xor edi, edi
  2477. mov rsi, qword ptr [rbp + 8*rdi]
  2478. mov rax, r8
  2479. test rsi, rsi
  2480. jne .LBB0_664
  2481. jmp .LBB0_667
  2482. .LBB0_510:
  2483. lea rax, [r15 + 8*rsi]
  2484. cmp r13, rax
  2485. jae .LBB0_668
  2486. # %bb.511:
  2487. lea rax, [8*rsi]
  2488. add rax, r13
  2489. cmp r15, rax
  2490. jae .LBB0_668
  2491. # %bb.512:
  2492. xor eax, eax
  2493. jmp .LBB0_671
  2494. .LBB0_516:
  2495. mov rax, rbx
  2496. and rax, -4
  2497. xor ecx, ecx
  2498. .LBB0_517: # =>This Inner Loop Header: Depth=1
  2499. vmovupd ymm0, ymmword ptr [rbp + 8*rcx]
  2500. vmovupd ymmword ptr [r13 + 8*rcx], ymm0
  2501. add rcx, 4
  2502. cmp rax, rcx
  2503. jne .LBB0_517
  2504. jmp .LBB0_741
  2505. .LBB0_530:
  2506. mov rax, rbx
  2507. and rax, -4
  2508. vmovq xmm0, rcx
  2509. vpbroadcastq ymm0, xmm0
  2510. xor edx, edx
  2511. .LBB0_531: # =>This Inner Loop Header: Depth=1
  2512. vpaddq ymm1, ymm0, ymmword ptr [r15 + 8*rdx]
  2513. vmovdqu ymmword ptr [r13 + 8*rdx], ymm1
  2514. add rdx, 4
  2515. cmp rax, rdx
  2516. jne .LBB0_531
  2517. jmp .LBB0_759
  2518. .LBB0_532:
  2519. mov rax, rbx
  2520. and rax, -4
  2521. vmovq xmm0, rcx
  2522. vpbroadcastq ymm0, xmm0
  2523. xor edx, edx
  2524. .LBB0_533: # =>This Inner Loop Header: Depth=1
  2525. vmovdqu ymm1, ymmword ptr [r15 + 8*rdx]
  2526. vpsubq ymm1, ymm1, ymm0
  2527. vmovdqu ymmword ptr [r13 + 8*rdx], ymm1
  2528. add rdx, 4
  2529. cmp rax, rdx
  2530. jne .LBB0_533
  2531. jmp .LBB0_761
  2532. .LBB0_534:
  2533. mov rax, rbx
  2534. and rax, -4
  2535. vmovq xmm0, rcx
  2536. vpbroadcastq ymm0, xmm0
  2537. xor edx, edx
  2538. vpsrlq ymm1, ymm0, 32
  2539. .LBB0_535: # =>This Inner Loop Header: Depth=1
  2540. vmovdqu ymm2, ymmword ptr [r15 + 8*rdx]
  2541. vpmuludq ymm3, ymm2, ymm1
  2542. vpsrlq ymm4, ymm2, 32
  2543. vpmuludq ymm4, ymm4, ymm0
  2544. vpaddq ymm3, ymm3, ymm4
  2545. vpsllq ymm3, ymm3, 32
  2546. vpmuludq ymm2, ymm2, ymm0
  2547. vpaddq ymm2, ymm2, ymm3
  2548. vmovdqu ymmword ptr [r13 + 8*rdx], ymm2
  2549. add rdx, 4
  2550. cmp rax, rdx
  2551. jne .LBB0_535
  2552. jmp .LBB0_763
  2553. .LBB0_518:
  2554. mov rax, rbx
  2555. and rax, -4
  2556. xor ecx, ecx
  2557. .LBB0_519: # =>This Inner Loop Header: Depth=1
  2558. vmovupd ymm0, ymmword ptr [rbp + 8*rcx]
  2559. vmovupd ymmword ptr [r13 + 8*rcx], ymm0
  2560. add rcx, 4
  2561. cmp rax, rcx
  2562. jne .LBB0_519
  2563. # %bb.520:
  2564. cmp rbx, rax
  2565. je .LBB0_39
  2566. .LBB0_521: # =>This Inner Loop Header: Depth=1
  2567. mov rcx, qword ptr [rbp + 8*rax]
  2568. mov qword ptr [r13 + 8*rax], rcx
  2569. add rax, 1
  2570. cmp rbx, rax
  2571. jne .LBB0_521
  2572. jmp .LBB0_39
  2573. .LBB0_522:
  2574. mov rax, rsi
  2575. and rax, -4
  2576. xor ecx, ecx
  2577. .LBB0_523: # =>This Inner Loop Header: Depth=1
  2578. vmovupd ymm0, ymmword ptr [rbp + 8*rcx]
  2579. vmovupd ymmword ptr [r13 + 8*rcx], ymm0
  2580. add rcx, 4
  2581. cmp rax, rcx
  2582. jne .LBB0_523
  2583. # %bb.524:
  2584. cmp rsi, rax
  2585. je .LBB0_39
  2586. .LBB0_525: # =>This Inner Loop Header: Depth=1
  2587. mov rcx, qword ptr [rbp + 8*rax]
  2588. mov qword ptr [r13 + 8*rax], rcx
  2589. add rax, 1
  2590. cmp rsi, rax
  2591. jne .LBB0_525
  2592. jmp .LBB0_39
  2593. .LBB0_526:
  2594. mov rax, rsi
  2595. and rax, -4
  2596. xor ecx, ecx
  2597. .LBB0_527: # =>This Inner Loop Header: Depth=1
  2598. vmovupd ymm0, ymmword ptr [rbp + 8*rcx]
  2599. vmovupd ymmword ptr [r13 + 8*rcx], ymm0
  2600. add rcx, 4
  2601. cmp rax, rcx
  2602. jne .LBB0_527
  2603. # %bb.528:
  2604. cmp rsi, rax
  2605. je .LBB0_39
  2606. .LBB0_529: # =>This Inner Loop Header: Depth=1
  2607. mov rcx, qword ptr [rbp + 8*rax]
  2608. mov qword ptr [r13 + 8*rax], rcx
  2609. add rax, 1
  2610. cmp rsi, rax
  2611. jne .LBB0_529
  2612. jmp .LBB0_39
  2613. .LBB0_536:
  2614. mov rax, rbx
  2615. and rax, -4
  2616. vmovq xmm0, rcx
  2617. vpbroadcastq ymm0, xmm0
  2618. xor edx, edx
  2619. .LBB0_537: # =>This Inner Loop Header: Depth=1
  2620. vmovdqu ymm1, ymmword ptr [r15 + 8*rdx]
  2621. vpcmpgtq ymm2, ymm0, ymm1
  2622. vblendvpd ymm1, ymm0, ymm1, ymm2
  2623. vmovupd ymmword ptr [r13 + 8*rdx], ymm1
  2624. add rdx, 4
  2625. cmp rax, rdx
  2626. jne .LBB0_537
  2627. # %bb.538:
  2628. cmp rbx, rax
  2629. je .LBB0_39
  2630. .LBB0_539: # =>This Inner Loop Header: Depth=1
  2631. mov rdx, qword ptr [r15 + 8*rax]
  2632. cmp rdx, rcx
  2633. cmovg rdx, rcx
  2634. mov qword ptr [r13 + 8*rax], rdx
  2635. add rax, 1
  2636. cmp rbx, rax
  2637. jne .LBB0_539
  2638. jmp .LBB0_39
  2639. .LBB0_540:
  2640. mov rax, rbx
  2641. and rax, -4
  2642. vmovq xmm0, rcx
  2643. vpbroadcastq ymm0, xmm0
  2644. xor edx, edx
  2645. .LBB0_541: # =>This Inner Loop Header: Depth=1
  2646. vmovdqu ymm1, ymmword ptr [r15 + 8*rdx]
  2647. vpcmpgtq ymm2, ymm1, ymm0
  2648. vblendvpd ymm1, ymm0, ymm1, ymm2
  2649. vmovupd ymmword ptr [r13 + 8*rdx], ymm1
  2650. add rdx, 4
  2651. cmp rax, rdx
  2652. jne .LBB0_541
  2653. # %bb.542:
  2654. cmp rbx, rax
  2655. je .LBB0_39
  2656. .LBB0_543: # =>This Inner Loop Header: Depth=1
  2657. mov rdx, qword ptr [r15 + 8*rax]
  2658. cmp rdx, rcx
  2659. cmovl rdx, rcx
  2660. mov qword ptr [r13 + 8*rax], rdx
  2661. add rax, 1
  2662. cmp rbx, rax
  2663. jne .LBB0_543
  2664. jmp .LBB0_39
  2665. .LBB0_544:
  2666. mov rax, rbx
  2667. and rax, -4
  2668. vmovq xmm0, rcx
  2669. vpbroadcastq ymm0, xmm0
  2670. xor edx, edx
  2671. .LBB0_545: # =>This Inner Loop Header: Depth=1
  2672. vpcmpgtq ymm1, ymm0, ymmword ptr [r15 + 8*rdx]
  2673. vpsrlq ymm1, ymm1, 63
  2674. vmovdqu ymmword ptr [r13 + 8*rdx], ymm1
  2675. add rdx, 4
  2676. cmp rax, rdx
  2677. jne .LBB0_545
  2678. # %bb.546:
  2679. cmp rbx, rax
  2680. je .LBB0_39
  2681. .LBB0_547: # =>This Inner Loop Header: Depth=1
  2682. xor edx, edx
  2683. cmp qword ptr [r15 + 8*rax], rcx
  2684. setl dl
  2685. mov qword ptr [r13 + 8*rax], rdx
  2686. add rax, 1
  2687. cmp rbx, rax
  2688. jne .LBB0_547
  2689. jmp .LBB0_39
  2690. .LBB0_548:
  2691. mov rax, rbx
  2692. and rax, -4
  2693. vmovq xmm0, rcx
  2694. vpbroadcastq ymm0, xmm0
  2695. xor edx, edx
  2696. .LBB0_549: # =>This Inner Loop Header: Depth=1
  2697. vmovdqu ymm1, ymmword ptr [r15 + 8*rdx]
  2698. vpcmpgtq ymm1, ymm1, ymm0
  2699. vpsrlq ymm1, ymm1, 63
  2700. vmovdqu ymmword ptr [r13 + 8*rdx], ymm1
  2701. add rdx, 4
  2702. cmp rax, rdx
  2703. jne .LBB0_549
  2704. # %bb.550:
  2705. cmp rbx, rax
  2706. je .LBB0_39
  2707. .LBB0_551: # =>This Inner Loop Header: Depth=1
  2708. xor edx, edx
  2709. cmp qword ptr [r15 + 8*rax], rcx
  2710. setg dl
  2711. mov qword ptr [r13 + 8*rax], rdx
  2712. add rax, 1
  2713. cmp rbx, rax
  2714. jne .LBB0_551
  2715. jmp .LBB0_39
  2716. .LBB0_552:
  2717. mov rax, rbx
  2718. and rax, -4
  2719. vmovq xmm0, rcx
  2720. vpbroadcastq ymm0, xmm0
  2721. xor edx, edx
  2722. .LBB0_553: # =>This Inner Loop Header: Depth=1
  2723. vpcmpeqq ymm1, ymm0, ymmword ptr [r15 + 8*rdx]
  2724. vpsrlq ymm1, ymm1, 63
  2725. vmovdqu ymmword ptr [r13 + 8*rdx], ymm1
  2726. add rdx, 4
  2727. cmp rax, rdx
  2728. jne .LBB0_553
  2729. # %bb.554:
  2730. cmp rbx, rax
  2731. je .LBB0_39
  2732. .LBB0_555: # =>This Inner Loop Header: Depth=1
  2733. xor edx, edx
  2734. cmp qword ptr [r15 + 8*rax], rcx
  2735. sete dl
  2736. mov qword ptr [r13 + 8*rax], rdx
  2737. add rax, 1
  2738. cmp rbx, rax
  2739. jne .LBB0_555
  2740. jmp .LBB0_39
  2741. .LBB0_556:
  2742. mov rax, rbx
  2743. and rax, -4
  2744. vmovq xmm0, rcx
  2745. vpbroadcastq ymm0, xmm0
  2746. xor edx, edx
  2747. .LBB0_557: # =>This Inner Loop Header: Depth=1
  2748. vpaddq ymm1, ymm0, ymmword ptr [rbp + 8*rdx]
  2749. vmovdqu ymmword ptr [r13 + 8*rdx], ymm1
  2750. add rdx, 4
  2751. cmp rax, rdx
  2752. jne .LBB0_557
  2753. # %bb.558:
  2754. cmp rbx, rax
  2755. je .LBB0_39
  2756. .LBB0_559: # =>This Inner Loop Header: Depth=1
  2757. mov rdx, qword ptr [rbp + 8*rax]
  2758. add rdx, rcx
  2759. mov qword ptr [r13 + 8*rax], rdx
  2760. add rax, 1
  2761. cmp rbx, rax
  2762. jne .LBB0_559
  2763. jmp .LBB0_39
  2764. .LBB0_560:
  2765. mov rax, rbx
  2766. and rax, -4
  2767. vmovq xmm0, rcx
  2768. vpbroadcastq ymm0, xmm0
  2769. xor edx, edx
  2770. .LBB0_561: # =>This Inner Loop Header: Depth=1
  2771. vpsubq ymm1, ymm0, ymmword ptr [rbp + 8*rdx]
  2772. vmovdqu ymmword ptr [r13 + 8*rdx], ymm1
  2773. add rdx, 4
  2774. cmp rax, rdx
  2775. jne .LBB0_561
  2776. # %bb.562:
  2777. cmp rbx, rax
  2778. je .LBB0_39
  2779. .LBB0_563: # =>This Inner Loop Header: Depth=1
  2780. mov rdx, rcx
  2781. sub rdx, qword ptr [rbp + 8*rax]
  2782. mov qword ptr [r13 + 8*rax], rdx
  2783. add rax, 1
  2784. cmp rbx, rax
  2785. jne .LBB0_563
  2786. jmp .LBB0_39
  2787. .LBB0_564:
  2788. mov rax, rbx
  2789. and rax, -4
  2790. vmovq xmm0, rcx
  2791. vpbroadcastq ymm0, xmm0
  2792. xor edx, edx
  2793. vpsrlq ymm1, ymm0, 32
  2794. .LBB0_565: # =>This Inner Loop Header: Depth=1
  2795. vmovdqu ymm2, ymmword ptr [rbp + 8*rdx]
  2796. vpmuludq ymm3, ymm2, ymm1
  2797. vpsrlq ymm4, ymm2, 32
  2798. vpmuludq ymm4, ymm4, ymm0
  2799. vpaddq ymm3, ymm3, ymm4
  2800. vpsllq ymm3, ymm3, 32
  2801. vpmuludq ymm2, ymm2, ymm0
  2802. vpaddq ymm2, ymm2, ymm3
  2803. vmovdqu ymmword ptr [r13 + 8*rdx], ymm2
  2804. add rdx, 4
  2805. cmp rax, rdx
  2806. jne .LBB0_565
  2807. # %bb.566:
  2808. cmp rbx, rax
  2809. je .LBB0_39
  2810. .LBB0_567: # =>This Inner Loop Header: Depth=1
  2811. mov rdx, qword ptr [rbp + 8*rax]
  2812. imul rdx, rcx
  2813. mov qword ptr [r13 + 8*rax], rdx
  2814. add rax, 1
  2815. cmp rbx, rax
  2816. jne .LBB0_567
  2817. jmp .LBB0_39
  2818. .LBB0_568:
  2819. mov rax, rbx
  2820. and rax, -4
  2821. vmovq xmm0, rcx
  2822. vpbroadcastq ymm0, xmm0
  2823. xor edx, edx
  2824. .LBB0_569: # =>This Inner Loop Header: Depth=1
  2825. vmovdqu ymm1, ymmword ptr [rbp + 8*rdx]
  2826. vpcmpgtq ymm2, ymm1, ymm0
  2827. vblendvpd ymm1, ymm1, ymm0, ymm2
  2828. vmovupd ymmword ptr [r13 + 8*rdx], ymm1
  2829. add rdx, 4
  2830. cmp rax, rdx
  2831. jne .LBB0_569
  2832. # %bb.570:
  2833. cmp rbx, rax
  2834. je .LBB0_39
  2835. .LBB0_571: # =>This Inner Loop Header: Depth=1
  2836. mov rdx, qword ptr [rbp + 8*rax]
  2837. cmp rcx, rdx
  2838. cmovle rdx, rcx
  2839. mov qword ptr [r13 + 8*rax], rdx
  2840. add rax, 1
  2841. cmp rbx, rax
  2842. jne .LBB0_571
  2843. jmp .LBB0_39
  2844. .LBB0_572:
  2845. mov rax, rbx
  2846. and rax, -4
  2847. vmovq xmm0, rcx
  2848. vpbroadcastq ymm0, xmm0
  2849. xor edx, edx
  2850. .LBB0_573: # =>This Inner Loop Header: Depth=1
  2851. vmovdqu ymm1, ymmword ptr [rbp + 8*rdx]
  2852. vpcmpgtq ymm2, ymm0, ymm1
  2853. vblendvpd ymm1, ymm1, ymm0, ymm2
  2854. vmovupd ymmword ptr [r13 + 8*rdx], ymm1
  2855. add rdx, 4
  2856. cmp rax, rdx
  2857. jne .LBB0_573
  2858. # %bb.574:
  2859. cmp rbx, rax
  2860. je .LBB0_39
  2861. .LBB0_575: # =>This Inner Loop Header: Depth=1
  2862. mov rdx, qword ptr [rbp + 8*rax]
  2863. cmp rcx, rdx
  2864. cmovge rdx, rcx
  2865. mov qword ptr [r13 + 8*rax], rdx
  2866. add rax, 1
  2867. cmp rbx, rax
  2868. jne .LBB0_575
  2869. jmp .LBB0_39
  2870. .LBB0_576:
  2871. mov rax, rbx
  2872. and rax, -4
  2873. vmovq xmm0, rcx
  2874. vpbroadcastq ymm0, xmm0
  2875. xor edx, edx
  2876. .LBB0_577: # =>This Inner Loop Header: Depth=1
  2877. vmovdqu ymm1, ymmword ptr [rbp + 8*rdx]
  2878. vpcmpgtq ymm1, ymm1, ymm0
  2879. vpsrlq ymm1, ymm1, 63
  2880. vmovdqu ymmword ptr [r13 + 8*rdx], ymm1
  2881. add rdx, 4
  2882. cmp rax, rdx
  2883. jne .LBB0_577
  2884. # %bb.578:
  2885. cmp rbx, rax
  2886. je .LBB0_39
  2887. .LBB0_579: # =>This Inner Loop Header: Depth=1
  2888. xor edx, edx
  2889. cmp rcx, qword ptr [rbp + 8*rax]
  2890. setl dl
  2891. mov qword ptr [r13 + 8*rax], rdx
  2892. add rax, 1
  2893. cmp rbx, rax
  2894. jne .LBB0_579
  2895. jmp .LBB0_39
  2896. .LBB0_580:
  2897. mov rax, rbx
  2898. and rax, -4
  2899. vmovq xmm0, rcx
  2900. vpbroadcastq ymm0, xmm0
  2901. xor edx, edx
  2902. .LBB0_581: # =>This Inner Loop Header: Depth=1
  2903. vpcmpgtq ymm1, ymm0, ymmword ptr [rbp + 8*rdx]
  2904. vpsrlq ymm1, ymm1, 63
  2905. vmovdqu ymmword ptr [r13 + 8*rdx], ymm1
  2906. add rdx, 4
  2907. cmp rax, rdx
  2908. jne .LBB0_581
  2909. # %bb.582:
  2910. cmp rbx, rax
  2911. je .LBB0_39
  2912. .LBB0_583: # =>This Inner Loop Header: Depth=1
  2913. xor edx, edx
  2914. cmp rcx, qword ptr [rbp + 8*rax]
  2915. setg dl
  2916. mov qword ptr [r13 + 8*rax], rdx
  2917. add rax, 1
  2918. cmp rbx, rax
  2919. jne .LBB0_583
  2920. jmp .LBB0_39
  2921. .LBB0_584:
  2922. mov rax, rbx
  2923. and rax, -4
  2924. vmovq xmm0, rcx
  2925. vpbroadcastq ymm0, xmm0
  2926. xor edx, edx
  2927. .LBB0_585: # =>This Inner Loop Header: Depth=1
  2928. vpcmpeqq ymm1, ymm0, ymmword ptr [rbp + 8*rdx]
  2929. vpsrlq ymm1, ymm1, 63
  2930. vmovdqu ymmword ptr [r13 + 8*rdx], ymm1
  2931. add rdx, 4
  2932. cmp rax, rdx
  2933. jne .LBB0_585
  2934. # %bb.586:
  2935. cmp rbx, rax
  2936. je .LBB0_39
  2937. .LBB0_587: # =>This Inner Loop Header: Depth=1
  2938. xor edx, edx
  2939. cmp rcx, qword ptr [rbp + 8*rax]
  2940. sete dl
  2941. mov qword ptr [r13 + 8*rax], rdx
  2942. add rax, 1
  2943. cmp rbx, rax
  2944. jne .LBB0_587
  2945. jmp .LBB0_39
  2946. .LBB0_588:
  2947. mov rax, rsi
  2948. and rax, -4
  2949. vbroadcastsd ymm1, xmm0
  2950. xor ecx, ecx
  2951. .LBB0_589: # =>This Inner Loop Header: Depth=1
  2952. vaddpd ymm2, ymm1, ymmword ptr [r15 + 8*rcx]
  2953. vmovupd ymmword ptr [r13 + 8*rcx], ymm2
  2954. add rcx, 4
  2955. cmp rax, rcx
  2956. jne .LBB0_589
  2957. # %bb.590:
  2958. cmp rsi, rax
  2959. je .LBB0_39
  2960. .LBB0_591: # =>This Inner Loop Header: Depth=1
  2961. vaddsd xmm1, xmm0, qword ptr [r15 + 8*rax]
  2962. vmovsd qword ptr [r13 + 8*rax], xmm1
  2963. add rax, 1
  2964. cmp rsi, rax
  2965. jne .LBB0_591
  2966. jmp .LBB0_39
  2967. .LBB0_592:
  2968. mov rax, rsi
  2969. and rax, -4
  2970. vbroadcastsd ymm1, xmm0
  2971. xor ecx, ecx
  2972. .LBB0_593: # =>This Inner Loop Header: Depth=1
  2973. vmovupd ymm2, ymmword ptr [r15 + 8*rcx]
  2974. vsubpd ymm2, ymm2, ymm1
  2975. vmovupd ymmword ptr [r13 + 8*rcx], ymm2
  2976. add rcx, 4
  2977. cmp rax, rcx
  2978. jne .LBB0_593
  2979. # %bb.594:
  2980. cmp rsi, rax
  2981. je .LBB0_39
  2982. .LBB0_595: # =>This Inner Loop Header: Depth=1
  2983. vmovsd xmm1, qword ptr [r15 + 8*rax] # xmm1 = mem[0],zero
  2984. vsubsd xmm1, xmm1, xmm0
  2985. vmovsd qword ptr [r13 + 8*rax], xmm1
  2986. add rax, 1
  2987. cmp rsi, rax
  2988. jne .LBB0_595
  2989. jmp .LBB0_39
  2990. .LBB0_596:
  2991. mov rax, rsi
  2992. and rax, -4
  2993. vbroadcastsd ymm1, xmm0
  2994. xor ecx, ecx
  2995. .LBB0_597: # =>This Inner Loop Header: Depth=1
  2996. vmulpd ymm2, ymm1, ymmword ptr [r15 + 8*rcx]
  2997. vmovupd ymmword ptr [r13 + 8*rcx], ymm2
  2998. add rcx, 4
  2999. cmp rax, rcx
  3000. jne .LBB0_597
  3001. # %bb.598:
  3002. cmp rsi, rax
  3003. je .LBB0_39
  3004. .LBB0_599: # =>This Inner Loop Header: Depth=1
  3005. vmulsd xmm1, xmm0, qword ptr [r15 + 8*rax]
  3006. vmovsd qword ptr [r13 + 8*rax], xmm1
  3007. add rax, 1
  3008. cmp rsi, rax
  3009. jne .LBB0_599
  3010. jmp .LBB0_39
  3011. .LBB0_600:
  3012. mov rax, rsi
  3013. and rax, -4
  3014. vbroadcastsd ymm1, xmm0
  3015. xor ecx, ecx
  3016. .LBB0_601: # =>This Inner Loop Header: Depth=1
  3017. vmovupd ymm2, ymmword ptr [r15 + 8*rcx]
  3018. vminpd ymm2, ymm2, ymm1
  3019. vmovupd ymmword ptr [r13 + 8*rcx], ymm2
  3020. add rcx, 4
  3021. cmp rax, rcx
  3022. jne .LBB0_601
  3023. # %bb.602:
  3024. cmp rsi, rax
  3025. je .LBB0_39
  3026. .LBB0_603: # =>This Inner Loop Header: Depth=1
  3027. vmovsd xmm1, qword ptr [r15 + 8*rax] # xmm1 = mem[0],zero
  3028. vminsd xmm1, xmm1, xmm0
  3029. vmovsd qword ptr [r13 + 8*rax], xmm1
  3030. add rax, 1
  3031. cmp rsi, rax
  3032. jne .LBB0_603
  3033. jmp .LBB0_39
  3034. .LBB0_604:
  3035. mov rax, rsi
  3036. and rax, -4
  3037. vbroadcastsd ymm1, xmm0
  3038. xor ecx, ecx
  3039. .LBB0_605: # =>This Inner Loop Header: Depth=1
  3040. vmovupd ymm2, ymmword ptr [r15 + 8*rcx]
  3041. vmaxpd ymm2, ymm2, ymm1
  3042. vmovupd ymmword ptr [r13 + 8*rcx], ymm2
  3043. add rcx, 4
  3044. cmp rax, rcx
  3045. jne .LBB0_605
  3046. # %bb.606:
  3047. cmp rsi, rax
  3048. je .LBB0_39
  3049. .LBB0_607: # =>This Inner Loop Header: Depth=1
  3050. vmovsd xmm1, qword ptr [r15 + 8*rax] # xmm1 = mem[0],zero
  3051. vmaxsd xmm1, xmm1, xmm0
  3052. vmovsd qword ptr [r13 + 8*rax], xmm1
  3053. add rax, 1
  3054. cmp rsi, rax
  3055. jne .LBB0_607
  3056. jmp .LBB0_39
  3057. .LBB0_608:
  3058. mov rax, rsi
  3059. and rax, -4
  3060. vbroadcastsd ymm1, xmm0
  3061. xor ecx, ecx
  3062. .LBB0_609: # =>This Inner Loop Header: Depth=1
  3063. vaddpd ymm2, ymm1, ymmword ptr [rbp + 8*rcx]
  3064. vmovupd ymmword ptr [r13 + 8*rcx], ymm2
  3065. add rcx, 4
  3066. cmp rax, rcx
  3067. jne .LBB0_609
  3068. # %bb.610:
  3069. cmp rsi, rax
  3070. je .LBB0_39
  3071. .LBB0_611: # =>This Inner Loop Header: Depth=1
  3072. vaddsd xmm1, xmm0, qword ptr [rbp + 8*rax]
  3073. vmovsd qword ptr [r13 + 8*rax], xmm1
  3074. add rax, 1
  3075. cmp rsi, rax
  3076. jne .LBB0_611
  3077. jmp .LBB0_39
  3078. .LBB0_612:
  3079. mov rax, rsi
  3080. and rax, -4
  3081. vbroadcastsd ymm1, xmm0
  3082. xor ecx, ecx
  3083. .LBB0_613: # =>This Inner Loop Header: Depth=1
  3084. vsubpd ymm2, ymm1, ymmword ptr [rbp + 8*rcx]
  3085. vmovupd ymmword ptr [r13 + 8*rcx], ymm2
  3086. add rcx, 4
  3087. cmp rax, rcx
  3088. jne .LBB0_613
  3089. # %bb.614:
  3090. cmp rsi, rax
  3091. je .LBB0_39
  3092. .LBB0_615: # =>This Inner Loop Header: Depth=1
  3093. vsubsd xmm1, xmm0, qword ptr [rbp + 8*rax]
  3094. vmovsd qword ptr [r13 + 8*rax], xmm1
  3095. add rax, 1
  3096. cmp rsi, rax
  3097. jne .LBB0_615
  3098. jmp .LBB0_39
  3099. .LBB0_616:
  3100. mov rax, rsi
  3101. and rax, -4
  3102. vbroadcastsd ymm1, xmm0
  3103. xor ecx, ecx
  3104. .LBB0_617: # =>This Inner Loop Header: Depth=1
  3105. vmulpd ymm2, ymm1, ymmword ptr [rbp + 8*rcx]
  3106. vmovupd ymmword ptr [r13 + 8*rcx], ymm2
  3107. add rcx, 4
  3108. cmp rax, rcx
  3109. jne .LBB0_617
  3110. # %bb.618:
  3111. cmp rsi, rax
  3112. je .LBB0_39
  3113. .LBB0_619: # =>This Inner Loop Header: Depth=1
  3114. vmulsd xmm1, xmm0, qword ptr [rbp + 8*rax]
  3115. vmovsd qword ptr [r13 + 8*rax], xmm1
  3116. add rax, 1
  3117. cmp rsi, rax
  3118. jne .LBB0_619
  3119. jmp .LBB0_39
  3120. .LBB0_620:
  3121. mov rax, rsi
  3122. and rax, -4
  3123. vbroadcastsd ymm1, xmm0
  3124. xor ecx, ecx
  3125. .LBB0_621: # =>This Inner Loop Header: Depth=1
  3126. vminpd ymm2, ymm1, ymmword ptr [rbp + 8*rcx]
  3127. vmovupd ymmword ptr [r13 + 8*rcx], ymm2
  3128. add rcx, 4
  3129. cmp rax, rcx
  3130. jne .LBB0_621
  3131. # %bb.622:
  3132. cmp rsi, rax
  3133. je .LBB0_39
  3134. .LBB0_623: # =>This Inner Loop Header: Depth=1
  3135. vminsd xmm1, xmm0, qword ptr [rbp + 8*rax]
  3136. vmovsd qword ptr [r13 + 8*rax], xmm1
  3137. add rax, 1
  3138. cmp rsi, rax
  3139. jne .LBB0_623
  3140. jmp .LBB0_39
  3141. .LBB0_624:
  3142. mov rax, rsi
  3143. and rax, -4
  3144. vbroadcastsd ymm1, xmm0
  3145. xor ecx, ecx
  3146. .LBB0_625: # =>This Inner Loop Header: Depth=1
  3147. vmaxpd ymm2, ymm1, ymmword ptr [rbp + 8*rcx]
  3148. vmovupd ymmword ptr [r13 + 8*rcx], ymm2
  3149. add rcx, 4
  3150. cmp rax, rcx
  3151. jne .LBB0_625
  3152. # %bb.626:
  3153. cmp rsi, rax
  3154. je .LBB0_39
  3155. .LBB0_627: # =>This Inner Loop Header: Depth=1
  3156. vmaxsd xmm1, xmm0, qword ptr [rbp + 8*rax]
  3157. vmovsd qword ptr [r13 + 8*rax], xmm1
  3158. add rax, 1
  3159. cmp rsi, rax
  3160. jne .LBB0_627
  3161. jmp .LBB0_39
  3162. .LBB0_631:
  3163. lea rcx, [8*rbx]
  3164. add rcx, rbp
  3165. cmp r13, rcx
  3166. jae .LBB0_720
  3167. # %bb.632:
  3168. lea rcx, [8*rbx]
  3169. add rcx, r13
  3170. cmp rbp, rcx
  3171. jae .LBB0_720
  3172. # %bb.633:
  3173. xor ecx, ecx
  3174. jmp .LBB0_723
  3175. .LBB0_672:
  3176. mov rax, rsi
  3177. and rax, -4
  3178. vbroadcastsd ymm2, xmm0
  3179. vbroadcastsd ymm3, xmm1
  3180. xor ecx, ecx
  3181. vxorpd xmm4, xmm4, xmm4
  3182. .LBB0_673: # =>This Inner Loop Header: Depth=1
  3183. vmovupd ymm5, ymmword ptr [rbp + 8*rcx]
  3184. vcmpneqpd ymm6, ymm5, ymm4
  3185. vdivpd ymm5, ymm2, ymm5
  3186. vblendvpd ymm5, ymm3, ymm5, ymm6
  3187. vmovupd ymmword ptr [r13 + 8*rcx], ymm5
  3188. add rcx, 4
  3189. cmp rax, rcx
  3190. jne .LBB0_673
  3191. # %bb.674:
  3192. cmp rsi, rax
  3193. je .LBB0_39
  3194. jmp .LBB0_675
  3195. .LBB0_640:
  3196. mov rdi, rbx
  3197. and rdi, -4
  3198. vmovq xmm0, r8
  3199. vpbroadcastq ymm0, xmm0
  3200. xor esi, esi
  3201. vpxor xmm1, xmm1, xmm1
  3202. vpcmpeqd ymm2, ymm2, ymm2
  3203. .LBB0_641: # =>This Inner Loop Header: Depth=1
  3204. vmovdqu ymm4, ymmword ptr [rbp + 8*rsi]
  3205. vpcmpeqq ymm3, ymm4, ymm1
  3206. vpxor ymm5, ymm3, ymm2
  3207. vextracti128 xmm6, ymm5, 1
  3208. vpackssdw xmm6, xmm5, xmm6
  3209. vpextrb eax, xmm5, 0
  3210. # implicit-def: %ymm5
  3211. test al, 1
  3212. je .LBB0_642
  3213. # %bb.645: # in Loop: Header=BB0_641 Depth=1
  3214. vmovq rbx, xmm4
  3215. mov rax, rcx
  3216. or rax, rbx
  3217. shr rax, 32
  3218. je .LBB0_647
  3219. # %bb.646: # in Loop: Header=BB0_641 Depth=1
  3220. mov rax, rcx
  3221. cqo
  3222. idiv rbx
  3223. jmp .LBB0_648
  3224. .LBB0_642: # in Loop: Header=BB0_641 Depth=1
  3225. vpextrb eax, xmm6, 4
  3226. test al, 1
  3227. je .LBB0_643
  3228. .LBB0_649: # in Loop: Header=BB0_641 Depth=1
  3229. vpextrq rbx, xmm4, 1
  3230. mov rax, rcx
  3231. or rax, rbx
  3232. shr rax, 32
  3233. je .LBB0_651
  3234. # %bb.650: # in Loop: Header=BB0_641 Depth=1
  3235. mov rax, rcx
  3236. cqo
  3237. idiv rbx
  3238. jmp .LBB0_652
  3239. .LBB0_647: # in Loop: Header=BB0_641 Depth=1
  3240. xor edx, edx
  3241. mov eax, ecx
  3242. div ebx
  3243. # kill: def %eax killed %eax def %rax
  3244. .LBB0_648: # in Loop: Header=BB0_641 Depth=1
  3245. vmovq xmm5, rax
  3246. mov rbx, r9
  3247. vpextrb eax, xmm6, 4
  3248. test al, 1
  3249. jne .LBB0_649
  3250. .LBB0_643: # in Loop: Header=BB0_641 Depth=1
  3251. vpextrb eax, xmm6, 8
  3252. test al, 1
  3253. je .LBB0_644
  3254. .LBB0_653: # in Loop: Header=BB0_641 Depth=1
  3255. vextracti128 xmm7, ymm4, 1
  3256. vmovq rbx, xmm7
  3257. mov rax, rcx
  3258. or rax, rbx
  3259. shr rax, 32
  3260. je .LBB0_655
  3261. # %bb.654: # in Loop: Header=BB0_641 Depth=1
  3262. mov rax, rcx
  3263. cqo
  3264. idiv rbx
  3265. jmp .LBB0_656
  3266. .LBB0_651: # in Loop: Header=BB0_641 Depth=1
  3267. xor edx, edx
  3268. mov eax, ecx
  3269. div ebx
  3270. # kill: def %eax killed %eax def %rax
  3271. .LBB0_652: # in Loop: Header=BB0_641 Depth=1
  3272. vpinsrq xmm7, xmm5, rax, 1
  3273. vpblendd ymm5, ymm5, ymm7, 15 # ymm5 = ymm7[0,1,2,3],ymm5[4,5,6,7]
  3274. mov rbx, r9
  3275. vpextrb eax, xmm6, 8
  3276. test al, 1
  3277. jne .LBB0_653
  3278. .LBB0_644: # in Loop: Header=BB0_641 Depth=1
  3279. vpextrb eax, xmm6, 12
  3280. test al, 1
  3281. jne .LBB0_657
  3282. jmp .LBB0_661
  3283. .LBB0_655: # in Loop: Header=BB0_641 Depth=1
  3284. xor edx, edx
  3285. mov eax, ecx
  3286. div ebx
  3287. # kill: def %eax killed %eax def %rax
  3288. .LBB0_656: # in Loop: Header=BB0_641 Depth=1
  3289. vextracti128 xmm7, ymm5, 1
  3290. vpinsrq xmm7, xmm7, rax, 0
  3291. vinserti128 ymm5, ymm5, xmm7, 1
  3292. mov rbx, r9
  3293. vpextrb eax, xmm6, 12
  3294. test al, 1
  3295. je .LBB0_661
  3296. .LBB0_657: # in Loop: Header=BB0_641 Depth=1
  3297. vextracti128 xmm4, ymm4, 1
  3298. vpextrq rbx, xmm4, 1
  3299. mov rax, rcx
  3300. or rax, rbx
  3301. shr rax, 32
  3302. je .LBB0_659
  3303. # %bb.658: # in Loop: Header=BB0_641 Depth=1
  3304. mov rax, rcx
  3305. cqo
  3306. idiv rbx
  3307. jmp .LBB0_660
  3308. .LBB0_659: # in Loop: Header=BB0_641 Depth=1
  3309. xor edx, edx
  3310. mov eax, ecx
  3311. div ebx
  3312. # kill: def %eax killed %eax def %rax
  3313. .LBB0_660: # in Loop: Header=BB0_641 Depth=1
  3314. vextracti128 xmm4, ymm5, 1
  3315. vpinsrq xmm4, xmm4, rax, 1
  3316. vinserti128 ymm5, ymm5, xmm4, 1
  3317. mov rbx, r9
  3318. .LBB0_661: # in Loop: Header=BB0_641 Depth=1
  3319. vblendvpd ymm3, ymm5, ymm0, ymm3
  3320. vmovupd ymmword ptr [r13 + 8*rsi], ymm3
  3321. add rsi, 4
  3322. cmp rdi, rsi
  3323. jne .LBB0_641
  3324. # %bb.662:
  3325. cmp rbx, rdi
  3326. je .LBB0_39
  3327. .LBB0_663:
  3328. mov rsi, qword ptr [rbp + 8*rdi]
  3329. mov rax, r8
  3330. test rsi, rsi
  3331. je .LBB0_667
  3332. .LBB0_664:
  3333. mov rax, rcx
  3334. or rax, rsi
  3335. shr rax, 32
  3336. je .LBB0_666
  3337. # %bb.665:
  3338. mov rax, rcx
  3339. cqo
  3340. idiv rsi
  3341. jmp .LBB0_667
  3342. .LBB0_666:
  3343. xor edx, edx
  3344. mov eax, ecx
  3345. div esi
  3346. # kill: def %eax killed %eax def %rax
  3347. .LBB0_667:
  3348. mov qword ptr [r13 + 8*rdi], rax
  3349. add rdi, 1
  3350. cmp rbx, rdi
  3351. jne .LBB0_663
  3352. jmp .LBB0_39
  3353. .LBB0_668:
  3354. mov rax, rsi
  3355. and rax, -4
  3356. vbroadcastsd ymm1, xmm0
  3357. xor ecx, ecx
  3358. .LBB0_669: # =>This Inner Loop Header: Depth=1
  3359. vmovupd ymm2, ymmword ptr [r15 + 8*rcx]
  3360. vdivpd ymm2, ymm2, ymm1
  3361. vmovupd ymmword ptr [r13 + 8*rcx], ymm2
  3362. add rcx, 4
  3363. cmp rax, rcx
  3364. jne .LBB0_669
  3365. # %bb.670:
  3366. cmp rsi, rax
  3367. je .LBB0_39
  3368. .LBB0_671: # =>This Inner Loop Header: Depth=1
  3369. vmovsd xmm1, qword ptr [r15 + 8*rax] # xmm1 = mem[0],zero
  3370. vdivsd xmm1, xmm1, xmm0
  3371. vmovsd qword ptr [r13 + 8*rax], xmm1
  3372. add rax, 1
  3373. cmp rsi, rax
  3374. jne .LBB0_671
  3375. jmp .LBB0_39
  3376. .LBB0_679:
  3377. cmp rbx, 4
  3378. jae .LBB0_736
  3379. # %bb.680:
  3380. xor eax, eax
  3381. jmp .LBB0_739
  3382. .LBB0_681:
  3383. mov rbx, r9
  3384. jmp .LBB0_744
  3385. .LBB0_682:
  3386. mov rbx, r9
  3387. jmp .LBB0_746
  3388. .LBB0_683:
  3389. mov rbx, r9
  3390. jmp .LBB0_748
  3391. .LBB0_684:
  3392. mov rbx, r9
  3393. .LBB0_685:
  3394. movabs r8, -9223372036854775808
  3395. lea r9, [r8 - 1]
  3396. lea rdi, [r8 + 1]
  3397. .LBB0_686: # =>This Inner Loop Header: Depth=1
  3398. mov rax, qword ptr [r15 + 8*rsi]
  3399. mov rcx, qword ptr [rbp + 8*rsi]
  3400. test rcx, rcx
  3401. je .LBB0_689
  3402. # %bb.687: # in Loop: Header=BB0_686 Depth=1
  3403. mov rdx, rax
  3404. or rdx, rcx
  3405. shr rdx, 32
  3406. je .LBB0_691
  3407. # %bb.688: # in Loop: Header=BB0_686 Depth=1
  3408. cqo
  3409. idiv rcx
  3410. mov rcx, rax
  3411. jmp .LBB0_692
  3412. .LBB0_689: # in Loop: Header=BB0_686 Depth=1
  3413. mov rcx, r8
  3414. test rax, rax
  3415. je .LBB0_692
  3416. # %bb.690: # in Loop: Header=BB0_686 Depth=1
  3417. mov rcx, rdi
  3418. cmovg rcx, r9
  3419. jmp .LBB0_692
  3420. .LBB0_691: # in Loop: Header=BB0_686 Depth=1
  3421. xor edx, edx
  3422. # kill: def %eax killed %eax killed %rax
  3423. div ecx
  3424. mov ecx, eax
  3425. .LBB0_692: # in Loop: Header=BB0_686 Depth=1
  3426. mov qword ptr [r13 + 8*rsi], rcx
  3427. add rsi, 1
  3428. cmp rbx, rsi
  3429. jne .LBB0_686
  3430. jmp .LBB0_39
  3431. .LBB0_693:
  3432. mov rbx, r9
  3433. jmp .LBB0_750
  3434. .LBB0_694:
  3435. mov rbx, r9
  3436. jmp .LBB0_752
  3437. .LBB0_695:
  3438. mov rbx, r9
  3439. jmp .LBB0_754
  3440. .LBB0_696:
  3441. mov rbx, r9
  3442. jmp .LBB0_756
  3443. .LBB0_697:
  3444. mov rbx, r9
  3445. jmp .LBB0_758
  3446. .LBB0_698:
  3447. mov rsi, r9
  3448. .LBB0_699: # =>This Inner Loop Header: Depth=1
  3449. vmovsd xmm0, qword ptr [r15 + 8*rax] # xmm0 = mem[0],zero
  3450. vaddsd xmm0, xmm0, qword ptr [rbp + 8*rax]
  3451. vmovsd qword ptr [r13 + 8*rax], xmm0
  3452. add rax, 1
  3453. cmp rsi, rax
  3454. jne .LBB0_699
  3455. jmp .LBB0_39
  3456. .LBB0_700:
  3457. mov rsi, r9
  3458. .LBB0_701: # =>This Inner Loop Header: Depth=1
  3459. vmovsd xmm0, qword ptr [r15 + 8*rax] # xmm0 = mem[0],zero
  3460. vsubsd xmm0, xmm0, qword ptr [rbp + 8*rax]
  3461. vmovsd qword ptr [r13 + 8*rax], xmm0
  3462. add rax, 1
  3463. cmp rsi, rax
  3464. jne .LBB0_701
  3465. jmp .LBB0_39
  3466. .LBB0_702:
  3467. mov rsi, r9
  3468. .LBB0_703: # =>This Inner Loop Header: Depth=1
  3469. vmovsd xmm0, qword ptr [r15 + 8*rax] # xmm0 = mem[0],zero
  3470. vmulsd xmm0, xmm0, qword ptr [rbp + 8*rax]
  3471. vmovsd qword ptr [r13 + 8*rax], xmm0
  3472. add rax, 1
  3473. cmp rsi, rax
  3474. jne .LBB0_703
  3475. jmp .LBB0_39
  3476. .LBB0_704:
  3477. mov rsi, r9
  3478. .LBB0_705:
  3479. vxorpd xmm0, xmm0, xmm0
  3480. vmovsd xmm1, qword ptr [rip + .LCPI0_0] # xmm1 = mem[0],zero
  3481. .LBB0_706: # =>This Inner Loop Header: Depth=1
  3482. vmovsd xmm2, qword ptr [r15 + 8*rax] # xmm2 = mem[0],zero
  3483. vmovsd xmm3, qword ptr [rbp + 8*rax] # xmm3 = mem[0],zero
  3484. vucomisd xmm3, xmm0
  3485. jne .LBB0_707
  3486. jnp .LBB0_708
  3487. .LBB0_707: # in Loop: Header=BB0_706 Depth=1
  3488. vdivsd xmm2, xmm2, xmm3
  3489. jmp .LBB0_710
  3490. .LBB0_708: # in Loop: Header=BB0_706 Depth=1
  3491. vucomisd xmm2, xmm0
  3492. vmovapd xmm2, xmm1
  3493. jne .LBB0_709
  3494. jnp .LBB0_710
  3495. .LBB0_709: # in Loop: Header=BB0_706 Depth=1
  3496. seta cl
  3497. movzx ecx, cl
  3498. vmovsd xmm2, qword ptr [8*rcx + .LCPI0_1] # xmm2 = mem[0],zero
  3499. .LBB0_710: # in Loop: Header=BB0_706 Depth=1
  3500. vmovsd qword ptr [r13 + 8*rax], xmm2
  3501. add rax, 1
  3502. cmp rsi, rax
  3503. jne .LBB0_706
  3504. jmp .LBB0_39
  3505. .LBB0_711:
  3506. mov rsi, r9
  3507. .LBB0_712: # =>This Inner Loop Header: Depth=1
  3508. vmovsd xmm0, qword ptr [r15 + 8*rax] # xmm0 = mem[0],zero
  3509. vminsd xmm0, xmm0, qword ptr [rbp + 8*rax]
  3510. vmovsd qword ptr [r13 + 8*rax], xmm0
  3511. add rax, 1
  3512. cmp rsi, rax
  3513. jne .LBB0_712
  3514. jmp .LBB0_39
  3515. .LBB0_713:
  3516. mov rsi, r9
  3517. .LBB0_714: # =>This Inner Loop Header: Depth=1
  3518. vmovsd xmm0, qword ptr [r15 + 8*rax] # xmm0 = mem[0],zero
  3519. vmaxsd xmm0, xmm0, qword ptr [rbp + 8*rax]
  3520. vmovsd qword ptr [r13 + 8*rax], xmm0
  3521. add rax, 1
  3522. cmp rsi, rax
  3523. jne .LBB0_714
  3524. jmp .LBB0_39
  3525. .LBB0_715:
  3526. mov rax, rbx
  3527. and rax, -4
  3528. xor ecx, ecx
  3529. vpxor xmm0, xmm0, xmm0
  3530. vbroadcastsd ymm1, qword ptr [rip + .LCPI0_5] # ymm1 = [9223372036854775807,9223372036854775807,9223372036854775807,9223372036854775807]
  3531. vbroadcastsd ymm2, qword ptr [rip + .LCPI0_6] # ymm2 = [9223372036854775809,9223372036854775809,9223372036854775809,9223372036854775809]
  3532. vbroadcastsd ymm3, qword ptr [rip + .LCPI0_4] # ymm3 = [9223372036854775808,9223372036854775808,9223372036854775808,9223372036854775808]
  3533. .LBB0_716: # =>This Inner Loop Header: Depth=1
  3534. vmovdqu ymm4, ymmword ptr [r15 + 8*rcx]
  3535. vpcmpeqq ymm5, ymm4, ymm0
  3536. vpcmpgtq ymm4, ymm4, ymm0
  3537. vblendvpd ymm4, ymm2, ymm1, ymm4
  3538. vblendvpd ymm4, ymm4, ymm3, ymm5
  3539. vmovupd ymmword ptr [r13 + 8*rcx], ymm4
  3540. add rcx, 4
  3541. cmp rax, rcx
  3542. jne .LBB0_716
  3543. # %bb.717:
  3544. mov rbx, r9
  3545. cmp rbx, rax
  3546. je .LBB0_39
  3547. jmp .LBB0_718
  3548. .LBB0_724:
  3549. mov rax, rsi
  3550. and rax, -4
  3551. xor ecx, ecx
  3552. vxorpd xmm0, xmm0, xmm0
  3553. vbroadcastsd ymm1, qword ptr [rip + .LCPI0_2] # ymm1 = [+Inf,+Inf,+Inf,+Inf]
  3554. vbroadcastsd ymm2, qword ptr [rip + .LCPI0_3] # ymm2 = [-Inf,-Inf,-Inf,-Inf]
  3555. vbroadcastsd ymm3, qword ptr [rip + .LCPI0_0] # ymm3 = [NaN,NaN,NaN,NaN]
  3556. .LBB0_725: # =>This Inner Loop Header: Depth=1
  3557. vmovupd ymm4, ymmword ptr [r15 + 8*rcx]
  3558. vcmpneqpd ymm5, ymm4, ymm0
  3559. vcmpltpd ymm4, ymm0, ymm4
  3560. vblendvpd ymm4, ymm2, ymm1, ymm4
  3561. vblendvpd ymm4, ymm3, ymm4, ymm5
  3562. vmovupd ymmword ptr [r13 + 8*rcx], ymm4
  3563. add rcx, 4
  3564. cmp rax, rcx
  3565. jne .LBB0_725
  3566. # %bb.726:
  3567. mov rsi, r9
  3568. cmp rsi, rax
  3569. je .LBB0_39
  3570. jmp .LBB0_727
  3571. .LBB0_729:
  3572. mov rax, rsi
  3573. and rax, -4
  3574. vbroadcastsd ymm1, xmm0
  3575. xor ecx, ecx
  3576. vxorpd xmm2, xmm2, xmm2
  3577. vbroadcastsd ymm3, qword ptr [rip + .LCPI0_0] # ymm3 = [NaN,NaN,NaN,NaN]
  3578. .LBB0_730: # =>This Inner Loop Header: Depth=1
  3579. vmovupd ymm4, ymmword ptr [rbp + 8*rcx]
  3580. vcmpneqpd ymm5, ymm4, ymm2
  3581. vdivpd ymm4, ymm1, ymm4
  3582. vblendvpd ymm4, ymm3, ymm4, ymm5
  3583. vmovupd ymmword ptr [r13 + 8*rcx], ymm4
  3584. add rcx, 4
  3585. cmp rax, rcx
  3586. jne .LBB0_730
  3587. # %bb.731:
  3588. mov rsi, r9
  3589. cmp rsi, rax
  3590. je .LBB0_39
  3591. jmp .LBB0_732
  3592. .LBB0_720:
  3593. mov rcx, rbx
  3594. and rcx, -4
  3595. xor edx, edx
  3596. vpxor xmm0, xmm0, xmm0
  3597. vpbroadcastq ymm1, qword ptr [rip + .LCPI0_4] # ymm1 = [9223372036854775808,9223372036854775808,9223372036854775808,9223372036854775808]
  3598. .LBB0_721: # =>This Inner Loop Header: Depth=1
  3599. vpcmpeqq ymm2, ymm0, ymmword ptr [rbp + 8*rdx]
  3600. vpand ymm2, ymm2, ymm1
  3601. vmovdqu ymmword ptr [r13 + 8*rdx], ymm2
  3602. add rdx, 4
  3603. cmp rcx, rdx
  3604. jne .LBB0_721
  3605. # %bb.722:
  3606. mov rbx, r9
  3607. cmp rbx, rcx
  3608. je .LBB0_39
  3609. .LBB0_723: # =>This Inner Loop Header: Depth=1
  3610. cmp qword ptr [rbp + 8*rcx], 0
  3611. mov edx, 0
  3612. cmove rdx, rax
  3613. mov qword ptr [r13 + 8*rcx], rdx
  3614. add rcx, 1
  3615. cmp rbx, rcx
  3616. jne .LBB0_723
  3617. jmp .LBB0_39
  3618. .LBB0_736:
  3619. mov rax, rbx
  3620. and rax, -4
  3621. vbroadcastsd ymm0, qword ptr [rip + .LCPI0_4] # ymm0 = [9223372036854775808,9223372036854775808,9223372036854775808,9223372036854775808]
  3622. mov rcx, rax
  3623. mov rdx, r13
  3624. .LBB0_737: # =>This Inner Loop Header: Depth=1
  3625. vmovupd ymmword ptr [rdx], ymm0
  3626. add rdx, 32
  3627. add rcx, -4
  3628. jne .LBB0_737
  3629. # %bb.738:
  3630. mov rbx, r9
  3631. cmp rbx, rax
  3632. je .LBB0_39
  3633. .LBB0_739:
  3634. movabs rcx, -9223372036854775808
  3635. sub rbx, rax
  3636. lea rax, [8*rax]
  3637. add rax, r13
  3638. .LBB0_740: # =>This Inner Loop Header: Depth=1
  3639. mov qword ptr [rax], rcx
  3640. add rax, 8
  3641. add rbx, -1
  3642. jne .LBB0_740
  3643. jmp .LBB0_39
  3644. .LBB0_742:
  3645. mov rcx, qword ptr [rbp + 8*rax]
  3646. mov qword ptr [r13 + 8*rax], rcx
  3647. add rax, 1
  3648. .LBB0_741:
  3649. cmp rbx, rax
  3650. jne .LBB0_742
  3651. jmp .LBB0_39
  3652. .LBB0_760:
  3653. mov rdx, qword ptr [r15 + 8*rax]
  3654. add rdx, rcx
  3655. mov qword ptr [r13 + 8*rax], rdx
  3656. add rax, 1
  3657. .LBB0_759:
  3658. cmp rbx, rax
  3659. jne .LBB0_760
  3660. jmp .LBB0_39
  3661. .LBB0_762:
  3662. mov rdx, qword ptr [r15 + 8*rax]
  3663. sub rdx, rcx
  3664. mov qword ptr [r13 + 8*rax], rdx
  3665. add rax, 1
  3666. .LBB0_761:
  3667. cmp rbx, rax
  3668. jne .LBB0_762
  3669. jmp .LBB0_39
  3670. .LBB0_764:
  3671. mov rdx, qword ptr [r15 + 8*rax]
  3672. imul rdx, rcx
  3673. mov qword ptr [r13 + 8*rax], rdx
  3674. add rax, 1
  3675. .LBB0_763:
  3676. cmp rbx, rax
  3677. jne .LBB0_764
  3678. jmp .LBB0_39
  3679. .LBB0_743:
  3680. cmp rbx, rax
  3681. je .LBB0_39
  3682. .LBB0_744:
  3683. mov rcx, qword ptr [rbp + 8*rax]
  3684. add rcx, qword ptr [r15 + 8*rax]
  3685. mov qword ptr [r13 + 8*rax], rcx
  3686. add rax, 1
  3687. jmp .LBB0_743
  3688. .LBB0_745:
  3689. cmp rbx, rax
  3690. je .LBB0_39
  3691. .LBB0_746:
  3692. mov rcx, qword ptr [r15 + 8*rax]
  3693. sub rcx, qword ptr [rbp + 8*rax]
  3694. mov qword ptr [r13 + 8*rax], rcx
  3695. add rax, 1
  3696. jmp .LBB0_745
  3697. .LBB0_747:
  3698. cmp rbx, rax
  3699. je .LBB0_39
  3700. .LBB0_748:
  3701. mov rcx, qword ptr [rbp + 8*rax]
  3702. imul rcx, qword ptr [r15 + 8*rax]
  3703. mov qword ptr [r13 + 8*rax], rcx
  3704. add rax, 1
  3705. jmp .LBB0_747
  3706. .LBB0_749:
  3707. cmp rbx, rax
  3708. je .LBB0_39
  3709. .LBB0_750:
  3710. mov rcx, qword ptr [r15 + 8*rax]
  3711. mov rdx, qword ptr [rbp + 8*rax]
  3712. cmp rcx, rdx
  3713. cmovle rdx, rcx
  3714. mov qword ptr [r13 + 8*rax], rdx
  3715. add rax, 1
  3716. jmp .LBB0_749
  3717. .LBB0_751:
  3718. cmp rbx, rax
  3719. je .LBB0_39
  3720. .LBB0_752:
  3721. mov rcx, qword ptr [r15 + 8*rax]
  3722. mov rdx, qword ptr [rbp + 8*rax]
  3723. cmp rcx, rdx
  3724. cmovge rdx, rcx
  3725. mov qword ptr [r13 + 8*rax], rdx
  3726. add rax, 1
  3727. jmp .LBB0_751
  3728. .LBB0_753:
  3729. cmp rbx, rax
  3730. je .LBB0_39
  3731. .LBB0_754:
  3732. mov rcx, qword ptr [r15 + 8*rax]
  3733. xor edx, edx
  3734. cmp rcx, qword ptr [rbp + 8*rax]
  3735. setl dl
  3736. mov qword ptr [r13 + 8*rax], rdx
  3737. add rax, 1
  3738. jmp .LBB0_753
  3739. .LBB0_755:
  3740. cmp rbx, rax
  3741. je .LBB0_39
  3742. .LBB0_756:
  3743. mov rcx, qword ptr [r15 + 8*rax]
  3744. xor edx, edx
  3745. cmp rcx, qword ptr [rbp + 8*rax]
  3746. setg dl
  3747. mov qword ptr [r13 + 8*rax], rdx
  3748. add rax, 1
  3749. jmp .LBB0_755
  3750. .LBB0_757:
  3751. cmp rbx, rax
  3752. je .LBB0_39
  3753. .LBB0_758:
  3754. mov rcx, qword ptr [r15 + 8*rax]
  3755. xor edx, edx
  3756. cmp rcx, qword ptr [rbp + 8*rax]
  3757. sete dl
  3758. mov qword ptr [r13 + 8*rax], rdx
  3759. add rax, 1
  3760. jmp .LBB0_757
  3761. .Lfunc_end0:
  3762. .size pen2, .Lfunc_end0-pen2
Advertisement
Add Comment
Please, Sign In to add comment