	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ## -- Begin function powil
LCPI0_0:
	.quad	0xb504f333f9de6433              ## x86_fp80 -0.70710678118654751999
	.short	0xbffe
	.space	6
LCPI0_1:
	.quad	0xb504f333f9de6433              ## x86_fp80 0.70710678118654751999
	.short	0x3ffe
	.space	6
LCPI0_2:
	.quad	0xba827999fcef3161              ## x86_fp80 2.91421356237309499997
	.short	0x4000
	.space	6
	.section	__TEXT,__literal4,4byte_literals
	.p2align	2
LCPI0_3:
	.long	0xbf000000                      ## float -0.5
LCPI0_4:
	.long	0x40000000                      ## float 2
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	4, 0x90
_powil:                                 ## @powil
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r14
	pushq	%rbx
	subq	$80, %rsp
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	movl	%edi, %ebx
	fldt	16(%rbp)
	fldz
	fxch	%st(1)
	fucomi	%st(1), %st
	jne	LBB0_3
	jp	LBB0_3
## %bb.1:
	fstp	%st(0)
	fld1
	testl	%ebx, %ebx
	fldz
	je	LBB0_22
## %bb.2:
	fstp	%st(0)
	fstp	%st(0)
	sets	%al
	movq	_LDBL_MAX@GOTPCREL(%rip), %rcx
	fldt	(%rcx)
	testb	%al, %al
	fxch	%st(1)
LBB0_20:
	fcmovne	%st(1), %st
	fstp	%st(1)
	jmp	LBB0_21
LBB0_3:
	fld1
	testl	%ebx, %ebx
	fxch	%st(1)
	je	LBB0_22
## %bb.4:
	fstp	%st(1)
	fxch	%st(1)
	fstpt	-68(%rbp)                       ## 10-byte Folded Spill
	fld	%st(0)
	fchs
	fucomi	%st(1), %st
	fld	%st(1)
	fstpt	-56(%rbp)                       ## 10-byte Folded Spill
	fxch	%st(1)
	fcmovnbe	%st(1), %st
	fstp	%st(1)
	movl	%ebx, %r14d
	negl	%r14d
	cmovsl	%ebx, %r14d
	fld	%st(0)
	fstpt	-44(%rbp)                       ## 10-byte Folded Spill
	fstpt	(%rsp)
	leaq	-32(%rbp), %rdi
	callq	_frexpl
	movl	-32(%rbp), %eax
	leal	-1(%rax), %ecx
	imull	%r14d, %ecx
	testl	%ecx, %ecx
	je	LBB0_6
## %bb.5:
	leal	-65(%rcx), %edx
	cmpl	$-130, %edx
	jbe	LBB0_6
## %bb.7:
	fstp	%st(0)
	movq	_LOGE2L@GOTPCREL(%rip), %rax
	fldt	(%rax)
	movl	%ecx, -28(%rbp)
	fimull	-28(%rbp)
	jmp	LBB0_8
LBB0_6:
	fldt	LCPI0_0(%rip)
	fadd	%st(1), %st
	fldt	LCPI0_1(%rip)
	faddp	%st, %st(2)
	fdivp	%st, %st(1)
	fldt	LCPI0_2(%rip)
	fmulp	%st, %st(1)
	fadds	LCPI0_3(%rip)
	movl	%eax, -20(%rbp)
	fiaddl	-20(%rbp)
	movl	%ebx, -24(%rbp)
	fimull	-24(%rbp)
	movq	_LOGE2L@GOTPCREL(%rip), %rax
	fldt	(%rax)
	fmulp	%st, %st(1)
LBB0_8:
	fldt	-44(%rbp)                       ## 10-byte Folded Reload
	movq	_MAXLOGL@GOTPCREL(%rip), %rax
	fldt	(%rax)
	fxch	%st(2)
	fucomi	%st(2), %st
	jbe	LBB0_11
## %bb.9:
	fstp	%st(0)
	fstp	%st(1)
	fstp	%st(0)
	movq	_huge@GOTPCREL(%rip), %rax
	jmp	LBB0_10
LBB0_11:
	movq	_MINLOGL@GOTPCREL(%rip), %rax
	fldt	(%rax)
	fucompi	%st(1), %st
	jbe	LBB0_13
## %bb.12:
	fstp	%st(0)
	fstp	%st(1)
	fstp	%st(0)
	movq	_twom10000@GOTPCREL(%rip), %rax
