	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ## -- Begin function adi_get_bits
LCPI0_0:
	.long	0                               ## 0x0
	.long	1                               ## 0x1
	.long	2                               ## 0x2
	.long	3                               ## 0x3
LCPI0_1:
	.long	4                               ## 0x4
	.long	4                               ## 0x4
	.long	4                               ## 0x4
	.long	4                               ## 0x4
LCPI0_2:
	.long	1                               ## 0x1
	.long	1                               ## 0x1
	.long	1                               ## 0x1
	.long	1                               ## 0x1
LCPI0_3:
	.long	1065353216                      ## 0x3f800000
	.long	1065353216                      ## 0x3f800000
	.long	1065353216                      ## 0x3f800000
	.long	1065353216                      ## 0x3f800000
LCPI0_4:
	.long	8                               ## 0x8
	.long	8                               ## 0x8
	.long	8                               ## 0x8
	.long	8                               ## 0x8
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	4, 0x90
_adi_get_bits:                          ## @adi_get_bits
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	movslq	(%rdi), %rax
	movslq	%esi, %r8
	addq	%rax, %r8
	movl	%r8d, (%rdi)
	xorl	%eax, %eax
	cmpl	4(%rdi), %r8d
	jg	LBB0_9
## %bb.1:
	testl	%esi, %esi
	jle	LBB0_9
## %bb.2:
	movq	8(%rdi), %r9
	movl	%esi, %edx
	cmpl	$8, %esi
	jae	LBB0_4
## %bb.3:
	xorl	%ecx, %ecx
	xorl	%eax, %eax
	jmp	LBB0_7
LBB0_4:
	movl	%edx, %ecx
	andl	$-8, %ecx
	leaq	(%r9,%r8,4), %rax
	addq	$-12, %rax
	movq	%rcx, %rsi
	negq	%rsi
	movdqa	LCPI0_0(%rip), %xmm4            ## xmm4 = [0,1,2,3]
	pxor	%xmm0, %xmm0
	xorl	%edi, %edi
	movdqa	LCPI0_1(%rip), %xmm8            ## xmm8 = [4,4,4,4]
	movdqa	LCPI0_2(%rip), %xmm10           ## xmm10 = [1,1,1,1]
	movdqa	LCPI0_3(%rip), %xmm5            ## xmm5 = [1065353216,1065353216,1065353216,1065353216]
	movdqa	LCPI0_4(%rip), %xmm9            ## xmm9 = [8,8,8,8]
	pxor	%xmm3, %xmm3
	.p2align	4, 0x90
LBB0_5:                                 ## =>This Inner Loop Header: Depth=1
	movdqa	%xmm4, %xmm7
	paddd	%xmm8, %xmm7
	movdqu	-16(%rax,%rdi,4), %xmm2
	movdqu	(%rax,%rdi,4), %xmm6
	psrld	$5, %xmm6
	psrld	$5, %xmm2
	pand	%xmm10, %xmm6
	pshufd	$27, %xmm6, %xmm6               ## xmm6 = xmm6[3,2,1,0]
	pand	%xmm10, %xmm2
	pshufd	$27, %xmm2, %xmm2               ## xmm2 = xmm2[3,2,1,0]
	movdqa	%xmm4, %xmm1
	pslld	$23, %xmm1
	paddd	%xmm5, %xmm1
	cvttps2dq	%xmm1, %xmm1
	pmulld	%xmm6, %xmm1
	por	%xmm1, %xmm0
	pslld	$23, %xmm7
	paddd	%xmm5, %xmm7
	cvttps2dq	%xmm7, %xmm1
	pmulld	%xmm2, %xmm1
	por	%xmm1, %xmm3
	paddd	%xmm9, %xmm4
	addq	$-8, %rdi
	cmpq	%rdi, %rsi
	jne	LBB0_5
## %bb.6:
	por	%xmm0, %xmm3
	pshufd	$238, %xmm3, %xmm0              ## xmm0 = xmm3[2,3,2,3]
	por	%xmm3, %xmm0
	pshufd	$85, %xmm0, %xmm1               ## xmm1 = xmm0[1,1,1,1]
	por	%xmm0, %xmm1
	movd	%xmm1, %eax
	cmpq	%rdx, %rcx
	je	LBB0_9
LBB0_7:
	subq	%rcx, %r8
	leaq	(%r9,%r8,4), %rsi
	.p2align	4, 0x90
