	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ## -- Begin function factorial
LCPI0_0:
	.long	1                               ## 0x1
	.long	1                               ## 0x1
	.long	1                               ## 0x1
	.long	1                               ## 0x1
LCPI0_1:
	.long	2                               ## 0x2
	.long	3                               ## 0x3
	.long	4                               ## 0x4
	.long	5                               ## 0x5
LCPI0_2:
	.long	4                               ## 0x4
	.long	4                               ## 0x4
	.long	4                               ## 0x4
	.long	4                               ## 0x4
LCPI0_3:
	.long	8                               ## 0x8
	.long	8                               ## 0x8
	.long	8                               ## 0x8
	.long	8                               ## 0x8
LCPI0_4:
	.long	12                              ## 0xc
	.long	12                              ## 0xc
	.long	12                              ## 0xc
	.long	12                              ## 0xc
LCPI0_5:
	.long	16                              ## 0x10
	.long	16                              ## 0x10
	.long	16                              ## 0x10
	.long	16                              ## 0x10
LCPI0_6:
	.long	20                              ## 0x14
	.long	20                              ## 0x14
	.long	20                              ## 0x14
	.long	20                              ## 0x14
LCPI0_7:
	.long	24                              ## 0x18
	.long	24                              ## 0x18
	.long	24                              ## 0x18
	.long	24                              ## 0x18
LCPI0_8:
	.long	28                              ## 0x1c
	.long	28                              ## 0x1c
	.long	28                              ## 0x1c
	.long	28                              ## 0x1c
LCPI0_9:
	.long	32                              ## 0x20
	.long	32                              ## 0x20
	.long	32                              ## 0x20
	.long	32                              ## 0x20
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	4, 0x90
_factorial:                             ## @factorial
	.cfi_startproc
## %bb.0:
                                        ## kill: def $edi killed $edi def $rdi
	movl	$1, %eax
	cmpl	$2, %edi
	jb	LBB0_14
## %bb.1:
	leal	-1(%rdi), %r8d
	cmpl	$8, %r8d
	jae	LBB0_3
## %bb.2:
	movl	$1, %eax
	movl	$2, %ecx
	jmp	LBB0_12
LBB0_3:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	movl	%r8d, %ecx
	andl	$-8, %ecx
	leal	-8(%rcx), %edx
	movl	%edx, %esi
	shrl	$3, %esi
	incl	%esi
	movl	%esi, %eax
	andl	$3, %eax
	cmpl	$24, %edx
	jae	LBB0_5
## %bb.4:
	movdqa	LCPI0_0(%rip), %xmm1            ## xmm1 = [1,1,1,1]
	movdqa	LCPI0_1(%rip), %xmm6            ## xmm6 = [2,3,4,5]
	movdqa	%xmm1, %xmm2
	jmp	LBB0_7
LBB0_5:
	andl	$-4, %esi
	movdqa	LCPI0_0(%rip), %xmm1            ## xmm1 = [1,1,1,1]
	movdqa	LCPI0_1(%rip), %xmm6            ## xmm6 = [2,3,4,5]
	movdqa	LCPI0_2(%rip), %xmm8            ## xmm8 = [4,4,4,4]
	movdqa	LCPI0_3(%rip), %xmm9            ## xmm9 = [8,8,8,8]
	movdqa	LCPI0_4(%rip), %xmm10           ## xmm10 = [12,12,12,12]
	movdqa	LCPI0_5(%rip), %xmm11           ## xmm11 = [16,16,16,16]
	movdqa	LCPI0_6(%rip), %xmm12           ## xmm12 = [20,20,20,20]
	movdqa	LCPI0_7(%rip), %xmm13           ## xmm13 = [24,24,24,24]
	movdqa	LCPI0_8(%rip), %xmm4            ## xmm4 = [28,28,28,28]
	movdqa	LCPI0_9(%rip), %xmm5            ## xmm5 = [32,32,32,32]
	movdqa	%xmm1, %xmm2
	.p2align	4, 0x90
LBB0_6:                                 ## =>This Inner Loop Header: Depth=1
	movdqa	%xmm6, %xmm3
	paddd	%xmm8, %xmm3
	pmulld	%xmm2, %xmm3
	pmulld	%xmm6, %xmm1
	movdqa	%xmm6, %xmm2
	paddd	%xmm9, %xmm2
	pmulld	%xmm1, %xmm2
	movdqa	%xmm6, %xmm1
	paddd	%xmm10, %xmm1
	movdqa	%xmm6, %xmm7
	paddd	%xmm11, %xmm7
	movdqa	%xmm6, %xmm0
	paddd	%xmm12, %xmm0
	pmulld	%xmm1, %xmm0
	pmulld	%xmm3, %xmm0
	movdqa	%xmm6, %xmm1
	paddd	%xmm13, %xmm1
	pmulld	%xmm7, %xmm1
	pmulld	%xmm2, %xmm1
	movdqa	%xmm6, %xmm2
	paddd	%xmm4, %xmm2
	pmulld	%xmm0, %xmm2
	paddd	%xmm5, %xmm6
	addl	$-4, %esi
	jne	LBB0_6
