	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ## -- Begin function shrink22
LCPI0_0:
	.long	2                               ## 0x2
	.long	2                               ## 0x2
	.long	2                               ## 0x2
	.long	2                               ## 0x2
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	4, 0x90
_shrink22:                              ## @shrink22
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
                                        ## kill: def $r9d killed $r9d def $r9
	testl	%r9d, %r9d
	jle	LBB0_18
## %bb.1:
	movl	%r8d, %r11d
	movq	%rdi, %r8
	movslq	%ecx, %rcx
	leal	(%rcx,%rcx), %eax
	cltq
	movq	%rax, -72(%rbp)                 ## 8-byte Spill
	movslq	%esi, %rax
	movq	%rax, -64(%rbp)                 ## 8-byte Spill
	movq	%rcx, -56(%rbp)                 ## 8-byte Spill
	leaq	(,%rcx,4), %r14
	movdqa	LCPI0_0(%rip), %xmm8            ## xmm8 = [2,2,2,2]
	jmp	LBB0_2
	.p2align	4, 0x90
LBB0_17:                                ##   in Loop: Header=BB0_2 Depth=1
	movq	-72(%rbp), %rax                 ## 8-byte Reload
	leaq	(%rdx,%rax,4), %rdx
	movq	-64(%rbp), %rax                 ## 8-byte Reload
	leaq	(%r8,%rax,4), %r8
	leal	-1(%r9), %eax
	cmpl	$1, %r9d
	movl	%eax, %r9d
	jle	LBB0_18
LBB0_2:                                 ## =>This Loop Header: Depth=1
                                        ##     Child Loop BB0_4 Depth 2
                                        ##     Child Loop BB0_13 Depth 2
                                        ##     Child Loop BB0_16 Depth 2
	movq	%r8, %rsi
	movq	%rdx, %rcx
	movl	%r11d, %ebx
	cmpl	$4, %r11d
	jl	LBB0_3
	.p2align	4, 0x90
LBB0_4:                                 ##   Parent Loop BB0_2 Depth=1
                                        ## =>  This Inner Loop Header: Depth=2
	movl	%ebx, %edi
	movl	(%rcx), %ebx
	movl	4(%rcx,%r14), %eax
	addl	4(%rcx), %ebx
	addl	(%rcx,%r14), %ebx
	addl	%ebx, %eax
	addl	$2, %eax
	sarl	$2, %eax
	movl	%eax, (%rsi)
	movl	8(%rcx), %eax
	addl	12(%rcx), %eax
	movl	12(%rcx,%r14), %ebx
	addl	8(%rcx,%r14), %eax
	addl	%ebx, %eax
	addl	$2, %eax
	sarl	$2, %eax
	movl	%eax, 4(%rsi)
	movl	16(%rcx), %eax
	movl	20(%rcx,%r14), %ebx
	addl	20(%rcx), %eax
	addl	16(%rcx,%r14), %eax
	addl	%ebx, %eax
	addl	$2, %eax
	sarl	$2, %eax
	movl	%eax, 8(%rsi)
	movl	24(%rcx), %eax
	addl	28(%rcx), %eax
	addl	24(%rcx,%r14), %eax
	movl	28(%rcx,%r14), %ebx
	addl	%ebx, %eax
	addl	$2, %eax
	sarl	$2, %eax
	movl	%eax, 12(%rsi)
	addq	$32, %rcx
	addq	$16, %rsi
	leal	-4(%rdi), %ebx
	cmpl	$7, %edi
	ja	LBB0_4
## %bb.5:                               ##   in Loop: Header=BB0_2 Depth=1
	leaq	(%rcx,%r14), %r12
	testl	%ebx, %ebx
	jg	LBB0_7
	jmp	LBB0_17
	.p2align	4, 0x90
LBB0_3:                                 ##   in Loop: Header=BB0_2 Depth=1
	movq	-56(%rbp), %rax                 ## 8-byte Reload
	leaq	(%rdx,%rax,4), %r12
	movl	%r11d, %ebx
	movq	%rdx, %rcx
	movq	%r8, %rsi
	testl	%ebx, %ebx
	jle	LBB0_17
