	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function ssim_4x4x2_core
_ssim_4x4x2_core:                       ## @ssim_4x4x2_core
	.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	%r8, -48(%rbp)                  ## 8-byte Spill
	movq	%rcx, %rax
	movq	%rdx, %r8
	movl	(%rdi), %ecx
	movl	4(%rdi), %r15d
	movl	8(%rdi), %r14d
	movl	12(%rdi), %r10d
	movl	12(%rdx), %r9d
	movl	(%rdx), %r12d
	movl	4(%rdx), %r13d
	movd	%r10d, %xmm0
	pinsrd	$1, %r14d, %xmm0
	pinsrd	$2, %r15d, %xmm0
	pinsrd	$3, %ecx, %xmm0
	leal	(%r12,%r13), %r11d
	imull	%ecx, %r12d
	addl	%r15d, %ecx
	imull	%r15d, %r13d
	movl	8(%rdx), %ebx
	movdqu	(%rdx), %xmm1
	pmulld	%xmm0, %xmm0
	pmulld	%xmm1, %xmm1
	paddd	%xmm0, %xmm1
	addl	%r12d, %r13d
	addl	%r14d, %ecx
	addl	%ebx, %r11d
	imull	%r14d, %ebx
	addl	%r13d, %ebx
	addl	%r10d, %ecx
	addl	%r9d, %r11d
	pshufd	$238, %xmm1, %xmm2              ## xmm2 = xmm1[2,3,2,3]
	paddd	%xmm1, %xmm2
	pshufd	$85, %xmm2, %xmm0               ## xmm0 = xmm2[1,1,1,1]
	paddd	%xmm2, %xmm0
	imull	%r10d, %r9d
	addl	%ebx, %r9d
	movl	(%rdi,%rsi,4), %r15d
	movl	4(%rdi,%rsi,4), %r12d
	addl	%r15d, %ecx
	movl	8(%rdi,%rsi,4), %r14d
	movl	12(%rdi,%rsi,4), %r10d
	movl	(%rdx,%rax,4), %r13d
	addl	%r13d, %r11d
	movd	%r10d, %xmm1
	pinsrd	$1, %r14d, %xmm1
	pinsrd	$2, %r12d, %xmm1
	pinsrd	$3, %r15d, %xmm1
	imull	%r15d, %r13d
	movd	%xmm0, %r15d
	addl	%r9d, %r13d
	movl	4(%rdx,%rax,4), %ebx
	addl	%r12d, %ecx
	addl	%ebx, %r11d
	imull	%r12d, %ebx
	movl	12(%rdx,%rax,4), %r12d
	addl	%r13d, %ebx
	movl	8(%rdx,%rax,4), %r13d
	movdqu	(%rdx,%rax,4), %xmm0
	pmulld	%xmm1, %xmm1
	pmulld	%xmm0, %xmm0
	paddd	%xmm1, %xmm0
	addl	%r14d, %ecx
	addl	%r13d, %r11d
	imull	%r14d, %r13d
	addl	%ebx, %r13d
	addl	%r10d, %ecx
	addl	%r12d, %r11d
	pshufd	$238, %xmm0, %xmm1              ## xmm1 = xmm0[2,3,2,3]
	paddd	%xmm0, %xmm1
	pshufd	$85, %xmm1, %xmm0               ## xmm0 = xmm1[1,1,1,1]
	paddd	%xmm1, %xmm0
	movd	%xmm0, %r9d
	addl	%r15d, %r9d
	imull	%r10d, %r12d
	addl	%r13d, %r12d
	movl	(%rdi,%rsi,8), %r15d
	addl	%r15d, %ecx
	movl	8(%rdi,%rsi,8), %r14d
	movl	12(%rdi,%rsi,8), %r10d
	movl	(%rdx,%rax,8), %ebx
	addl	%ebx, %r11d
	movd	%r10d, %xmm0
	pinsrd	$1, %r14d, %xmm0
	movl	4(%rdi,%rsi,8), %r13d
	pinsrd	$2, %r13d, %xmm0
	pinsrd	$3, %r15d, %xmm0
	imull	%r15d, %ebx
	addl	%r12d, %ebx
	movl	4(%rdx,%rax,8), %r15d
	addl	%r13d, %ecx
	addl	%r15d, %r11d
	imull	%r13d, %r15d
	movl	12(%rdx,%rax,8), %r13d
	addl	%ebx, %r15d
	movl	8(%rdx,%rax,8), %ebx
	movdqu	(%rdx,%rax,8), %xmm1
	movq	%rax, -56(%rbp)                 ## 8-byte Spill
	pmulld	%xmm0, %xmm0
	pmulld	%xmm1, %xmm1
	paddd	%xmm0, %xmm1
	addl	%r14d, %ecx
	addl	%ebx, %r11d
	imull	%r14d, %ebx
	addl	%r15d, %ebx
	addl	%r10d, %ecx
	addl	%r13d, %r11d
	pshufd	$238, %xmm1, %xmm0              ## xmm0 = xmm1[2,3,2,3]
	paddd	%xmm1, %xmm0
	pshufd	$85, %xmm0, %xmm1               ## xmm1 = xmm0[1,1,1,1]
	paddd	%xmm0, %xmm1
	movd	%xmm1, %r14d
	addl	%r9d, %r14d
	imull	%r10d, %r13d
	addl	%ebx, %r13d
	leaq	(,%rsi,4), %rbx
	leaq	(%rbx,%rbx,2), %r9
	leaq	(,%rax,4), %rbx
	leaq	(%rbx,%rbx,2), %r10
	movl	8(%rdi,%r9), %r12d
	movl	12(%rdi,%r9), %r15d
	movd	%r15d, %xmm0
	pinsrd	$1, %r12d, %xmm0
	movl	4(%rdi,%r9), %ebx
	pinsrd	$2, %ebx, %xmm0
	movl	(%rdi,%r9), %edx
	addl	%edx, %ecx
	pinsrd	$3, %edx, %xmm0
	movl	(%r8,%r10), %eax
	addl	%eax, %r11d
	imull	%edx, %eax
	addl	%r13d, %eax
	addl	%ebx, %ecx
	movl	4(%r8,%r10), %edx
	addl	%edx, %r11d
	imull	%ebx, %edx
	addl	%eax, %edx
	addl	%r12d, %ecx
	movl	8(%r8,%r10), %eax
	addl	%eax, %r11d
	imull	%r12d, %eax
	movdqu	(%r8,%r10), %xmm1
	pmulld	%xmm0, %xmm0
	pmulld	%xmm1, %xmm1
	paddd	%xmm0, %xmm1
	addl	%edx, %eax
	pshufd	$238, %xmm1, %xmm0              ## xmm0 = xmm1[2,3,2,3]
	paddd	%xmm1, %xmm0
	pshufd	$85, %xmm0, %xmm1               ## xmm1 = xmm0[1,1,1,1]
	paddd	%xmm0, %xmm1
	movd	%xmm1, %edx
	addl	%r14d, %edx
	movl	12(%r8,%r10), %ebx
	addl	%r15d, %ecx
	addl	%ebx, %r11d
	imull	%r15d, %ebx
	addl	%eax, %ebx
	movq	-48(%rbp), %rax                 ## 8-byte Reload
	movl	%ecx, (%rax)
	movl	%r11d, 4(%rax)
	movl	%edx, 8(%rax)
	movl	%ebx, 12(%rax)
	movl	16(%rdi), %eax
	movl	20(%rdi), %ebx
	movl	24(%rdi), %r15d
	movl	28(%rdi), %r14d
	movl	16(%r8), %ecx
	movd	%r14d, %xmm0
	pinsrd	$1, %r15d, %xmm0
	pinsrd	$2, %ebx, %xmm0
	pinsrd	$3, %eax, %xmm0
	movl	20(%r8), %edx
	leal	(%rdx,%rcx), %r11d
	imull	%eax, %ecx
	addl	%ebx, %eax
	imull	%ebx, %edx
	addl	%ecx, %edx
	movl	24(%r8), %ecx
	addl	%r15d, %eax
	addl	%ecx, %r11d
	imull	%r15d, %ecx
	movl	28(%r8), %ebx
	addl	%edx, %ecx
	addl	%r14d, %eax
	addl	%ebx, %r11d
	imull	%r14d, %ebx
	addl	%ecx, %ebx
	movl	16(%rdi,%rsi,4), %r12d
	addl	%r12d, %eax
	movl	24(%rdi,%rsi,4), %r14d
	movl	28(%rdi,%rsi,4), %r15d
	movq	%rsi, %r13
	movd	%r15d, %xmm1
	pinsrd	$1, %r14d, %xmm1
	movq	-56(%rbp), %rsi                 ## 8-byte Reload
	movl	16(%r8,%rsi,4), %edx
	addl	%edx, %r11d
	movl	20(%rdi,%r13,4), %ecx
	pinsrd	$2, %ecx, %xmm1
	pinsrd	$3, %r12d, %xmm1
	imull	%r12d, %edx
	addl	%ebx, %edx
	addl	%ecx, %eax
	movl	20(%r8,%rsi,4), %ebx
	addl	%ebx, %r11d
	imull	%ecx, %ebx
	movdqu	16(%r8), %xmm2
	pmulld	%xmm0, %xmm0
	pmulld	%xmm2, %xmm2
	paddd	%xmm0, %xmm2
	pshufd	$238, %xmm2, %xmm0              ## xmm0 = xmm2[2,3,2,3]
	paddd	%xmm2, %xmm0
	pshufd	$85, %xmm0, %xmm2               ## xmm2 = xmm0[1,1,1,1]
	paddd	%xmm0, %xmm2
	addl	%edx, %ebx
	movl	24(%r8,%rsi,4), %ecx
	addl	%r14d, %eax
	addl	%ecx, %r11d
	imull	%r14d, %ecx
	movd	%xmm2, %edx
	movdqu	16(%r8,%rsi,4), %xmm0
	pmulld	%xmm1, %xmm1
	pmulld	%xmm0, %xmm0
	paddd	%xmm1, %xmm0
	addl	%ebx, %ecx
	pshufd	$238, %xmm0, %xmm1              ## xmm1 = xmm0[2,3,2,3]
	paddd	%xmm0, %xmm1
	pshufd	$85, %xmm1, %xmm0               ## xmm0 = xmm1[1,1,1,1]
	paddd	%xmm1, %xmm0
	movd	%xmm0, %r14d
	addl	%edx, %r14d
	movl	28(%r8,%rsi,4), %ebx
	addl	%r15d, %eax
	addl	%ebx, %r11d
	imull	%r15d, %ebx
	addl	%ecx, %ebx
	movq	%r13, %rdx
	movl	16(%rdi,%r13,8), %ecx
	movl	20(%rdi,%r13,8), %r13d
	addl	%ecx, %eax
	movl	24(%rdi,%rdx,8), %r15d
	movl	28(%rdi,%rdx,8), %r12d
	movl	16(%r8,%rsi,8), %edx
	addl	%edx, %r11d
	movd	%r12d, %xmm0
	pinsrd	$1, %r15d, %xmm0
	pinsrd	$2, %r13d, %xmm0
	pinsrd	$3, %ecx, %xmm0
	imull	%ecx, %edx
	addl	%ebx, %edx
	addl	%r13d, %eax
	movq	%rsi, %rbx
	movl	20(%r8,%rsi,8), %ecx
	addl	%ecx, %r11d
	imull	%r13d, %ecx
	addl	%edx, %ecx
	movl	28(%r8,%rsi,8), %esi
	movdqu	16(%r8,%rbx,8), %xmm1
	movl	24(%r8,%rbx,8), %edx
	pmulld	%xmm0, %xmm0
	pmulld	%xmm1, %xmm1
	paddd	%xmm0, %xmm1
	addl	%r15d, %eax
	addl	%edx, %r11d
	imull	%r15d, %edx
	addl	%ecx, %edx
	addl	%r12d, %eax
	addl	%esi, %r11d
	pshufd	$238, %xmm1, %xmm0              ## xmm0 = xmm1[2,3,2,3]
	paddd	%xmm1, %xmm0
	pshufd	$85, %xmm0, %xmm1               ## xmm1 = xmm0[1,1,1,1]
	paddd	%xmm0, %xmm1
	movd	%xmm1, %r15d
	addl	%r14d, %r15d
	imull	%r12d, %esi
	addl	%edx, %esi
	movl	16(%rdi,%r9), %r13d
	movl	20(%rdi,%r9), %r12d
	movl	24(%rdi,%r9), %r14d
	movl	28(%rdi,%r9), %r9d
	movl	28(%r8,%r10), %ecx
	movl	24(%r8,%r10), %ebx
	movdqu	16(%r8,%r10), %xmm0
	movl	16(%r8,%r10), %edi
	movl	20(%r8,%r10), %edx
	addl	%r13d, %eax
	movd	%r9d, %xmm1
	pinsrd	$1, %r14d, %xmm1
	pinsrd	$2, %r12d, %xmm1
	pinsrd	$3, %r13d, %xmm1
	addl	%edi, %r11d
	imull	%r13d, %edi
	addl	%esi, %edi
	addl	%r12d, %eax
	addl	%edx, %r11d
	imull	%r12d, %edx
	addl	%edi, %edx
	addl	%r14d, %eax
	addl	%ebx, %r11d
	imull	%r14d, %ebx
	pmulld	%xmm1, %xmm1
	pmulld	%xmm0, %xmm0
	paddd	%xmm1, %xmm0
	addl	%edx, %ebx
	pshufd	$238, %xmm0, %xmm1              ## xmm1 = xmm0[2,3,2,3]
	paddd	%xmm0, %xmm1
	pshufd	$85, %xmm1, %xmm0               ## xmm0 = xmm1[1,1,1,1]
	paddd	%xmm1, %xmm0
	movd	%xmm0, %edx
	addl	%r15d, %edx
	addl	%r9d, %eax
	addl	%ecx, %r11d
	imull	%r9d, %ecx
	addl	%ebx, %ecx
	movq	-48(%rbp), %rsi                 ## 8-byte Reload
	movl	%eax, 16(%rsi)
	movl	%r11d, 20(%rsi)
	movl	%edx, 24(%rsi)
	movl	%ecx, 28(%rsi)
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.no_dead_strip	_ssim_4x4x2_core
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function ssim_4x4x2_core
_ssim_4x4x2_core:                       ; @ssim_4x4x2_core
	.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
	mov	w12, #0
	mov	w10, #0
	mov	w15, #0
	mov	w16, #0
	lsl	x8, x3, #2
	add	x11, x0, #8
	lsl	x9, x1, #2
	mov	w13, #4
	mov	x14, x2