LBB0_8:                                 ## =>This Inner Loop Header: Depth=1
	movl	(%rsi), %edi
	shrl	$5, %edi
	andl	$1, %edi
	shll	%cl, %edi
	orl	%edi, %eax
	incq	%rcx
	addq	$-4, %rsi
	cmpq	%rcx, %rdx
	jne	LBB0_8
LBB0_9:
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.no_dead_strip	_adi_get_bits
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ; -- Begin function adi_get_bits
lCPI0_0:
	.long	0                               ; 0x0
	.long	1                               ; 0x1
	.long	2                               ; 0x2
	.long	3                               ; 0x3
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	2
_adi_get_bits:                          ; @adi_get_bits
	.cfi_startproc
; %bb.0:
	ldp	w8, w9, [x0]
                                        ; kill: def $w8 killed $w8 def $x8
	sxtw	x8, w8
	add	x10, x8, w1, sxtw
	str	w10, [x0]
	cmp	w10, w9
	ccmp	w1, #1, #8, le
	b.ge	LBB0_2
; %bb.1:
	mov	w0, #0
	ret
LBB0_2:
	ldr	x11, [x0, #8]
	mov	w8, w1
	cmp	w1, #16
	b.hs	LBB0_4
; %bb.3:
	mov	x9, #0
	mov	w0, #0
	b	LBB0_7
LBB0_4:
	and	x9, x8, #0xfffffff0
	add	x12, x11, x10, lsl #2
	sub	x12, x12, #28
	movi.2d	v0, #0000000000000000
	movi.4s	v1, #4
	movi.4s	v2, #8
Lloh0:
	adrp	x13, lCPI0_0@PAGE
Lloh1:
	ldr	q3, [x13, lCPI0_0@PAGEOFF]
	movi.4s	v4, #12
	movi.4s	v5, #1
	movi.4s	v6, #16
	mov	x13, x9
	movi.2d	v7, #0000000000000000
	movi.2d	v16, #0000000000000000
	movi.2d	v17, #0000000000000000
LBB0_5:                                 ; =>This Inner Loop Header: Depth=1
	add.4s	v18, v3, v1
	add.4s	v19, v3, v2
	add.4s	v20, v3, v4
	ldp	q22, q21, [x12]
	ldp	q24, q23, [x12, #-32]
	ushr.4s	v21, v21, #5
	ushr.4s	v22, v22, #5
	ushr.4s	v23, v23, #5
	ushr.4s	v24, v24, #5
	and.16b	v21, v21, v5
	rev64.4s	v21, v21
	ext.16b	v21, v21, v21, #8
	and.16b	v22, v22, v5
	rev64.4s	v22, v22
	ext.16b	v22, v22, v22, #8
	and.16b	v23, v23, v5
	rev64.4s	v23, v23
	ext.16b	v23, v23, v23, #8
	and.16b	v24, v24, v5
	rev64.4s	v24, v24
	ext.16b	v24, v24, v24, #8
	ushl.4s	v21, v21, v3
	ushl.4s	v18, v22, v18
	ushl.4s	v19, v23, v19
	ushl.4s	v20, v24, v20
	orr.16b	v0, v21, v0
	orr.16b	v7, v18, v7
	orr.16b	v16, v19, v16
	orr.16b	v17, v20, v17
	add.4s	v3, v3, v6
	sub	x12, x12, #64
	sub	x13, x13, #16
	cbnz	x13, LBB0_5
; %bb.6:
	orr.16b	v0, v7, v0
	orr.16b	v0, v16, v0
	orr.16b	v0, v17, v0
	ext.16b	v1, v0, v0, #8
	orr.8b	v0, v0, v1
	fmov	w12, s0
	mov.s	w13, v0[1]
	orr	w0, w12, w13
	cmp	x9, x8
	b.eq	LBB0_9
LBB0_7:
	sub	x10, x10, x9
	add	x10, x11, x10, lsl #2
LBB0_8:                                 ; =>This Inner Loop Header: Depth=1
	ldr	w11, [x10], #-4
	ubfx	w11, w11, #5, #1
	lsl	w11, w11, w9
	orr	w0, w11, w0
	add	x9, x9, #1
	cmp	x8, x9
	b.ne	LBB0_8
LBB0_9:
	ret
	.loh AdrpLdr	Lloh0, Lloh1
	.cfi_endproc
                                        ; -- End function
	.no_dead_strip	_adi_get_bits
.subsections_via_symbols
