	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function xcorr_kernel
_xcorr_kernel:                          ## @xcorr_kernel
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
                                        ## kill: def $ecx killed $ecx def $rcx
	movss	(%rsi), %xmm1                   ## xmm1 = mem[0],zero,zero,zero
	movss	4(%rsi), %xmm2                  ## xmm2 = mem[0],zero,zero,zero
	movss	8(%rsi), %xmm0                  ## xmm0 = mem[0],zero,zero,zero
	addq	$12, %rsi
	cmpl	$4, %ecx
	jl	LBB0_1
## %bb.2:
	leal	-3(%rcx), %r8d
	movups	(%rdx), %xmm4
	xorl	%eax, %eax
	.p2align	4, 0x90
LBB0_3:                                 ## =>This Inner Loop Header: Depth=1
	movss	(%rsi), %xmm3                   ## xmm3 = mem[0],zero,zero,zero
	movss	(%rdi), %xmm5                   ## xmm5 = mem[0],zero,zero,zero
	shufps	$0, %xmm5, %xmm5                ## xmm5 = xmm5[0,0,0,0]
	insertps	$16, %xmm2, %xmm1               ## xmm1 = xmm1[0],xmm2[0],xmm1[2,3]
	insertps	$32, %xmm0, %xmm1               ## xmm1 = xmm1[0,1],xmm0[0],xmm1[3]
	insertps	$48, %xmm3, %xmm1               ## xmm1 = xmm1[0,1,2],xmm3[0]
	mulps	%xmm5, %xmm1
	movaps	%xmm1, %xmm5
	addps	%xmm4, %xmm5
	movups	%xmm5, (%rdx)
	movss	4(%rsi), %xmm1                  ## xmm1 = mem[0],zero,zero,zero
	movss	4(%rdi), %xmm4                  ## xmm4 = mem[0],zero,zero,zero
	shufps	$0, %xmm4, %xmm4                ## xmm4 = xmm4[0,0,0,0]
	insertps	$16, %xmm0, %xmm2               ## xmm2 = xmm2[0],xmm0[0],xmm2[2,3]
	insertps	$32, %xmm3, %xmm2               ## xmm2 = xmm2[0,1],xmm3[0],xmm2[3]
	insertps	$48, %xmm1, %xmm2               ## xmm2 = xmm2[0,1,2],xmm1[0]
	mulps	%xmm4, %xmm2
	movaps	%xmm2, %xmm4
	addps	%xmm5, %xmm4
	movups	%xmm4, (%rdx)
	movss	8(%rsi), %xmm2                  ## xmm2 = mem[0],zero,zero,zero
	movss	8(%rdi), %xmm5                  ## xmm5 = mem[0],zero,zero,zero
	shufps	$0, %xmm5, %xmm5                ## xmm5 = xmm5[0,0,0,0]
	insertps	$16, %xmm3, %xmm0               ## xmm0 = xmm0[0],xmm3[0],xmm0[2,3]
	insertps	$32, %xmm1, %xmm0               ## xmm0 = xmm0[0,1],xmm1[0],xmm0[3]
	insertps	$48, %xmm2, %xmm0               ## xmm0 = xmm0[0,1,2],xmm2[0]
	mulps	%xmm5, %xmm0
	movaps	%xmm0, %xmm5
	addps	%xmm4, %xmm5
	movups	%xmm5, (%rdx)
	movss	12(%rdi), %xmm6                 ## xmm6 = mem[0],zero,zero,zero
	leaq	16(%rdi), %rdi
	movss	12(%rsi), %xmm0                 ## xmm0 = mem[0],zero,zero,zero
	addq	$16, %rsi
	shufps	$0, %xmm6, %xmm6                ## xmm6 = xmm6[0,0,0,0]
	movaps	%xmm3, %xmm4
	insertps	$16, %xmm1, %xmm4               ## xmm4 = xmm4[0],xmm1[0],xmm4[2,3]
	insertps	$32, %xmm2, %xmm4               ## xmm4 = xmm4[0,1],xmm2[0],xmm4[3]
	insertps	$48, %xmm0, %xmm4               ## xmm4 = xmm4[0,1,2],xmm0[0]
	mulps	%xmm6, %xmm4
	addps	%xmm5, %xmm4
	movups	%xmm4, (%rdx)
	addl	$4, %eax
	cmpl	%r8d, %eax
	jl	LBB0_3
