	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ## -- Begin function png_setup_paeth_row
LCPI0_0:
	.byte	255                             ## 0xff
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	255                             ## 0xff
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
LCPI0_1:
	.long	128                             ## 0x80
	.long	128                             ## 0x80
	.space	4
	.space	4
LCPI0_2:
	.long	256                             ## 0x100
	.long	256                             ## 0x100
	.space	4
	.space	4
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	4, 0x90
_png_setup_paeth_row:                   ## @png_setup_paeth_row
	.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
	movq	%rcx, -64(%rbp)                 ## 8-byte Spill
	movq	%rdx, -48(%rbp)                 ## 8-byte Spill
	movq	_PNG_FILTER_VALUE_PAETH@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movq	16(%rdi), %r15
	movl	%eax, (%r15)
	movq	(%rdi), %r12
	movq	8(%rdi), %rbx
	leaq	4(%r15), %r10
	leaq	4(%r12), %r8
	leaq	4(%rbx), %rdx
	testq	%rsi, %rsi
	je	LBB0_1
## %bb.2:
	cmpq	$4, %rsi
	jae	LBB0_4
## %bb.3:
	xorl	%eax, %eax
	jmp	LBB0_5
LBB0_1:
	xorl	%eax, %eax
	movq	%r8, %r12
	movq	%rdx, %r11
	jmp	LBB0_16
LBB0_4:
	leaq	4(%r15), %rdi
	movq	%rdi, %rcx
	subq	%rbx, %rcx
	addq	$-4, %rcx
	xorl	%eax, %eax
	cmpq	$16, %rcx
	jb	LBB0_5
## %bb.6:
	subq	%r12, %rdi
	addq	$-4, %rdi
	cmpq	$16, %rdi
	jb	LBB0_5
## %bb.7:
	movq	%rsi, %r14
	andq	$-4, %r14
	leaq	(%rdx,%r14,4), %r11
	leaq	(%r8,%r14,4), %rcx
	leaq	(%r10,%r14,4), %r10
	pxor	%xmm2, %xmm2
	xorl	%eax, %eax
	movdqa	LCPI0_0(%rip), %xmm8            ## xmm8 = [255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0]
	movdqa	LCPI0_1(%rip), %xmm9            ## xmm9 = <128,128,u,u>
	movdqa	LCPI0_2(%rip), %xmm10           ## xmm10 = <256,256,u,u>
	pxor	%xmm3, %xmm3
	.p2align	4, 0x90
LBB0_8:                                 ## =>This Inner Loop Header: Depth=1
	movq	4(%rbx,%rax,4), %xmm4           ## xmm4 = mem[0],zero
	movq	12(%rbx,%rax,4), %xmm7          ## xmm7 = mem[0],zero
	movq	4(%r12,%rax,4), %xmm0           ## xmm0 = mem[0],zero
	psubd	%xmm0, %xmm4
	movq	12(%r12,%rax,4), %xmm0          ## xmm0 = mem[0],zero
	psubd	%xmm0, %xmm7
	pand	%xmm8, %xmm4
	pand	%xmm8, %xmm7
	movdqa	%xmm4, %xmm0
	punpcklqdq	%xmm7, %xmm0            ## xmm0 = xmm0[0],xmm7[0]
	movdqu	%xmm0, 4(%r15,%rax,4)
	movdqa	%xmm4, %xmm0
	pmaxud	%xmm9, %xmm0
	pcmpeqd	%xmm4, %xmm0
	movdqa	%xmm7, %xmm1
	pmaxud	%xmm9, %xmm1
	pcmpeqd	%xmm7, %xmm1
	movdqa	%xmm10, %xmm6
	psubd	%xmm4, %xmm6
	movdqa	%xmm10, %xmm5
	psubd	%xmm7, %xmm5
	blendvps	%xmm0, %xmm6, %xmm4
	movdqa	%xmm1, %xmm0
	blendvps	%xmm0, %xmm5, %xmm7
	pmovzxdq	%xmm4, %xmm0                    ## xmm0 = xmm4[0],zero,xmm4[1],zero
	paddq	%xmm0, %xmm2
	pmovzxdq	%xmm7, %xmm0                    ## xmm0 = xmm7[0],zero,xmm7[1],zero
	paddq	%xmm0, %xmm3
	addq	$4, %rax
	cmpq	%rax, %r14
	jne	LBB0_8
