	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal8,8byte_literals
	.p2align	3                               ## -- Begin function bessel
LCPI0_0:
	.quad	0x3ff0000000000000              ## double 1
LCPI0_2:
	.quad	0x402e000000000000              ## double 15
LCPI0_3:
	.quad	0xbfb1111111111111              ## double -0.066666666666666666
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4
LCPI0_1:
	.quad	0x7fffffffffffffff              ## double NaN
	.quad	0x7fffffffffffffff              ## double NaN
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	4, 0x90
_bessel:                                ## @bessel
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%rbx
	subq	$56, %rsp
	.cfi_offset %rbx, -24
	xorpd	%xmm1, %xmm1
	ucomisd	%xmm1, %xmm0
	jne	LBB0_2
	jp	LBB0_2
## %bb.1:
	movsd	LCPI0_0(%rip), %xmm1            ## xmm1 = mem[0],zero
	jmp	LBB0_5
LBB0_2:
	movapd	LCPI0_1(%rip), %xmm1            ## xmm1 = [NaN,NaN]
	andpd	%xmm0, %xmm1
	movsd	LCPI0_2(%rip), %xmm2            ## xmm2 = mem[0],zero
	ucomisd	%xmm1, %xmm2
	jae	LBB0_3
## %bb.4:
	movsd	LCPI0_0(%rip), %xmm0            ## xmm0 = mem[0],zero
	divsd	%xmm1, %xmm0
	addsd	LCPI0_3(%rip), %xmm0
	movsd	%xmm0, -32(%rbp)                ## 8-byte Spill
	leaq	_bessel.p2(%rip), %rbx
	movq	%rbx, %rdi
	movapd	%xmm1, -48(%rbp)                ## 16-byte Spill
	callq	_FF_ARRAY_ELEMS
	movq	%rbx, %rdi
	movl	%eax, %esi
	movsd	-32(%rbp), %xmm0                ## 8-byte Reload
                                        ## xmm0 = mem[0],zero
	callq	_eval_poly
	movaps	%xmm0, -64(%rbp)                ## 16-byte Spill
	leaq	_bessel.q2(%rip), %rbx
	movq	%rbx, %rdi
	callq	_FF_ARRAY_ELEMS
	movq	%rbx, %rdi
	movl	%eax, %esi
	movsd	-32(%rbp), %xmm0                ## 8-byte Reload
                                        ## xmm0 = mem[0],zero
	callq	_eval_poly
	movaps	%xmm0, -32(%rbp)                ## 16-byte Spill
	movapd	-48(%rbp), %xmm0                ## 16-byte Reload
	callq	_exp
	movapd	-48(%rbp), %xmm1                ## 16-byte Reload
	sqrtsd	%xmm1, %xmm1
	unpcklpd	-64(%rbp), %xmm0                ## 16-byte Folded Reload
                                        ## xmm0 = xmm0[0],mem[0]
	unpcklpd	-32(%rbp), %xmm1                ## 16-byte Folded Reload
                                        ## xmm1 = xmm1[0],mem[0]
	divpd	%xmm1, %xmm0
	movapd	%xmm0, %xmm1
	unpckhpd	%xmm0, %xmm1                    ## xmm1 = xmm1[1],xmm0[1]
	mulsd	%xmm0, %xmm1
	jmp	LBB0_5
LBB0_3:
	mulsd	%xmm0, %xmm0
	movapd	%xmm0, -48(%rbp)                ## 16-byte Spill
	leaq	_bessel.p1(%rip), %rbx
	movq	%rbx, %rdi
	callq	_FF_ARRAY_ELEMS
	movq	%rbx, %rdi
	movl	%eax, %esi
	movaps	-48(%rbp), %xmm0                ## 16-byte Reload
	callq	_eval_poly
	movaps	%xmm0, -32(%rbp)                ## 16-byte Spill
	leaq	_bessel.q1(%rip), %rbx
	movq	%rbx, %rdi
	callq	_FF_ARRAY_ELEMS
	movq	%rbx, %rdi
	movl	%eax, %esi
	movapd	-48(%rbp), %xmm0                ## 16-byte Reload
	callq	_eval_poly
	movapd	-32(%rbp), %xmm1                ## 16-byte Reload
	divsd	%xmm0, %xmm1
LBB0_5:
	movapd	%xmm1, %xmm0
	addq	$56, %rsp
	popq	%rbx
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.section	__TEXT,__const
	.p2align	4                               ## @bessel.p1
