	.build_version macos, 26, 0	sdk_version 26, 5
	.section	__TEXT,__text,regular,pure_instructions
	.globl	_sum_loop                       ; -- Begin function sum_loop
	.p2align	2
_sum_loop:                              ; @sum_loop
	.cfi_startproc
; %bb.0:
	cbz	x1, LBB0_14
; %bb.1:
	cmp	x1, #3
	b.hi	LBB0_3
; %bb.2:
	mov	x8, #0                          ; =0x0
	b	LBB0_12
LBB0_3:
	cmp	x1, #16
	b.hs	LBB0_5
; %bb.4:
	mov	x8, #0                          ; =0x0
	b	LBB0_9
LBB0_5:
	and	x8, x1, #0xfffffffffffffff0
	movi.2d	v0, #0000000000000000
	movi.2d	v1, #0000000000000000
	mov.s	v1[0], w2
	add	x9, x0, #32
	mov	x10, x8
	movi.2d	v2, #0000000000000000
	movi.2d	v3, #0000000000000000
LBB0_6:                                 ; =>This Inner Loop Header: Depth=1
	ldp	q4, q5, [x9, #-32]
	ldp	q6, q7, [x9], #64
	add.4s	v1, v4, v1
	add.4s	v0, v5, v0
	add.4s	v2, v6, v2
	add.4s	v3, v7, v3
	subs	x10, x10, #16
	b.ne	LBB0_6
; %bb.7:
	add.4s	v0, v0, v1
	add.4s	v0, v2, v0
	add.4s	v0, v3, v0
	addv.4s	s0, v0
	fmov	w2, s0
	cmp	x1, x8
	b.eq	LBB0_14
; %bb.8:
	tst	x1, #0xc
	b.eq	LBB0_12
LBB0_9:
	mov	x10, x8
	and	x8, x1, #0xfffffffffffffffc
	movi.2d	v0, #0000000000000000
	mov.s	v0[0], w2
	sub	x9, x10, x8
	add	x10, x0, x10, lsl #2
LBB0_10:                                ; =>This Inner Loop Header: Depth=1
	ldr	q1, [x10], #16
	add.4s	v0, v1, v0
	adds	x9, x9, #4
	b.ne	LBB0_10
; %bb.11:
	addv.4s	s0, v0
	fmov	w2, s0
	cmp	x1, x8
	b.eq	LBB0_14
LBB0_12:
	sub	x9, x1, x8
	add	x8, x0, x8, lsl #2
LBB0_13:                                ; =>This Inner Loop Header: Depth=1
	ldr	w10, [x8], #4
	add	w2, w10, w2
	subs	x9, x9, #1
	b.ne	LBB0_13
LBB0_14:
	mov	x0, x2
	ret
	.cfi_endproc
                                        ; -- End function
	.globl	_sum_rec                        ; -- Begin function sum_rec
	.p2align	2
_sum_rec:                               ; @sum_rec
	.cfi_startproc
; %bb.0:
	cbz	x1, LBB1_3
; %bb.1:
	cmp	x1, #4
	b.hs	LBB1_4
; %bb.2:
	mov	w8, #0                          ; =0x0
	mov	x9, x1
	mov	x11, x0
	b	LBB1_15
LBB1_3:
	mov	w8, #0                          ; =0x0
	add	w0, w8, w2
	ret
LBB1_4:
	cmp	x1, #16
	b.hs	LBB1_6
; %bb.5:
	mov	x10, #0                         ; =0x0
	mov	w8, #0                          ; =0x0
	b	LBB1_10
LBB1_6:
	and	x10, x1, #0xfffffffffffffff0
	add	x8, x0, #32
	movi.2d	v0, #0000000000000000
	mov	x9, x10
	movi.2d	v1, #0000000000000000
	movi.2d	v2, #0000000000000000
	movi.2d	v3, #0000000000000000
LBB1_7:                                 ; =>This Inner Loop Header: Depth=1
	ldp	q4, q5, [x8, #-32]
	ldp	q6, q7, [x8], #64
	add.4s	v0, v4, v0
	add.4s	v1, v5, v1
	add.4s	v2, v6, v2
	add.4s	v3, v7, v3
	subs	x9, x9, #16
	b.ne	LBB1_7
; %bb.8:
	add.4s	v0, v1, v0
	add.4s	v0, v2, v0
	add.4s	v0, v3, v0
	addv.4s	s0, v0
	fmov	w8, s0
	cmp	x1, x10
	b.eq	LBB1_13
; %bb.9:
	tst	x1, #0xc
	b.eq	LBB1_14
LBB1_10:
	and	x12, x1, #0xfffffffffffffffc
	and	x9, x1, #0x3
	add	x11, x0, x12, lsl #2
	movi.2d	v0, #0000000000000000
	mov.s	v0[0], w8
	add	x8, x0, x10, lsl #2
	sub	x10, x10, x12
LBB1_11:                                ; =>This Inner Loop Header: Depth=1
	ldr	q1, [x8], #16
	add.4s	v0, v1, v0
	adds	x10, x10, #4
	b.ne	LBB1_11
; %bb.12:
	addv.4s	s0, v0
	fmov	w8, s0
	cmp	x1, x12
	b.ne	LBB1_15
LBB1_13:
	add	w0, w8, w2
	ret
LBB1_14:
	and	x9, x1, #0xf
	add	x11, x0, x10, lsl #2
LBB1_15:                                ; =>This Inner Loop Header: Depth=1
	ldr	w10, [x11], #4
	add	w8, w10, w8
	subs	x9, x9, #1
	b.ne	LBB1_15
	b	LBB1_13
	.cfi_endproc
                                        ; -- End function
	.globl	_sum_tail                       ; -- Begin function sum_tail
	.p2align	2
_sum_tail:                              ; @sum_tail
	.cfi_startproc
; %bb.0:
	cbz	x1, LBB2_14
; %bb.1:
	cmp	x1, #4
	b.hs	LBB2_3
; %bb.2:
	mov	x8, x1
	mov	x10, x0
	b	LBB2_13
LBB2_3:
	cmp	x1, #16
	b.hs	LBB2_5
; %bb.4:
	mov	x9, #0                          ; =0x0
	b	LBB2_9
LBB2_5:
	and	x9, x1, #0xfffffffffffffff0
	movi.2d	v0, #0000000000000000
	movi.2d	v1, #0000000000000000
	mov.s	v1[0], w2
	add	x8, x0, #32
	mov	x10, x9
	movi.2d	v2, #0000000000000000
	movi.2d	v3, #0000000000000000
LBB2_6:                                 ; =>This Inner Loop Header: Depth=1
	ldp	q4, q5, [x8, #-32]
	ldp	q6, q7, [x8], #64
	add.4s	v1, v4, v1
	add.4s	v0, v5, v0
	add.4s	v2, v6, v2
	add.4s	v3, v7, v3
	subs	x10, x10, #16
	b.ne	LBB2_6
; %bb.7:
	add.4s	v0, v0, v1
	add.4s	v0, v2, v0
	add.4s	v0, v3, v0
	addv.4s	s0, v0
	fmov	w2, s0
	cmp	x1, x9
	b.eq	LBB2_14
; %bb.8:
	tst	x1, #0xc
	b.eq	LBB2_12
LBB2_9:
	and	x11, x1, #0xfffffffffffffffc
	and	x8, x1, #0x3
	add	x10, x0, x11, lsl #2
	movi.2d	v0, #0000000000000000
	mov.s	v0[0], w2
	add	x12, x0, x9, lsl #2
	sub	x9, x9, x11
LBB2_10:                                ; =>This Inner Loop Header: Depth=1
	ldr	q1, [x12], #16
	add.4s	v0, v1, v0
	adds	x9, x9, #4
	b.ne	LBB2_10
; %bb.11:
	addv.4s	s0, v0
	fmov	w2, s0
	cmp	x1, x11
	b.ne	LBB2_13
	b	LBB2_14
LBB2_12:
	and	x8, x1, #0xf
	add	x10, x0, x9, lsl #2
LBB2_13:                                ; =>This Inner Loop Header: Depth=1
	ldr	w9, [x10], #4
	add	w2, w9, w2
	subs	x8, x8, #1
	b.ne	LBB2_13
LBB2_14:
	mov	x0, x2
	ret
	.cfi_endproc
                                        ; -- End function
	.globl	_sum_unrolled                   ; -- Begin function sum_unrolled
	.p2align	2
_sum_unrolled:                          ; @sum_unrolled
	.cfi_startproc
; %bb.0:
	stp	d15, d14, [sp, #-64]!           ; 16-byte Folded Spill
	stp	d13, d12, [sp, #16]             ; 16-byte Folded Spill
	stp	d11, d10, [sp, #32]             ; 16-byte Folded Spill
	stp	d9, d8, [sp, #48]               ; 16-byte Folded Spill
	.cfi_def_cfa_offset 64
	.cfi_offset b8, -8
	.cfi_offset b9, -16
	.cfi_offset b10, -24
	.cfi_offset b11, -32
	.cfi_offset b12, -40
	.cfi_offset b13, -48
	.cfi_offset b14, -56
	.cfi_offset b15, -64
	subs	x8, x1, #4
	b.lo	LBB3_3
; %bb.1:
	cmp	x8, #11
	b.hi	LBB3_4
; %bb.2:
	mov	x13, #0                         ; =0x0
	mov	w8, #0                          ; =0x0
	mov	w9, #0                          ; =0x0
	mov	w10, #0                         ; =0x0
	b	LBB3_14
LBB3_3:
	mov	w10, #0                         ; =0x0
	mov	w9, #0                          ; =0x0
	mov	w8, #0                          ; =0x0
	mov	x11, #0                         ; =0x0
	subs	x12, x1, x11
	b.hi	LBB3_17
	b	LBB3_30
LBB3_4:
	lsr	x9, x8, #2
	add	x11, x9, #1
	cmp	x8, #60
	b.hs	LBB3_6
; %bb.5:
	mov	x12, #0                         ; =0x0
	mov	w8, #0                          ; =0x0
	mov	w9, #0                          ; =0x0
	mov	w10, #0                         ; =0x0
	b	LBB3_10
LBB3_6:
	and	x12, x11, #0x7ffffffffffffff0
	movi.2d	v1, #0000000000000000
	movi.2d	v0, #0000000000000000
	mov.s	v0[0], w2
	add	x8, x0, #128
	movi.2d	v21, #0000000000000000
	mov	x9, x12
	movi.2d	v22, #0000000000000000
	movi.2d	v23, #0000000000000000
	movi.2d	v17, #0000000000000000
	movi.2d	v18, #0000000000000000
	movi.2d	v19, #0000000000000000
	movi.2d	v20, #0000000000000000
	movi.2d	v5, #0000000000000000
	movi.2d	v6, #0000000000000000
	movi.2d	v7, #0000000000000000
	movi.2d	v16, #0000000000000000
	movi.2d	v2, #0000000000000000
	movi.2d	v3, #0000000000000000
	movi.2d	v4, #0000000000000000
LBB3_7:                                 ; =>This Inner Loop Header: Depth=1
	sub	x10, x8, #128
	sub	x13, x8, #64
	ld4.4s	{ v24, v25, v26, v27 }, [x10]
	ld4.4s	{ v28, v29, v30, v31 }, [x13]
	mov	x10, x8
	ld4.4s	{ v8, v9, v10, v11 }, [x10], #64
	ld4.4s	{ v12, v13, v14, v15 }, [x10]
	add.4s	v0, v24, v0
	add.4s	v2, v28, v2
	add.4s	v3, v8, v3
	add.4s	v4, v12, v4
	add.4s	v5, v25, v5
	add.4s	v6, v29, v6
	add.4s	v7, v9, v7
	add.4s	v16, v13, v16
	add.4s	v17, v26, v17
	add.4s	v18, v30, v18
	add.4s	v19, v10, v19
	add.4s	v20, v14, v20
	add.4s	v1, v27, v1
	add.4s	v21, v31, v21
	add.4s	v22, v11, v22
	add.4s	v23, v15, v23
	add	x8, x8, #256
	subs	x9, x9, #16
	b.ne	LBB3_7
; %bb.8:
	add.4s	v1, v21, v1
	add.4s	v1, v22, v1
	add.4s	v1, v23, v1
	addv.4s	s1, v1
	fmov	w8, s1
	add.4s	v1, v18, v17
	add.4s	v1, v19, v1
	add.4s	v1, v20, v1
	addv.4s	s1, v1
	fmov	w9, s1
	add.4s	v1, v6, v5
	add.4s	v1, v7, v1
	add.4s	v1, v16, v1
	addv.4s	s1, v1
	fmov	w10, s1
	add.4s	v0, v2, v0
	add.4s	v0, v3, v0
	add.4s	v0, v4, v0
	addv.4s	s0, v0
	fmov	w2, s0
	cmp	x11, x12
	b.eq	LBB3_16
; %bb.9:
	tst	x11, #0xc
	b.eq	LBB3_13
LBB3_10:
	and	x14, x11, #0x7ffffffffffffffc
	lsl	x13, x14, #2
	movi.2d	v0, #0000000000000000
	movi.2d	v3, #0000000000000000
	mov.s	v3[0], w8
	movi.2d	v2, #0000000000000000
	mov.s	v2[0], w9
	movi.2d	v1, #0000000000000000
	mov.s	v1[0], w10
	mov.s	v0[0], w2
	add	x8, x0, x12, lsl #4
	sub	x9, x12, x14
LBB3_11:                                ; =>This Inner Loop Header: Depth=1
	ld4.4s	{ v4, v5, v6, v7 }, [x8], #64
	add.4s	v0, v4, v0
	add.4s	v1, v5, v1
	add.4s	v2, v6, v2
	add.4s	v3, v7, v3
	adds	x9, x9, #4
	b.ne	LBB3_11
; %bb.12:
	addv.4s	s3, v3
	fmov	w8, s3
	addv.4s	s2, v2
	fmov	w9, s2
	addv.4s	s1, v1
	fmov	w10, s1
	addv.4s	s0, v0
	fmov	w2, s0
	cmp	x11, x14
	b.ne	LBB3_14
	b	LBB3_16
LBB3_13:
	lsl	x13, x12, #2
LBB3_14:
	add	x11, x13, #3
	add	x12, x0, x13, lsl #2
	add	x12, x12, #8
LBB3_15:                                ; =>This Inner Loop Header: Depth=1
	ldp	w13, w14, [x12, #-8]
	add	w2, w13, w2
	add	w10, w14, w10
	ldp	w13, w14, [x12], #16
	add	w9, w13, w9
	add	w8, w14, w8
	add	x11, x11, #4
	cmp	x11, x1
	b.lo	LBB3_15
LBB3_16:
	and	x11, x1, #0xfffffffffffffffc
	subs	x12, x1, x11
	b.ls	LBB3_30
LBB3_17:
	cmp	x12, #3
	b.hi	LBB3_19
; %bb.18:
	mov	x12, x11
	b	LBB3_28
LBB3_19:
	cmp	x12, #16
	b.hs	LBB3_21
; %bb.20:
	mov	x13, #0                         ; =0x0
	b	LBB3_25
LBB3_21:
	and	x13, x12, #0xfffffffffffffff0
	movi.2d	v0, #0000000000000000
	mov.s	v0[0], w2
	movi.2d	v1, #0000000000000000
	add	x14, x0, x11, lsl #2
	add	x14, x14, #32
	mov	x15, x13
	movi.2d	v2, #0000000000000000
	movi.2d	v3, #0000000000000000
LBB3_22:                                ; =>This Inner Loop Header: Depth=1
	ldp	q4, q5, [x14, #-32]
	ldp	q6, q7, [x14], #64
	add.4s	v0, v4, v0
	add.4s	v1, v5, v1
	add.4s	v2, v6, v2
	add.4s	v3, v7, v3
	subs	x15, x15, #16
	b.ne	LBB3_22
; %bb.23:
	add.4s	v0, v1, v0
	add.4s	v0, v2, v0
	add.4s	v0, v3, v0
	addv.4s	s0, v0
	fmov	w2, s0
	cmp	x12, x13
	b.eq	LBB3_30
; %bb.24:
	tst	x12, #0xc
	b.eq	LBB3_31
LBB3_25:
	and	x14, x1, #0x3
	sub	x12, x12, x14
	add	x12, x11, x12
	movi.2d	v0, #0000000000000000
	mov.s	v0[0], w2
	lsl	x15, x11, #2
	add	x15, x15, x13, lsl #2
	add	x15, x0, x15
	add	x11, x13, x11
	add	x11, x11, x14
	sub	x11, x11, x1
LBB3_26:                                ; =>This Inner Loop Header: Depth=1
	ldr	q1, [x15], #16
	add.4s	v0, v1, v0
	adds	x11, x11, #4
	b.ne	LBB3_26
; %bb.27:
	addv.4s	s0, v0
	fmov	w2, s0
	cbz	x14, LBB3_30
LBB3_28:
	sub	x11, x1, x12
	add	x12, x0, x12, lsl #2
LBB3_29:                                ; =>This Inner Loop Header: Depth=1
	ldr	w13, [x12], #4
	add	w2, w13, w2
	subs	x11, x11, #1
	b.ne	LBB3_29
LBB3_30:
	add	w9, w9, w10
	add	w8, w9, w8
	add	w0, w8, w2
	ldp	d9, d8, [sp, #48]               ; 16-byte Folded Reload
	ldp	d11, d10, [sp, #32]             ; 16-byte Folded Reload
	ldp	d13, d12, [sp, #16]             ; 16-byte Folded Reload
	ldp	d15, d14, [sp], #64             ; 16-byte Folded Reload
	ret
LBB3_31:
	add	x12, x11, x13
	b	LBB3_28
	.cfi_endproc
                                        ; -- End function
.subsections_via_symbols
