	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function celt_exp_rotation_impl
_celt_exp_rotation_impl:                ## @celt_exp_rotation_impl
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r14
	pushq	%rbx
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
                                        ## kill: def $edx killed $edx def $rdx
	movl	%esi, %eax
	subl	%edx, %eax
	movslq	%edx, %r9
	testl	%eax, %eax
	jle	LBB0_18
## %bb.1:
	movl	%edx, %r11d
	notl	%r11d
	addl	%esi, %r11d
	xorl	%r8d, %r8d
	cmpl	$3, %r11d
	jae	LBB0_3
## %bb.2:
	movq	%rdi, %rax
	jmp	LBB0_13
LBB0_3:
	leaq	(%rdi,%r9,4), %rax
	leaq	(%rdi,%r11,4), %rcx
	addq	$4, %rcx
	cmpq	%rcx, %rax
	jae	LBB0_5
## %bb.4:
	leaq	(%r9,%r11), %rax
	leaq	(%rdi,%rax,4), %rcx
	addq	$4, %rcx
	movq	%rdi, %rax
	cmpq	%rdi, %rcx
	ja	LBB0_13
LBB0_5:
	incq	%r11
	movq	%r11, %r8
	andq	$-4, %r8
	movaps	%xmm1, %xmm2
	shufps	$0, %xmm1, %xmm2                ## xmm2 = xmm2[0,0],xmm1[0,0]
	movaps	%xmm0, %xmm3
	shufps	$0, %xmm0, %xmm3                ## xmm3 = xmm3[0,0],xmm0[0,0]
	leaq	-4(%r8), %rax
	movq	%rax, %r10
	shrq	$2, %r10
	incq	%r10
	testq	%rax, %rax
	je	LBB0_6
## %bb.7:
	movq	%r10, %rcx
	andq	$-2, %rcx
	leaq	16(%rdi), %r14
	leaq	(%rdi,%r9,4), %rbx
	addq	$16, %rbx
	xorl	%eax, %eax
	.p2align	4, 0x90
LBB0_8:                                 ## =>This Inner Loop Header: Depth=1
	movups	-16(%r14,%rax,4), %xmm4
	movups	-16(%rbx,%rax,4), %xmm5
	movaps	%xmm3, %xmm6
	mulps	%xmm4, %xmm6
	mulps	%xmm2, %xmm4
	movaps	%xmm3, %xmm7
	mulps	%xmm5, %xmm7
	addps	%xmm4, %xmm7
	movups	%xmm7, -16(%rbx,%rax,4)
	mulps	%xmm2, %xmm5
	subps	%xmm5, %xmm6
	movups	%xmm6, -16(%r14,%rax,4)
	movups	(%r14,%rax,4), %xmm4
	movups	(%rbx,%rax,4), %xmm5
	movaps	%xmm3, %xmm6
	mulps	%xmm4, %xmm6
	mulps	%xmm2, %xmm4
	movaps	%xmm3, %xmm7
	mulps	%xmm5, %xmm7
	addps	%xmm4, %xmm7
	movups	%xmm7, (%rbx,%rax,4)
	mulps	%xmm2, %xmm5
	subps	%xmm5, %xmm6
	movups	%xmm6, (%r14,%rax,4)
	addq	$8, %rax
	addq	$-2, %rcx
	jne	LBB0_8
## %bb.9:
	testb	$1, %r10b
	je	LBB0_11
LBB0_10:
	leaq	(%rdi,%rax,4), %rcx
	movups	(%rdi,%rax,4), %xmm4
	movups	(%rcx,%r9,4), %xmm5
	movaps	%xmm3, %xmm6
	mulps	%xmm4, %xmm3
	mulps	%xmm2, %xmm4
	mulps	%xmm5, %xmm6
	addps	%xmm4, %xmm6
	movups	%xmm6, (%rcx,%r9,4)
	mulps	%xmm5, %xmm2
	subps	%xmm2, %xmm3
	movups	%xmm3, (%rdi,%rax,4)
LBB0_11:
	cmpq	%r8, %r11
	je	LBB0_18
## %bb.12:
	leaq	(%rdi,%r8,4), %rax
LBB0_13:
	movl	%esi, %ebx
	subl	%r8d, %ebx
	subl	%edx, %ebx
	movl	%r8d, %ecx
	notl	%ecx
	addl	%esi, %ecx
	testb	$1, %bl
	je	LBB0_15
