	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ## -- Begin function premultiply8offset
LCPI0_0:
	.long	1                               ## 0x1
	.long	1                               ## 0x1
	.long	1                               ## 0x1
	.long	1                               ## 0x1
LCPI0_1:
	.long	128                             ## 0x80
	.long	128                             ## 0x80
	.long	128                             ## 0x80
	.long	128                             ## 0x80
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	4, 0x90
_premultiply8offset:                    ## @premultiply8offset
	.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	%rdx, -64(%rbp)                 ## 8-byte Spill
	movq	%rsi, -48(%rbp)                 ## 8-byte Spill
	movq	%rdi, -56(%rbp)                 ## 8-byte Spill
	cmpl	$0, 24(%rbp)
	jle	LBB0_16
## %bb.1:
	movl	48(%rbp), %eax
	movl	16(%rbp), %r11d
	movslq	%r9d, %r9
	movslq	%ecx, %r12
	movslq	%r8d, %r8
	movl	%r11d, %r15d
	shlq	$2, %r9
	shlq	$2, %r12
	shlq	$2, %r8
	movl	%r15d, %ecx
	andl	$-8, %ecx
	movq	%rcx, -72(%rbp)                 ## 8-byte Spill
	movd	%eax, %xmm0
	pshufd	$0, %xmm0, %xmm0                ## xmm0 = xmm0[0,0,0,0]
	movq	%r15, %rcx
	negq	%rcx
	movq	%rcx, -80(%rbp)                 ## 8-byte Spill
	leaq	(,%r15,4), %r13
	andq	$-32, %r13
	xorl	%r10d, %r10d
	movdqa	LCPI0_0(%rip), %xmm8            ## xmm8 = [1,1,1,1]
	movdqa	LCPI0_1(%rip), %xmm2            ## xmm2 = [128,128,128,128]
	movq	-64(%rbp), %rdx                 ## 8-byte Reload
	movq	-48(%rbp), %rsi                 ## 8-byte Reload
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
	jmp	LBB0_3
	.p2align	4, 0x90
LBB0_2:                                 ##   in Loop: Header=BB0_3 Depth=1
	addq	%r9, %rdx
	addq	%r12, %rdi
	addq	%r8, %rsi
	incq	%r10
	cmpl	24(%rbp), %r10d
	je	LBB0_16
LBB0_3:                                 ## =>This Loop Header: Depth=1
                                        ##     Child Loop BB0_9 Depth 2
                                        ##     Child Loop BB0_15 Depth 2
	testl	%r11d, %r11d
	jle	LBB0_2
## %bb.4:                               ##   in Loop: Header=BB0_3 Depth=1
	cmpl	$8, %r11d
	jb	LBB0_11
## %bb.6:                               ##   in Loop: Header=BB0_3 Depth=1
	movq	%r9, %r14
	imulq	%r10, %r14
	addq	-64(%rbp), %r14                 ## 8-byte Folded Reload
	movq	%r12, %rcx
	imulq	%r10, %rcx
	addq	-56(%rbp), %rcx                 ## 8-byte Folded Reload
	movq	%r14, %rbx
	subq	%rcx, %rbx
	cmpq	$32, %rbx
	jb	LBB0_11
## %bb.7:                               ##   in Loop: Header=BB0_3 Depth=1
	movq	%r8, %rcx
	imulq	%r10, %rcx
	addq	-48(%rbp), %rcx                 ## 8-byte Folded Reload
	subq	%rcx, %r14
	movl	$0, %ecx
	cmpq	$32, %r14
	jb	LBB0_12
## %bb.8:                               ##   in Loop: Header=BB0_3 Depth=1
	xorl	%ecx, %ecx
	.p2align	4, 0x90