LBB0_10:
	fldt	(%rax)
	fmul	%st, %st(0)
LBB0_21:
	fldz
	fldz
	fxch	%st(1)
	fxch	%st(2)
	fxch	%st(1)
LBB0_22:
	fstp	%st(2)
	fstp	%st(1)
	addq	$80, %rsp
	popq	%rbx
	popq	%r14
	popq	%rbp
	retq
LBB0_13:
	fxch	%st(2)
	fsubrs	LCPI0_4(%rip)
	fucomi	%st(2), %st
	jbe	LBB0_15
## %bb.14:
	fld1
	fdivp	%st, %st(2)
LBB0_15:
	testb	$1, %r14b
	fld1
	fld	%st(2)
	fcmove	%st(1), %st
	cmpl	$2, %r14d
	jae	LBB0_17
## %bb.16:
	fstp	%st(3)
	fldz
	jmp	LBB0_19
LBB0_17:
	movl	%r14d, %eax
	movl	%r14d, %ecx
	fxch	%st(3)
	.p2align	4, 0x90
LBB0_18:                                ## =>This Inner Loop Header: Depth=1
	shrl	%ecx
	fmul	%st, %st(0)
	testb	$2, %al
	fld	%st(0)
	fcmove	%st(2), %st
	fmulp	%st, %st(4)
	cmpl	$3, %eax
	movl	%ecx, %eax
	ja	LBB0_18
LBB0_19:
	fstp	%st(0)
	fldt	-68(%rbp)                       ## 10-byte Folded Reload
	fldt	-56(%rbp)                       ## 10-byte Folded Reload
	fxch	%st(1)
	fucompi	%st(1), %st
	fstp	%st(0)
	fld	%st(2)
	fchs
	fld	%st(3)
	fcmovnbe	%st(1), %st
	fstp	%st(1)
	testb	$1, %r14b
	fcmove	%st(3), %st
	fstp	%st(3)
	xorl	%eax, %eax
	xorl	%ecx, %ecx
	testl	%ebx, %ebx
	sets	%al
	setns	%cl
	fxch	%st(1)
	fucompi	%st(3), %st
	fstp	%st(2)
	cmoval	%ecx, %eax
	fdivr	%st, %st(1)
	testb	%al, %al
	jmp	LBB0_20
	.cfi_endproc
                                        ## -- End function
	.comm	_LDBL_MAX,16,4                  ## @LDBL_MAX
	.comm	_LOGE2L,16,4                    ## @LOGE2L
	.comm	_MAXLOGL,16,4                   ## @MAXLOGL
	.comm	_huge,16,4                      ## @huge
	.comm	_MINLOGL,16,4                   ## @MINLOGL
	.comm	_twom10000,16,4                 ## @twom10000
	.no_dead_strip	_powil
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function powil
_powil:                                 ; @powil
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #64
	.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
	mov	x19, x0
	fcmp	d0, #0.0
	b.ne	LBB0_3
; %bb.1:
	cbz	w19, LBB0_7
; %bb.2:
Lloh0:
	adrp	x8, _LDBL_MAX@GOTPAGE
Lloh1:
	ldr	x8, [x8, _LDBL_MAX@GOTPAGEOFF]
Lloh2:
	ldr	d0, [x8]
	cmp	w19, #0
	movi	d1, #0000000000000000
	fcsel	d0, d0, d1, lt
	b	LBB0_18
LBB0_3:
	cbz	w19, LBB0_7
