ynf.S 29 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220
  1. /*
  2. * Math library
  3. *
  4. * Copyright (C) 2016 Intel Corporation. All rights reserved.
  5. *
  6. * Redistribution and use in source and binary forms, with or without
  7. * modification, are permitted provided that the following conditions
  8. * are met:
  9. *
  10. * * Redistributions of source code must retain the above copyright
  11. * notice, this list of conditions and the following disclaimer.
  12. * * Redistributions in binary form must reproduce the above copyright
  13. * notice, this list of conditions and the following disclaimer in
  14. * the documentation and/or other materials provided with the
  15. * distribution.
  16. * * Neither the name of Intel Corporation nor the names of its
  17. * contributors may be used to endorse or promote products derived
  18. * from this software without specific prior written permission.
  19. *
  20. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  21. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  22. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  23. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  24. * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  25. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  26. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  27. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  28. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  29. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  30. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  31. *
  32. *
  33. * Author Name <jingwei.zhang@intel.com>
  34. * History:
  35. * 03-14-2016 Initial version. numerics svn rev. 12864
  36. */
  37. .file "ynf.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin ynf
  41. .text
  42. .align 16,0x90
  43. .globl ynf
  44. ynf:
  45. # parameter 1: %edi
  46. # parameter 2: %xmm0
  47. ..B1.1:
  48. .cfi_startproc
  49. ..___tag_value_ynf.1:
  50. ..L2:
  51. pushq %rbx
  52. .cfi_def_cfa_offset 16
  53. .cfi_offset 3, -16
  54. pushq %rbp
  55. .cfi_def_cfa_offset 24
  56. .cfi_offset 6, -24
  57. subq $72, %rsp
  58. .cfi_def_cfa_offset 96
  59. movl %edi, %ebx
  60. movd %xmm0, %ecx
  61. movss %xmm0, (%rsp)
  62. lea -1(%rcx), %esi
  63. cmpl $2139095039, %esi
  64. jae ..B1.48
  65. ..B1.2:
  66. testl %ebx, %ebx
  67. je ..B1.59
  68. ..B1.3:
  69. movl %ecx, %ebp
  70. movl %ebx, %eax
  71. cltd
  72. xorl %ebx, %ebp
  73. shrl $31, %ebp
  74. andl %ebx, %ebp
  75. xorl %edx, %ebx
  76. subl %edx, %ebx
  77. cmpl $1, %ebx
  78. je ..B1.58
  79. ..B1.4:
  80. movl %ebx, %edi
  81. sarl $3, %edi
  82. cmpl $320, %edi
  83. jg ..B1.6
  84. ..B1.5:
  85. movslq %edi, %rdi
  86. lea function_zeros(%rip), %rsi
  87. movss (%rsi,%rdi,4), %xmm0
  88. jmp ..B1.7
  89. ..B1.6:
  90. pxor %xmm0, %xmm0
  91. lea -320(%rdi), %esi
  92. lea -2560(,%rdi,8), %edi
  93. subl %esi, %edi
  94. cvtsi2ss %edi, %xmm0
  95. addss .L_2il0floatpacket.0(%rip), %xmm0
  96. ..B1.7:
  97. movss (%rsp), %xmm3
  98. comiss %xmm3, %xmm0
  99. ja ..B1.47
  100. ..B1.8:
  101. cvtss2sd %xmm3, %xmm3
  102. cmpl $6, %ebx
  103. jge ..B1.26
  104. ..B1.9:
  105. lea _val_0_6(%rip), %rcx
  106. movsd (%rcx), %xmm1
  107. comisd %xmm3, %xmm1
  108. jb ..B1.27
  109. ..B1.10:
  110. lea _val_2_0(%rip), %rsi
  111. pxor %xmm5, %xmm5
  112. lea _zeros(%rip), %rcx
  113. movaps %xmm3, %xmm6
  114. pxor %xmm4, %xmm4
  115. testl %ebx, %ebx
  116. pxor %xmm1, %xmm1
  117. movsd (%rsi), %xmm7
  118. lea _ones(%rip), %rsi
  119. movsd %xmm1, 8(%rsp)
  120. divsd %xmm7, %xmm6
  121. cvtss2sd (%rsi), %xmm5
  122. cvtss2sd (%rcx), %xmm4
  123. divsd %xmm3, %xmm7
  124. movsd %xmm5, (%rsp)
  125. movaps %xmm5, %xmm2
  126. movaps %xmm5, %xmm1
  127. movaps %xmm5, %xmm8
  128. movl $0, %ecx
  129. jle ..B1.14
  130. ..B1.11:
  131. movaps %xmm1, %xmm9
  132. ..B1.12:
  133. incl %ecx
  134. mulsd %xmm6, %xmm1
  135. cmpl %ebx, %ecx
  136. mulsd %xmm7, %xmm9
  137. jb ..B1.12
  138. ..B1.13:
  139. movsd %xmm9, (%rsp)
  140. testl %ebx, %ebx
  141. ..B1.14:
  142. movl $0, %ecx
  143. jle ..B1.18
  144. ..B1.16:
  145. movaps %xmm5, %xmm7
  146. incl %ecx
  147. divsd %xmm8, %xmm7
  148. movaps %xmm2, %xmm9
  149. cmpl %ebx, %ecx
  150. mulsd %xmm8, %xmm2
  151. addsd %xmm7, %xmm4
  152. addsd %xmm5, %xmm8
  153. jb ..B1.16
  154. ..B1.17:
  155. movsd %xmm9, 8(%rsp)
  156. ..B1.18:
  157. mulsd %xmm6, %xmm6
  158. lea _TWO_19H(%rip), %rcx
  159. movsd %xmm5, 32(%rsp)
  160. movaps %xmm4, %xmm8
  161. movsd %xmm4, 64(%rsp)
  162. xorl %r8d, %r8d
  163. xorps .L_2il0floatpacket.3(%rip), %xmm6
  164. movl %ebx, %edi
  165. movsd (%rcx), %xmm7
  166. movl %ebx, %ecx
  167. ..B1.19:
  168. incl %r8d
  169. incl %edi
  170. movl %r8d, %r9d
  171. movaps %xmm8, %xmm13
  172. imull %edi, %r9d
  173. pxor %xmm8, %xmm8
  174. movss (%rsi), %xmm9
  175. pxor %xmm10, %xmm10
  176. movsd 32(%rsp), %xmm11
  177. movaps %xmm7, %xmm12
  178. mulsd %xmm6, %xmm11
  179. cvtsi2ss %r9d, %xmm8
  180. divss %xmm8, %xmm9
  181. addl $2, %ecx
  182. cvtsi2sd %ecx, %xmm10
  183. cvtss2sd %xmm9, %xmm9
  184. mulsd %xmm9, %xmm10
  185. mulsd %xmm9, %xmm11
  186. addsd %xmm10, %xmm4
  187. addsd %xmm11, %xmm5
  188. movsd %xmm11, 32(%rsp)
  189. mulsd %xmm4, %xmm11
  190. addsd 64(%rsp), %xmm11
  191. mulsd %xmm11, %xmm12
  192. movsd %xmm11, 64(%rsp)
  193. addsd %xmm12, %xmm11
  194. movsd %xmm11, 56(%rsp)
  195. movsd 56(%rsp), %xmm8
  196. subsd %xmm12, %xmm8
  197. ucomisd %xmm13, %xmm8
  198. jne ..B1.19
  199. jp ..B1.19
  200. ..B1.20:
  201. divsd %xmm2, %xmm1
  202. lea _eulon2(%rip), %rcx
  203. movsd %xmm1, 32(%rsp)
  204. mulsd %xmm1, %xmm5
  205. movsd (%rcx), %xmm1
  206. mulsd %xmm1, %xmm3
  207. movaps %xmm3, %xmm0
  208. movsd %xmm5, 16(%rsp)
  209. movsd %xmm6, 24(%rsp)
  210. ..___tag_value_ynf.8:
  211. call __libm_log_k32@PLT
  212. ..___tag_value_ynf.9:
  213. ..B1.62:
  214. movsd 24(%rsp), %xmm6
  215. movaps %xmm0, %xmm1
  216. movsd 16(%rsp), %xmm5
  217. ..B1.21:
  218. lea _tonpi(%rip), %rsi
  219. lea _oonpi(%rip), %rcx
  220. xorps .L_2il0floatpacket.3(%rip), %xmm6
  221. cmpl $1, %ebx
  222. movsd (%rsi), %xmm0
  223. movl $0, %esi
  224. mulsd %xmm5, %xmm0
  225. movsd (%rcx), %xmm2
  226. lea -1(%rbx), %ecx
  227. mulsd %xmm1, %xmm0
  228. movsd 64(%rsp), %xmm1
  229. mulsd %xmm2, %xmm1
  230. mulsd 32(%rsp), %xmm1
  231. subsd %xmm1, %xmm0
  232. movsd 8(%rsp), %xmm1
  233. jle ..B1.25
  234. ..B1.22:
  235. movaps %xmm1, %xmm4
  236. decl %ebx
  237. ..B1.23:
  238. incl %esi
  239. lea -1(%rcx), %edi
  240. imull %esi, %ecx
  241. mulsd %xmm6, %xmm4
  242. cvtsi2sd %ecx, %xmm3
  243. divsd %xmm3, %xmm4
  244. movl %edi, %ecx
  245. cmpl %ebx, %esi
  246. addsd %xmm4, %xmm1
  247. jb ..B1.23
  248. ..B1.25:
  249. mulsd %xmm2, %xmm1
  250. mulsd (%rsp), %xmm1
  251. subsd %xmm1, %xmm0
  252. jmp ..B1.46
  253. ..B1.26:
  254. cmpl $80, %ebx
  255. jge ..B1.35
  256. ..B1.27:
  257. lea _val_18_0(%rip), %rcx
  258. movsd (%rcx), %xmm1
  259. comisd %xmm3, %xmm1
  260. jbe ..B1.29
  261. ..B1.28:
  262. movaps %xmm3, %xmm0
  263. movsd %xmm3, 48(%rsp)
  264. call y0@PLT
  265. ..B1.64:
  266. movsd 48(%rsp), %xmm3
  267. movaps %xmm0, %xmm1
  268. movaps %xmm3, %xmm0
  269. movsd %xmm1, (%rsp)
  270. call y1@PLT
  271. ..B1.63:
  272. movsd 48(%rsp), %xmm3
  273. movsd (%rsp), %xmm1
  274. jmp ..B1.31
  275. ..B1.29:
  276. lea _ones(%rip), %rcx
  277. pxor %xmm1, %xmm1
  278. lea _val_16_0(%rip), %r8
  279. lea (%rsp), %rdi
  280. movaps %xmm3, %xmm0
  281. lea 8(%rsp), %rsi
  282. movl $-1, %edx
  283. cvtss2sd (%rcx), %xmm1
  284. divsd %xmm3, %xmm1
  285. movsd (%r8), %xmm8
  286. mulsd %xmm1, %xmm8
  287. movaps %xmm8, %xmm6
  288. mulsd %xmm8, %xmm6
  289. movaps %xmm6, %xmm7
  290. mulsd %xmm6, %xmm7
  291. movq $0, 56(%rsi)
  292. movsd %xmm1, 8(%rsi)
  293. movsd %xmm6, 16(%rsi)
  294. movsd %xmm7, 24(%rsi)
  295. movsd %xmm8, 32(%rsi)
  296. movsd %xmm3, 40(%rsi)
  297. ..___tag_value_ynf.10:
  298. call __libm_sincos_k32@PLT
  299. ..___tag_value_ynf.11:
  300. ..B1.30:
  301. lea 40+_PP1(%rip), %r11
  302. lea 40+_PP0(%rip), %rcx
  303. movsd 32(%rsp), %xmm7
  304. lea 24+_PP0(%rip), %rsi
  305. lea 8+_PP0(%rip), %rdi
  306. lea 32+_PP0(%rip), %r8
  307. movsd 24(%rsp), %xmm6
  308. lea 16+_PP0(%rip), %r9
  309. movsd (%r11), %xmm11
  310. lea _PP0(%rip), %r10
  311. movsd (%rcx), %xmm1
  312. lea 24+_PP1(%rip), %rcx
  313. movsd (%r8), %xmm2
  314. movsd 40(%rsp), %xmm8
  315. mulsd %xmm7, %xmm11
  316. mulsd %xmm7, %xmm1
  317. mulsd %xmm7, %xmm2
  318. addsd (%rcx), %xmm11
  319. addsd (%rsi), %xmm1
  320. addsd (%r9), %xmm2
  321. mulsd %xmm7, %xmm11
  322. mulsd %xmm7, %xmm1
  323. mulsd %xmm7, %xmm2
  324. addsd (%rdi), %xmm1
  325. addsd (%r10), %xmm2
  326. mulsd %xmm6, %xmm1
  327. lea 8+_PP1(%rip), %rcx
  328. addsd %xmm2, %xmm1
  329. addsd (%rcx), %xmm11
  330. lea 32+_PP1(%rip), %rcx
  331. mulsd %xmm6, %xmm11
  332. movsd (%rcx), %xmm4
  333. lea 16+_PP1(%rip), %rcx
  334. mulsd %xmm7, %xmm4
  335. movsd 48(%rsp), %xmm3
  336. addsd (%rcx), %xmm4
  337. lea _PP1(%rip), %rcx
  338. mulsd %xmm7, %xmm4
  339. addsd (%rcx), %xmm4
  340. lea 40+_QP0(%rip), %rcx
  341. movsd (%rcx), %xmm9
  342. lea 24+_QP0(%rip), %rcx
  343. mulsd %xmm7, %xmm9
  344. addsd %xmm4, %xmm11
  345. addsd (%rcx), %xmm9
  346. lea 8+_QP0(%rip), %rcx
  347. mulsd %xmm7, %xmm9
  348. addsd (%rcx), %xmm9
  349. lea 32+_QP0(%rip), %rcx
  350. movsd (%rcx), %xmm5
  351. lea 16+_QP0(%rip), %rcx
  352. mulsd %xmm7, %xmm5
  353. mulsd %xmm6, %xmm9
  354. addsd (%rcx), %xmm5
  355. mulsd %xmm8, %xmm9
  356. mulsd %xmm7, %xmm5
  357. lea _QP0(%rip), %rcx
  358. addsd (%rcx), %xmm5
  359. lea 40+_QP1(%rip), %rcx
  360. movsd (%rcx), %xmm10
  361. lea 24+_QP1(%rip), %rcx
  362. mulsd %xmm7, %xmm10
  363. mulsd %xmm8, %xmm5
  364. addsd (%rcx), %xmm10
  365. addsd %xmm5, %xmm9
  366. mulsd %xmm7, %xmm10
  367. lea 8+_QP1(%rip), %rcx
  368. addsd (%rcx), %xmm10
  369. lea 32+_QP1(%rip), %rcx
  370. mulsd %xmm6, %xmm10
  371. movsd (%rcx), %xmm6
  372. lea 16+_QP1(%rip), %rcx
  373. mulsd %xmm7, %xmm6
  374. mulsd %xmm8, %xmm10
  375. addsd (%rcx), %xmm6
  376. mulsd %xmm7, %xmm6
  377. lea _QP1(%rip), %rcx
  378. movsd 8(%rsp), %xmm7
  379. mulsd %xmm7, %xmm9
  380. addsd (%rcx), %xmm6
  381. mulsd %xmm11, %xmm7
  382. mulsd %xmm8, %xmm6
  383. lea _tonpi(%rip), %rcx
  384. addsd %xmm6, %xmm10
  385. movsd (%rcx), %xmm0
  386. mulsd 16(%rsp), %xmm0
  387. movsd (%rsp), %xmm8
  388. sqrtsd %xmm0, %xmm0
  389. mulsd %xmm8, %xmm1
  390. mulsd %xmm10, %xmm8
  391. addsd %xmm9, %xmm1
  392. subsd %xmm7, %xmm8
  393. mulsd %xmm0, %xmm1
  394. mulsd %xmm8, %xmm0
  395. ..B1.31:
  396. lea _val_2_0(%rip), %rcx
  397. cmpl $1, %ebx
  398. movsd (%rcx), %xmm2
  399. movl $0, %ecx
  400. divsd %xmm3, %xmm2
  401. jle ..B1.46
  402. ..B1.32:
  403. decl %ebx
  404. ..B1.33:
  405. incl %ecx
  406. pxor %xmm3, %xmm3
  407. cvtsi2sd %ecx, %xmm3
  408. mulsd %xmm2, %xmm3
  409. movaps %xmm0, %xmm4
  410. mulsd %xmm0, %xmm3
  411. cmpl %ebx, %ecx
  412. movaps %xmm3, %xmm0
  413. subsd %xmm1, %xmm0
  414. movaps %xmm4, %xmm1
  415. jb ..B1.33
  416. jmp ..B1.46
  417. ..B1.35:
  418. pxor %xmm1, %xmm1
  419. lea 5000(%rbx,%rbx,4), %ecx
  420. cvtsi2sd %ecx, %xmm1
  421. comisd %xmm3, %xmm1
  422. ja ..B1.27
  423. ..B1.36:
  424. pxor %xmm1, %xmm1
  425. lea _val_4_0(%rip), %rsi
  426. cvtsi2sd %ebx, %xmm1
  427. movsd (%rsi), %xmm15
  428. pxor %xmm2, %xmm2
  429. movaps %xmm15, %xmm14
  430. lea _val_5_0(%rip), %rsi
  431. mulsd %xmm1, %xmm14
  432. lea 4+_ones(%rip), %r9
  433. cvtss2sd (%r9), %xmm2
  434. mulsd %xmm1, %xmm14
  435. lea _val_8_0(%rip), %rdi
  436. addsd %xmm14, %xmm2
  437. movsd (%rdi), %xmm11
  438. pxor %xmm1, %xmm1
  439. mulsd %xmm3, %xmm11
  440. lea _ones(%rip), %r8
  441. cvtss2sd (%r8), %xmm1
  442. divsd %xmm11, %xmm2
  443. lea _val_2_0(%rip), %r10
  444. lea _val_3_0(%rip), %r11
  445. movaps %xmm1, %xmm12
  446. movaps %xmm1, %xmm4
  447. movsd %xmm2, 32(%rsp)
  448. movaps %xmm1, %xmm13
  449. movsd (%rsi), %xmm6
  450. movl $-1, %ecx
  451. movsd (%r10), %xmm10
  452. xorb %sil, %sil
  453. movsd (%r11), %xmm8
  454. movaps %xmm10, %xmm9
  455. divsd %xmm1, %xmm12
  456. movaps %xmm8, %xmm7
  457. ..B1.37:
  458. movsd %xmm4, 64(%rsp)
  459. movaps %xmm7, %xmm4
  460. mulsd %xmm7, %xmm4
  461. movaps %xmm14, %xmm5
  462. movaps %xmm6, %xmm0
  463. testl %ecx, %ecx
  464. mulsd %xmm6, %xmm0
  465. subsd %xmm4, %xmm5
  466. movaps %xmm9, %xmm4
  467. mulsd %xmm11, %xmm4
  468. divsd %xmm4, %xmm5
  469. movaps %xmm14, %xmm4
  470. mulsd 32(%rsp), %xmm5
  471. subsd %xmm0, %xmm4
  472. movaps %xmm11, %xmm0
  473. mulsd %xmm8, %xmm0
  474. divsd %xmm0, %xmm4
  475. mulsd %xmm5, %xmm4
  476. jle ..B1.57
  477. ..B1.38:
  478. addsd %xmm5, %xmm1
  479. addsd %xmm4, %xmm2
  480. ..B1.39:
  481. movsd %xmm4, 32(%rsp)
  482. addsd %xmm10, %xmm9
  483. mulsd %xmm12, %xmm4
  484. addsd %xmm10, %xmm8
  485. addsd %xmm15, %xmm7
  486. addsd %xmm15, %xmm6
  487. andps .L_2il0floatpacket.2(%rip), %xmm4
  488. comisd %xmm4, %xmm13
  489. jbe ..B1.41
  490. ..B1.40:
  491. movaps %xmm4, %xmm13
  492. movb $1, %sil
  493. jmp ..B1.42
  494. ..B1.41:
  495. testb %sil, %sil
  496. jne ..B1.44
  497. ..B1.42:
  498. lea _TWO_19H(%rip), %rdi
  499. movaps %xmm1, %xmm4
  500. negl %ecx
  501. movsd (%rdi), %xmm5
  502. mulsd %xmm1, %xmm5
  503. addsd %xmm5, %xmm4
  504. movsd %xmm4, 56(%rsp)
  505. movsd 56(%rsp), %xmm4
  506. subsd %xmm5, %xmm4
  507. ucomisd 64(%rsp), %xmm4
  508. jne ..B1.37
  509. jp ..B1.37
  510. ..B1.44:
  511. addl %ebx, %ebx
  512. lea 64(%rsp), %rdi
  513. negl %ebx
  514. lea 32(%rsp), %rsi
  515. decl %ebx
  516. movaps %xmm3, %xmm0
  517. movl %ebx, %edx
  518. movsd %xmm2, (%rsp)
  519. movsd %xmm1, -24(%rsi)
  520. movsd %xmm3, 16(%rsi)
  521. ..___tag_value_ynf.12:
  522. call __libm_sincos_k32@PLT
  523. ..___tag_value_ynf.13:
  524. ..B1.45:
  525. lea _tonpi(%rip), %rax
  526. movsd 48(%rsp), %xmm3
  527. movsd 8(%rsp), %xmm1
  528. movsd (%rsp), %xmm2
  529. movsd (%rax), %xmm0
  530. divsd %xmm3, %xmm0
  531. sqrtsd %xmm0, %xmm0
  532. mulsd 64(%rsp), %xmm1
  533. mulsd 32(%rsp), %xmm2
  534. addsd %xmm2, %xmm1
  535. mulsd %xmm1, %xmm0
  536. ..B1.46:
  537. movaps %xmm0, %xmm1
  538. testl %ebp, %ebp
  539. xorps .L_2il0floatpacket.3(%rip), %xmm1
  540. jne ..L14
  541. movaps %xmm0, %xmm1
  542. ..L14:
  543. cvtsd2ss %xmm1, %xmm1
  544. movaps %xmm1, %xmm0
  545. addq $72, %rsp
  546. .cfi_def_cfa_offset 24
  547. .cfi_restore 6
  548. popq %rbp
  549. .cfi_def_cfa_offset 16
  550. .cfi_restore 3
  551. popq %rbx
  552. .cfi_def_cfa_offset 8
  553. ret
  554. .cfi_def_cfa_offset 96
  555. .cfi_offset 3, -16
  556. .cfi_offset 6, -24
  557. ..B1.47:
  558. lea _large_value_32(%rip), %rax
  559. shrl $31, %ecx
  560. movss (%rax,%rcx,4), %xmm0
  561. mulss .L_2il0floatpacket.1(%rip), %xmm0
  562. addq $72, %rsp
  563. .cfi_def_cfa_offset 24
  564. .cfi_restore 6
  565. popq %rbp
  566. .cfi_def_cfa_offset 16
  567. .cfi_restore 3
  568. popq %rbx
  569. .cfi_def_cfa_offset 8
  570. ret
  571. .cfi_def_cfa_offset 96
  572. .cfi_offset 3, -16
  573. .cfi_offset 6, -24
  574. ..B1.48:
  575. movl %ecx, %ebp
  576. andl $2147483647, %ebp
  577. cmpl $2139095040, %ebp
  578. ja ..B1.55
  579. ..B1.49:
  580. testl %ebp, %ebp
  581. je ..B1.54
  582. ..B1.50:
  583. testl $-2147483648, %ecx
  584. je ..B1.52
  585. ..B1.51:
  586. lea _zeros(%rip), %rax
  587. lea _infs(%rip), %rdx
  588. movss (%rax), %xmm0
  589. mulss (%rdx), %xmm0
  590. addq $72, %rsp
  591. .cfi_def_cfa_offset 24
  592. .cfi_restore 6
  593. popq %rbp
  594. .cfi_def_cfa_offset 16
  595. .cfi_restore 3
  596. popq %rbx
  597. .cfi_def_cfa_offset 8
  598. ret
  599. .cfi_def_cfa_offset 96
  600. .cfi_offset 3, -16
  601. .cfi_offset 6, -24
  602. ..B1.52:
  603. lea _zeros(%rip), %rax
  604. movl %ebx, %ecx
  605. shrl $31, %ecx
  606. andl %ebx, %ecx
  607. movss (%rax,%rcx,4), %xmm0
  608. ..B1.53:
  609. addq $72, %rsp
  610. .cfi_def_cfa_offset 24
  611. .cfi_restore 6
  612. popq %rbp
  613. .cfi_def_cfa_offset 16
  614. .cfi_restore 3
  615. popq %rbx
  616. .cfi_def_cfa_offset 8
  617. ret
  618. .cfi_def_cfa_offset 96
  619. .cfi_offset 3, -16
  620. .cfi_offset 6, -24
  621. ..B1.54:
  622. lea 4+_ones(%rip), %rax
  623. lea _zeros(%rip), %rdx
  624. movss (%rax), %xmm0
  625. divss (%rdx), %xmm0
  626. addq $72, %rsp
  627. .cfi_def_cfa_offset 24
  628. .cfi_restore 6
  629. popq %rbp
  630. .cfi_def_cfa_offset 16
  631. .cfi_restore 3
  632. popq %rbx
  633. .cfi_def_cfa_offset 8
  634. ret
  635. .cfi_def_cfa_offset 96
  636. .cfi_offset 3, -16
  637. .cfi_offset 6, -24
  638. ..B1.55:
  639. lea _ones(%rip), %rax
  640. movss (%rsp), %xmm0
  641. mulss (%rax), %xmm0
  642. addq $72, %rsp
  643. .cfi_def_cfa_offset 24
  644. .cfi_restore 6
  645. popq %rbp
  646. .cfi_def_cfa_offset 16
  647. .cfi_restore 3
  648. popq %rbx
  649. .cfi_def_cfa_offset 8
  650. ret
  651. .cfi_def_cfa_offset 96
  652. .cfi_offset 3, -16
  653. .cfi_offset 6, -24
  654. ..B1.57:
  655. subsd %xmm5, %xmm1
  656. subsd %xmm4, %xmm2
  657. jmp ..B1.39
  658. ..B1.58:
  659. movss (%rsp), %xmm0
  660. call y1f@PLT
  661. ..B1.65:
  662. movaps %xmm0, %xmm1
  663. testl %ebp, %ebp
  664. xorps .L_2il0floatpacket.4(%rip), %xmm1
  665. je ..L63
  666. movaps %xmm1, %xmm0
  667. ..L63:
  668. addq $72, %rsp
  669. .cfi_def_cfa_offset 24
  670. .cfi_restore 6
  671. popq %rbp
  672. .cfi_def_cfa_offset 16
  673. .cfi_restore 3
  674. popq %rbx
  675. .cfi_def_cfa_offset 8
  676. ret
  677. .cfi_def_cfa_offset 96
  678. .cfi_offset 3, -16
  679. .cfi_offset 6, -24
  680. ..B1.59:
  681. movss (%rsp), %xmm0
  682. call y0f@PLT
  683. ..B1.66:
  684. addq $72, %rsp
  685. .cfi_def_cfa_offset 24
  686. .cfi_restore 6
  687. popq %rbp
  688. .cfi_def_cfa_offset 16
  689. .cfi_restore 3
  690. popq %rbx
  691. .cfi_def_cfa_offset 8
  692. ret
  693. .align 16,0x90
  694. .cfi_endproc
  695. .type ynf,@function
  696. .size ynf,.-ynf
  697. .data
  698. # -- End ynf
  699. .data
  700. .align 4
  701. .align 4
  702. _zeros:
  703. .long 0
  704. .long 2147483648
  705. .type _zeros,@object
  706. .size _zeros,8
  707. .align 4
  708. _ones:
  709. .long 1065353216
  710. .long 3212836864
  711. .type _ones,@object
  712. .size _ones,8
  713. .align 4
  714. _infs:
  715. .long 2139095040
  716. .long 4286578688
  717. .type _infs,@object
  718. .size _infs,8
  719. .section .rodata, "a"
  720. .align 16
  721. .align 16
  722. .L_2il0floatpacket.2:
  723. .long 0xffffffff,0x7fffffff,0x00000000,0x00000000
  724. .type .L_2il0floatpacket.2,@object
  725. .size .L_2il0floatpacket.2,16
  726. .align 16
  727. .L_2il0floatpacket.3:
  728. .long 0x00000000,0x80000000,0x00000000,0x00000000
  729. .type .L_2il0floatpacket.3,@object
  730. .size .L_2il0floatpacket.3,16
  731. .align 16
  732. .L_2il0floatpacket.4:
  733. .long 0x80000000,0x00000000,0x00000000,0x00000000
  734. .type .L_2il0floatpacket.4,@object
  735. .size .L_2il0floatpacket.4,16
  736. .align 4
  737. .L_2il0floatpacket.0:
  738. .long 0x450e6000
  739. .type .L_2il0floatpacket.0,@object
  740. .size .L_2il0floatpacket.0,4
  741. .align 4
  742. .L_2il0floatpacket.1:
  743. .long 0x71800000
  744. .type .L_2il0floatpacket.1,@object
  745. .size .L_2il0floatpacket.1,4
  746. .align 4
  747. function_zeros:
  748. .long 0x00000000
  749. .long 0x00000000
  750. .long 0x00000000
  751. .long 0x3ecccccd
  752. .long 0x3fa66666
  753. .long 0x40400000
  754. .long 0x40a9999a
  755. .long 0x4101999a
  756. .long 0x41366666
  757. .long 0x4171999a
  758. .long 0x4198cccd
  759. .long 0x41ba6666
  760. .long 0x41df3333
  761. .long 0x42026666
  762. .long 0x42160000
  763. .long 0x422a0000
  764. .long 0x423f3333
  765. .long 0x42546666
  766. .long 0x426a0000
  767. .long 0x42803333
  768. .long 0x428b999a
  769. .long 0x42970000
  770. .long 0x42a2999a
  771. .long 0x42ae6666
  772. .long 0x42ba6666
  773. .long 0x42c66666
  774. .long 0x42d2999a
  775. .long 0x42decccd
  776. .long 0x42eb3333
  777. .long 0x42f7999a
  778. .long 0x4302199a
  779. .long 0x43086666
  780. .long 0x430ecccd
  781. .long 0x43153333
  782. .long 0x431b999a
  783. .long 0x4322199a
  784. .long 0x4328999a
  785. .long 0x432f199a
  786. .long 0x4335b333
  787. .long 0x433c3333
  788. .long 0x4342e666
  789. .long 0x43498000
  790. .long 0x43503333
  791. .long 0x4356e666
  792. .long 0x435d999a
  793. .long 0x43644ccd
  794. .long 0x436b0000
  795. .long 0x4371cccd
  796. .long 0x4378999a
  797. .long 0x437f6666
  798. .long 0x4383199a
  799. .long 0x43868ccd
  800. .long 0x4389f333
  801. .long 0x438d6666
  802. .long 0x4390d99a
  803. .long 0x43944ccd
  804. .long 0x4397c000
  805. .long 0x439b3333
  806. .long 0x439eb333
  807. .long 0x43a23333
  808. .long 0x43a5a666
  809. .long 0x43a92666
  810. .long 0x43aca666
  811. .long 0x43b02666
  812. .long 0x43b3a666
  813. .long 0x43b73333
  814. .long 0x43bab333
  815. .long 0x43be4000
  816. .long 0x43c1c000
  817. .long 0x43c54ccd
  818. .long 0x43c8d99a
  819. .long 0x43cc6666
  820. .long 0x43cff333
  821. .long 0x43d38000
  822. .long 0x43d70ccd
  823. .long 0x43da999a
  824. .long 0x43de2666
  825. .long 0x43e1c000
  826. .long 0x43e54ccd
  827. .long 0x43e8e666
  828. .long 0x43ec8000
  829. .long 0x43f00ccd
  830. .long 0x43f3a666
  831. .long 0x43f74000
  832. .long 0x43fad99a
  833. .long 0x43fe7333
  834. .long 0x44010666
  835. .long 0x4402d333
  836. .long 0x4404a000
  837. .long 0x44067333
  838. .long 0x44084000
  839. .long 0x440a0ccd
  840. .long 0x440be000
  841. .long 0x440daccd
  842. .long 0x440f8000
  843. .long 0x44114ccd
  844. .long 0x44132000
  845. .long 0x4414f333
  846. .long 0x4416c666
  847. .long 0x4418999a
  848. .long 0x441a6666
  849. .long 0x441c399a
  850. .long 0x441e0ccd
  851. .long 0x441fe000
  852. .long 0x4421b333
  853. .long 0x44238ccd
  854. .long 0x44256000
  855. .long 0x44273333
  856. .long 0x44290666
  857. .long 0x442ae000
  858. .long 0x442cb333
  859. .long 0x442e8666
  860. .long 0x44306000
  861. .long 0x44323333
  862. .long 0x44340ccd
  863. .long 0x4435e000
  864. .long 0x4437b99a
  865. .long 0x44398ccd
  866. .long 0x443b6666
  867. .long 0x443d4000
  868. .long 0x443f199a
  869. .long 0x4440eccd
  870. .long 0x4442c666
  871. .long 0x4444a000
  872. .long 0x4446799a
  873. .long 0x44485333
  874. .long 0x444a2ccd
  875. .long 0x444c0666
  876. .long 0x444de000
  877. .long 0x444fb99a
  878. .long 0x44519333
  879. .long 0x44536ccd
  880. .long 0x44554666
  881. .long 0x44572000
  882. .long 0x44590000
  883. .long 0x445ad99a
  884. .long 0x445cb333
  885. .long 0x445e9333
  886. .long 0x44606ccd
  887. .long 0x44624666
  888. .long 0x44642666
  889. .long 0x44660000
  890. .long 0x4467d99a
  891. .long 0x4469b99a
  892. .long 0x446b9333
  893. .long 0x446d7333
  894. .long 0x446f5333
  895. .long 0x44712ccd
  896. .long 0x44730ccd
  897. .long 0x4474e666
  898. .long 0x4476c666
  899. .long 0x4478a666
  900. .long 0x447a8000
  901. .long 0x447c6000
  902. .long 0x447e4000
  903. .long 0x44801000
  904. .long 0x4480fccd
  905. .long 0x4481eccd
  906. .long 0x4482dccd
  907. .long 0x4483cccd
  908. .long 0x4484bccd
  909. .long 0x4485accd
  910. .long 0x44869ccd
  911. .long 0x44878ccd
  912. .long 0x44887ccd
  913. .long 0x44896ccd
  914. .long 0x448a5ccd
  915. .long 0x448b4ccd
  916. .long 0x448c3ccd
  917. .long 0x448d2ccd
  918. .long 0x448e1ccd
  919. .long 0x448f0ccd
  920. .long 0x448ffccd
  921. .long 0x4490eccd
  922. .long 0x4491e000
  923. .long 0x4492d000
  924. .long 0x4493c000
  925. .long 0x4494b000
  926. .long 0x4495a333
  927. .long 0x44969333
  928. .long 0x44978333
  929. .long 0x44987333
  930. .long 0x44996666
  931. .long 0x449a5666
  932. .long 0x449b499a
  933. .long 0x449c399a
  934. .long 0x449d299a
  935. .long 0x449e1ccd
  936. .long 0x449f0ccd
  937. .long 0x44a00000
  938. .long 0x44a0f000
  939. .long 0x44a1e333
  940. .long 0x44a2d333
  941. .long 0x44a3c666
  942. .long 0x44a4b666
  943. .long 0x44a5a99a
  944. .long 0x44a6999a
  945. .long 0x44a78ccd
  946. .long 0x44a87ccd
  947. .long 0x44a97000
  948. .long 0x44aa6333
  949. .long 0x44ab5333
  950. .long 0x44ac4666
  951. .long 0x44ad399a
  952. .long 0x44ae299a
  953. .long 0x44af1ccd
  954. .long 0x44b01000
  955. .long 0x44b10333
  956. .long 0x44b1f333
  957. .long 0x44b2e666
  958. .long 0x44b3d99a
  959. .long 0x44b4cccd
  960. .long 0x44b5bccd
  961. .long 0x44b6b000
  962. .long 0x44b7a333
  963. .long 0x44b89666
  964. .long 0x44b9899a
  965. .long 0x44ba7ccd
  966. .long 0x44bb6ccd
  967. .long 0x44bc6000
  968. .long 0x44bd5333
  969. .long 0x44be4666
  970. .long 0x44bf399a
  971. .long 0x44c02ccd
  972. .long 0x44c12000
  973. .long 0x44c21333
  974. .long 0x44c30666
  975. .long 0x44c3f99a
  976. .long 0x44c4eccd
  977. .long 0x44c5e000
  978. .long 0x44c6d333
  979. .long 0x44c7c666
  980. .long 0x44c8b99a
  981. .long 0x44c9accd
  982. .long 0x44caa000
  983. .long 0x44cb9333
  984. .long 0x44cc899a
  985. .long 0x44cd7ccd
  986. .long 0x44ce7000
  987. .long 0x44cf6333
  988. .long 0x44d05666
  989. .long 0x44d1499a
  990. .long 0x44d23ccd
  991. .long 0x44d33333
  992. .long 0x44d42666
  993. .long 0x44d5199a
  994. .long 0x44d60ccd
  995. .long 0x44d70000
  996. .long 0x44d7f666
  997. .long 0x44d8e99a
  998. .long 0x44d9dccd
  999. .long 0x44dad000
  1000. .long 0x44dbc666
  1001. .long 0x44dcb99a
  1002. .long 0x44ddaccd
  1003. .long 0x44dea333
  1004. .long 0x44df9666
  1005. .long 0x44e0899a
  1006. .long 0x44e18000
  1007. .long 0x44e27333
  1008. .long 0x44e36666
  1009. .long 0x44e45ccd
  1010. .long 0x44e55000
  1011. .long 0x44e64333
  1012. .long 0x44e7399a
  1013. .long 0x44e82ccd
  1014. .long 0x44e92333
  1015. .long 0x44ea1666
  1016. .long 0x44eb099a
  1017. .long 0x44ec0000
  1018. .long 0x44ecf333
  1019. .long 0x44ede99a
  1020. .long 0x44eedccd
  1021. .long 0x44efd333
  1022. .long 0x44f0c666
  1023. .long 0x44f1bccd
  1024. .long 0x44f2b000
  1025. .long 0x44f3a666
  1026. .long 0x44f4999a
  1027. .long 0x44f59000
  1028. .long 0x44f68333
  1029. .long 0x44f7799a
  1030. .long 0x44f86ccd
  1031. .long 0x44f96333
  1032. .long 0x44fa599a
  1033. .long 0x44fb4ccd
  1034. .long 0x44fc4333
  1035. .long 0x44fd3666
  1036. .long 0x44fe2ccd
  1037. .long 0x44ff2000
  1038. .long 0x45000b33
  1039. .long 0x45008666
  1040. .long 0x45010000
  1041. .long 0x45017000
  1042. .long 0x4501f000
  1043. .long 0x45027000
  1044. .long 0x4502e000
  1045. .long 0x45036000
  1046. .long 0x4503e000
  1047. .long 0x45045000
  1048. .long 0x4504d000
  1049. .long 0x45055000
  1050. .long 0x4505c000
  1051. .long 0x45064000
  1052. .long 0x4506c000
  1053. .long 0x45073000
  1054. .long 0x4507b000
  1055. .long 0x45083000
  1056. .long 0x4508a000
  1057. .long 0x45092000
  1058. .long 0x4509a000
  1059. .long 0x450a1000
  1060. .long 0x450a9000
  1061. .long 0x450b1000
  1062. .long 0x450b8000
  1063. .long 0x450c0000
  1064. .long 0x450c8000
  1065. .long 0x450cf000
  1066. .long 0x450d7000
  1067. .long 0x450df000
  1068. .long 0x450e6000
  1069. .type function_zeros,@object
  1070. .size function_zeros,1284
  1071. .align 4
  1072. _val_0_6:
  1073. .long 858993459
  1074. .long 1071854387
  1075. .type _val_0_6,@object
  1076. .size _val_0_6,8
  1077. .align 4
  1078. _val_2_0:
  1079. .long 0
  1080. .long 1073741824
  1081. .type _val_2_0,@object
  1082. .size _val_2_0,8
  1083. .align 4
  1084. _TWO_19H:
  1085. .long 0
  1086. .long 1093140480
  1087. .type _TWO_19H,@object
  1088. .size _TWO_19H,8
  1089. .align 4
  1090. _eulon2:
  1091. .long 3400611180
  1092. .long 1072463685
  1093. .type _eulon2,@object
  1094. .size _eulon2,8
  1095. .align 4
  1096. _tonpi:
  1097. .long 1841940611
  1098. .long 1071931184
  1099. .type _tonpi,@object
  1100. .size _tonpi,8
  1101. .align 4
  1102. _oonpi:
  1103. .long 1841940611
  1104. .long 1070882608
  1105. .type _oonpi,@object
  1106. .size _oonpi,8
  1107. .align 4
  1108. _val_18_0:
  1109. .long 0
  1110. .long 1077018624
  1111. .type _val_18_0,@object
  1112. .size _val_18_0,8
  1113. .align 4
  1114. _val_16_0:
  1115. .long 0
  1116. .long 1076887552
  1117. .type _val_16_0,@object
  1118. .size _val_16_0,8
  1119. .align 4
  1120. _PP1:
  1121. .long 551
  1122. .long 1072693248
  1123. .long 4267608614
  1124. .long 1061027839
  1125. .long 3690881252
  1126. .long 3200414971
  1127. .long 3933039373
  1128. .long 1046848465
  1129. .long 3246008603
  1130. .long 3189439465
  1131. .long 1689113401
  1132. .long 1037483563
  1133. .type _PP1,@object
  1134. .size _PP1,48
  1135. .align 4
  1136. _PP0:
  1137. .long 4294966288
  1138. .long 1072693247
  1139. .long 4269912424
  1140. .long 3207725055
  1141. .long 1780799603
  1142. .long 1052554744
  1143. .long 2285933488
  1144. .long 3194113879
  1145. .long 3892950982
  1146. .long 1041746526
  1147. .long 150212775
  1148. .long 3184818833
  1149. .type _PP0,@object
  1150. .size _PP0,48
  1151. .align 4
  1152. _QP0:
  1153. .long 4294921804
  1154. .long 3212836863
  1155. .long 4153409851
  1156. .long 1056096255
  1157. .long 2226361937
  1158. .long 3196916170
  1159. .long 3849695089
  1160. .long 1044094312
  1161. .long 663042994
  1162. .long 3187124278
  1163. .long 3336948587
  1164. .long 1035486718
  1165. .type _QP0,@object
  1166. .size _QP0,48
  1167. .align 4
  1168. _QP1:
  1169. .long 4294954956
  1170. .long 1066926079
  1171. .long 4141388976
  1172. .long 3204071423
  1173. .long 1500123100
  1174. .long 1049740228
  1175. .long 3264213437
  1176. .long 3191856517
  1177. .long 1489731078
  1178. .long 1039824630
  1179. .long 1807021260
  1180. .long 3183130166
  1181. .type _QP1,@object
  1182. .size _QP1,48
  1183. .align 4
  1184. _val_4_0:
  1185. .long 0
  1186. .long 1074790400
  1187. .type _val_4_0,@object
  1188. .size _val_4_0,8
  1189. .align 4
  1190. _val_5_0:
  1191. .long 0
  1192. .long 1075052544
  1193. .type _val_5_0,@object
  1194. .size _val_5_0,8
  1195. .align 4
  1196. _val_8_0:
  1197. .long 0
  1198. .long 1075838976
  1199. .type _val_8_0,@object
  1200. .size _val_8_0,8
  1201. .align 4
  1202. _val_3_0:
  1203. .long 0
  1204. .long 1074266112
  1205. .type _val_3_0,@object
  1206. .size _val_3_0,8
  1207. .align 4
  1208. _large_value_32:
  1209. .long 1904214016
  1210. .long 4051697664
  1211. .type _large_value_32,@object
  1212. .size _large_value_32,8
  1213. .data
  1214. .section .note.GNU-stack, ""
  1215. // -- Begin DWARF2 SEGMENT .eh_frame
  1216. .section .eh_frame,"a",@progbits
  1217. .eh_frame_seg:
  1218. .align 1
  1219. # End