## %bb.9:
	paddq	%xmm2, %xmm3
	pshufd	$238, %xmm3, %xmm0              ## xmm0 = xmm3[2,3,2,3]
	paddq	%xmm3, %xmm0
	movq	%xmm0, %rax
	cmpq	%rsi, %r14
	movq	%rcx, %r12
	jne	LBB0_10
	jmp	LBB0_16
LBB0_5:
	movq	%rdx, %r11
	movq	%r8, %r12
	xorl	%r14d, %r14d
LBB0_10:
	movq	%r14, %rbx
	notq	%rbx
	testb	$1, %sil
	je	LBB0_12
## %bb.11:
	movl	(%r11), %ecx
	subl	(%r12), %ecx
	movzbl	%cl, %ecx
	movl	%ecx, (%r10)
	movl	$256, %edi                      ## imm = 0x100
	subl	%ecx, %edi
	cmpl	$128, %ecx
	cmovbl	%ecx, %edi
	addq	%rdi, %rax
	orq	$1, %r14
	addq	$4, %r10
	addq	$4, %r12
	addq	$4, %r11
LBB0_12:
	addq	%rsi, %rbx
	je	LBB0_16
## %bb.13:
	movq	%rdx, %r9
	movq	%rsi, %r15
	subq	%r14, %r15
	xorl	%edi, %edi
	xorl	%ebx, %ebx
	.p2align	4, 0x90
LBB0_14:                                ## =>This Inner Loop Header: Depth=1
	movl	(%r11,%rdi,4), %ecx
	subl	(%r12,%rdi,4), %ecx
	movzbl	%cl, %ecx
	movl	$256, %edx                      ## imm = 0x100
	subl	%ecx, %edx
	cmpl	$128, %ecx
	cmovbl	%ecx, %edx
	movl	%ecx, (%r10,%rdi,4)
	movl	4(%r11,%rdi,4), %ecx
	subl	4(%r12,%rdi,4), %ecx
	addq	%rax, %rdx
	movzbl	%cl, %ecx
	movl	%ecx, 4(%r10,%rdi,4)
	movl	$256, %eax                      ## imm = 0x100
	subl	%ecx, %eax
	cmpl	$128, %ecx
	cmovbl	%ecx, %eax
	addq	%rdx, %rax
	addq	$-8, %rbx
	addq	$2, %rdi
	cmpq	%rdi, %r15
	jne	LBB0_14
## %bb.15:
	subq	%rbx, %r11
	subq	%rbx, %r12
	subq	%rbx, %r10
	movq	%r9, %rdx
LBB0_16:
	cmpq	-48(%rbp), %rsi                 ## 8-byte Folded Reload
	jae	LBB0_22
## %bb.17:
	movq	%r11, -56(%rbp)                 ## 8-byte Spill
	movq	%r10, %r11
	incq	%rsi
	xorl	%ebx, %ebx
	.p2align	4, 0x90
LBB0_18:                                ## =>This Inner Loop Header: Depth=1
	movq	%r12, %r13
	movl	(%r12,%rbx,4), %r15d
	movq	%r8, %r9
	movl	(%r8,%rbx,4), %r14d
	movq	%rdx, %r10
	movl	(%rdx,%rbx,4), %r12d
	movl	%r15d, %ecx
	subl	%r14d, %ecx
	movl	%r12d, %edx
	subl	%r14d, %edx
	movl	%ecx, %edi
	negl	%edi
	cmovsl	%ecx, %edi
	movl	%edx, %r8d
	negl	%r8d
	cmovsl	%edx, %r8d
	addl	%ecx, %edx
	movl	%edx, %ecx
	negl	%ecx
	cmovsl	%edx, %ecx
	cmpl	%ecx, %r8d
	ja	LBB0_20