; %bb.4:
	fmov	d8, d0
	fneg	d0, d0
	fcmp	d8, #0.0
	fcsel	d9, d0, d8, mi
	cmp	w19, #0
	cneg	w20, w19, mi
	add	x0, sp, #12
	fmov	d0, d9
	bl	_frexpl
	ldr	w8, [sp, #12]
	sub	w9, w8, #1
	mul	w9, w9, w20
	cbz	w9, LBB0_8
; %bb.5:
	sub	w10, w9, #65
	cmn	w10, #130
	b.ls	LBB0_8
; %bb.6:
Lloh3:
	adrp	x8, _LOGE2L@GOTPAGE
Lloh4:
	ldr	x8, [x8, _LOGE2L@GOTPAGEOFF]
Lloh5:
	ldr	d0, [x8]
	scvtf	d1, w9
	b	LBB0_9
LBB0_7:
	fmov	d0, #1.00000000
	b	LBB0_18
LBB0_8:
	mov	x9, #15309
	movk	x9, #26239, lsl #16
	movk	x9, #41118, lsl #32
	movk	x9, #49126, lsl #48
	fmov	d1, x9
	fadd	d1, d0, d1
	mov	x9, #15309
	movk	x9, #26239, lsl #16
	movk	x9, #41118, lsl #32
	movk	x9, #16358, lsl #48
	fmov	d2, x9
	fadd	d0, d0, d2
	fdiv	d0, d1, d0
	mov	x9, #40422
	movk	x9, #13119, lsl #16
	movk	x9, #20559, lsl #32
	movk	x9, #16391, lsl #48
	fmov	d1, x9
	fmov	d2, #-0.50000000
	fmadd	d0, d0, d1, d2
	scvtf	d1, w8
	scvtf	d2, w19
	fadd	d0, d0, d1
	fmul	d0, d0, d2
Lloh6:
	adrp	x8, _LOGE2L@GOTPAGE
Lloh7:
	ldr	x8, [x8, _LOGE2L@GOTPAGEOFF]
Lloh8:
	ldr	d1, [x8]
LBB0_9:
	fmul	d0, d0, d1
Lloh9:
	adrp	x8, _MAXLOGL@GOTPAGE
Lloh10:
	ldr	x8, [x8, _MAXLOGL@GOTPAGEOFF]
Lloh11:
	ldr	d1, [x8]
	fcmp	d0, d1
	b.le	LBB0_11
; %bb.10:
Lloh12:
	adrp	x8, _huge@GOTPAGE
Lloh13:
	ldr	x8, [x8, _huge@GOTPAGEOFF]
	b	LBB0_13
LBB0_11:
Lloh14:
	adrp	x8, _MINLOGL@GOTPAGE
Lloh15:
	ldr	x8, [x8, _MINLOGL@GOTPAGEOFF]
Lloh16:
	ldr	d2, [x8]
	fcmp	d0, d2
	b.pl	LBB0_14
; %bb.12:
Lloh17:
	adrp	x8, _twom10000@GOTPAGE
Lloh18:
	ldr	x8, [x8, _twom10000@GOTPAGEOFF]
LBB0_13:
	ldr	d0, [x8]
	fmul	d0, d0, d0
	b	LBB0_18
LBB0_14:
	fmov	d2, #2.00000000
	fsub	d2, d2, d1
	fmov	d1, #1.00000000
	fdiv	d3, d1, d9
	fcmp	d0, d2
	fcsel	d4, d3, d9, mi
	tst	w20, #0x1
	fcsel	d3, d1, d4, eq
	cmp	w20, #2
	b.lo	LBB0_17
; %bb.15:
	mov	x8, x20
LBB0_16:                                ; =>This Inner Loop Header: Depth=1
	tst	w8, #0x2
	lsr	w9, w8, #1
	fmul	d4, d4, d4
	fcsel	d5, d1, d4, eq
	fmul	d3, d3, d5
	cmp	w8, #3
	mov	x8, x9
	b.hi	LBB0_16
LBB0_17:
	and	w8, w20, #0x1
	fcmp	d8, #0.0
	ccmp	w8, #0, #4, mi
	fneg	d4, d3
	fcsel	d3, d3, d4, eq
	cmp	w19, #0
	cset	w8, lt
	cset	w9, ge
	fcmp	d0, d2
	csel	w8, w9, w8, mi
	fdiv	d0, d1, d3
	cmp	w8, #0
	fcsel	d0, d0, d3, ne
LBB0_18:
	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
	add	sp, sp, #64
	ret
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGot	Lloh12, Lloh13
	.loh AdrpLdrGotLdr	Lloh14, Lloh15, Lloh16
	.loh AdrpLdrGot	Lloh17, Lloh18
	.cfi_endproc
                                        ; -- End function
	.comm	_LDBL_MAX,8,3                   ; @LDBL_MAX
	.comm	_LOGE2L,8,3                     ; @LOGE2L
	.comm	_MAXLOGL,8,3                    ; @MAXLOGL
	.comm	_huge,8,3                       ; @huge
	.comm	_MINLOGL,8,3                    ; @MINLOGL
	.comm	_twom10000,8,3                  ; @twom10000
	.no_dead_strip	_powil
.subsections_via_symbols