## %bb.14:
	movss	(%rax), %xmm2                   ## xmm2 = mem[0],zero,zero,zero
	movss	(%rax,%r9,4), %xmm3             ## xmm3 = mem[0],zero,zero,zero
	movaps	%xmm0, %xmm4
	mulss	%xmm2, %xmm4
	mulss	%xmm1, %xmm2
	movaps	%xmm0, %xmm5
	mulss	%xmm3, %xmm5
	addss	%xmm2, %xmm5
	movss	%xmm5, (%rax,%r9,4)
	mulss	%xmm1, %xmm3
	subss	%xmm3, %xmm4
	movss	%xmm4, (%rax)
	addq	$4, %rax
	incl	%r8d
LBB0_15:
	cmpl	%edx, %ecx
	je	LBB0_18
## %bb.16:
	leaq	(%rax,%r9,4), %rcx
	addq	$4, %rcx
	movl	%esi, %r10d
	subl	%r8d, %r10d
	subl	%edx, %r10d
	xorl	%ebx, %ebx
	.p2align	4, 0x90
LBB0_17:                                ## =>This Inner Loop Header: Depth=1
	movss	(%rax,%rbx,4), %xmm2            ## xmm2 = mem[0],zero,zero,zero
	movss	-4(%rcx,%rbx,4), %xmm3          ## xmm3 = mem[0],zero,zero,zero
	movaps	%xmm0, %xmm4
	mulss	%xmm2, %xmm4
	mulss	%xmm1, %xmm2
	movaps	%xmm0, %xmm5
	mulss	%xmm3, %xmm5
	addss	%xmm2, %xmm5
	movss	%xmm5, -4(%rcx,%rbx,4)
	mulss	%xmm1, %xmm3
	subss	%xmm3, %xmm4
	movss	%xmm4, (%rax,%rbx,4)
	movss	4(%rax,%rbx,4), %xmm2           ## xmm2 = mem[0],zero,zero,zero
	movss	(%rcx,%rbx,4), %xmm3            ## xmm3 = mem[0],zero,zero,zero
	movaps	%xmm0, %xmm4
	mulss	%xmm2, %xmm4
	mulss	%xmm1, %xmm2
	movaps	%xmm0, %xmm5
	mulss	%xmm3, %xmm5
	addss	%xmm2, %xmm5
	movss	%xmm5, (%rcx,%rbx,4)
	mulss	%xmm1, %xmm3
	subss	%xmm3, %xmm4
	movss	%xmm4, 4(%rax,%rbx,4)
	addq	$2, %rbx
	cmpl	%ebx, %r10d
	jne	LBB0_17
LBB0_18:
	addl	%edx, %edx
	notl	%edx
	addl	%esi, %edx
	js	LBB0_33
## %bb.19:
	movl	%edx, %eax
	leaq	(%rdi,%rax,4), %rcx
	cmpl	$3, %edx
	jae	LBB0_20
LBB0_27:
	testb	$1, %dl
	jne	LBB0_28
## %bb.29:
	movss	(%rcx), %xmm2                   ## xmm2 = mem[0],zero,zero,zero
	movss	(%rcx,%r9,4), %xmm3             ## xmm3 = mem[0],zero,zero,zero
	movaps	%xmm0, %xmm4
	mulss	%xmm2, %xmm4
	mulss	%xmm1, %xmm2
	movaps	%xmm0, %xmm5
	mulss	%xmm3, %xmm5
	addss	%xmm2, %xmm5
	movss	%xmm5, (%rcx,%r9,4)
	mulss	%xmm1, %xmm3
	subss	%xmm3, %xmm4
	movss	%xmm4, (%rcx)
	addq	$-4, %rcx
	leal	-1(%rdx), %eax
	testl	%edx, %edx
	jne	LBB0_31
	jmp	LBB0_33
LBB0_20:
	leaq	(%r9,%rax), %r8
	leaq	(%rdi,%r8,4), %r10
	movq	%rax, %rbx
	shlq	$2, %rbx
	movq	%r10, %rsi
	subq	%rbx, %rsi
	cmpq	%r10, %rsi
	ja	LBB0_27
## %bb.21:
	movq	%rcx, %rsi
	subq	%rbx, %rsi
	cmpq	%rcx, %rsi
	ja	LBB0_27
## %bb.22:
	leaq	(%rdi,%r9,4), %r10
	leaq	(%rdi,%rax,4), %rbx
	addq	$4, %rbx
	cmpq	%rbx, %r10
	jae	LBB0_24
## %bb.23:
	leaq	(%rdi,%r8,4), %rbx
	addq	$4, %rbx
	cmpq	%rdi, %rbx
	ja	LBB0_27
LBB0_24:
	leaq	1(%rax), %r8
	movq	%r8, %rbx
	andq	$-4, %rbx
	leaq	(,%rbx,4), %rdi
	subq	%rdi, %rcx
	subl	%ebx, %edx
	movaps	%xmm1, %xmm2
	shufps	$0, %xmm1, %xmm2                ## xmm2 = xmm2[0,0],xmm1[0,0]
	movaps	%xmm0, %xmm3
	shufps	$0, %xmm0, %xmm3                ## xmm3 = xmm3[0,0],xmm0[0,0]
	leaq	(%rsi,%rax,4), %rdi
	addq	$-12, %rdi
	movq	%rbx, %rsi
	.p2align	4, 0x90