LBB0_9:                                 ##   Parent Loop BB0_3 Depth=1
                                        ## =>  This Inner Loop Header: Depth=2
	movdqu	(%rdi,%rcx), %xmm3
	movdqu	16(%rdi,%rcx), %xmm4
	psubd	%xmm0, %xmm3
	psubd	%xmm0, %xmm4
	movdqu	(%rsi,%rcx), %xmm5
	movdqu	16(%rsi,%rcx), %xmm1
	movdqa	%xmm5, %xmm7
	psrld	$1, %xmm7
	movdqa	%xmm1, %xmm6
	psrld	$1, %xmm6
	pand	%xmm8, %xmm7
	pand	%xmm8, %xmm6
	paddd	%xmm5, %xmm7
	pmulld	%xmm3, %xmm7
	paddd	%xmm1, %xmm6
	pmulld	%xmm4, %xmm6
	paddd	%xmm2, %xmm7
	paddd	%xmm2, %xmm6
	psrad	$8, %xmm7
	psrad	$8, %xmm6
	paddd	%xmm0, %xmm7
	paddd	%xmm0, %xmm6
	movdqu	%xmm7, (%rdx,%rcx)
	movdqu	%xmm6, 16(%rdx,%rcx)
	addq	$32, %rcx
	cmpq	%rcx, %r13
	jne	LBB0_9
## %bb.10:                              ##   in Loop: Header=BB0_3 Depth=1
	movq	-72(%rbp), %rbx                 ## 8-byte Reload
	movq	%rbx, %rcx
	cmpq	%r15, %rbx
	je	LBB0_2
	jmp	LBB0_12
	.p2align	4, 0x90
LBB0_11:                                ##   in Loop: Header=BB0_3 Depth=1
	xorl	%ecx, %ecx
LBB0_12:                                ##   in Loop: Header=BB0_3 Depth=1
	movq	%rcx, %r14
	testb	$1, %r15b
	je	LBB0_14
## %bb.13:                              ##   in Loop: Header=BB0_3 Depth=1
	movl	(%rdi,%rcx,4), %r14d
	subl	%eax, %r14d
	movl	(%rsi,%rcx,4), %ebx
	btl	$1, %ebx
	adcl	$0, %ebx
	imull	%r14d, %ebx
	subl	$-128, %ebx
	sarl	$8, %ebx
	addl	%eax, %ebx
	movl	%ebx, (%rdx,%rcx,4)
	movq	%rcx, %r14
	orq	$1, %r14
LBB0_14:                                ##   in Loop: Header=BB0_3 Depth=1
	notq	%rcx
	cmpq	-80(%rbp), %rcx                 ## 8-byte Folded Reload
	je	LBB0_2
	.p2align	4, 0x90
LBB0_15:                                ##   Parent Loop BB0_3 Depth=1
                                        ## =>  This Inner Loop Header: Depth=2
	movl	(%rdi,%r14,4), %ecx
	subl	%eax, %ecx
	movl	(%rsi,%r14,4), %ebx
	btl	$1, %ebx
	adcl	$0, %ebx
	imull	%ecx, %ebx
	subl	$-128, %ebx
	sarl	$8, %ebx
	addl	%eax, %ebx
	movl	%ebx, (%rdx,%r14,4)
	movl	4(%rdi,%r14,4), %ecx
	subl	%eax, %ecx
	movl	4(%rsi,%r14,4), %ebx
	btl	$1, %ebx
	adcl	$0, %ebx
	imull	%ecx, %ebx
	subl	$-128, %ebx
	sarl	$8, %ebx
	addl	%eax, %ebx
	movl	%ebx, 4(%rdx,%r14,4)
	addq	$2, %r14
	cmpq	%r14, %r15
	jne	LBB0_15
	jmp	LBB0_2
LBB0_16:
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.no_dead_strip	_premultiply8offset
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function premultiply8offset
_premultiply8offset:                    ; @premultiply8offset
	.cfi_startproc