## %bb.4:
	movl	%ecx, %r8d
	andl	$-4, %r8d
	jmp	LBB0_5
LBB0_1:
	xorl	%r8d, %r8d
	xorps	%xmm3, %xmm3
LBB0_5:
	movl	%r8d, %eax
	orl	$1, %eax
	cmpl	%ecx, %r8d
	jge	LBB0_7
## %bb.6:
	movss	(%rsi), %xmm3                   ## xmm3 = mem[0],zero,zero,zero
	addq	$4, %rsi
	movups	(%rdx), %xmm4
	movss	(%rdi), %xmm5                   ## xmm5 = mem[0],zero,zero,zero
	addq	$4, %rdi
	shufps	$0, %xmm5, %xmm5                ## xmm5 = xmm5[0,0,0,0]
	movaps	%xmm1, %xmm6
	insertps	$16, %xmm2, %xmm6               ## xmm6 = xmm6[0],xmm2[0],xmm6[2,3]
	insertps	$32, %xmm0, %xmm6               ## xmm6 = xmm6[0,1],xmm0[0],xmm6[3]
	insertps	$48, %xmm3, %xmm6               ## xmm6 = xmm6[0,1,2],xmm3[0]
	mulps	%xmm5, %xmm6
	addps	%xmm4, %xmm6
	movups	%xmm6, (%rdx)
LBB0_7:
	orl	$2, %r8d
	cmpl	%ecx, %eax
	jl	LBB0_8
## %bb.9:
	cmpl	%ecx, %r8d
	jl	LBB0_10
LBB0_11:
	popq	%rbp
	retq
LBB0_8:
	movss	(%rsi), %xmm1                   ## xmm1 = mem[0],zero,zero,zero
	addq	$4, %rsi
	movups	(%rdx), %xmm4
	movss	(%rdi), %xmm5                   ## xmm5 = mem[0],zero,zero,zero
	addq	$4, %rdi
	shufps	$0, %xmm5, %xmm5                ## xmm5 = xmm5[0,0,0,0]
	insertps	$16, %xmm0, %xmm2               ## xmm2 = xmm2[0],xmm0[0],xmm2[2,3]
	insertps	$32, %xmm3, %xmm2               ## xmm2 = xmm2[0,1],xmm3[0],xmm2[3]
	insertps	$48, %xmm1, %xmm2               ## xmm2 = xmm2[0,1,2],xmm1[0]
	mulps	%xmm5, %xmm2
	addps	%xmm4, %xmm2
	movups	%xmm2, (%rdx)
	cmpl	%ecx, %r8d
	jge	LBB0_11
LBB0_10:
	movups	(%rdx), %xmm2
	movss	(%rdi), %xmm4                   ## xmm4 = mem[0],zero,zero,zero
	insertps	$16, %xmm3, %xmm0               ## xmm0 = xmm0[0],xmm3[0],xmm0[2,3]
	insertps	$32, %xmm1, %xmm0               ## xmm0 = xmm0[0,1],xmm1[0],xmm0[3]
	insertps	$48, (%rsi), %xmm0              ## xmm0 = xmm0[0,1,2],mem[0]
	shufps	$0, %xmm4, %xmm4                ## xmm4 = xmm4[0,0,0,0]
	mulps	%xmm4, %xmm0
	addps	%xmm2, %xmm0
	movups	%xmm0, (%rdx)
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.no_dead_strip	_xcorr_kernel
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function xcorr_kernel
_xcorr_kernel:                          ; @xcorr_kernel
	.cfi_startproc