LBB0_25:                                ## =>This Inner Loop Header: Depth=1
	movups	(%rdi), %xmm4
	shufps	$27, %xmm4, %xmm4               ## xmm4 = xmm4[3,2,1,0]
	movups	(%rdi,%r9,4), %xmm5
	shufps	$27, %xmm5, %xmm5               ## xmm5 = xmm5[3,2,1,0]
	movaps	%xmm3, %xmm6
	mulps	%xmm4, %xmm6
	mulps	%xmm2, %xmm4
	movaps	%xmm3, %xmm7
	mulps	%xmm5, %xmm7
	addps	%xmm4, %xmm7
	shufps	$27, %xmm7, %xmm7               ## xmm7 = xmm7[3,2,1,0]
	movups	%xmm7, (%rdi,%r9,4)
	mulps	%xmm2, %xmm5
	subps	%xmm5, %xmm6
	shufps	$27, %xmm6, %xmm6               ## xmm6 = xmm6[3,2,1,0]
	movups	%xmm6, (%rdi)
	addq	$-16, %rdi
	addq	$-4, %rsi
	jne	LBB0_25
## %bb.26:
	cmpq	%rbx, %r8
	jne	LBB0_27
	jmp	LBB0_33
LBB0_28:
	movl	%edx, %eax
	testl	%edx, %edx
	je	LBB0_33
LBB0_31:
	leaq	(%rcx,%r9,4), %rdx
	notl	%eax
	xorl	%esi, %esi
	.p2align	4, 0x90
LBB0_32:                                ## =>This Inner Loop Header: Depth=1
	movss	(%rcx,%rsi,4), %xmm2            ## xmm2 = mem[0],zero,zero,zero
	movss	(%rdx,%rsi,4), %xmm3            ## xmm3 = mem[0],zero,zero,zero
	movaps	%xmm0, %xmm4
	mulss	%xmm2, %xmm4
	mulss	%xmm1, %xmm2
	movaps	%xmm0, %xmm5
	mulss	%xmm3, %xmm5
	addss	%xmm2, %xmm5
	movss	%xmm5, (%rdx,%rsi,4)
	mulss	%xmm1, %xmm3
	subss	%xmm3, %xmm4
	movss	%xmm4, (%rcx,%rsi,4)
	movss	-4(%rcx,%rsi,4), %xmm2          ## xmm2 = mem[0],zero,zero,zero
	movss	-4(%rdx,%rsi,4), %xmm3          ## xmm3 = mem[0],zero,zero,zero
	movaps	%xmm0, %xmm4
	mulss	%xmm2, %xmm4
	mulss	%xmm1, %xmm2
	movaps	%xmm0, %xmm5
	mulss	%xmm3, %xmm5
	addss	%xmm2, %xmm5
	movss	%xmm5, -4(%rdx,%rsi,4)
	mulss	%xmm1, %xmm3
	subss	%xmm3, %xmm4
	movss	%xmm4, -4(%rcx,%rsi,4)
	addq	$-2, %rsi
	cmpl	%esi, %eax
	jne	LBB0_32
LBB0_33:
	popq	%rbx
	popq	%r14
	popq	%rbp
	retq
LBB0_6:
	xorl	%eax, %eax
	testb	$1, %r10b
	jne	LBB0_10
	jmp	LBB0_11
	.cfi_endproc
                                        ## -- End function
	.no_dead_strip	_celt_exp_rotation_impl
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function celt_exp_rotation_impl
_celt_exp_rotation_impl:                ; @celt_exp_rotation_impl
	.cfi_startproc
; %bb.0:
                                        ; kill: def $s1 killed $s1 def $q1
                                        ; kill: def $s0 killed $s0 def $q0
                                        ; kill: def $w2 killed $w2 def $x2
	sub	w8, w1, w2
	cmp	w8, #1
	b.lt	LBB0_7
; %bb.1:
	sxtw	x10, w2
	mvn	w8, w2
	add	w9, w8, w1
	lsl	x8, x10, #2
	cmp	w9, #7
	b.lo	LBB0_4
; %bb.2:
	add	x11, x0, x10, lsl #2
	add	x12, x0, w9, uxtw #2
	add	x12, x12, #4
	cmp	x11, x12
	b.hs	LBB0_18
; %bb.3:
	add	x10, x10, x9
	add	x10, x0, x10, lsl #2
	add	x10, x10, #4
	cmp	x10, x0
	b.ls	LBB0_18