## %bb.19:                              ##   in Loop: Header=BB0_18 Depth=1
	movl	%r15d, %r14d
LBB0_20:                                ##   in Loop: Header=BB0_18 Depth=1
	cmpl	%ecx, %edi
	cmoval	%r14d, %r12d
	cmpl	%r8d, %edi
	cmoval	%r14d, %r12d
	movq	-56(%rbp), %rcx                 ## 8-byte Reload
	movl	(%rcx,%rbx,4), %ecx
	subl	%r12d, %ecx
	movzbl	%cl, %ecx
	movl	%ecx, (%r11,%rbx,4)
	movl	$256, %edx                      ## imm = 0x100
	subl	%ecx, %edx
	cmpl	$128, %ecx
	cmovbl	%ecx, %edx
	addq	%rdx, %rax
	cmpq	-64(%rbp), %rax                 ## 8-byte Folded Reload
	ja	LBB0_22
## %bb.21:                              ##   in Loop: Header=BB0_18 Depth=1
	leaq	(%rsi,%rbx), %rcx
	incq	%rbx
	cmpq	-48(%rbp), %rcx                 ## 8-byte Folded Reload
	movq	%r9, %r8
	movq	%r10, %rdx
	movq	%r13, %r12
	jb	LBB0_18
LBB0_22:
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_PNG_FILTER_VALUE_PAETH,4,2     ## @PNG_FILTER_VALUE_PAETH
	.no_dead_strip	_png_setup_paeth_row
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function png_setup_paeth_row
_png_setup_paeth_row:                   ; @png_setup_paeth_row
	.cfi_startproc
; %bb.0:
Lloh0:
	adrp	x8, _PNG_FILTER_VALUE_PAETH@GOTPAGE
Lloh1:
	ldr	x8, [x8, _PNG_FILTER_VALUE_PAETH@GOTPAGEOFF]