; %bb.0:
	stp	x22, x21, [sp, #-32]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 32
	stp	x20, x19, [sp, #16]             ; 16-byte Folded Spill
	.cfi_offset w19, -8
	.cfi_offset w20, -16
	.cfi_offset w21, -24
	.cfi_offset w22, -32
                                        ; kill: def $w5 killed $w5 def $x5
                                        ; kill: def $w4 killed $w4 def $x4
                                        ; kill: def $w3 killed $w3 def $x3
	cmp	w7, #1
	b.lt	LBB0_12
; %bb.1:
	mov	x8, #0
	ldr	w9, [sp, #40]
	mov	w10, w6
	sbfiz	x11, x5, #2, #32
	sbfiz	x12, x3, #2, #32
	sbfiz	x13, x4, #2, #32
	and	x14, x10, #0xfffffff0
	dup.4s	v0, w9
	lsl	x15, x10, #2
	and	x15, x15, #0x3ffffffc0
	orr	w16, wzr, #0x80
	movi.4s	v1, #1
	mov	x17, x1
	mov	x3, x0
	mov	x4, x2
	b	LBB0_3
LBB0_2:                                 ;   in Loop: Header=BB0_3 Depth=1
	add	x8, x8, #1
	add	x4, x4, x11
	add	x3, x3, x12
	add	x17, x17, x13
	cmp	w8, w7
	b.eq	LBB0_12
LBB0_3:                                 ; =>This Loop Header: Depth=1
                                        ;     Child Loop BB0_9 Depth 2
                                        ;     Child Loop BB0_11 Depth 2
	cmp	w6, #1
	b.lt	LBB0_2
; %bb.4:                                ;   in Loop: Header=BB0_3 Depth=1
	cmp	w6, #16
	b.hs	LBB0_6
; %bb.5:                                ;   in Loop: Header=BB0_3 Depth=1
	mov	x5, #0
	b	LBB0_11
LBB0_6:                                 ;   in Loop: Header=BB0_3 Depth=1
	mov	x5, #0
	madd	x19, x11, x8, x2
	madd	x20, x12, x8, x0
	sub	x20, x19, x20
	cmp	x20, #64
	b.lo	LBB0_11
; %bb.7:                                ;   in Loop: Header=BB0_3 Depth=1
	madd	x20, x13, x8, x1
	sub	x19, x19, x20
	cmp	x19, #64
	b.lo	LBB0_11
; %bb.8:                                ;   in Loop: Header=BB0_3 Depth=1
	mov	x5, #0
LBB0_9:                                 ;   Parent Loop BB0_3 Depth=1
                                        ; =>  This Inner Loop Header: Depth=2
	add	x19, x3, x5
	ldp	q2, q3, [x19]
	ldp	q4, q5, [x19, #32]
	sub.4s	v2, v2, v0
	sub.4s	v3, v3, v0
	sub.4s	v4, v4, v0
	sub.4s	v5, v5, v0
	add	x19, x17, x5
	ldp	q6, q7, [x19]
	ldp	q16, q17, [x19, #32]
	ushr.4s	v18, v6, #1
	ushr.4s	v19, v7, #1
	ushr.4s	v20, v16, #1
	ushr.4s	v21, v17, #1
	and.16b	v18, v18, v1
	and.16b	v19, v19, v1
	and.16b	v20, v20, v1
	and.16b	v21, v21, v1
	add.4s	v6, v18, v6
	add.4s	v7, v19, v7
	add.4s	v16, v20, v16
	add.4s	v17, v21, v17
	movi.4s	v18, #128
	mla.4s	v18, v6, v2
	movi.4s	v2, #128
	mla.4s	v2, v7, v3
	movi.4s	v3, #128
	mla.4s	v3, v16, v4
	movi.4s	v4, #128
	mla.4s	v4, v17, v5
	mov.16b	v5, v0
	ssra.4s	v5, v18, #8
	mov.16b	v6, v0
	ssra.4s	v6, v2, #8
	mov.16b	v2, v0
	ssra.4s	v2, v3, #8
	mov.16b	v3, v0
	ssra.4s	v3, v4, #8
	add	x19, x4, x5
	stp	q5, q6, [x19]
	stp	q2, q3, [x19, #32]
	add	x5, x5, #64
	cmp	x15, x5
	b.ne	LBB0_9
; %bb.10:                               ;   in Loop: Header=BB0_3 Depth=1
	mov	x5, x14
	cmp	x14, x10
	b.eq	LBB0_2
LBB0_11:                                ;   Parent Loop BB0_3 Depth=1
                                        ; =>  This Inner Loop Header: Depth=2
	lsl	x19, x5, #2
	ldr	w20, [x3, x19]
	sub	w20, w20, w9
	ldr	w21, [x17, x19]
	ubfx	w22, w21, #1, #1
	add	w21, w22, w21
	madd	w20, w21, w20, w16
	add	w20, w9, w20, asr #8
	str	w20, [x4, x19]
	add	x5, x5, #1
	cmp	x10, x5
	b.ne	LBB0_11
	b	LBB0_2
LBB0_12:
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp], #32             ; 16-byte Folded Reload
	ret
	.cfi_endproc
                                        ; -- End function
	.no_dead_strip	_premultiply8offset
.subsections_via_symbols