LBB0_4:
	mov	w10, #0
	mov	x9, x0
LBB0_5:
	add	w10, w10, w2
	sub	w10, w10, w1
LBB0_6:                                 ; =>This Inner Loop Header: Depth=1
	ldr	s2, [x9, x8]
	ldr	s3, [x9]
	fmul	s4, s3, s1
	fmadd	s4, s0, s2, s4
	str	s4, [x9, x8]
	fneg	s2, s2
	fmul	s2, s2, s1
	fmadd	s2, s0, s3, s2
	str	s2, [x9], #4
	adds	w10, w10, #1
	b.lo	LBB0_6
LBB0_7:
	mov	w8, #-1
	eor	w8, w8, w2, lsl #1
	adds	w10, w8, w1
	b.mi	LBB0_17
; %bb.8:
	add	x8, x0, w10, uxtw #2
                                        ; kill: def $w2 killed $w2 killed $x2 def $x2
	sxtw	x11, w2
	lsl	x9, x11, #2
	cmp	w10, #3
	b.lo	LBB0_15
; %bb.9:
	add	x12, x11, x10
	add	x12, x0, x12, lsl #2
	lsl	x13, x10, #2
	sub	x14, x8, x13
	sub	x13, x12, x13
	cmp	x13, x12
	ccmp	x14, x8, #2, ls
	b.hi	LBB0_15
; %bb.10:
	add	x11, x0, x11, lsl #2
	add	x13, x0, x10, lsl #2
	add	x13, x13, #4
	cmp	x11, x13
	b.hs	LBB0_12
; %bb.11:
	add	x11, x12, #4
	cmp	x11, x0
	b.hi	LBB0_15
LBB0_12:
	add	x11, x10, #1
	and	x12, x11, #0x1fffffffc
	sub	x8, x8, x12, lsl #2
	sub	w13, w10, w12
	dup.4s	v2, v0[0]
	add	x10, x14, x10, lsl #2
	sub	x10, x10, #12
	mov	x14, x12
LBB0_13:                                ; =>This Inner Loop Header: Depth=1
	ldr	q3, [x10]
	rev64.4s	v3, v3
	ext.16b	v3, v3, v3, #8
	ldr	q4, [x10, x9]
	rev64.4s	v4, v4
	ext.16b	v4, v4, v4, #8
	fmul.4s	v5, v3, v1[0]
	fmla.4s	v5, v4, v2
	rev64.4s	v5, v5
	ext.16b	v5, v5, v5, #8
	str	q5, [x10, x9]
	fneg.4s	v4, v4
	fmul.4s	v4, v4, v1[0]
	fmla.4s	v4, v3, v2
	rev64.4s	v3, v4
	ext.16b	v3, v3, v3, #8
	str	q3, [x10], #-16
	subs	x14, x14, #4
	b.ne	LBB0_13
; %bb.14:
	mov	x10, x13
	cmp	x11, x12
	b.eq	LBB0_17
LBB0_15:
	add	w10, w10, #1
LBB0_16:                                ; =>This Inner Loop Header: Depth=1
	ldr	s2, [x8, x9]
	ldr	s3, [x8]
	fmul	s4, s3, s1
	fmadd	s4, s0, s2, s4
	str	s4, [x8, x9]
	fneg	s2, s2
	fmul	s2, s2, s1
	fmadd	s2, s0, s3, s2
	str	s2, [x8], #-4
	subs	w10, w10, #1
	b.ne	LBB0_16
LBB0_17:
	ret
LBB0_18:
	add	x11, x9, #1
	and	x10, x11, #0x1fffffff8
	add	x9, x0, x10, lsl #2
	dup.4s	v2, v1[0]
	dup.4s	v3, v0[0]
	mov	x12, x10
	mov	x13, x0
LBB0_19:                                ; =>This Inner Loop Header: Depth=1
	ldp	q4, q5, [x13]
	add	x14, x13, x8
	ldp	q6, q7, [x14]
	fmul.4s	v16, v4, v2
	fmul.4s	v17, v5, v1[0]
	fmla.4s	v16, v6, v3
	fmla.4s	v17, v7, v3
	stp	q16, q17, [x14]
	fneg.4s	v6, v6
	fneg.4s	v7, v7
	fmul.4s	v6, v2, v6
	fmul.4s	v7, v7, v1[0]
	fmla.4s	v6, v4, v3
	fmla.4s	v7, v5, v3
	stp	q6, q7, [x13], #32
	subs	x12, x12, #8
	b.ne	LBB0_19
; %bb.20:
	cmp	x11, x10
	b.ne	LBB0_5
	b	LBB0_7
	.cfi_endproc
                                        ; -- End function
	.no_dead_strip	_celt_exp_rotation_impl
.subsections_via_symbols