LBB0_7:
	testl	%eax, %eax
	je	LBB0_10
## %bb.8:
	movdqa	LCPI0_2(%rip), %xmm3            ## xmm3 = [4,4,4,4]
	movdqa	LCPI0_3(%rip), %xmm4            ## xmm4 = [8,8,8,8]
	.p2align	4, 0x90
LBB0_9:                                 ## =>This Inner Loop Header: Depth=1
	movdqa	%xmm6, %xmm0
	paddd	%xmm3, %xmm0
	pmulld	%xmm0, %xmm2
	pmulld	%xmm6, %xmm1
	paddd	%xmm4, %xmm6
	decl	%eax
	jne	LBB0_9
LBB0_10:
	pmulld	%xmm2, %xmm1
	pshufd	$238, %xmm1, %xmm0              ## xmm0 = xmm1[2,3,2,3]
	pmulld	%xmm1, %xmm0
	pshufd	$85, %xmm0, %xmm1               ## xmm1 = xmm0[1,1,1,1]
	pmulld	%xmm0, %xmm1
	movd	%xmm1, %eax
	cmpl	%ecx, %r8d
	popq	%rbp
	je	LBB0_14
## %bb.11:
	orl	$2, %ecx
LBB0_12:
	incl	%edi
	.p2align	4, 0x90
LBB0_13:                                ## =>This Inner Loop Header: Depth=1
	imull	%ecx, %eax
	incl	%ecx
	cmpl	%ecx, %edi
	jne	LBB0_13
LBB0_14:
	retq
	.cfi_endproc
                                        ## -- End function
	.no_dead_strip	_factorial
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ; -- Begin function factorial
lCPI0_0:
	.long	2                               ; 0x2
	.long	3                               ; 0x3
	.long	4                               ; 0x4
	.long	5                               ; 0x5
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	2
_factorial:                             ; @factorial
	.cfi_startproc
; %bb.0:
	cmp	w0, #2
	b.hs	LBB0_2
; %bb.1:
	mov	w0, #1
	ret
LBB0_2:
	sub	w10, w0, #1
	cmp	w10, #16
	b.hs	LBB0_4
; %bb.3:
	mov	w8, #1
	mov	w9, #2
	b	LBB0_7
LBB0_4:
	and	w11, w10, #0xfffffff0
	movi.4s	v0, #1
	movi.4s	v1, #4
Lloh0:
	adrp	x8, lCPI0_0@PAGE
Lloh1:
	ldr	q2, [x8, lCPI0_0@PAGEOFF]
	orr	w9, w11, #0x2
	movi.4s	v3, #8
	movi.4s	v4, #12
	movi.4s	v5, #16
	mov	x8, x11
	movi.4s	v6, #1
	movi.4s	v7, #1
	movi.4s	v16, #1
LBB0_5:                                 ; =>This Inner Loop Header: Depth=1
	add.4s	v17, v2, v1
	add.4s	v18, v2, v3
	add.4s	v19, v2, v4
	mul.4s	v0, v2, v0
	mul.4s	v6, v17, v6
	mul.4s	v7, v18, v7
	mul.4s	v16, v19, v16
	add.4s	v2, v2, v5
	subs	w8, w8, #16
	b.ne	LBB0_5
; %bb.6:
	mul.4s	v0, v6, v0
	mul.4s	v0, v7, v0
	mul.4s	v0, v16, v0
	ext.16b	v1, v0, v0, #8
	mul.2s	v0, v0, v1
	fmov	w8, s0
	mov.s	w12, v0[1]
	mul	w8, w8, w12
	cmp	w10, w11
	b.eq	LBB0_9
LBB0_7:
	add	w10, w0, #1
LBB0_8:                                 ; =>This Inner Loop Header: Depth=1
	mul	w8, w9, w8
	add	w9, w9, #1
	cmp	w10, w9
	b.ne	LBB0_8
LBB0_9:
	mov	x0, x8
	ret
	.loh AdrpLdr	Lloh0, Lloh1
	.cfi_endproc
                                        ; -- End function
	.no_dead_strip	_factorial
.subsections_via_symbols