LBB0_7:                                 ##   in Loop: Header=BB0_2 Depth=1
	leal	-1(%rbx), %edi
	cmpl	$7, %edi
	jae	LBB0_9
## %bb.8:                               ##   in Loop: Header=BB0_2 Depth=1
	movq	%rsi, %r15
	movq	%r12, %r13
	movq	%rcx, %r10
	jmp	LBB0_15
	.p2align	4, 0x90
LBB0_9:                                 ##   in Loop: Header=BB0_2 Depth=1
	movq	%r9, -48(%rbp)                  ## 8-byte Spill
	movl	%r11d, %r9d
	leaq	(%rsi,%rdi,4), %rax
	addq	$4, %rax
	leaq	(%r12,%rdi,8), %r10
	addq	$8, %r10
	leaq	(%rcx,%rdi,8), %r11
	addq	$8, %r11
	cmpq	%r10, %rsi
	setb	%r15b
	cmpq	%rax, %r12
	setb	%r13b
	cmpq	%r11, %rsi
	setb	%r11b
	cmpq	%rax, %rcx
	setb	%r10b
	testb	%r13b, %r15b
	jne	LBB0_10
## %bb.11:                              ##   in Loop: Header=BB0_2 Depth=1
	andb	%r10b, %r11b
	jne	LBB0_10
## %bb.12:                              ##   in Loop: Header=BB0_2 Depth=1
	incq	%rdi
	movq	%rdi, %r11
	andq	$-8, %r11
	leaq	(%rsi,%r11,4), %r15
	leaq	(%r12,%r11,8), %r13
	leaq	(%rcx,%r11,8), %r10
	subl	%r11d, %ebx
	xorl	%eax, %eax
	.p2align	4, 0x90
LBB0_13:                                ##   Parent Loop BB0_2 Depth=1
                                        ## =>  This Inner Loop Header: Depth=2
	movdqu	(%rcx,%rax,8), %xmm1
	movdqu	16(%rcx,%rax,8), %xmm2
	phaddd	%xmm2, %xmm1
	movdqu	32(%rcx,%rax,8), %xmm2
	movdqu	48(%rcx,%rax,8), %xmm3
	phaddd	%xmm3, %xmm2
	movups	(%r12,%rax,8), %xmm3
	movups	16(%r12,%rax,8), %xmm4
	movups	32(%r12,%rax,8), %xmm5
	movups	48(%r12,%rax,8), %xmm6
	movaps	%xmm3, %xmm7
	shufps	$136, %xmm4, %xmm7              ## xmm7 = xmm7[0,2],xmm4[0,2]
	movaps	%xmm5, %xmm0
	shufps	$136, %xmm6, %xmm0              ## xmm0 = xmm0[0,2],xmm6[0,2]
	shufps	$221, %xmm4, %xmm3              ## xmm3 = xmm3[1,3],xmm4[1,3]
	paddd	%xmm7, %xmm3
	shufps	$221, %xmm6, %xmm5              ## xmm5 = xmm5[1,3],xmm6[1,3]
	paddd	%xmm0, %xmm5
	paddd	%xmm8, %xmm3
	paddd	%xmm1, %xmm3
	paddd	%xmm8, %xmm5
	paddd	%xmm2, %xmm5
	psrad	$2, %xmm3
	psrad	$2, %xmm5
	movdqu	%xmm3, (%rsi,%rax,4)
	movdqu	%xmm5, 16(%rsi,%rax,4)
	addq	$8, %rax
	cmpq	%rax, %r11
	jne	LBB0_13
## %bb.14:                              ##   in Loop: Header=BB0_2 Depth=1
	cmpq	%r11, %rdi
	movl	%r9d, %r11d
	movq	-48(%rbp), %r9                  ## 8-byte Reload
	je	LBB0_17
	jmp	LBB0_15
LBB0_10:                                ##   in Loop: Header=BB0_2 Depth=1
	movq	%rsi, %r15
	movq	%r12, %r13
	movq	%rcx, %r10
	movl	%r9d, %r11d
	movq	-48(%rbp), %r9                  ## 8-byte Reload
