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

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function premultiply16offset
_premultiply16offset:                   ; @premultiply16offset
	.cfi_startproc
; %bb.0:
	stp	x24, x23, [sp, #-48]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 48
	stp	x22, x21, [sp, #16]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #32]             ; 16-byte Folded Spill
	.cfi_offset w19, -8
	.cfi_offset w20, -16
	.cfi_offset w21, -24
	.cfi_offset w22, -32
	.cfi_offset w23, -40
	.cfi_offset w24, -48
	cmp	w7, #1
	b.lt	LBB0_12
; %bb.1:
	mov	x8, #0
	ldp	w10, w9, [sp, #52]
	ldr	w11, [sp, #48]
	cmp	w5, #0
	cinc	w12, w5, lt
	asr	w13, w12, #1
	cmp	w3, #0
	cinc	w12, w3, lt
	asr	w14, w12, #1
	cmp	w4, #0
	cinc	w12, w4, lt
	asr	w15, w12, #1
	mov	w12, w6
	sbfiz	x13, x13, #2, #32
	sbfiz	x14, x14, #2, #32
	sbfiz	x15, x15, #2, #32
	dup.4s	v0, w9
	and	x16, x12, #0xfffffff0
	dup.4s	v1, w11
	dup.4s	v3, w10
	lsl	x17, x12, #2
	and	x17, x17, #0x3ffffffc0
	movi.4s	v2, #1
	neg.4s	v3, v3
	mov	x3, x1
	mov	x4, x0
	mov	x5, x2
	b	LBB0_3
LBB0_2:                                 ;   in Loop: Header=BB0_3 Depth=1
	add	x8, x8, #1
	add	x5, x5, x13
	add	x4, x4, x14
	add	x3, x3, x15
	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	x19, #0
	b	LBB0_11
LBB0_6:                                 ;   in Loop: Header=BB0_3 Depth=1
	mov	x19, #0
	madd	x20, x13, x8, x2
	madd	x21, x14, x8, x0
	sub	x21, x20, x21
	cmp	x21, #64
	b.lo	LBB0_11
; %bb.7:                                ;   in Loop: Header=BB0_3 Depth=1
	madd	x21, x15, x8, x1
	sub	x20, x20, x21
	cmp	x20, #64
	b.lo	LBB0_11
; %bb.8:                                ;   in Loop: Header=BB0_3 Depth=1
	mov	x19, #0
LBB0_9:                                 ;   Parent Loop BB0_3 Depth=1
                                        ; =>  This Inner Loop Header: Depth=2
	add	x20, x4, x19
	ldp	q4, q5, [x20]
	ldp	q6, q7, [x20, #32]
	sub.4s	v4, v4, v0
	sub.4s	v5, v5, v0
	sub.4s	v6, v6, v0
	sub.4s	v7, v7, v0
	add	x20, x3, x19
	ldp	q16, q17, [x20]
	ldp	q18, q19, [x20, #32]
	ushr.4s	v20, v16, #1
	ushr.4s	v21, v17, #1
	ushr.4s	v22, v18, #1
	ushr.4s	v23, v19, #1
	and.16b	v20, v20, v2
	and.16b	v21, v21, v2
	and.16b	v22, v22, v2
	and.16b	v23, v23, v2
	add.4s	v16, v20, v16
	add.4s	v17, v21, v17
	add.4s	v18, v22, v18
	add.4s	v19, v23, v19
	mov.16b	v20, v1
	mla.4s	v20, v16, v4
	mov.16b	v4, v1
	mla.4s	v4, v17, v5
	mov.16b	v5, v1
	mla.4s	v5, v18, v6
	mov.16b	v6, v1
	mla.4s	v6, v19, v7
	sshl.4s	v7, v20, v3
	sshl.4s	v4, v4, v3
	sshl.4s	v5, v5, v3
	sshl.4s	v6, v6, v3
	add.4s	v7, v7, v0
	add.4s	v4, v4, v0
	add.4s	v5, v5, v0
	add.4s	v6, v6, v0
	add	x20, x5, x19
	stp	q7, q4, [x20]
	stp	q5, q6, [x20, #32]
	add	x19, x19, #64
	cmp	x17, x19
	b.ne	LBB0_9
; %bb.10:                               ;   in Loop: Header=BB0_3 Depth=1
	mov	x19, x16
	cmp	x16, x12
	b.eq	LBB0_2
LBB0_11:                                ;   Parent Loop BB0_3 Depth=1
                                        ; =>  This Inner Loop Header: Depth=2
	lsl	x20, x19, #2
	ldr	w21, [x4, x20]
	sub	w21, w21, w9
	ldr	w22, [x3, x20]
	ubfx	w23, w22, #1, #1
	add	w22, w23, w22
	madd	w21, w22, w21, w11
	asr	w21, w21, w10
	add	w21, w21, w9
	str	w21, [x5, x20]
	add	x19, x19, #1
	cmp	x12, x19
	b.ne	LBB0_11
	b	LBB0_2
LBB0_12:
	ldp	x20, x19, [sp, #32]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #16]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp], #48             ; 16-byte Folded Reload
	ret
	.cfi_endproc
                                        ; -- End function
	.no_dead_strip	_premultiply16offset
.subsections_via_symbols