_bessel.p1:
	.quad	0xc31fbda33ba182b6              ## double -2233558263947437.5
	.quad	0xc2ff4ae214a88484              ## double -550503696730184.25
	.quad	0xc2bdf57638ce8fc0              ## double -32940087627407.75
	.quad	0xc268b769c1eee488              ## double -849251012471.1416
	.quad	0xc2063070a3c7e1c4              ## double -11912746104.985237
	.quad	0xc1989698ac597a18              ## double -103130667.08737981
	.quad	0xc1222c008538bc2b              ## double -595456.26019847894
	.quad	0xc0a2d90a0762eece              ## double -2412.5195876041898
	.quad	0xc01c5fc79279e70c              ## double -7.0935347449210546
	.quad	0xbf8fa655c9abb197              ## double -0.01545397779178685
	.quad	0xbefa653af846d843              ## double -2.5172644670688976E-5
	.quad	0xbe60624173575d24              ## double -3.051722645045107E-8
	.quad	0xbdbd83c251e3fb89              ## double -2.6843448573468484E-11
	.quad	0xbd11fe902e4c85f5              ## double -1.5982226675653185E-14
	.quad	0xbc5834ac6df8a5d9              ## double -5.2487866627945701E-18

	.p2align	4                               ## @bessel.q1
_bessel.q1:
	.quad	0xc31fbda33ba182b6              ## double -2233558263947437.5
	.quad	0x429cb049be3f8c67              ## double 7885869256675.1005
	.quad	0xc206bcc8882e78ca              ## double -12207067397.808979
	.quad	0x4163caef21dba530              ## double 10377081.058062166
	.quad	0xc0b2f4c18a653933              ## double -4852.7560179962775
	.quad	0x3ff0000000000000              ## double 1

	.p2align	4                               ## @bessel.p2
_bessel.p2:
	.quad	0xbf2d1c86ffa1268e              ## double -2.2210262233306573E-4
	.quad	0x3f8ac313ab94d944              ## double 0.013067392038106924
	.quad	0xbfdc9bc7aeb177d8              ## double -0.44700805721174453
	.quad	0x40164512182a0319              ## double 5.567451837124076
	.quad	0xc037849816897026              ## double -23.517945679239482
	.quad	0x403f9c7fa6f99eb1              ## double 31.611322818701129
	.quad	0xc02337cf22cd75c0              ## double -9.6090021968656174

	.p2align	4                               ## @bessel.q2
_bessel.q2:
	.quad	0xbf4216093761a9a1              ## double -5.5194330231005475E-4
	.quad	0x3fa0aa178175aea7              ## double 0.032547697594819618
	.quad	0xbff1d7c2b44d9e48              ## double -1.1151759188741313
	.quad	0x402bf716bcfc57ba              ## double 13.982595353892851
	.quad	0xc04e1d2f2bf60aa2              ## double -60.228002066743343
	.quad	0x405562883454d27b              ## double 85.539563258012933
	.quad	0xc03f725a4b3b25ef              ## double -31.446690275135492
	.quad	0x3ff0000000000000              ## double 1

	.no_dead_strip	_bessel
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function bessel
_bessel:                                ; @bessel
	.cfi_startproc