Lloh2:
	ldr	w9, [x8]
	ldr	x14, [x0, #16]
	mov	x8, x14
	str	w9, [x8], #4
	ldp	x16, x15, [x0]
	add	x9, x16, #4
	add	x10, x15, #4
	cbz	x1, LBB0_3
; %bb.1:
	cmp	x1, #8
	b.hs	LBB0_4
; %bb.2:
	mov	x0, #0
	mov	x13, #0
	mov	x11, x10
	mov	x12, x9
	b	LBB0_10
LBB0_3:
	mov	x0, #0
	mov	x12, x9
	mov	x11, x10
	b	LBB0_12
LBB0_4:
	mov	x0, #0
	add	x11, x14, #4
	sub	x12, x11, x15
	sub	x12, x12, #4
	cmp	x12, #32
	b.lo	LBB0_9
; %bb.5:
	sub	x11, x11, x16
	sub	x17, x11, #4
	mov	x11, x10
	mov	x12, x9
	mov	x13, x0
	cmp	x17, #32
	b.lo	LBB0_10
; %bb.6:
	and	x13, x1, #0xfffffffffffffff8
	lsl	x17, x13, #2
	add	x11, x10, x17
	movi.2d	v0, #0000000000000000
	add	x12, x9, x17
	add	x8, x8, x17
	add	x14, x14, #20
	add	x15, x15, #20
	add	x16, x16, #20
	movi	d1, #0x0000ff000000ff
	movi.2s	v2, #128
	movi.2s	v3, #1, lsl #8
	mov	x17, x13
	movi.2d	v4, #0000000000000000
	movi.2d	v5, #0000000000000000
	movi.2d	v6, #0000000000000000
LBB0_7:                                 ; =>This Inner Loop Header: Depth=1
	ldp	d7, d16, [x15, #-16]
	ldp	d17, d18, [x15], #32
	ldp	d19, d20, [x16, #-16]
	ldp	d21, d22, [x16], #32
	sub.2s	v7, v7, v19
	sub.2s	v16, v16, v20
	sub.2s	v17, v17, v21
	sub.2s	v18, v18, v22
	and.8b	v7, v7, v1
	and.8b	v16, v16, v1
	and.8b	v17, v17, v1
	and.8b	v18, v18, v1
	stur	d7, [x14, #-16]
	stur	d16, [x14, #-8]
	str	d17, [x14]
	str	d18, [x14, #8]
	cmhi.2s	v19, v2, v7
	cmhi.2s	v20, v2, v16
	cmhi.2s	v21, v2, v17
	cmhi.2s	v22, v2, v18
	sub.2s	v23, v3, v7
	sub.2s	v24, v3, v16
	sub.2s	v25, v3, v17
	sub.2s	v26, v3, v18
	bif.8b	v7, v23, v19
	bif.8b	v16, v24, v20
	bif.8b	v17, v25, v21
	bif.8b	v18, v26, v22
	uaddw.2d	v0, v0, v7
	uaddw.2d	v4, v4, v16
	uaddw.2d	v5, v5, v17
	uaddw.2d	v6, v6, v18
	add	x14, x14, #32
	subs	x17, x17, #8
	b.ne	LBB0_7
; %bb.8:
	add.2d	v0, v4, v0
	add.2d	v0, v5, v0
	add.2d	v0, v6, v0
	addp.2d	d0, v0
	fmov	x0, d0
	cmp	x13, x1
	b.ne	LBB0_10
	b	LBB0_12
LBB0_9:
	mov	x11, x10
	mov	x12, x9
	mov	x13, x0
LBB0_10:
	sub	x13, x1, x13
	mov	w14, #256
LBB0_11:                                ; =>This Inner Loop Header: Depth=1
	ldr	w15, [x11], #4
	ldr	w16, [x12], #4
	sub	w15, w15, w16
	and	w15, w15, #0xff
	str	w15, [x8], #4
	sub	w16, w14, w15
	cmp	w15, #128
	csel	w15, w15, w16, lo
	add	x0, x0, x15
	subs	x13, x13, #1
	b.ne	LBB0_11
LBB0_12:
	cmp	x1, x2
	b.hs	LBB0_15
; %bb.13:
	add	x13, x1, #1
	mov	w14, #256
LBB0_14:                                ; =>This Inner Loop Header: Depth=1
	ldr	w15, [x12], #4
	ldr	w16, [x9], #4
	ldr	w17, [x10], #4
	subs	w1, w15, w16
	cneg	w4, w1, mi
	sub	w5, w17, w16
	cmp	w5, #0
	cneg	w6, w5, mi
	adds	w1, w5, w1
	cneg	w1, w1, mi
	cmp	w6, w1
	csel	w15, w16, w15, hi
	cmp	w4, w1
	ccmp	w4, w6, #2, ls
	csel	w15, w15, w17, hi
	ldr	w16, [x11], #4
	sub	w15, w16, w15
	and	w15, w15, #0xff
	str	w15, [x8], #4
	sub	w16, w14, w15
	cmp	w15, #128
	csel	w15, w15, w16, lo
	add	x0, x0, x15
	cmp	x0, x3
	ccmp	x13, x2, #2, ls
	add	x13, x13, #1
	b.lo	LBB0_14
LBB0_15:
	ret
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.cfi_endproc
                                        ; -- End function
	.comm	_PNG_FILTER_VALUE_PAETH,4,2     ; @PNG_FILTER_VALUE_PAETH
	.no_dead_strip	_png_setup_paeth_row
.subsections_via_symbols