; %bb.0:
	ldp	s0, s2, [x1]
	add	x8, x1, #12
	ldr	s1, [x1, #8]
	cmp	w3, #4
	b.lt	LBB0_4
; %bb.1:
	mov	w9, #0
	sub	w10, w3, #3
	ldp	s4, s5, [x2]
	ldp	s6, s7, [x2, #8]
LBB0_2:                                 ; =>This Inner Loop Header: Depth=1
	ldr	s16, [x0]
	ldr	s3, [x8]
	fmadd	s4, s16, s0, s4
	fmadd	s5, s16, s2, s5
	stp	s4, s5, [x2]
	fmadd	s6, s16, s1, s6
	fmadd	s7, s16, s3, s7
	stp	s6, s7, [x2, #8]
	ldr	s16, [x0, #4]
	ldr	s0, [x8, #4]
	fmadd	s4, s16, s2, s4
	fmadd	s5, s16, s1, s5
	stp	s4, s5, [x2]
	fmadd	s6, s16, s3, s6
	fmadd	s7, s16, s0, s7
	stp	s6, s7, [x2, #8]
	ldr	s16, [x0, #8]
	ldr	s2, [x8, #8]
	fmadd	s4, s16, s1, s4
	fmadd	s5, s16, s3, s5
	stp	s4, s5, [x2]
	fmadd	s6, s16, s0, s6
	fmadd	s7, s16, s2, s7
	stp	s6, s7, [x2, #8]
	add	x11, x0, #16
	ldr	s16, [x0, #12]
	add	x12, x8, #16
	ldr	s1, [x8, #12]
	fmadd	s4, s16, s3, s4
	fmadd	s5, s16, s0, s5
	stp	s4, s5, [x2]
	fmadd	s6, s16, s2, s6
	fmadd	s7, s16, s1, s7
	stp	s6, s7, [x2, #8]
	add	w9, w9, #4
	mov	x0, x11
	mov	x8, x12
	cmp	w9, w10
	b.lt	LBB0_2
; %bb.3:
	and	w9, w3, #0xfffffffc
	mov	x8, x12
	mov	x0, x11
	b	LBB0_5
LBB0_4:
	mov	w9, #0
	movi	d3, #0000000000000000
LBB0_5:
	orr	w10, w9, #0x1
	cmp	w9, w3
	b.ge	LBB0_7
; %bb.6:
	ldr	s4, [x0], #4
	ldr	s3, [x8], #4
	ldp	s5, s6, [x2]
	fmadd	s5, s4, s0, s5
	fmadd	s6, s4, s2, s6
	stp	s5, s6, [x2]
	ldp	s5, s6, [x2, #8]
	fmadd	s5, s4, s1, s5
	fmadd	s4, s4, s3, s6
	stp	s5, s4, [x2, #8]
LBB0_7:
	orr	w9, w9, #0x2
	cmp	w10, w3
	b.lt	LBB0_10
; %bb.8:
	cmp	w9, w3
	b.lt	LBB0_11
LBB0_9:
	ret
LBB0_10:
	ldr	s4, [x0], #4
	ldr	s0, [x8], #4
	ldp	s5, s6, [x2]
	fmadd	s2, s4, s2, s5
	fmadd	s5, s4, s1, s6
	stp	s2, s5, [x2]
	ldp	s2, s5, [x2, #8]
	fmadd	s2, s4, s3, s2
	fmadd	s4, s4, s0, s5
	stp	s2, s4, [x2, #8]
	cmp	w9, w3
	b.ge	LBB0_9
LBB0_11:
	ldr	s2, [x0]
	ldr	s4, [x8]
	ldp	s5, s6, [x2]
	fmadd	s1, s2, s1, s5
	fmadd	s3, s2, s3, s6
	stp	s1, s3, [x2]
	ldp	s1, s3, [x2, #8]
	fmadd	s0, s2, s0, s1
	fmadd	s1, s2, s4, s3
	stp	s0, s1, [x2, #8]
	ret
	.cfi_endproc
                                        ; -- End function
	.no_dead_strip	_xcorr_kernel
.subsections_via_symbols