LBB0_1:                                 ; =>This Inner Loop Header: Depth=1
	ldp	w17, w1, [x11, #-8]
	ldp	w3, w5, [x11]
	ldr	q0, [x14]
	add	w16, w17, w16
	add	w16, w1, w16
	add	w16, w3, w16
	add	w16, w5, w16
	fmov	s1, w5
	mov.s	v1[1], w3
	mov.s	v1[2], w1
	mul.4s	v2, v0, v0
	mov.s	w6, v0[1]
	mov.s	w7, v0[2]
	mov.s	w19, v0[3]
	fmov	w20, s0
	mov.s	v1[3], w17
	madd	w12, w20, w17, w12
	madd	w12, w6, w1, w12
	madd	w12, w7, w3, w12
	madd	w12, w19, w5, w12
	add	w15, w20, w15
	add	w15, w6, w15
	add	w15, w7, w15
	add	w15, w19, w15
	mla.4s	v2, v1, v1
	addv.4s	s0, v2
	fmov	w17, s0
	add	w10, w17, w10
	add	x14, x14, x8
	add	x11, x11, x9
	subs	x13, x13, #1
	b.ne	LBB0_1
; %bb.2:
	mov	w14, #0
	mov	w11, #0
	mov	w1, #0
	stp	w16, w15, [x4]
	add	x15, x2, #16
	add	x16, x0, #28
	mov	w17, #4
	stp	w10, w12, [x4, #8]
LBB0_3:                                 ; =>This Inner Loop Header: Depth=1
	ldp	w10, w12, [x16, #-12]
	ldp	w0, w2, [x16, #-4]
	ldr	q0, [x15]
	add	w1, w10, w1
	add	w1, w12, w1
	add	w1, w0, w1
	add	w1, w2, w1
	fmov	s1, w2
	mov.s	v1[1], w0
	mov.s	v1[2], w12
	mul.4s	v2, v0, v0
	mov.s	w3, v0[1]
	mov.s	w5, v0[2]
	mov.s	w6, v0[3]
	fmov	w7, s0
	mov.s	v1[3], w10
	madd	w10, w7, w10, w14
	madd	w10, w3, w12, w10
	madd	w10, w5, w0, w10
	madd	w14, w6, w2, w10
	add	w10, w7, w13
	add	w10, w3, w10
	add	w10, w5, w10
	add	w13, w6, w10
	mla.4s	v2, v1, v1
	addv.4s	s0, v2
	fmov	w10, s0
	add	w11, w10, w11
	add	x15, x15, x8
	add	x16, x16, x9
	subs	x17, x17, #1
	b.ne	LBB0_3
; %bb.4:
	stp	w1, w13, [x4, #16]
	stp	w11, w14, [x4, #24]
	ldp	x20, x19, [sp], #16             ; 16-byte Folded Reload
	ret
	.cfi_endproc
                                        ; -- End function
	.no_dead_strip	_ssim_4x4x2_core
.subsections_via_symbols