; %bb.0:
	stp	d11, d10, [sp, #-64]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 64
	stp	d9, d8, [sp, #16]               ; 16-byte Folded Spill
	stp	x20, x19, [sp, #32]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #48]             ; 16-byte Folded Spill
	add	x29, sp, #48
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset b8, -40
	.cfi_offset b9, -48
	.cfi_offset b10, -56
	.cfi_offset b11, -64
	fmov	d1, #1.00000000
	fcmp	d0, #0.0
	b.eq	LBB0_4
; %bb.1:
	fabs	d8, d0
	fmov	d1, #15.00000000
	fcmp	d8, d1
	b.ls	LBB0_3
; %bb.2:
	fmov	d0, #1.00000000
	fdiv	d0, d0, d8
	mov	x8, #1229782938247303441
	movk	x8, #49073, lsl #48
	fmov	d1, x8
	fadd	d9, d0, d1
Lloh0:
	adrp	x19, _bessel.p2@PAGE
Lloh1:
	add	x19, x19, _bessel.p2@PAGEOFF
	mov	x0, x19
	bl	_FF_ARRAY_ELEMS
	mov	x1, x0
	mov	x0, x19
	fmov	d0, d9
	bl	_eval_poly
	fmov	d10, d0
Lloh2:
	adrp	x19, _bessel.q2@PAGE
Lloh3:
	add	x19, x19, _bessel.q2@PAGEOFF
	mov	x0, x19
	bl	_FF_ARRAY_ELEMS
	mov	x1, x0
	mov	x0, x19
	fmov	d0, d9
	bl	_eval_poly
	fdiv	d9, d10, d0
	fmov	d0, d8
	bl	_exp
	fsqrt	d1, d8
	fdiv	d0, d0, d1
	fmul	d1, d0, d9
	b	LBB0_4
LBB0_3:
	fmul	d8, d0, d0
Lloh4:
	adrp	x19, _bessel.p1@PAGE
Lloh5:
	add	x19, x19, _bessel.p1@PAGEOFF
	mov	x0, x19
	bl	_FF_ARRAY_ELEMS
	mov	x1, x0
	mov	x0, x19
	fmov	d0, d8
	bl	_eval_poly
	fmov	d9, d0
Lloh6:
	adrp	x19, _bessel.q1@PAGE
Lloh7:
	add	x19, x19, _bessel.q1@PAGEOFF
	mov	x0, x19
	bl	_FF_ARRAY_ELEMS
	mov	x1, x0
	mov	x0, x19
	fmov	d0, d8
	bl	_eval_poly
	fdiv	d1, d9, d0
LBB0_4:
	fmov	d0, d1
	ldp	x29, x30, [sp, #48]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #32]             ; 16-byte Folded Reload
	ldp	d9, d8, [sp, #16]               ; 16-byte Folded Reload
	ldp	d11, d10, [sp], #64             ; 16-byte Folded Reload
	ret
	.loh AdrpAdd	Lloh2, Lloh3
	.loh AdrpAdd	Lloh0, Lloh1
	.loh AdrpAdd	Lloh6, Lloh7
	.loh AdrpAdd	Lloh4, Lloh5
	.cfi_endproc
                                        ; -- End function
	.section	__TEXT,__const
	.p2align	3                               ; @bessel.p1
_bessel.p1:
	.quad	0xc31fbda33ba182b6              ; double -2233558263947437.5
	.quad	0xc2ff4ae214a88484              ; double -550503696730184.25
	.quad	0xc2bdf57638ce8fc0              ; double -32940087627407.75
	.quad	0xc268b769c1eee488              ; double -849251012471.1416
	.quad	0xc2063070a3c7e1c4              ; double -11912746104.985237
	.quad	0xc1989698ac597a18              ; double -103130667.08737981
	.quad	0xc1222c008538bc2b              ; double -595456.26019847894
	.quad	0xc0a2d90a0762eece              ; double -2412.5195876041898
	.quad	0xc01c5fc79279e70c              ; double -7.0935347449210546
	.quad	0xbf8fa655c9abb197              ; double -0.01545397779178685
	.quad	0xbefa653af846d843              ; double -2.5172644670688976E-5
	.quad	0xbe60624173575d24              ; double -3.051722645045107E-8
	.quad	0xbdbd83c251e3fb89              ; double -2.6843448573468484E-11
	.quad	0xbd11fe902e4c85f5              ; double -1.5982226675653185E-14
	.quad	0xbc5834ac6df8a5d9              ; double -5.2487866627945701E-18

	.p2align	3                               ; @bessel.q1
_bessel.q1:
	.quad	0xc31fbda33ba182b6              ; double -2233558263947437.5
	.quad	0x429cb049be3f8c67              ; double 7885869256675.1005
	.quad	0xc206bcc8882e78ca              ; double -12207067397.808979
	.quad	0x4163caef21dba530              ; double 10377081.058062166
	.quad	0xc0b2f4c18a653933              ; double -4852.7560179962775
	.quad	0x3ff0000000000000              ; double 1

	.p2align	3                               ; @bessel.p2
_bessel.p2:
	.quad	0xbf2d1c86ffa1268e              ; double -2.2210262233306573E-4
	.quad	0x3f8ac313ab94d944              ; double 0.013067392038106924
	.quad	0xbfdc9bc7aeb177d8              ; double -0.44700805721174453
	.quad	0x40164512182a0319              ; double 5.567451837124076
	.quad	0xc037849816897026              ; double -23.517945679239482
	.quad	0x403f9c7fa6f99eb1              ; double 31.611322818701129
	.quad	0xc02337cf22cd75c0              ; double -9.6090021968656174

	.p2align	3                               ; @bessel.q2
_bessel.q2:
	.quad	0xbf4216093761a9a1              ; double -5.5194330231005475E-4
	.quad	0x3fa0aa178175aea7              ; double 0.032547697594819618
	.quad	0xbff1d7c2b44d9e48              ; double -1.1151759188741313
	.quad	0x402bf716bcfc57ba              ; double 13.982595353892851
	.quad	0xc04e1d2f2bf60aa2              ; double -60.228002066743343
	.quad	0x405562883454d27b              ; double 85.539563258012933
	.quad	0xc03f725a4b3b25ef              ; double -31.446690275135492
	.quad	0x3ff0000000000000              ; double 1

	.no_dead_strip	_bessel
.subsections_via_symbols