LBB0_15:                                ##   in Loop: Header=BB0_2 Depth=1
	incl	%ebx
	xorl	%eax, %eax
	.p2align	4, 0x90
LBB0_16:                                ##   Parent Loop BB0_2 Depth=1
                                        ## =>  This Inner Loop Header: Depth=2
	movl	(%r10,%rax,2), %ecx
	movl	4(%r13,%rax,2), %esi
	addl	4(%r10,%rax,2), %ecx
	addl	(%r13,%rax,2), %ecx
	addl	%esi, %ecx
	addl	$2, %ecx
	sarl	$2, %ecx
	movl	%ecx, (%r15,%rax)
	addq	$4, %rax
	decl	%ebx
	cmpl	$1, %ebx
	ja	LBB0_16
	jmp	LBB0_17
LBB0_18:
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.no_dead_strip	_shrink22
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function shrink22
_shrink22:                              ; @shrink22
	.cfi_startproc
; %bb.0:
	stp	x20, x19, [sp, #-16]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 16
	.cfi_offset w19, -8
	.cfi_offset w20, -16
                                        ; kill: def $w3 killed $w3 def $x3
                                        ; kill: def $w1 killed $w1 def $x1
	cmp	w5, #1
	b.lt	LBB0_16
; %bb.1:
	sxtw	x8, w3
	sbfiz	x9, x3, #1, #32
	sxtw	x10, w1
	movi.4s	v0, #2
	sbfiz	x11, x3, #2, #32
	b	LBB0_3
LBB0_2:                                 ;   in Loop: Header=BB0_3 Depth=1
	add	x2, x2, x9, lsl #2
	add	x0, x0, x10, lsl #2
	subs	w5, w5, #1
	b.le	LBB0_16
LBB0_3:                                 ; =>This Loop Header: Depth=1
                                        ;     Child Loop BB0_4 Depth 2
                                        ;     Child Loop BB0_11 Depth 2
                                        ;     Child Loop BB0_15 Depth 2
	mov	x17, x0
	mov	x16, x2
	mov	x12, x4
	cmp	w4, #4
	b.lt	LBB0_6
LBB0_4:                                 ;   Parent Loop BB0_3 Depth=1
                                        ; =>  This Inner Loop Header: Depth=2
	mov	x13, x12
	add	x12, x16, x11
	ldp	w14, w15, [x16]
	ldp	w1, w3, [x12]
	add	w14, w14, w15
	add	w14, w14, w1
	add	w14, w14, w3
	add	w14, w14, #2
	asr	w14, w14, #2
	str	w14, [x17]
	ldp	w14, w15, [x16, #8]
	ldp	w1, w3, [x12, #8]
	add	w14, w14, w15
	add	w14, w14, w1
	add	w14, w14, w3
	add	w14, w14, #2
	asr	w14, w14, #2
	str	w14, [x17, #4]
	ldp	w14, w15, [x16, #16]
	ldp	w1, w3, [x12, #16]
	add	w14, w14, w15
	add	w14, w14, w1
	add	w14, w14, w3
	add	w14, w14, #2
	asr	w14, w14, #2
	str	w14, [x17, #8]
	ldp	w14, w15, [x16, #24]
	ldp	w1, w12, [x12, #24]
	add	w14, w14, w15
	add	w14, w14, w1
	add	w12, w14, w12
	add	w12, w12, #2
	asr	w12, w12, #2
	str	w12, [x17, #12]
	add	x16, x16, #32
	add	x17, x17, #16
	sub	w12, w13, #4
	cmp	w13, #7
	b.hi	LBB0_4
; %bb.5:                                ;   in Loop: Header=BB0_3 Depth=1
	add	x6, x16, x11
	subs	w13, w12, #1
	b.ge	LBB0_7
	b	LBB0_2
LBB0_6:                                 ;   in Loop: Header=BB0_3 Depth=1
	mov	x12, x4
	mov	x16, x2
	mov	x17, x0
	add	x6, x2, x8, lsl #2
	subs	w13, w12, #1
	b.lt	LBB0_2
LBB0_7:                                 ;   in Loop: Header=BB0_3 Depth=1
	cmp	w13, #15
	b.lo	LBB0_13
; %bb.8:                                ;   in Loop: Header=BB0_3 Depth=1
	add	x14, x17, w13, uxtw #2
	add	x15, x14, #4
	lsl	x14, x13, #3
	add	x1, x6, x14
	add	x1, x1, #8
	add	x14, x16, x14
	add	x14, x14, #8
	cmp	x17, x14
	ccmp	x16, x15, #2, lo
	cset	w14, lo
	cmp	x6, x15
	ccmp	x17, x1, #2, lo
	b.lo	LBB0_13
; %bb.9:                                ;   in Loop: Header=BB0_3 Depth=1
	tbnz	w14, #0, LBB0_13
; %bb.10:                               ;   in Loop: Header=BB0_3 Depth=1
	add	x1, x13, #1
	and	x3, x1, #0x1fffffff0
	add	x13, x17, x3, lsl #2
	lsl	x15, x3, #3
	add	x14, x6, x15
	add	x15, x16, x15
	sub	w12, w12, w3
	add	x17, x17, #32
	add	x6, x6, #64
	add	x16, x16, #64
	mov	x7, x3
LBB0_11:                                ;   Parent Loop BB0_3 Depth=1
                                        ; =>  This Inner Loop Header: Depth=2
	sub	x19, x16, #64
	ld2.4s	{ v1, v2 }, [x19]
	sub	x19, x16, #32
	ld2.4s	{ v3, v4 }, [x19]
	mov	x19, x16
	ld2.4s	{ v5, v6 }, [x19], #32
	ld2.4s	{ v16, v17 }, [x19]
	sub	x19, x6, #64
	ld2.4s	{ v18, v19 }, [x19]
	sub	x19, x6, #32
	ld2.4s	{ v20, v21 }, [x19]
	mov	x19, x6
	ld2.4s	{ v22, v23 }, [x19], #32
	ld2.4s	{ v24, v25 }, [x19]
	add.4s	v1, v1, v2
	add.4s	v2, v3, v4
	add.4s	v3, v5, v6
	add.4s	v4, v16, v17
	add.4s	v1, v1, v18
	add.4s	v2, v2, v20
	add.4s	v3, v3, v22
	add.4s	v4, v4, v24
	add.4s	v1, v1, v19
	add.4s	v2, v2, v21
	add.4s	v3, v3, v23
	add.4s	v4, v4, v25
	add.4s	v1, v1, v0
	add.4s	v2, v2, v0
	add.4s	v3, v3, v0
	add.4s	v4, v4, v0
	sshr.4s	v1, v1, #2
	sshr.4s	v2, v2, #2
	sshr.4s	v3, v3, #2
	sshr.4s	v4, v4, #2
	stp	q1, q2, [x17, #-32]
	stp	q3, q4, [x17], #64
	add	x6, x6, #128
	add	x16, x16, #128
	subs	x7, x7, #16
	b.ne	LBB0_11
; %bb.12:                               ;   in Loop: Header=BB0_3 Depth=1
	cmp	x1, x3
	b.eq	LBB0_2
	b	LBB0_14
LBB0_13:                                ;   in Loop: Header=BB0_3 Depth=1
	mov	x13, x17
	mov	x14, x6
	mov	x15, x16
LBB0_14:                                ;   in Loop: Header=BB0_3 Depth=1
	add	w12, w12, #1
LBB0_15:                                ;   Parent Loop BB0_3 Depth=1
                                        ; =>  This Inner Loop Header: Depth=2
	ldp	w16, w17, [x15], #8
	ldp	w1, w3, [x14], #8
	add	w16, w16, w17
	add	w16, w16, w1
	add	w16, w16, w3
	add	w16, w16, #2
	asr	w16, w16, #2
	str	w16, [x13], #4
	sub	w12, w12, #1
	cmp	w12, #1
	b.hi	LBB0_15
	b	LBB0_2
LBB0_16:
	ldp	x20, x19, [sp], #16             ; 16-byte Folded Reload
	ret
	.cfi_endproc
                                        ; -- End function
	.no_dead_strip	_shrink22
.subsections_via_symbols
