combine1:
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	movq	%rsi, %rbp
	pushq	%rbx
	xorl	%ebx, %ebx
	subq	$16, %rsp
	movl	$0x3f800000, (%rsi)
	jmp	.L2
.L3:
	leaq	12(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%r12, %rdi
	addq	$1, %rbx
	call	get_vec_element
	movss	0(%rbp), %xmm0
	mulss	12(%rsp), %xmm0
	movss	%xmm0, 0(%rbp)
.L2:
	movq	%r12, %rdi
	call	vec_length
	cmpq	%rax, %rbx
	jl	.L3
	addq	$16, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	ret

combine2:
	pushq	%r13
	movq	%rdi, %r13
	pushq	%r12
	pushq	%rbp
	movq	%rsi, %rbp
	pushq	%rbx
	xorl	%ebx, %ebx
	subq	$24, %rsp
	call	vec_length
	testq	%rax, %rax
	movq	%rax, %r12
	movl	$0x3f800000, 0(%rbp)
	jle	.L6
.L10:
	leaq	12(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%r13, %rdi
	addq	$1, %rbx
	call	get_vec_element
	movss	0(%rbp), %xmm0
	cmpq	%r12, %rbx
	mulss	12(%rsp), %xmm0
	movss	%xmm0, 0(%rbp)
	jne	.L10
.L6:
	addq	$24, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

combine4b:
	pushq	%rbp
	movq	%rsi, %rbp
	pushq	%rbx
	movq	%rdi, %rbx
	subq	$8, %rsp
	call	vec_length
	testq	%rax, %rax
	movss	.LC0(%rip), %xmm0
	jle	.L13
	xorl	%edx, %edx
.L15:
	cmpq	%rdx, (%rbx)
	jle	.L14
	movq	8(%rbx), %rcx
	mulss	(%rcx,%rdx,4), %xmm0
.L14:
	addq	$1, %rdx
	cmpq	%rax, %rdx
	jne	.L15
.L13:
	movss	%xmm0, 0(%rbp)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	ret

combine3:
	pushq	%r12
	pushq	%rbp
	movq	%rdi, %rbp
	pushq	%rbx
	movq	%rsi, %rbx
	call	vec_length
	movq	%rbp, %rdi
	movq	%rax, %r12
	call	get_vec_start
	movss	.LC0(%rip), %xmm0
	testq	%r12, %r12
	movss	%xmm0, (%rbx)
	jle	.L18
	movq	%rax, %rdx
	leaq	(%rax,%r12,4), %rax
.L21:
	mulss	(%rdx), %xmm0
	addq	$4, %rdx
	cmpq	%rax, %rdx
	movss	%xmm0, (%rbx)
	jne	.L21
.L18:
	popq	%rbx
	popq	%rbp
	popq	%r12
	ret

combine3w:
	pushq	%r12
	pushq	%rbp
	movq	%rdi, %rbp
	pushq	%rbx
	movq	%rsi, %rbx
	call	vec_length
	movq	%rbp, %rdi
	movq	%rax, %r12
	call	get_vec_start
	movss	.LC0(%rip), %xmm0
	testq	%r12, %r12
	movss	%xmm0, (%rbx)
	jle	.L23
	movq	%rax, %rdx
	leaq	(%rax,%r12,4), %rax
.L26:
	mulss	(%rdx), %xmm0
	addq	$4, %rdx
	cmpq	%rax, %rdx
	movss	%xmm0, (%rbx)
	jne	.L26
.L23:
	popq	%rbx
	popq	%rbp
	popq	%r12
	ret

combine4:
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbp
	pushq	%rbx
	movq	%rdi, %rbx
	call	vec_length
	movq	%rbx, %rdi
	movq	%rax, %rbp
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L31
	movq	%rax, %rdx
	leaq	(%rax,%rbp,4), %rax
	movss	.LC0(%rip), %xmm0
.L30:
	mulss	(%rdx), %xmm0
	addq	$4, %rdx
	cmpq	%rax, %rdx
	jne	.L30
.L29:
	popq	%rbx
	popq	%rbp
	movss	%xmm0, (%r12)
	popq	%r12
	ret

.L31:
	movss	.LC0(%rip), %xmm0
	jmp	.L29
combine4p:
	pushq	%r12
	pushq	%rbp
	movq	%rsi, %rbp
	pushq	%rbx
	movq	%rdi, %rbx
	call	vec_length
	movq	%rbx, %rdi
	movq	%rax, %r12
	call	get_vec_start
	movq	%rax, %rdx
	leaq	(%rax,%r12,4), %rax
	movss	.LC0(%rip), %xmm0
	cmpq	%rax, %rdx
	jnb	.L34
.L35:
	mulss	(%rdx), %xmm0
	addq	$4, %rdx
	cmpq	%rdx, %rax
	ja	.L35
.L34:
	movss	%xmm0, 0(%rbp)
	popq	%rbx
	popq	%rbp
	popq	%r12
	ret

combine5:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-1(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	xorl	%edx, %edx
	testq	%rbp, %rbp
	movq	%rax, %rcx
	movss	.LC0(%rip), %xmm0
	jle	.L39
.L41:
	mulss	(%rcx,%rdx,4), %xmm0
	mulss	4(%rcx,%rdx,4), %xmm0
	addq	$2, %rdx
	cmpq	%rdx, %rbp
	jg	.L41
	leaq	-2(%rbx), %rax
	shrq	%rax
	leaq	2(%rax,%rax), %rdx
.L39:
	cmpq	%rdx, %rbx
	jle	.L42
.L43:
	mulss	(%rcx,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L43
.L42:
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

unroll3a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-2(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	xorl	%edx, %edx
	testq	%rbp, %rbp
	movss	.LC0(%rip), %xmm0
	jle	.L47
.L48:
	mulss	(%rax,%rdx,4), %xmm0
	mulss	4(%rax,%rdx,4), %xmm0
	mulss	8(%rax,%rdx,4), %xmm0
	addq	$3, %rdx
	cmpq	%rdx, %rbp
	jg	.L48
.L47:
	cmpq	%rdx, %rbx
	jle	.L49
.L50:
	mulss	(%rax,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L50
.L49:
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

combine5p:
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbp
	movq	%rdi, %rbp
	pushq	%rbx
	call	get_vec_start
	movq	%rbp, %rdi
	movq	%rax, %rbx
	call	vec_length
	leaq	(%rbx,%rax,4), %rax
	leaq	-4(%rax), %rcx
	cmpq	%rcx, %rbx
	jnb	.L59
	movq	%rbx, %rdx
	movss	.LC0(%rip), %xmm0
.L56:
	mulss	(%rdx), %xmm0
	addq	$8, %rdx
	mulss	-4(%rdx), %xmm0
	cmpq	%rdx, %rcx
	ja	.L56
	movq	%rax, %rdx
	subq	%rbx, %rdx
	subq	$5, %rdx
	shrq	$3, %rdx
	leaq	8(%rbx,%rdx,8), %rbx
	jmp	.L61
.L58:
	mulss	(%rbx), %xmm0
	addq	$4, %rbx
.L61:
	cmpq	%rbx, %rax
	ja	.L58
	popq	%rbx
	popq	%rbp
	movss	%xmm0, (%r12)
	popq	%r12
	ret

.L59:
	movss	.LC0(%rip), %xmm0
	jmp	.L61
unroll2aw_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-1(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	xorl	%edx, %edx
	testq	%rbp, %rbp
	movq	%rax, %rcx
	movss	.LC0(%rip), %xmm0
	jle	.L63
.L65:
	mulss	(%rcx,%rdx,4), %xmm0
	addq	$2, %rdx
	cmpq	%rdx, %rbp
	mulss	-4(%rcx,%rdx,4), %xmm0
	jg	.L65
	leaq	-2(%rbx), %rax
	shrq	%rax
	leaq	2(%rax,%rax), %rdx
.L63:
	cmpq	%rdx, %rbx
	jle	.L66
.L67:
	mulss	(%rcx,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L67
.L66:
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

unroll4a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-3(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	xorl	%edx, %edx
	testq	%rbp, %rbp
	movq	%rax, %rcx
	movss	.LC0(%rip), %xmm0
	jle	.L71
.L73:
	mulss	(%rcx,%rdx,4), %xmm0
	mulss	4(%rcx,%rdx,4), %xmm0
	mulss	8(%rcx,%rdx,4), %xmm0
	mulss	12(%rcx,%rdx,4), %xmm0
	addq	$4, %rdx
	cmpq	%rdx, %rbp
	jg	.L73
	leaq	-4(%rbx), %rax
	shrq	$2, %rax
	leaq	4(,%rax,4), %rdx
.L71:
	cmpq	%rdx, %rbx
	jle	.L74
.L75:
	mulss	(%rcx,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L75
.L74:
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

unroll5a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-4(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L83
	movq	%rax, %rcx
	movss	.LC0(%rip), %xmm0
	xorl	%edx, %edx
.L80:
	mulss	(%rcx), %xmm0
	addq	$5, %rdx
	addq	$20, %rcx
	mulss	-16(%rcx), %xmm0
	mulss	-12(%rcx), %xmm0
	mulss	-8(%rcx), %xmm0
	mulss	-4(%rcx), %xmm0
	cmpq	%rdx, %rbp
	jg	.L80
.L79:
	cmpq	%rdx, %rbx
	jle	.L81
.L82:
	mulss	(%rax,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L82
.L81:
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L83:
	movss	.LC0(%rip), %xmm0
	xorl	%edx, %edx
	jmp	.L79
unroll6a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-5(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L90
	movq	%rax, %rdx
	movss	.LC0(%rip), %xmm0
	xorl	%ecx, %ecx
.L87:
	mulss	(%rdx), %xmm0
	addq	$6, %rcx
	addq	$24, %rdx
	mulss	-20(%rdx), %xmm0
	mulss	-16(%rdx), %xmm0
	mulss	-12(%rdx), %xmm0
	mulss	-8(%rdx), %xmm0
	mulss	-4(%rdx), %xmm0
	cmpq	%rcx, %rbp
	jg	.L87
.L86:
	cmpq	%rcx, %rbx
	jle	.L88
.L89:
	mulss	(%rax,%rcx,4), %xmm0
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L89
.L88:
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L90:
	movss	.LC0(%rip), %xmm0
	xorl	%ecx, %ecx
	jmp	.L86
unroll7a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-6(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L97
	movq	%rax, %rdx
	movss	.LC0(%rip), %xmm0
	xorl	%ecx, %ecx
.L94:
	mulss	(%rdx), %xmm0
	addq	$7, %rcx
	addq	$28, %rdx
	mulss	-24(%rdx), %xmm0
	mulss	-20(%rdx), %xmm0
	mulss	-16(%rdx), %xmm0
	mulss	-12(%rdx), %xmm0
	mulss	-8(%rdx), %xmm0
	mulss	-4(%rdx), %xmm0
	cmpq	%rcx, %rbp
	jg	.L94
.L93:
	cmpq	%rcx, %rbx
	jle	.L95
.L96:
	mulss	(%rax,%rcx,4), %xmm0
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L96
.L95:
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L97:
	movss	.LC0(%rip), %xmm0
	xorl	%ecx, %ecx
	jmp	.L93
unroll8a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-7(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L105
	movq	%rax, %rdx
	movss	.LC0(%rip), %xmm0
	xorl	%ecx, %ecx
.L102:
	mulss	(%rdx), %xmm0
	addq	$8, %rcx
	addq	$32, %rdx
	mulss	-28(%rdx), %xmm0
	mulss	-24(%rdx), %xmm0
	mulss	-20(%rdx), %xmm0
	mulss	-16(%rdx), %xmm0
	mulss	-12(%rdx), %xmm0
	mulss	-8(%rdx), %xmm0
	mulss	-4(%rdx), %xmm0
	cmpq	%rcx, %rbp
	jg	.L102
	leaq	-8(%rbx), %rdx
	shrq	$3, %rdx
	leaq	8(,%rdx,8), %rdx
.L100:
	cmpq	%rdx, %rbx
	jle	.L103
.L104:
	mulss	(%rax,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L104
.L103:
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L105:
	movss	.LC0(%rip), %xmm0
	xorl	%edx, %edx
	jmp	.L100
unroll9a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-8(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L112
	movq	%rax, %rdx
	movss	.LC0(%rip), %xmm0
	xorl	%ecx, %ecx
.L109:
	mulss	(%rdx), %xmm0
	addq	$9, %rcx
	addq	$36, %rdx
	mulss	-32(%rdx), %xmm0
	mulss	-28(%rdx), %xmm0
	mulss	-24(%rdx), %xmm0
	mulss	-20(%rdx), %xmm0
	mulss	-16(%rdx), %xmm0
	mulss	-12(%rdx), %xmm0
	mulss	-8(%rdx), %xmm0
	mulss	-4(%rdx), %xmm0
	cmpq	%rcx, %rbp
	jg	.L109
.L108:
	cmpq	%rcx, %rbx
	jle	.L110
.L111:
	mulss	(%rax,%rcx,4), %xmm0
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L111
.L110:
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L112:
	movss	.LC0(%rip), %xmm0
	xorl	%ecx, %ecx
	jmp	.L108
unroll10a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-9(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L119
	movq	%rax, %rdx
	movss	.LC0(%rip), %xmm0
	xorl	%ecx, %ecx
.L116:
	mulss	(%rdx), %xmm0
	addq	$10, %rcx
	addq	$40, %rdx
	mulss	-36(%rdx), %xmm0
	mulss	-32(%rdx), %xmm0
	mulss	-28(%rdx), %xmm0
	mulss	-24(%rdx), %xmm0
	mulss	-20(%rdx), %xmm0
	mulss	-16(%rdx), %xmm0
	mulss	-12(%rdx), %xmm0
	mulss	-8(%rdx), %xmm0
	mulss	-4(%rdx), %xmm0
	cmpq	%rcx, %rbp
	jg	.L116
.L115:
	cmpq	%rcx, %rbx
	jle	.L117
.L118:
	mulss	(%rax,%rcx,4), %xmm0
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L118
.L117:
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L119:
	movss	.LC0(%rip), %xmm0
	xorl	%ecx, %ecx
	jmp	.L115
unroll16a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-15(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L127
	movq	%rax, %rdx
	movss	.LC0(%rip), %xmm0
	xorl	%ecx, %ecx
.L124:
	mulss	(%rdx), %xmm0
	addq	$16, %rcx
	addq	$64, %rdx
	mulss	-60(%rdx), %xmm0
	mulss	-56(%rdx), %xmm0
	mulss	-52(%rdx), %xmm0
	mulss	-48(%rdx), %xmm0
	mulss	-44(%rdx), %xmm0
	mulss	-40(%rdx), %xmm0
	mulss	-36(%rdx), %xmm0
	mulss	-32(%rdx), %xmm0
	mulss	-28(%rdx), %xmm0
	mulss	-24(%rdx), %xmm0
	mulss	-20(%rdx), %xmm0
	mulss	-16(%rdx), %xmm0
	mulss	-12(%rdx), %xmm0
	mulss	-8(%rdx), %xmm0
	mulss	-4(%rdx), %xmm0
	cmpq	%rcx, %rbp
	jg	.L124
	leaq	-16(%rbx), %rdx
	andq	$-16, %rdx
	addq	$16, %rdx
.L122:
	cmpq	%rdx, %rbx
	jle	.L125
.L126:
	mulss	(%rax,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L126
.L125:
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L127:
	movss	.LC0(%rip), %xmm0
	xorl	%edx, %edx
	jmp	.L122
unroll2_combine:
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbp
	movq	%rdi, %rbp
	pushq	%rbx
	call	vec_length
	movq	%rbp, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	movq	%rax, %rcx
	movq	%rbx, %rax
	shrq	$63, %rax
	leaq	(%rbx,%rax), %rdi
	andl	$1, %edi
	subq	%rax, %rdi
	subq	%rdi, %rbx
	leaq	(%rcx,%rbx,4), %rax
	cmpq	%rax, %rcx
	jnb	.L135
	movq	%rcx, %rdx
	movss	.LC0(%rip), %xmm0
.L132:
	mulss	(%rdx), %xmm0
	addq	$8, %rdx
	mulss	-4(%rdx), %xmm0
	cmpq	%rdx, %rax
	ja	.L132
	movq	%rcx, %rdx
	notq	%rdx
	addq	%rax, %rdx
	shrq	$3, %rdx
	leaq	8(%rcx,%rdx,8), %rcx
.L130:
	leaq	(%rax,%rdi,4), %rax
	cmpq	%rcx, %rax
	jbe	.L133
.L134:
	mulss	(%rcx), %xmm0
	addq	$4, %rcx
	cmpq	%rcx, %rax
	ja	.L134
.L133:
	popq	%rbx
	popq	%rbp
	movss	%xmm0, (%r12)
	popq	%r12
	ret

.L135:
	movss	.LC0(%rip), %xmm0
	jmp	.L130
unroll3_combine:
	pushq	%r12
	pushq	%rbp
	movq	%rsi, %rbp
	pushq	%rbx
	movq	%rdi, %rbx
	call	vec_length
	movq	%rbx, %rdi
	movq	%rax, %r12
	call	get_vec_start
	movq	%rax, %rdx
	leaq	-8(%rax,%r12,4), %rax
	movss	.LC0(%rip), %xmm0
	cmpq	%rax, %rdx
	jnb	.L138
.L139:
	mulss	(%rdx), %xmm0
	addq	$12, %rdx
	mulss	-8(%rdx), %xmm0
	mulss	-4(%rdx), %xmm0
	cmpq	%rdx, %rax
	ja	.L139
.L138:
	addq	$8, %rax
	cmpq	%rdx, %rax
	jbe	.L140
.L141:
	mulss	(%rdx), %xmm0
	addq	$4, %rdx
	cmpq	%rdx, %rax
	ja	.L141
.L140:
	movss	%xmm0, 0(%rbp)
	popq	%rbx
	popq	%rbp
	popq	%r12
	ret

unroll4_combine:
	pushq	%r12
	pushq	%rbp
	movq	%rsi, %rbp
	pushq	%rbx
	movq	%rdi, %rbx
	call	vec_length
	movq	%rbx, %rdi
	movq	%rax, %r12
	call	get_vec_start
	movq	%rax, %rcx
	leaq	-12(%rax,%r12,4), %rax
	cmpq	%rax, %rcx
	jnb	.L150
	movq	%rcx, %rdx
	movss	.LC0(%rip), %xmm0
.L147:
	mulss	(%rdx), %xmm0
	addq	$16, %rdx
	mulss	-12(%rdx), %xmm0
	mulss	-8(%rdx), %xmm0
	mulss	-4(%rdx), %xmm0
	cmpq	%rdx, %rax
	ja	.L147
	movq	%rcx, %rdx
	notq	%rdx
	addq	%rax, %rdx
	andq	$-16, %rdx
	leaq	16(%rcx,%rdx), %rcx
.L145:
	addq	$12, %rax
	cmpq	%rcx, %rax
	jbe	.L148
.L149:
	mulss	(%rcx), %xmm0
	addq	$4, %rcx
	cmpq	%rcx, %rax
	ja	.L149
.L148:
	movss	%xmm0, 0(%rbp)
	popq	%rbx
	popq	%rbp
	popq	%r12
	ret

.L150:
	movss	.LC0(%rip), %xmm0
	jmp	.L145
unroll8_combine:
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbp
	movq	%rdi, %rbp
	pushq	%rbx
	call	vec_length
	movq	%rbp, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	movq	%rbx, %rdx
	movq	%rax, %rcx
	sarq	$63, %rdx
	shrq	$61, %rdx
	leaq	(%rbx,%rdx), %rdi
	andl	$7, %edi
	subq	%rdx, %rdi
	subq	%rdi, %rbx
	leaq	(%rax,%rbx,4), %rax
	cmpq	%rax, %rcx
	jnb	.L158
	movq	%rcx, %rdx
	movss	.LC0(%rip), %xmm0
.L155:
	mulss	(%rdx), %xmm0
	addq	$32, %rdx
	mulss	-28(%rdx), %xmm0
	mulss	-24(%rdx), %xmm0
	mulss	-20(%rdx), %xmm0
	mulss	-16(%rdx), %xmm0
	mulss	-12(%rdx), %xmm0
	mulss	-8(%rdx), %xmm0
	mulss	-4(%rdx), %xmm0
	cmpq	%rdx, %rax
	ja	.L155
	movq	%rcx, %rdx
	notq	%rdx
	addq	%rax, %rdx
	andq	$-32, %rdx
	leaq	32(%rcx,%rdx), %rcx
.L153:
	leaq	(%rax,%rdi,4), %rax
	cmpq	%rcx, %rax
	jbe	.L156
.L157:
	mulss	(%rcx), %xmm0
	addq	$4, %rcx
	cmpq	%rcx, %rax
	ja	.L157
.L156:
	popq	%rbx
	popq	%rbp
	movss	%xmm0, (%r12)
	popq	%r12
	ret

.L158:
	movss	.LC0(%rip), %xmm0
	jmp	.L153
unroll16_combine:
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbp
	movq	%rdi, %rbp
	pushq	%rbx
	call	vec_length
	movq	%rbp, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	movq	%rbx, %rdx
	movq	%rax, %rcx
	sarq	$63, %rdx
	shrq	$60, %rdx
	leaq	(%rbx,%rdx), %rdi
	andl	$15, %edi
	subq	%rdx, %rdi
	subq	%rdi, %rbx
	leaq	(%rax,%rbx,4), %rax
	cmpq	%rax, %rcx
	jnb	.L166
	movq	%rcx, %rdx
	movss	.LC0(%rip), %xmm0
.L163:
	mulss	(%rdx), %xmm0
	addq	$64, %rdx
	mulss	-60(%rdx), %xmm0
	mulss	-56(%rdx), %xmm0
	mulss	-52(%rdx), %xmm0
	mulss	-48(%rdx), %xmm0
	mulss	-44(%rdx), %xmm0
	mulss	-40(%rdx), %xmm0
	mulss	-36(%rdx), %xmm0
	mulss	-32(%rdx), %xmm0
	mulss	-28(%rdx), %xmm0
	mulss	-24(%rdx), %xmm0
	mulss	-20(%rdx), %xmm0
	mulss	-16(%rdx), %xmm0
	mulss	-12(%rdx), %xmm0
	mulss	-8(%rdx), %xmm0
	mulss	-4(%rdx), %xmm0
	cmpq	%rdx, %rax
	ja	.L163
	movq	%rcx, %rdx
	notq	%rdx
	addq	%rax, %rdx
	andq	$-64, %rdx
	leaq	64(%rcx,%rdx), %rcx
.L161:
	leaq	(%rax,%rdi,4), %rax
	cmpq	%rcx, %rax
	jbe	.L164
.L165:
	mulss	(%rcx), %xmm0
	addq	$4, %rcx
	cmpq	%rcx, %rax
	ja	.L165
.L164:
	popq	%rbx
	popq	%rbp
	movss	%xmm0, (%r12)
	popq	%r12
	ret

.L166:
	movss	.LC0(%rip), %xmm0
	jmp	.L161
combine6:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-1(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	movss	.LC0(%rip), %xmm1
	xorl	%edx, %edx
	testq	%rbp, %rbp
	movq	%rax, %rcx
	movaps	%xmm1, %xmm0
	jle	.L169
.L171:
	mulss	(%rcx,%rdx,4), %xmm0
	mulss	4(%rcx,%rdx,4), %xmm1
	addq	$2, %rdx
	cmpq	%rdx, %rbp
	jg	.L171
	leaq	-2(%rbx), %rax
	shrq	%rax
	leaq	2(%rax,%rax), %rdx
.L169:
	cmpq	%rdx, %rbx
	jle	.L172
.L173:
	mulss	(%rcx,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L173
.L172:
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

unroll4x2a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-3(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	movss	.LC0(%rip), %xmm1
	xorl	%edx, %edx
	testq	%rbp, %rbp
	movq	%rax, %rcx
	movaps	%xmm1, %xmm0
	jle	.L177
.L179:
	mulss	(%rcx,%rdx,4), %xmm0
	mulss	4(%rcx,%rdx,4), %xmm1
	mulss	8(%rcx,%rdx,4), %xmm0
	mulss	12(%rcx,%rdx,4), %xmm1
	addq	$4, %rdx
	cmpq	%rdx, %rbp
	jg	.L179
	leaq	-4(%rbx), %rax
	shrq	$2, %rax
	leaq	4(,%rax,4), %rdx
.L177:
	cmpq	%rdx, %rbx
	jle	.L180
.L181:
	mulss	(%rcx,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L181
.L180:
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

unroll8x2a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-7(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L190
	movss	.LC0(%rip), %xmm1
	movq	%rax, %rdx
	xorl	%ecx, %ecx
	movaps	%xmm1, %xmm0
.L187:
	mulss	(%rdx), %xmm0
	addq	$8, %rcx
	addq	$32, %rdx
	mulss	-28(%rdx), %xmm1
	mulss	-24(%rdx), %xmm0
	mulss	-20(%rdx), %xmm1
	mulss	-16(%rdx), %xmm0
	mulss	-12(%rdx), %xmm1
	mulss	-8(%rdx), %xmm0
	mulss	-4(%rdx), %xmm1
	cmpq	%rcx, %rbp
	jg	.L187
	leaq	-8(%rbx), %rdx
	shrq	$3, %rdx
	leaq	8(,%rdx,8), %rdx
.L185:
	cmpq	%rdx, %rbx
	jle	.L188
.L189:
	mulss	(%rax,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L189
.L188:
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L190:
	movss	.LC0(%rip), %xmm1
	xorl	%edx, %edx
	movaps	%xmm1, %xmm0
	jmp	.L185
unroll3x3a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-2(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	movss	.LC0(%rip), %xmm1
	xorl	%edx, %edx
	testq	%rbp, %rbp
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
	jle	.L193
.L194:
	mulss	(%rax,%rdx,4), %xmm0
	mulss	4(%rax,%rdx,4), %xmm2
	mulss	8(%rax,%rdx,4), %xmm1
	addq	$3, %rdx
	cmpq	%rdx, %rbp
	jg	.L194
.L193:
	cmpq	%rdx, %rbx
	jle	.L195
.L196:
	mulss	(%rax,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L196
.L195:
	mulss	%xmm2, %xmm0
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

unroll4x4a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-3(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	movq	%rax, %rcx
	movss	.LC0(%rip), %xmm1
	jle	.L205
	movaps	%xmm1, %xmm3
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
	xorl	%edx, %edx
.L202:
	mulss	(%rcx,%rdx,4), %xmm0
	mulss	4(%rcx,%rdx,4), %xmm2
	mulss	8(%rcx,%rdx,4), %xmm3
	mulss	12(%rcx,%rdx,4), %xmm1
	addq	$4, %rdx
	cmpq	%rdx, %rbp
	jg	.L202
	leaq	-4(%rbx), %rax
	mulss	%xmm3, %xmm1
	shrq	$2, %rax
	leaq	4(,%rax,4), %rdx
.L200:
	cmpq	%rdx, %rbx
	jle	.L203
.L204:
	mulss	(%rcx,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L204
.L203:
	mulss	%xmm2, %xmm0
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L205:
	movaps	%xmm1, %xmm2
	xorl	%edx, %edx
	movaps	%xmm1, %xmm0
	jmp	.L200
unroll8x4a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-7(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L213
	movss	.LC0(%rip), %xmm1
	movq	%rax, %rdx
	xorl	%ecx, %ecx
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm3
	movaps	%xmm1, %xmm0
.L210:
	mulss	(%rdx), %xmm0
	addq	$8, %rcx
	addq	$32, %rdx
	mulss	-28(%rdx), %xmm3
	mulss	-24(%rdx), %xmm2
	mulss	-20(%rdx), %xmm1
	mulss	-16(%rdx), %xmm0
	mulss	-12(%rdx), %xmm3
	mulss	-8(%rdx), %xmm2
	mulss	-4(%rdx), %xmm1
	cmpq	%rcx, %rbp
	jg	.L210
	leaq	-8(%rbx), %rdx
	shrq	$3, %rdx
	leaq	8(,%rdx,8), %rdx
.L208:
	cmpq	%rdx, %rbx
	jle	.L211
.L212:
	mulss	(%rax,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L212
.L211:
	mulss	%xmm3, %xmm0
	mulss	%xmm2, %xmm0
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L213:
	movss	.LC0(%rip), %xmm1
	xorl	%edx, %edx
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm3
	movaps	%xmm1, %xmm0
	jmp	.L208
unroll12x6a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-11(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L221
	movss	.LC0(%rip), %xmm1
	movq	%rax, %rdx
	xorl	%ecx, %ecx
	movaps	%xmm1, %xmm3
	movaps	%xmm1, %xmm4
	movaps	%xmm1, %xmm5
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
.L218:
	mulss	(%rdx), %xmm0
	addq	$12, %rcx
	addq	$48, %rdx
	mulss	-44(%rdx), %xmm2
	mulss	-40(%rdx), %xmm5
	mulss	-36(%rdx), %xmm4
	mulss	-32(%rdx), %xmm3
	mulss	-28(%rdx), %xmm1
	mulss	-24(%rdx), %xmm0
	mulss	-20(%rdx), %xmm2
	mulss	-16(%rdx), %xmm5
	mulss	-12(%rdx), %xmm4
	mulss	-8(%rdx), %xmm3
	mulss	-4(%rdx), %xmm1
	cmpq	%rcx, %rbp
	jg	.L218
	mulss	%xmm5, %xmm4
	mulss	%xmm3, %xmm1
.L216:
	cmpq	%rcx, %rbx
	jle	.L219
.L220:
	mulss	(%rax,%rcx,4), %xmm0
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L220
.L219:
	mulss	%xmm2, %xmm0
	mulss	%xmm4, %xmm0
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L221:
	movss	.LC0(%rip), %xmm1
	xorl	%ecx, %ecx
	movaps	%xmm1, %xmm4
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
	jmp	.L216
unroll12x12a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-11(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L229
	movss	.LC0(%rip), %xmm1
	movq	%rax, %rdx
	xorl	%ecx, %ecx
	movaps	%xmm1, %xmm3
	movaps	%xmm1, %xmm4
	movaps	%xmm1, %xmm5
	movaps	%xmm1, %xmm6
	movaps	%xmm1, %xmm7
	movaps	%xmm1, %xmm8
	movaps	%xmm1, %xmm9
	movaps	%xmm1, %xmm10
	movaps	%xmm1, %xmm11
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
.L226:
	addq	$12, %rcx
	mulss	(%rdx), %xmm0
	addq	$48, %rdx
	mulss	-24(%rdx), %xmm7
	mulss	-44(%rdx), %xmm2
	mulss	-20(%rdx), %xmm6
	mulss	-40(%rdx), %xmm11
	mulss	-16(%rdx), %xmm5
	mulss	-36(%rdx), %xmm10
	mulss	-12(%rdx), %xmm4
	mulss	-32(%rdx), %xmm9
	mulss	-8(%rdx), %xmm3
	mulss	-28(%rdx), %xmm8
	mulss	-4(%rdx), %xmm1
	cmpq	%rcx, %rbp
	jg	.L226
	mulss	%xmm11, %xmm10
	mulss	%xmm9, %xmm8
	mulss	%xmm7, %xmm6
	mulss	%xmm5, %xmm4
	mulss	%xmm3, %xmm1
.L224:
	cmpq	%rcx, %rbx
	jle	.L227
.L228:
	mulss	(%rax,%rcx,4), %xmm0
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L228
.L227:
	mulss	%xmm2, %xmm0
	mulss	%xmm10, %xmm0
	mulss	%xmm8, %xmm0
	mulss	%xmm6, %xmm0
	mulss	%xmm4, %xmm0
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L229:
	movss	.LC0(%rip), %xmm1
	xorl	%ecx, %ecx
	movaps	%xmm1, %xmm4
	movaps	%xmm1, %xmm6
	movaps	%xmm1, %xmm8
	movaps	%xmm1, %xmm10
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
	jmp	.L224
unroll16x16a_combine:
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbp
	movq	%rdi, %rbp
	pushq	%rbx
	call	vec_length
	movq	%rbp, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	cmpq	$15, %rbx
	jle	.L237
	leaq	-16(%rbx), %rcx
	movss	.LC0(%rip), %xmm1
	movaps	%xmm1, %xmm3
	movq	%rax, %rdx
	shrq	$4, %rcx
	movaps	%xmm1, %xmm4
	leaq	1(%rcx), %r8
	movaps	%xmm1, %xmm5
	movaps	%xmm1, %xmm6
	xorl	%ecx, %ecx
	movq	%r8, %rdi
	movaps	%xmm1, %xmm7
	movaps	%xmm1, %xmm8
	salq	$6, %rdi
	movaps	%xmm1, %xmm9
	movaps	%xmm1, %xmm10
	movaps	%xmm1, %xmm11
	movaps	%xmm1, %xmm12
	movaps	%xmm1, %xmm13
	movaps	%xmm1, %xmm14
	movaps	%xmm1, %xmm15
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
.L234:
	addq	$64, %rcx
	mulss	(%rdx), %xmm0
	addq	$64, %rdx
	mulss	-40(%rdx), %xmm11
	mulss	-60(%rdx), %xmm2
	mulss	-36(%rdx), %xmm10
	mulss	-56(%rdx), %xmm15
	mulss	-32(%rdx), %xmm9
	mulss	-52(%rdx), %xmm14
	mulss	-28(%rdx), %xmm8
	mulss	-48(%rdx), %xmm13
	mulss	-24(%rdx), %xmm7
	mulss	-44(%rdx), %xmm12
	mulss	-20(%rdx), %xmm6
	mulss	-16(%rdx), %xmm5
	mulss	-12(%rdx), %xmm4
	mulss	-8(%rdx), %xmm3
	mulss	-4(%rdx), %xmm1
	cmpq	%rdi, %rcx
	jne	.L234
	mulss	%xmm11, %xmm10
	movq	%r8, %rdx
	mulss	%xmm9, %xmm8
	salq	$4, %rdx
	mulss	%xmm7, %xmm6
	mulss	%xmm5, %xmm4
	mulss	%xmm3, %xmm1
	mulss	%xmm8, %xmm10
	mulss	%xmm15, %xmm14
	mulss	%xmm13, %xmm12
	mulss	%xmm1, %xmm4
	mulss	%xmm6, %xmm10
.L232:
	cmpq	%rdx, %rbx
	jle	.L235
.L236:
	mulss	(%rax,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L236
.L235:
	mulss	%xmm2, %xmm0
	popq	%rbx
	popq	%rbp
	mulss	%xmm14, %xmm0
	mulss	%xmm12, %xmm0
	mulss	%xmm10, %xmm0
	mulss	%xmm4, %xmm0
	movss	%xmm0, (%r12)
	popq	%r12
	ret

.L237:
	movss	.LC0(%rip), %xmm4
	xorl	%edx, %edx
	movaps	%xmm4, %xmm10
	movaps	%xmm4, %xmm12
	movaps	%xmm4, %xmm14
	movaps	%xmm4, %xmm2
	movaps	%xmm4, %xmm0
	jmp	.L232
unroll20x20a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$40, %rsp
	call	vec_length
	leaq	-19(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L245
	movss	.LC0(%rip), %xmm1
	movq	%rax, %rdx
	xorl	%ecx, %ecx
	movss	%xmm1, 24(%rsp)
	movaps	%xmm1, %xmm3
	movaps	%xmm1, %xmm4
	movss	%xmm1, 20(%rsp)
	movaps	%xmm1, %xmm5
	movss	%xmm1, 16(%rsp)
	movaps	%xmm1, %xmm6
	movss	%xmm1, 12(%rsp)
	movaps	%xmm1, %xmm7
	movss	%xmm1, 28(%rsp)
	movaps	%xmm1, %xmm8
	movaps	%xmm1, %xmm9
	movaps	%xmm1, %xmm10
	movaps	%xmm1, %xmm11
	movaps	%xmm1, %xmm12
	movaps	%xmm1, %xmm13
	movaps	%xmm1, %xmm14
	movaps	%xmm1, %xmm15
	movaps	%xmm1, %xmm2
.L242:
	movss	28(%rsp), %xmm0
	addq	$20, %rcx
	mulss	(%rdx), %xmm0
	addq	$80, %rdx
	mulss	-76(%rdx), %xmm2
	mulss	-72(%rdx), %xmm15
	mulss	-68(%rdx), %xmm14
	mulss	-44(%rdx), %xmm11
	mulss	-64(%rdx), %xmm13
	movss	%xmm0, 28(%rsp)
	mulss	-40(%rdx), %xmm10
	movss	12(%rsp), %xmm0
	mulss	-60(%rdx), %xmm12
	mulss	-56(%rdx), %xmm0
	mulss	-36(%rdx), %xmm9
	mulss	-32(%rdx), %xmm8
	mulss	-28(%rdx), %xmm7
	mulss	-24(%rdx), %xmm6
	mulss	-20(%rdx), %xmm5
	movss	%xmm0, 12(%rsp)
	mulss	-16(%rdx), %xmm4
	movss	16(%rsp), %xmm0
	mulss	-12(%rdx), %xmm3
	mulss	-52(%rdx), %xmm0
	mulss	-4(%rdx), %xmm1
	movss	%xmm0, 16(%rsp)
	movss	20(%rsp), %xmm0
	mulss	-48(%rdx), %xmm0
	movss	%xmm0, 20(%rsp)
	movss	24(%rsp), %xmm0
	mulss	-8(%rdx), %xmm0
	cmpq	%rcx, %rbp
	movss	%xmm0, 24(%rsp)
	jg	.L242
	mulss	%xmm15, %xmm14
	movss	12(%rsp), %xmm15
	mulss	16(%rsp), %xmm15
	movss	28(%rsp), %xmm0
	mulss	20(%rsp), %xmm11
	mulss	24(%rsp), %xmm1
	mulss	%xmm8, %xmm7
	mulss	%xmm6, %xmm5
	mulss	%xmm4, %xmm3
	mulss	%xmm10, %xmm9
	mulss	%xmm11, %xmm15
	mulss	%xmm5, %xmm7
	mulss	%xmm1, %xmm3
	mulss	%xmm13, %xmm12
	mulss	%xmm9, %xmm15
	mulss	%xmm3, %xmm7
.L240:
	cmpq	%rcx, %rbx
	jle	.L243
.L244:
	mulss	(%rax,%rcx,4), %xmm0
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L244
.L243:
	mulss	%xmm2, %xmm0
	mulss	%xmm14, %xmm0
	mulss	%xmm12, %xmm0
	mulss	%xmm15, %xmm0
	mulss	%xmm7, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$40, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L245:
	movss	.LC0(%rip), %xmm7
	xorl	%ecx, %ecx
	movaps	%xmm7, %xmm15
	movaps	%xmm7, %xmm12
	movaps	%xmm7, %xmm14
	movaps	%xmm7, %xmm2
	movaps	%xmm7, %xmm0
	jmp	.L240
unroll5x5a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-4(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L253
	movss	.LC0(%rip), %xmm1
	movq	%rax, %rcx
	xorl	%edx, %edx
	movaps	%xmm1, %xmm3
	movaps	%xmm1, %xmm4
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
.L250:
	addq	$5, %rdx
	mulss	(%rcx), %xmm0
	addq	$20, %rcx
	mulss	-16(%rcx), %xmm2
	mulss	-12(%rcx), %xmm4
	mulss	-8(%rcx), %xmm3
	mulss	-4(%rcx), %xmm1
	cmpq	%rdx, %rbp
	jg	.L250
	mulss	%xmm4, %xmm3
	mulss	%xmm1, %xmm3
.L248:
	cmpq	%rdx, %rbx
	jle	.L251
.L252:
	mulss	(%rax,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L252
.L251:
	mulss	%xmm2, %xmm0
	mulss	%xmm3, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L253:
	movss	.LC0(%rip), %xmm3
	xorl	%edx, %edx
	movaps	%xmm3, %xmm2
	movaps	%xmm3, %xmm0
	jmp	.L248
unroll6x6a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-5(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L261
	movss	.LC0(%rip), %xmm1
	movq	%rax, %rdx
	xorl	%ecx, %ecx
	movaps	%xmm1, %xmm3
	movaps	%xmm1, %xmm4
	movaps	%xmm1, %xmm5
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
.L258:
	addq	$6, %rcx
	mulss	(%rdx), %xmm0
	addq	$24, %rdx
	mulss	-20(%rdx), %xmm2
	mulss	-16(%rdx), %xmm5
	mulss	-12(%rdx), %xmm4
	mulss	-8(%rdx), %xmm3
	mulss	-4(%rdx), %xmm1
	cmpq	%rcx, %rbp
	jg	.L258
	mulss	%xmm5, %xmm4
	mulss	%xmm3, %xmm1
.L256:
	cmpq	%rcx, %rbx
	jle	.L259
.L260:
	mulss	(%rax,%rcx,4), %xmm0
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L260
.L259:
	mulss	%xmm2, %xmm0
	mulss	%xmm4, %xmm0
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L261:
	movss	.LC0(%rip), %xmm1
	xorl	%ecx, %ecx
	movaps	%xmm1, %xmm4
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
	jmp	.L256
unroll7x7a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-6(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L269
	movss	.LC0(%rip), %xmm1
	movq	%rax, %rdx
	xorl	%ecx, %ecx
	movaps	%xmm1, %xmm3
	movaps	%xmm1, %xmm4
	movaps	%xmm1, %xmm5
	movaps	%xmm1, %xmm6
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
.L266:
	addq	$7, %rcx
	mulss	(%rdx), %xmm0
	addq	$28, %rdx
	mulss	-24(%rdx), %xmm2
	mulss	-20(%rdx), %xmm6
	mulss	-16(%rdx), %xmm5
	mulss	-12(%rdx), %xmm4
	mulss	-8(%rdx), %xmm3
	mulss	-4(%rdx), %xmm1
	cmpq	%rcx, %rbp
	jg	.L266
	mulss	%xmm4, %xmm3
	mulss	%xmm6, %xmm5
	mulss	%xmm1, %xmm3
.L264:
	cmpq	%rcx, %rbx
	jle	.L267
.L268:
	mulss	(%rax,%rcx,4), %xmm0
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L268
.L267:
	mulss	%xmm2, %xmm0
	mulss	%xmm5, %xmm0
	mulss	%xmm3, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L269:
	movss	.LC0(%rip), %xmm3
	xorl	%ecx, %ecx
	movaps	%xmm3, %xmm5
	movaps	%xmm3, %xmm2
	movaps	%xmm3, %xmm0
	jmp	.L264
unroll8x8a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-7(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L277
	movss	.LC0(%rip), %xmm1
	movq	%rax, %rdx
	xorl	%ecx, %ecx
	movaps	%xmm1, %xmm3
	movaps	%xmm1, %xmm4
	movaps	%xmm1, %xmm5
	movaps	%xmm1, %xmm6
	movaps	%xmm1, %xmm7
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
.L274:
	addq	$8, %rcx
	mulss	(%rdx), %xmm0
	addq	$32, %rdx
	mulss	-28(%rdx), %xmm2
	mulss	-24(%rdx), %xmm7
	mulss	-20(%rdx), %xmm6
	mulss	-16(%rdx), %xmm5
	mulss	-12(%rdx), %xmm4
	mulss	-8(%rdx), %xmm3
	mulss	-4(%rdx), %xmm1
	cmpq	%rcx, %rbp
	jg	.L274
	mulss	%xmm5, %xmm4
	leaq	-8(%rbx), %rdx
	mulss	%xmm3, %xmm1
	mulss	%xmm7, %xmm6
	shrq	$3, %rdx
	leaq	8(,%rdx,8), %rdx
	mulss	%xmm1, %xmm4
.L272:
	cmpq	%rdx, %rbx
	jle	.L275
.L276:
	mulss	(%rax,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L276
.L275:
	mulss	%xmm2, %xmm0
	mulss	%xmm6, %xmm0
	mulss	%xmm4, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L277:
	movss	.LC0(%rip), %xmm4
	xorl	%edx, %edx
	movaps	%xmm4, %xmm6
	movaps	%xmm4, %xmm2
	movaps	%xmm4, %xmm0
	jmp	.L272
unroll9x9a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-8(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L285
	movss	.LC0(%rip), %xmm1
	movq	%rax, %rdx
	xorl	%ecx, %ecx
	movaps	%xmm1, %xmm3
	movaps	%xmm1, %xmm4
	movaps	%xmm1, %xmm5
	movaps	%xmm1, %xmm6
	movaps	%xmm1, %xmm7
	movaps	%xmm1, %xmm8
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
.L282:
	addq	$9, %rcx
	mulss	(%rdx), %xmm0
	addq	$36, %rdx
	mulss	-32(%rdx), %xmm2
	mulss	-28(%rdx), %xmm8
	mulss	-24(%rdx), %xmm7
	mulss	-20(%rdx), %xmm6
	mulss	-16(%rdx), %xmm5
	mulss	-12(%rdx), %xmm4
	mulss	-8(%rdx), %xmm3
	mulss	-4(%rdx), %xmm1
	cmpq	%rcx, %rbp
	jg	.L282
	mulss	%xmm6, %xmm5
	mulss	%xmm4, %xmm3
	mulss	%xmm8, %xmm7
	mulss	%xmm3, %xmm5
	mulss	%xmm1, %xmm5
.L280:
	cmpq	%rcx, %rbx
	jle	.L283
.L284:
	mulss	(%rax,%rcx,4), %xmm0
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L284
.L283:
	mulss	%xmm2, %xmm0
	mulss	%xmm7, %xmm0
	mulss	%xmm5, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L285:
	movss	.LC0(%rip), %xmm5
	xorl	%ecx, %ecx
	movaps	%xmm5, %xmm7
	movaps	%xmm5, %xmm2
	movaps	%xmm5, %xmm0
	jmp	.L280
unroll10x10a_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-9(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L293
	movss	.LC0(%rip), %xmm1
	movq	%rax, %rdx
	xorl	%ecx, %ecx
	movaps	%xmm1, %xmm3
	movaps	%xmm1, %xmm4
	movaps	%xmm1, %xmm5
	movaps	%xmm1, %xmm6
	movaps	%xmm1, %xmm7
	movaps	%xmm1, %xmm8
	movaps	%xmm1, %xmm9
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
.L290:
	addq	$10, %rcx
	mulss	(%rdx), %xmm0
	addq	$40, %rdx
	mulss	-36(%rdx), %xmm2
	mulss	-32(%rdx), %xmm9
	mulss	-28(%rdx), %xmm8
	mulss	-24(%rdx), %xmm7
	mulss	-20(%rdx), %xmm6
	mulss	-16(%rdx), %xmm5
	mulss	-12(%rdx), %xmm4
	mulss	-8(%rdx), %xmm3
	mulss	-4(%rdx), %xmm1
	cmpq	%rcx, %rbp
	jg	.L290
	mulss	%xmm7, %xmm6
	mulss	%xmm5, %xmm4
	mulss	%xmm9, %xmm8
	mulss	%xmm3, %xmm1
	mulss	%xmm4, %xmm6
.L288:
	cmpq	%rcx, %rbx
	jle	.L291
.L292:
	mulss	(%rax,%rcx,4), %xmm0
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L292
.L291:
	mulss	%xmm2, %xmm0
	mulss	%xmm8, %xmm0
	mulss	%xmm6, %xmm0
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L293:
	movss	.LC0(%rip), %xmm1
	xorl	%ecx, %ecx
	movaps	%xmm1, %xmm6
	movaps	%xmm1, %xmm8
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
	jmp	.L288
unrollx2as_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	movq	%rax, %rbx
	movq	%r12, %rdi
	movq	%rax, %rbp
	shrq	$63, %rbx
	addq	%rax, %rbx
	sarq	%rbx
	call	get_vec_start
	movss	.LC0(%rip), %xmm0
	testq	%rbx, %rbx
	movq	%rax, %rcx
	movaps	%xmm0, %xmm1
	leaq	(%rax,%rbx,4), %rax
	jle	.L296
	xorl	%edx, %edx
.L297:
	mulss	(%rcx,%rdx,4), %xmm1
	mulss	(%rax,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L297
.L296:
	leaq	(%rbx,%rbx), %rdx
	cmpq	%rdx, %rbp
	jle	.L298
.L299:
	mulss	(%rcx,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbp, %rdx
	jne	.L299
.L298:
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

unroll8x2_combine:
	pushq	%r12
	pushq	%rbp
	movq	%rsi, %rbp
	pushq	%rbx
	movq	%rdi, %rbx
	call	vec_length
	movq	%rbx, %rdi
	movq	%rax, %r12
	call	get_vec_start
	movq	%rax, %rcx
	leaq	-28(%rax,%r12,4), %rax
	cmpq	%rax, %rcx
	jnb	.L308
	movss	.LC0(%rip), %xmm1
	movq	%rcx, %rdx
	movaps	%xmm1, %xmm0
.L305:
	mulss	(%rdx), %xmm0
	addq	$32, %rdx
	mulss	-28(%rdx), %xmm1
	mulss	-24(%rdx), %xmm0
	mulss	-20(%rdx), %xmm1
	mulss	-16(%rdx), %xmm0
	mulss	-12(%rdx), %xmm1
	mulss	-8(%rdx), %xmm0
	mulss	-4(%rdx), %xmm1
	cmpq	%rdx, %rax
	ja	.L305
	movq	%rcx, %rdx
	notq	%rdx
	addq	%rax, %rdx
	andq	$-32, %rdx
	leaq	32(%rcx,%rdx), %rcx
.L303:
	addq	$28, %rax
	cmpq	%rcx, %rax
	jbe	.L306
.L307:
	mulss	(%rcx), %xmm0
	addq	$4, %rcx
	cmpq	%rcx, %rax
	ja	.L307
.L306:
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%rbp)
	popq	%rbx
	popq	%rbp
	popq	%r12
	ret

.L308:
	movss	.LC0(%rip), %xmm1
	movaps	%xmm1, %xmm0
	jmp	.L303
unroll9x3_combine:
	pushq	%r12
	pushq	%rbp
	movq	%rsi, %rbp
	pushq	%rbx
	movq	%rdi, %rbx
	call	vec_length
	movq	%rbx, %rdi
	movq	%rax, %r12
	call	get_vec_start
	movq	%rax, %rdx
	leaq	-32(%rax,%r12,4), %rax
	movss	.LC0(%rip), %xmm1
	cmpq	%rax, %rdx
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm0
	jnb	.L311
.L312:
	mulss	(%rdx), %xmm0
	addq	$36, %rdx
	mulss	-32(%rdx), %xmm2
	mulss	-28(%rdx), %xmm1
	mulss	-24(%rdx), %xmm0
	mulss	-20(%rdx), %xmm2
	mulss	-16(%rdx), %xmm1
	mulss	-12(%rdx), %xmm0
	mulss	-8(%rdx), %xmm2
	mulss	-4(%rdx), %xmm1
	cmpq	%rdx, %rax
	ja	.L312
.L311:
	addq	$32, %rax
	cmpq	%rdx, %rax
	jbe	.L313
.L314:
	mulss	(%rdx), %xmm0
	addq	$4, %rdx
	cmpq	%rdx, %rax
	ja	.L314
.L313:
	mulss	%xmm2, %xmm0
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%rbp)
	popq	%rbx
	popq	%rbp
	popq	%r12
	ret

unroll8x4_combine:
	pushq	%r12
	pushq	%rbp
	movq	%rsi, %rbp
	pushq	%rbx
	movq	%rdi, %rbx
	call	vec_length
	movq	%rbx, %rdi
	movq	%rax, %r12
	call	get_vec_start
	movq	%rax, %rcx
	leaq	-28(%rax,%r12,4), %rax
	cmpq	%rax, %rcx
	jnb	.L323
	movss	.LC0(%rip), %xmm0
	movq	%rcx, %rdx
	movaps	%xmm0, %xmm1
	movaps	%xmm0, %xmm2
	movaps	%xmm0, %xmm3
.L320:
	mulss	(%rdx), %xmm3
	addq	$32, %rdx
	mulss	-28(%rdx), %xmm2
	mulss	-24(%rdx), %xmm1
	mulss	-20(%rdx), %xmm0
	mulss	-16(%rdx), %xmm3
	mulss	-12(%rdx), %xmm2
	mulss	-8(%rdx), %xmm1
	mulss	-4(%rdx), %xmm0
	cmpq	%rdx, %rax
	ja	.L320
	movq	%rcx, %rdx
	notq	%rdx
	addq	%rax, %rdx
	andq	$-32, %rdx
	leaq	32(%rcx,%rdx), %rcx
.L318:
	addq	$28, %rax
	cmpq	%rcx, %rax
	jbe	.L321
.L322:
	mulss	(%rcx), %xmm0
	addq	$4, %rcx
	cmpq	%rcx, %rax
	ja	.L322
.L321:
	mulss	%xmm3, %xmm0
	mulss	%xmm2, %xmm0
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%rbp)
	popq	%rbx
	popq	%rbp
	popq	%r12
	ret

.L323:
	movss	.LC0(%rip), %xmm0
	movaps	%xmm0, %xmm1
	movaps	%xmm0, %xmm2
	movaps	%xmm0, %xmm3
	jmp	.L318
unroll8x8_combine:
	pushq	%r12
	pushq	%rbp
	movq	%rsi, %rbp
	pushq	%rbx
	movq	%rdi, %rbx
	call	vec_length
	movq	%rbx, %rdi
	movq	%rax, %r12
	call	get_vec_start
	movq	%rax, %rcx
	leaq	-28(%rax,%r12,4), %rax
	cmpq	%rax, %rcx
	jnb	.L331
	movss	.LC0(%rip), %xmm1
	movq	%rcx, %rdx
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm3
	movaps	%xmm1, %xmm4
	movaps	%xmm1, %xmm5
	movaps	%xmm1, %xmm6
	movaps	%xmm1, %xmm7
	movaps	%xmm1, %xmm0
.L328:
	mulss	(%rdx), %xmm0
	addq	$32, %rdx
	mulss	-28(%rdx), %xmm7
	mulss	-24(%rdx), %xmm6
	mulss	-20(%rdx), %xmm5
	mulss	-16(%rdx), %xmm4
	mulss	-12(%rdx), %xmm3
	mulss	-8(%rdx), %xmm2
	mulss	-4(%rdx), %xmm1
	cmpq	%rdx, %rax
	ja	.L328
	movq	%rcx, %rdx
	notq	%rdx
	addq	%rax, %rdx
	andq	$-32, %rdx
	leaq	32(%rcx,%rdx), %rcx
.L326:
	addq	$28, %rax
	cmpq	%rcx, %rax
	jbe	.L329
.L330:
	mulss	(%rcx), %xmm0
	addq	$4, %rcx
	cmpq	%rcx, %rax
	ja	.L330
.L329:
	mulss	%xmm7, %xmm0
	mulss	%xmm6, %xmm0
	mulss	%xmm5, %xmm0
	mulss	%xmm4, %xmm0
	mulss	%xmm3, %xmm0
	mulss	%xmm2, %xmm0
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%rbp)
	popq	%rbx
	popq	%rbp
	popq	%r12
	ret

.L331:
	movss	.LC0(%rip), %xmm1
	movaps	%xmm1, %xmm2
	movaps	%xmm1, %xmm3
	movaps	%xmm1, %xmm4
	movaps	%xmm1, %xmm5
	movaps	%xmm1, %xmm6
	movaps	%xmm1, %xmm7
	movaps	%xmm1, %xmm0
	jmp	.L326
combine7:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-1(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	xorl	%edx, %edx
	testq	%rbp, %rbp
	movq	%rax, %rcx
	movss	.LC0(%rip), %xmm0
	jle	.L334
.L336:
	movss	(%rcx,%rdx,4), %xmm1
	mulss	4(%rcx,%rdx,4), %xmm1
	addq	$2, %rdx
	cmpq	%rdx, %rbp
	mulss	%xmm1, %xmm0
	jg	.L336
	leaq	-2(%rbx), %rax
	shrq	%rax
	leaq	2(%rax,%rax), %rdx
.L334:
	cmpq	%rdx, %rbx
	jle	.L337
.L338:
	mulss	(%rcx,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L338
.L337:
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

unroll3aa_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-2(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	xorl	%edx, %edx
	testq	%rbp, %rbp
	movss	.LC0(%rip), %xmm1
	jle	.L342
.L343:
	movss	(%rax,%rdx,4), %xmm0
	mulss	4(%rax,%rdx,4), %xmm0
	mulss	8(%rax,%rdx,4), %xmm0
	addq	$3, %rdx
	cmpq	%rdx, %rbp
	mulss	%xmm0, %xmm1
	jg	.L343
.L342:
	cmpq	%rdx, %rbx
	jle	.L344
.L345:
	mulss	(%rax,%rdx,4), %xmm1
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L345
.L344:
	movss	%xmm1, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

unroll4aa_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-3(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	xorl	%edx, %edx
	testq	%rbp, %rbp
	movq	%rax, %rcx
	movss	.LC0(%rip), %xmm1
	jle	.L349
.L351:
	movss	(%rcx,%rdx,4), %xmm0
	movss	8(%rcx,%rdx,4), %xmm2
	mulss	4(%rcx,%rdx,4), %xmm0
	mulss	12(%rcx,%rdx,4), %xmm2
	addq	$4, %rdx
	cmpq	%rdx, %rbp
	mulss	%xmm2, %xmm0
	mulss	%xmm0, %xmm1
	jg	.L351
	leaq	-4(%rbx), %rax
	shrq	$2, %rax
	leaq	4(,%rax,4), %rdx
.L349:
	cmpq	%rdx, %rbx
	jle	.L352
.L353:
	mulss	(%rcx,%rdx,4), %xmm1
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L353
.L352:
	movss	%xmm1, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

unroll5aa_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-4(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L361
	movq	%rax, %rcx
	movss	.LC0(%rip), %xmm1
	xorl	%edx, %edx
.L358:
	movss	(%rcx), %xmm0
	addq	$5, %rdx
	addq	$20, %rcx
	movss	-12(%rcx), %xmm2
	mulss	-16(%rcx), %xmm0
	mulss	-8(%rcx), %xmm2
	mulss	%xmm2, %xmm0
	mulss	-4(%rcx), %xmm0
	cmpq	%rdx, %rbp
	mulss	%xmm0, %xmm1
	jg	.L358
.L357:
	cmpq	%rdx, %rbx
	jle	.L359
.L360:
	mulss	(%rax,%rdx,4), %xmm1
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L360
.L359:
	movss	%xmm1, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L361:
	movss	.LC0(%rip), %xmm1
	xorl	%edx, %edx
	jmp	.L357
unroll6aa_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-5(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L368
	movq	%rax, %rdx
	movss	.LC0(%rip), %xmm1
	xorl	%ecx, %ecx
.L365:
	movss	(%rdx), %xmm0
	addq	$6, %rcx
	addq	$24, %rdx
	movss	-16(%rdx), %xmm2
	mulss	-20(%rdx), %xmm0
	mulss	-12(%rdx), %xmm2
	mulss	%xmm2, %xmm0
	movss	-8(%rdx), %xmm2
	mulss	-4(%rdx), %xmm2
	cmpq	%rcx, %rbp
	mulss	%xmm2, %xmm0
	mulss	%xmm0, %xmm1
	jg	.L365
.L364:
	cmpq	%rcx, %rbx
	jle	.L366
.L367:
	mulss	(%rax,%rcx,4), %xmm1
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L367
.L366:
	movss	%xmm1, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L368:
	movss	.LC0(%rip), %xmm1
	xorl	%ecx, %ecx
	jmp	.L364
unroll7aa_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-6(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L375
	movq	%rax, %rdx
	movss	.LC0(%rip), %xmm2
	xorl	%ecx, %ecx
.L372:
	movss	(%rdx), %xmm0
	addq	$7, %rcx
	addq	$28, %rdx
	movss	-20(%rdx), %xmm1
	mulss	-24(%rdx), %xmm0
	mulss	-16(%rdx), %xmm1
	mulss	%xmm1, %xmm0
	movss	-12(%rdx), %xmm1
	mulss	-8(%rdx), %xmm1
	mulss	-4(%rdx), %xmm1
	cmpq	%rcx, %rbp
	mulss	%xmm1, %xmm0
	mulss	%xmm0, %xmm2
	jg	.L372
.L371:
	cmpq	%rcx, %rbx
	jle	.L373
.L374:
	mulss	(%rax,%rcx,4), %xmm2
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L374
.L373:
	movss	%xmm2, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L375:
	movss	.LC0(%rip), %xmm2
	xorl	%ecx, %ecx
	jmp	.L371
unroll8aa_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-7(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L383
	movq	%rax, %rdx
	movss	.LC0(%rip), %xmm2
	xorl	%ecx, %ecx
.L380:
	movss	(%rdx), %xmm0
	addq	$8, %rcx
	addq	$32, %rdx
	movss	-24(%rdx), %xmm1
	mulss	-28(%rdx), %xmm0
	mulss	-20(%rdx), %xmm1
	movss	-8(%rdx), %xmm3
	mulss	-4(%rdx), %xmm3
	mulss	%xmm1, %xmm0
	movss	-16(%rdx), %xmm1
	mulss	-12(%rdx), %xmm1
	cmpq	%rcx, %rbp
	mulss	%xmm3, %xmm1
	mulss	%xmm1, %xmm0
	mulss	%xmm0, %xmm2
	jg	.L380
	leaq	-8(%rbx), %rdx
	shrq	$3, %rdx
	leaq	8(,%rdx,8), %rdx
.L378:
	cmpq	%rdx, %rbx
	jle	.L381
.L382:
	mulss	(%rax,%rdx,4), %xmm2
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L382
.L381:
	movss	%xmm2, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L383:
	movss	.LC0(%rip), %xmm2
	xorl	%edx, %edx
	jmp	.L378
unroll9aa_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-8(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L390
	movq	%rax, %rdx
	movss	.LC0(%rip), %xmm2
	xorl	%ecx, %ecx
.L387:
	movss	(%rdx), %xmm0
	addq	$9, %rcx
	addq	$36, %rdx
	movss	-28(%rdx), %xmm1
	mulss	-32(%rdx), %xmm0
	mulss	-24(%rdx), %xmm1
	movss	-12(%rdx), %xmm3
	mulss	-8(%rdx), %xmm3
	mulss	%xmm1, %xmm0
	movss	-20(%rdx), %xmm1
	mulss	-16(%rdx), %xmm1
	mulss	%xmm3, %xmm1
	mulss	-4(%rdx), %xmm1
	cmpq	%rcx, %rbp
	mulss	%xmm1, %xmm0
	mulss	%xmm0, %xmm2
	jg	.L387
.L386:
	cmpq	%rcx, %rbx
	jle	.L388
.L389:
	mulss	(%rax,%rcx,4), %xmm2
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L389
.L388:
	movss	%xmm2, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L390:
	movss	.LC0(%rip), %xmm2
	xorl	%ecx, %ecx
	jmp	.L386
unroll10aa_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-9(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L397
	movq	%rax, %rdx
	movss	.LC0(%rip), %xmm2
	xorl	%ecx, %ecx
.L394:
	movss	(%rdx), %xmm0
	addq	$10, %rcx
	addq	$40, %rdx
	movss	-32(%rdx), %xmm1
	mulss	-36(%rdx), %xmm0
	mulss	-28(%rdx), %xmm1
	movss	-16(%rdx), %xmm3
	mulss	-12(%rdx), %xmm3
	mulss	%xmm1, %xmm0
	movss	-24(%rdx), %xmm1
	mulss	-20(%rdx), %xmm1
	mulss	%xmm3, %xmm1
	movss	-8(%rdx), %xmm3
	mulss	-4(%rdx), %xmm3
	cmpq	%rcx, %rbp
	mulss	%xmm3, %xmm1
	mulss	%xmm1, %xmm0
	mulss	%xmm0, %xmm2
	jg	.L394
.L393:
	cmpq	%rcx, %rbx
	jle	.L395
.L396:
	mulss	(%rax,%rcx,4), %xmm2
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L396
.L395:
	movss	%xmm2, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L397:
	movss	.LC0(%rip), %xmm2
	xorl	%ecx, %ecx
	jmp	.L393
unroll12aa_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	leaq	-11(%rax), %rbp
	movq	%r12, %rdi
	movq	%rax, %rbx
	call	get_vec_start
	testq	%rbp, %rbp
	jle	.L404
	movq	%rax, %rdx
	movss	.LC0(%rip), %xmm2
	xorl	%ecx, %ecx
.L401:
	movss	(%rdx), %xmm0
	addq	$12, %rcx
	addq	$48, %rdx
	movss	-40(%rdx), %xmm1
	mulss	-44(%rdx), %xmm0
	mulss	-36(%rdx), %xmm1
	movss	-24(%rdx), %xmm3
	mulss	-20(%rdx), %xmm3
	mulss	%xmm1, %xmm0
	movss	-32(%rdx), %xmm1
	mulss	-28(%rdx), %xmm1
	mulss	%xmm3, %xmm1
	movss	-8(%rdx), %xmm3
	mulss	-4(%rdx), %xmm3
	mulss	%xmm1, %xmm0
	movss	-16(%rdx), %xmm1
	mulss	-12(%rdx), %xmm1
	cmpq	%rcx, %rbp
	mulss	%xmm3, %xmm1
	mulss	%xmm1, %xmm0
	mulss	%xmm0, %xmm2
	jg	.L401
.L400:
	cmpq	%rcx, %rbx
	jle	.L402
.L403:
	mulss	(%rax,%rcx,4), %xmm2
	addq	$1, %rcx
	cmpq	%rbx, %rcx
	jne	.L403
.L402:
	movss	%xmm2, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

.L404:
	movss	.LC0(%rip), %xmm2
	xorl	%ecx, %ecx
	jmp	.L400
simd_v1_combine:
	pushq	%rbp
	movq	%rsp, %rbp
	pushq	%r13
	movq	%rdi, %r13
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbx
	andq	$-32, %rsp
	subq	$208, %rsp
	call	get_vec_start
	movq	%r13, %rdi
	movq	%rax, %rbx
	call	vec_length
	movss	.LC0(%rip), %xmm1
	testb	$31, %bl
	movl	%eax, %edx
	movss	%xmm1, 48(%rsp)
	movss	%xmm1, 52(%rsp)
	movaps	%xmm1, %xmm0
	movss	%xmm1, 56(%rsp)
	movss	%xmm1, 60(%rsp)
	movss	%xmm1, 64(%rsp)
	movss	%xmm1, 68(%rsp)
	movss	%xmm1, 72(%rsp)
	movss	%xmm1, 76(%rsp)
	je	.L407
	testl	%eax, %eax
	jne	.L412
	jmp	.L415
.L409:
	testl	%edx, %edx
	je	.L415
.L412:
	addq	$4, %rbx
	subl	$1, %edx
	mulss	-4(%rbx), %xmm0
	testb	$31, %bl
	jne	.L409
.L407:
	cmpl	$7, %edx
	jbe	.L411
	movq	48(%rsp), %rax
	movl	%edx, %r10d
	movq	%rax, 176(%rsp)
	movq	56(%rsp), %rax
	movq	%rax, 184(%rsp)
	movq	64(%rsp), %rax
	movq	%rax, 192(%rsp)
	movq	72(%rsp), %rax
	movq	%rax, 200(%rsp)
	movq	%rbx, %rax
	jmp	.L414
.L432:
	movq	%r9, 176(%rsp)
	movq	%r8, 184(%rsp)
	movq	%rdi, 192(%rsp)
	movq	%rcx, 200(%rsp)
.L414:
	movq	(%rax), %rcx
	subl	$8, %r10d
	addq	$32, %rax
	movaps	176(%rsp), %xmm4
	movq	%rcx, 112(%rsp)
	movq	-24(%rax), %rcx
	movaps	192(%rsp), %xmm6
	movq	%rcx, 120(%rsp)
	movq	-16(%rax), %rcx
	movaps	112(%rsp), %xmm2
	movq	%rcx, 128(%rsp)
	movq	-8(%rax), %rcx
	cmpl	$7, %r10d
	mulps	%xmm4, %xmm2
	movq	%rcx, 136(%rsp)
	movaps	128(%rsp), %xmm3
	mulps	%xmm6, %xmm3
	movaps	%xmm2, (%rsp)
	movq	(%rsp), %r9
	movaps	%xmm2, 16(%rsp)
	movaps	%xmm3, (%rsp)
	movaps	%xmm3, 32(%rsp)
	movq	(%rsp), %rdi
	movq	24(%rsp), %r8
	movq	40(%rsp), %rcx
	movq	%r9, 144(%rsp)
	movq	%r8, 152(%rsp)
	movq	%rdi, 160(%rsp)
	movq	%rcx, 168(%rsp)
	ja	.L432
	subl	$8, %edx
	movq	%r9, 48(%rsp)
	movq	%r9, 80(%rsp)
	movl	%edx, %esi
	movq	%r8, 88(%rsp)
	movq	%rdi, 96(%rsp)
	shrl	$3, %esi
	movq	%rcx, 104(%rsp)
	movq	%r8, 56(%rsp)
	movl	%esi, %eax
	negl	%esi
	movq	%rdi, 64(%rsp)
	addq	$1, %rax
	leal	(%rdx,%rsi,8), %edx
	movq	%rcx, 72(%rsp)
	salq	$5, %rax
	movss	48(%rsp), %xmm1
	addq	%rax, %rbx
.L411:
	testl	%edx, %edx
	je	.L415
.L416:
	addq	$4, %rbx
	subl	$1, %edx
	mulss	-4(%rbx), %xmm0
	jne	.L416
.L415:
	leaq	52(%rsp), %rax
	leaq	80(%rsp), %rdx
	jmp	.L418
.L417:
	movss	(%rax), %xmm1
	addq	$4, %rax
.L418:
	cmpq	%rdx, %rax
	mulss	%xmm1, %xmm0
	jne	.L417
	movss	%xmm0, (%r12)
	leaq	-24(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%rbp
	ret

simd_v2_combine:
	pushq	%rbp
	movq	%rsp, %rbp
	pushq	%r13
	movq	%rdi, %r13
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbx
	andq	$-32, %rsp
	subq	$320, %rsp
	call	get_vec_start
	movq	%r13, %rdi
	movq	%rax, %rbx
	call	vec_length
	movss	.LC0(%rip), %xmm0
	testb	$31, %bl
	movss	%xmm0, 64(%rsp)
	movl	%eax, %ecx
	movss	%xmm0, 68(%rsp)
	movq	64(%rsp), %rdx
	movss	%xmm0, 72(%rsp)
	movss	%xmm0, 76(%rsp)
	movq	%rdx, 256(%rsp)
	movss	%xmm0, 80(%rsp)
	movq	72(%rsp), %rdx
	movss	%xmm0, 84(%rsp)
	movss	%xmm0, 88(%rsp)
	movss	%xmm0, 92(%rsp)
	movq	%rdx, 264(%rsp)
	movq	80(%rsp), %rdx
	movq	%rdx, 272(%rsp)
	movq	88(%rsp), %rdx
	movq	%rdx, 280(%rsp)
	je	.L434
	testl	%eax, %eax
	jne	.L439
	jmp	.L435
.L436:
	testl	%ecx, %ecx
	je	.L435
.L439:
	addq	$4, %rbx
	subl	$1, %ecx
	mulss	-4(%rbx), %xmm0
	testb	$31, %bl
	jne	.L436
.L434:
	cmpl	$15, %ecx
	movq	256(%rsp), %rax
	jbe	.L459
	movq	%rax, 96(%rsp)
	movq	264(%rsp), %rax
	movl	%ecx, %r10d
	movq	%rbx, %rdx
	movq	%rax, 104(%rsp)
	movq	272(%rsp), %rax
	movq	%rax, 112(%rsp)
	movq	280(%rsp), %rax
	movq	%rax, 120(%rsp)
	jmp	.L441
.L460:
	movq	%r9, 96(%rsp)
	movq	%r8, 104(%rsp)
	movq	%rdi, 112(%rsp)
	movq	%rax, 120(%rsp)
.L441:
	movq	(%rdx), %rax
	subl	$16, %r10d
	addq	$64, %rdx
	movaps	96(%rsp), %xmm5
	movq	%rax, 160(%rsp)
	movq	-56(%rdx), %rax
	movaps	112(%rsp), %xmm2
	movq	%rax, 168(%rsp)
	movq	-48(%rdx), %rax
	movaps	160(%rsp), %xmm1
	movq	%rax, 176(%rsp)
	movq	-40(%rdx), %rax
	mulps	%xmm5, %xmm1
	movaps	256(%rsp), %xmm3
	movq	%rax, 184(%rsp)
	movq	-32(%rdx), %rax
	movaps	176(%rsp), %xmm7
	movq	%rax, 192(%rsp)
	movq	-24(%rdx), %rax
	mulps	%xmm7, %xmm2
	movaps	%xmm1, 16(%rsp)
	movq	%rax, 200(%rsp)
	movq	-16(%rdx), %rax
	movaps	192(%rsp), %xmm6
	movq	%rax, 208(%rsp)
	movq	-8(%rdx), %rax
	cmpl	$15, %r10d
	mulps	%xmm6, %xmm3
	movq	16(%rsp), %r9
	movaps	%xmm1, 32(%rsp)
	movq	%rax, 216(%rsp)
	movq	40(%rsp), %r8
	movaps	%xmm2, 16(%rsp)
	movaps	%xmm2, 48(%rsp)
	movq	16(%rsp), %rdi
	movq	56(%rsp), %rax
	movq	%r9, 224(%rsp)
	movq	%r8, 232(%rsp)
	movq	%rdi, 240(%rsp)
	movq	%rax, 248(%rsp)
	movaps	%xmm3, (%rsp)
	movq	(%rsp), %rsi
	movaps	%xmm3, 32(%rsp)
	movaps	272(%rsp), %xmm4
	movq	%rsi, 256(%rsp)
	movq	40(%rsp), %rsi
	movaps	208(%rsp), %xmm7
	mulps	%xmm7, %xmm4
	movq	%rsi, 264(%rsp)
	movaps	%xmm4, 16(%rsp)
	movq	16(%rsp), %r11
	movaps	%xmm4, 48(%rsp)
	movq	%r11, 272(%rsp)
	movq	56(%rsp), %r11
	movq	%r11, 280(%rsp)
	ja	.L460
	subl	$16, %ecx
	movq	%r9, 128(%rsp)
	movq	%r8, 136(%rsp)
	movl	%ecx, %esi
	movq	%rdi, 144(%rsp)
	movq	%rax, 152(%rsp)
	shrl	$4, %esi
	movl	%esi, %edx
	sall	$4, %esi
	addq	$1, %rdx
	subl	%esi, %ecx
	salq	$6, %rdx
	addq	%rdx, %rbx
.L438:
	testl	%ecx, %ecx
	je	.L442
.L443:
	addq	$4, %rbx
	subl	$1, %ecx
	mulss	-4(%rbx), %xmm0
	jne	.L443
.L442:
	movaps	256(%rsp), %xmm3
	mulps	128(%rsp), %xmm3
	movaps	144(%rsp), %xmm4
	movaps	%xmm3, 16(%rsp)
	movq	16(%rsp), %rdx
	movaps	%xmm3, 32(%rsp)
	movaps	272(%rsp), %xmm3
	movq	%rdx, 64(%rsp)
	movq	40(%rsp), %rdx
	mulps	%xmm3, %xmm4
	movq	%rdx, 72(%rsp)
	xorl	%edx, %edx
	movaps	%xmm4, 16(%rsp)
	movq	16(%rsp), %rax
	movaps	%xmm4, 48(%rsp)
	movq	%rax, 80(%rsp)
	movq	56(%rsp), %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
.L445:
	addq	$1, %rax
	mulss	64(%rsp,%rdx,4), %xmm0
	cmpq	$8, %rax
	movq	%rax, %rdx
	jne	.L445
	movss	%xmm0, (%r12)
	leaq	-24(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%rbp
	ret

.L435:
	movq	256(%rsp), %rax
	movq	%rax, 128(%rsp)
	movq	264(%rsp), %rax
	movq	%rax, 136(%rsp)
	movq	272(%rsp), %rax
	movq	%rax, 144(%rsp)
	movq	280(%rsp), %rax
	movq	%rax, 152(%rsp)
	jmp	.L442
.L459:
	movq	%rax, 128(%rsp)
	movq	264(%rsp), %rax
	movq	%rax, 136(%rsp)
	movq	272(%rsp), %rax
	movq	%rax, 144(%rsp)
	movq	280(%rsp), %rax
	movq	%rax, 152(%rsp)
	jmp	.L438
simd_v4_combine:
	pushq	%rbp
	movq	%rsp, %rbp
	pushq	%r13
	movq	%rdi, %r13
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbx
	andq	$-32, %rsp
	subq	$544, %rsp
	call	get_vec_start
	movq	%r13, %rdi
	movq	%rax, %rbx
	call	vec_length
	movss	.LC0(%rip), %xmm0
	testb	$31, %bl
	movss	%xmm0, 96(%rsp)
	movl	%eax, %ecx
	movss	%xmm0, 100(%rsp)
	movq	96(%rsp), %rdx
	movss	%xmm0, 104(%rsp)
	movss	%xmm0, 108(%rsp)
	movq	%rdx, 128(%rsp)
	movss	%xmm0, 112(%rsp)
	movq	104(%rsp), %rdx
	movss	%xmm0, 116(%rsp)
	movss	%xmm0, 120(%rsp)
	movss	%xmm0, 124(%rsp)
	movq	%rdx, 136(%rsp)
	movq	112(%rsp), %rdx
	movq	%rdx, 144(%rsp)
	movq	120(%rsp), %rdx
	movq	%rdx, 152(%rsp)
	je	.L462
	testl	%eax, %eax
	jne	.L467
	jmp	.L463
.L464:
	testl	%ecx, %ecx
	je	.L463
.L467:
	addq	$4, %rbx
	subl	$1, %ecx
	mulss	-4(%rbx), %xmm0
	testb	$31, %bl
	jne	.L464
.L462:
	cmpl	$31, %ecx
	movq	128(%rsp), %rdi
	jbe	.L487
	movq	144(%rsp), %rdx
	movq	136(%rsp), %rsi
	movl	%ecx, %r10d
	movq	152(%rsp), %rax
	movq	%rdi, 480(%rsp)
	movq	%rdi, 192(%rsp)
	movq	%rdi, 256(%rsp)
	movq	%rdx, 496(%rsp)
	movq	%rdx, 208(%rsp)
	movq	%rdx, 272(%rsp)
	movq	%rsi, 488(%rsp)
	movq	%rbx, %rdx
	movq	%rax, 504(%rsp)
	movq	%rsi, 200(%rsp)
	movq	%rax, 216(%rsp)
	movq	%rsi, 264(%rsp)
	movq	%rax, 280(%rsp)
	jmp	.L469
.L488:
	movq	%r9, 480(%rsp)
	movq	%r8, 488(%rsp)
	movq	%rdi, 496(%rsp)
	movq	%rax, 504(%rsp)
.L469:
	movq	(%rdx), %rax
	subl	$32, %r10d
	subq	$-128, %rdx
	movaps	480(%rsp), %xmm2
	movq	%rax, 288(%rsp)
	movq	-120(%rdx), %rax
	movq	%rax, 296(%rsp)
	movq	-112(%rdx), %rax
	movaps	288(%rsp), %xmm1
	movq	%rax, 304(%rsp)
	movq	-104(%rdx), %rax
	mulps	%xmm2, %xmm1
	movq	%rax, 312(%rsp)
	movq	-96(%rdx), %rax
	movq	%rax, 320(%rsp)
	movq	-88(%rdx), %rax
	movq	%rax, 328(%rsp)
	movq	-80(%rdx), %rax
	movq	%rax, 336(%rsp)
	movq	-72(%rdx), %rax
	movq	%rax, 344(%rsp)
	movq	-64(%rdx), %rax
	movq	%rax, 352(%rsp)
	movq	-56(%rdx), %rax
	movq	%rax, 360(%rsp)
	movq	-48(%rdx), %rax
	movq	%rax, 368(%rsp)
	movq	-40(%rdx), %rax
	movq	%rax, 376(%rsp)
	movq	-32(%rdx), %rax
	movq	%rax, 384(%rsp)
	movq	-24(%rdx), %rax
	movq	%rax, 392(%rsp)
	movq	-16(%rdx), %rax
	movq	%rax, 400(%rsp)
	movq	-8(%rdx), %rax
	cmpl	$31, %r10d
	movq	%rax, 408(%rsp)
	movaps	%xmm1, 48(%rsp)
	movq	48(%rsp), %r9
	movaps	%xmm1, 64(%rsp)
	movaps	496(%rsp), %xmm4
	movq	72(%rsp), %r8
	movq	%r9, 416(%rsp)
	movaps	304(%rsp), %xmm2
	movaps	336(%rsp), %xmm7
	mulps	%xmm4, %xmm2
	movq	%r8, 424(%rsp)
	movaps	272(%rsp), %xmm4
	mulps	%xmm7, %xmm4
	movaps	192(%rsp), %xmm5
	movaps	%xmm2, 48(%rsp)
	movq	48(%rsp), %rdi
	movaps	%xmm2, 80(%rsp)
	movaps	%xmm4, 48(%rsp)
	movq	88(%rsp), %rax
	movq	48(%rsp), %rsi
	movaps	%xmm4, 80(%rsp)
	movq	%rdi, 432(%rsp)
	movaps	352(%rsp), %xmm4
	movq	%rsi, 272(%rsp)
	movq	88(%rsp), %rsi
	movaps	256(%rsp), %xmm3
	mulps	%xmm4, %xmm5
	movq	%rax, 440(%rsp)
	movaps	320(%rsp), %xmm6
	movq	%rsi, 280(%rsp)
	mulps	%xmm6, %xmm3
	movaps	208(%rsp), %xmm6
	movaps	%xmm5, 48(%rsp)
	movaps	%xmm3, 32(%rsp)
	movq	32(%rsp), %r11
	movaps	%xmm3, 64(%rsp)
	movaps	368(%rsp), %xmm5
	movq	%r11, 256(%rsp)
	movq	72(%rsp), %r11
	mulps	%xmm5, %xmm6
	movq	%r11, 264(%rsp)
	movaps	%xmm6, 32(%rsp)
	movq	48(%rsp), %r11
	movq	32(%rsp), %rsi
	movaps	32(%rsp), %xmm7
	movq	%r11, 192(%rsp)
	movq	%rsi, 208(%rsp)
	movaps	%xmm7, 80(%rsp)
	movq	88(%rsp), %rsi
	movaps	128(%rsp), %xmm7
	movq	%rsi, 216(%rsp)
	movaps	384(%rsp), %xmm1
	movaps	144(%rsp), %xmm2
	mulps	%xmm1, %xmm7
	movaps	400(%rsp), %xmm1
	movaps	48(%rsp), %xmm6
	mulps	%xmm2, %xmm1
	movaps	%xmm6, 64(%rsp)
	movq	72(%rsp), %r11
	movaps	%xmm7, 48(%rsp)
	movaps	%xmm1, 32(%rsp)
	movaps	%xmm7, 64(%rsp)
	movaps	%xmm1, 80(%rsp)
	movq	48(%rsp), %rsi
	movq	%r11, 200(%rsp)
	movq	32(%rsp), %r11
	movq	%rsi, 128(%rsp)
	movq	72(%rsp), %rsi
	movq	%r11, 144(%rsp)
	movq	88(%rsp), %r11
	movq	%rsi, 136(%rsp)
	movq	%r11, 152(%rsp)
	ja	.L488
	subl	$32, %ecx
	movq	%r9, 512(%rsp)
	movq	%r8, 520(%rsp)
	movl	%ecx, %esi
	movq	%rdi, 528(%rsp)
	movq	%rax, 536(%rsp)
	shrl	$5, %esi
	movl	%esi, %edx
	sall	$5, %esi
	addq	$1, %rdx
	subl	%esi, %ecx
	salq	$7, %rdx
	addq	%rdx, %rbx
.L466:
	testl	%ecx, %ecx
	je	.L470
.L471:
	addq	$4, %rbx
	subl	$1, %ecx
	mulss	-4(%rbx), %xmm0
	jne	.L471
.L470:
	movaps	528(%rsp), %xmm6
	mulps	272(%rsp), %xmm6
	movaps	512(%rsp), %xmm5
	movaps	128(%rsp), %xmm7
	mulps	256(%rsp), %xmm5
	movaps	%xmm6, 80(%rsp)
	movaps	%xmm6, 32(%rsp)
	movaps	%xmm5, 64(%rsp)
	movaps	%xmm5, 48(%rsp)
	movaps	192(%rsp), %xmm6
	movq	48(%rsp), %rdx
	movq	32(%rsp), %rax
	mulps	%xmm6, %xmm7
	movaps	144(%rsp), %xmm5
	movq	%rdx, 448(%rsp)
	movq	%rax, 464(%rsp)
	movq	72(%rsp), %rdx
	movq	88(%rsp), %rax
	movaps	%xmm7, 16(%rsp)
	movq	%rdx, 456(%rsp)
	movq	%rax, 472(%rsp)
	movaps	208(%rsp), %xmm7
	movq	16(%rsp), %rdx
	mulps	%xmm7, %xmm5
	movq	%rdx, 224(%rsp)
	movaps	%xmm5, (%rsp)
	movq	(%rsp), %rax
	movaps	16(%rsp), %xmm5
	movq	%rax, 240(%rsp)
	movaps	(%rsp), %xmm6
	movaps	%xmm5, 64(%rsp)
	movq	72(%rsp), %rdx
	movaps	%xmm6, 80(%rsp)
	movq	88(%rsp), %rax
	movq	%rdx, 232(%rsp)
	movq	%rax, 248(%rsp)
	movaps	32(%rsp), %xmm7
	movaps	48(%rsp), %xmm6
	mulps	(%rsp), %xmm7
	mulps	%xmm5, %xmm6
	movaps	%xmm6, 48(%rsp)
	movq	48(%rsp), %rdx
	movaps	%xmm7, 48(%rsp)
	movaps	%xmm6, 64(%rsp)
	movaps	%xmm7, 80(%rsp)
	movq	48(%rsp), %rax
	movq	%rdx, 96(%rsp)
	movq	72(%rsp), %rdx
	movq	%rax, 112(%rsp)
	movq	88(%rsp), %rax
	movq	%rdx, 104(%rsp)
	xorl	%edx, %edx
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
.L473:
	addq	$1, %rax
	mulss	96(%rsp,%rdx,4), %xmm0
	cmpq	$8, %rax
	movq	%rax, %rdx
	jne	.L473
	movss	%xmm0, (%r12)
	leaq	-24(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%rbp
	ret

.L463:
	movq	128(%rsp), %rsi
	movq	136(%rsp), %rcx
	movq	144(%rsp), %rdx
	movq	152(%rsp), %rax
	movq	%rsi, 192(%rsp)
	movq	%rcx, 200(%rsp)
	movq	%rdx, 208(%rsp)
	movq	%rax, 216(%rsp)
	movq	%rsi, 256(%rsp)
	movq	%rcx, 264(%rsp)
	movq	%rdx, 272(%rsp)
	movq	%rax, 280(%rsp)
	movq	%rsi, 512(%rsp)
	movq	%rcx, 520(%rsp)
	movq	%rdx, 528(%rsp)
	movq	%rax, 536(%rsp)
	jmp	.L470
.L487:
	movq	136(%rsp), %rsi
	movq	144(%rsp), %rdx
	movq	152(%rsp), %rax
	movq	%rdi, 512(%rsp)
	movq	%rdi, 192(%rsp)
	movq	%rdi, 256(%rsp)
	movq	%rsi, 520(%rsp)
	movq	%rdx, 528(%rsp)
	movq	%rax, 536(%rsp)
	movq	%rsi, 200(%rsp)
	movq	%rdx, 208(%rsp)
	movq	%rax, 216(%rsp)
	movq	%rsi, 264(%rsp)
	movq	%rdx, 272(%rsp)
	movq	%rax, 280(%rsp)
	jmp	.L466
simd_v8_combine:
	pushq	%rbp
	movq	%rsp, %rbp
	pushq	%r13
	movq	%rdi, %r13
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbx
	andq	$-32, %rsp
	subq	$928, %rsp
	call	get_vec_start
	movq	%r13, %rdi
	movq	%rax, %rbx
	call	vec_length
	movss	.LC0(%rip), %xmm0
	testb	$31, %bl
	movss	%xmm0, 96(%rsp)
	movl	%eax, %ecx
	movss	%xmm0, 100(%rsp)
	movq	96(%rsp), %rdx
	movss	%xmm0, 104(%rsp)
	movss	%xmm0, 108(%rsp)
	movq	%rdx, 128(%rsp)
	movss	%xmm0, 112(%rsp)
	movq	104(%rsp), %rdx
	movss	%xmm0, 116(%rsp)
	movss	%xmm0, 120(%rsp)
	movss	%xmm0, 124(%rsp)
	movq	%rdx, 136(%rsp)
	movq	112(%rsp), %rdx
	movq	%rdx, 144(%rsp)
	movq	120(%rsp), %rdx
	movq	%rdx, 152(%rsp)
	je	.L490
	testl	%eax, %eax
	jne	.L495
	jmp	.L491
.L492:
	testl	%ecx, %ecx
	je	.L491
.L495:
	addq	$4, %rbx
	subl	$1, %ecx
	mulss	-4(%rbx), %xmm0
	testb	$31, %bl
	jne	.L492
.L490:
	cmpl	$63, %ecx
	jbe	.L515
	movq	128(%rsp), %r8
	movq	136(%rsp), %rdi
	movl	%ecx, %r10d
	movq	144(%rsp), %rsi
	movq	152(%rsp), %rax
	movq	%rbx, %rdx
	movq	%r8, 352(%rsp)
	movq	%rdi, 360(%rsp)
	movq	%rsi, 368(%rsp)
	movq	%rax, 376(%rsp)
	movq	%r8, 832(%rsp)
	movq	%rdi, 840(%rsp)
	movq	%rsi, 848(%rsp)
	movq	%rax, 856(%rsp)
	movq	%r8, 800(%rsp)
	movq	%rdi, 808(%rsp)
	movq	%rsi, 816(%rsp)
	movq	%rax, 824(%rsp)
	movq	%r8, 768(%rsp)
	movq	%rdi, 776(%rsp)
	movq	%rsi, 784(%rsp)
	movq	%rax, 792(%rsp)
	movq	%r8, 736(%rsp)
	movq	%rdi, 744(%rsp)
	movq	%rsi, 752(%rsp)
	movq	%rax, 760(%rsp)
	movq	%r8, 384(%rsp)
	movq	%rdi, 392(%rsp)
	movq	%rsi, 400(%rsp)
	movq	%rax, 408(%rsp)
	movq	%r8, 416(%rsp)
	movq	%rdi, 424(%rsp)
	movq	%rsi, 432(%rsp)
	movq	%rax, 440(%rsp)
	jmp	.L497
.L516:
	movq	%r9, 352(%rsp)
	movq	%r8, 360(%rsp)
	movq	%rdi, 368(%rsp)
	movq	%rax, 376(%rsp)
.L497:
	movq	(%rdx), %rax
	subl	$64, %r10d
	addq	$256, %rdx
	movq	%rax, 448(%rsp)
	movq	-248(%rdx), %rax
	movq	%rax, 456(%rsp)
	movq	-240(%rdx), %rax
	movq	%rax, 464(%rsp)
	movq	-232(%rdx), %rax
	movq	%rax, 472(%rsp)
	movq	-224(%rdx), %rax
	movq	%rax, 480(%rsp)
	movq	-216(%rdx), %rax
	movq	%rax, 488(%rsp)
	movq	-208(%rdx), %rax
	movq	%rax, 496(%rsp)
	movq	-200(%rdx), %rax
	movq	%rax, 504(%rsp)
	movq	-192(%rdx), %rax
	movq	%rax, 512(%rsp)
	movq	-184(%rdx), %rax
	movq	%rax, 520(%rsp)
	movq	-176(%rdx), %rax
	movq	%rax, 528(%rsp)
	movq	-168(%rdx), %rax
	movq	%rax, 536(%rsp)
	movq	-160(%rdx), %rax
	movq	%rax, 544(%rsp)
	movq	-152(%rdx), %rax
	movq	%rax, 552(%rsp)
	movq	-144(%rdx), %rax
	movq	%rax, 560(%rsp)
	movq	-136(%rdx), %rax
	movq	%rax, 568(%rsp)
	movq	-128(%rdx), %rax
	movq	%rax, 576(%rsp)
	movq	-120(%rdx), %rax
	movaps	352(%rsp), %xmm3
	movq	%rax, 584(%rsp)
	movq	-112(%rdx), %rax
	movaps	448(%rsp), %xmm1
	movq	%rax, 592(%rsp)
	movq	-104(%rdx), %rax
	mulps	%xmm3, %xmm1
	movq	%rax, 600(%rsp)
	movq	-96(%rdx), %rax
	movq	%rax, 608(%rsp)
	movq	-88(%rdx), %rax
	movaps	%xmm1, 48(%rsp)
	movq	48(%rsp), %r9
	movq	%rax, 616(%rsp)
	movq	-80(%rdx), %rax
	movq	%rax, 624(%rsp)
	movq	-72(%rdx), %rax
	movq	%rax, 632(%rsp)
	movq	-64(%rdx), %rax
	movq	%rax, 640(%rsp)
	movq	-56(%rdx), %rax
	movq	%rax, 648(%rsp)
	movq	-48(%rdx), %rax
	movq	%rax, 656(%rsp)
	movq	-40(%rdx), %rax
	movq	%rax, 664(%rsp)
	movq	-32(%rdx), %rax
	movq	%rax, 672(%rsp)
	movq	-24(%rdx), %rax
	movq	%rax, 680(%rsp)
	movq	-16(%rdx), %rax
	movq	%rax, 688(%rsp)
	movq	-8(%rdx), %rax
	cmpl	$63, %r10d
	movq	%rax, 696(%rsp)
	movaps	%xmm1, 64(%rsp)
	movq	72(%rsp), %r8
	movq	%r9, 704(%rsp)
	movaps	416(%rsp), %xmm3
	movq	%r8, 712(%rsp)
	movaps	480(%rsp), %xmm7
	mulps	%xmm7, %xmm3
	movaps	432(%rsp), %xmm4
	movaps	368(%rsp), %xmm5
	movaps	%xmm3, 32(%rsp)
	movq	32(%rsp), %r11
	movaps	496(%rsp), %xmm3
	movq	%r11, 416(%rsp)
	movaps	464(%rsp), %xmm2
	mulps	%xmm3, %xmm4
	mulps	%xmm5, %xmm2
	movaps	512(%rsp), %xmm6
	movaps	528(%rsp), %xmm7
	movaps	%xmm2, 48(%rsp)
	movq	48(%rsp), %rdi
	movaps	%xmm4, 48(%rsp)
	movaps	%xmm2, 80(%rsp)
	movaps	48(%rsp), %xmm5
	movq	88(%rsp), %rax
	movq	48(%rsp), %rsi
	movaps	%xmm5, 80(%rsp)
	movq	%rdi, 720(%rsp)
	movaps	384(%rsp), %xmm5
	movq	%rsi, 432(%rsp)
	movq	88(%rsp), %rsi
	mulps	%xmm6, %xmm5
	movaps	400(%rsp), %xmm6
	movq	%rax, 728(%rsp)
	movaps	32(%rsp), %xmm4
	mulps	%xmm7, %xmm6
	movq	%rsi, 440(%rsp)
	movaps	%xmm4, 64(%rsp)
	movq	72(%rsp), %r11
	movaps	%xmm5, 32(%rsp)
	movq	%r11, 424(%rsp)
	movaps	%xmm6, 48(%rsp)
	movq	32(%rsp), %r11
	movq	48(%rsp), %rsi
	movaps	%xmm5, 64(%rsp)
	movaps	%xmm6, 80(%rsp)
	movaps	128(%rsp), %xmm7
	movq	%r11, 384(%rsp)
	movq	%rsi, 400(%rsp)
	movaps	144(%rsp), %xmm1
	movq	72(%rsp), %r11
	movq	88(%rsp), %rsi
	movaps	544(%rsp), %xmm3
	movaps	560(%rsp), %xmm4
	mulps	%xmm3, %xmm7
	movq	%r11, 392(%rsp)
	movq	%rsi, 408(%rsp)
	movaps	736(%rsp), %xmm2
	mulps	%xmm4, %xmm1
	movaps	752(%rsp), %xmm3
	movaps	%xmm7, 32(%rsp)
	movq	32(%rsp), %r11
	movaps	%xmm1, 48(%rsp)
	movaps	%xmm7, 64(%rsp)
	movaps	%xmm1, 80(%rsp)
	movaps	576(%rsp), %xmm7
	movq	48(%rsp), %rsi
	movq	%r11, 128(%rsp)
	movaps	592(%rsp), %xmm1
	mulps	%xmm7, %xmm2
	movq	72(%rsp), %r11
	mulps	%xmm1, %xmm3
	movq	%rsi, 144(%rsp)
	movq	88(%rsp), %rsi
	movq	%r11, 136(%rsp)
	movaps	%xmm2, 32(%rsp)
	movq	%rsi, 152(%rsp)
	movq	32(%rsp), %r11
	movaps	%xmm3, 48(%rsp)
	movaps	%xmm2, 64(%rsp)
	movaps	%xmm3, 80(%rsp)
	movaps	608(%rsp), %xmm4
	movq	48(%rsp), %rsi
	movq	%r11, 736(%rsp)
	movaps	624(%rsp), %xmm5
	mulps	768(%rsp), %xmm4
	movq	72(%rsp), %r11
	movq	%rsi, 752(%rsp)
	mulps	784(%rsp), %xmm5
	movq	88(%rsp), %rsi
	movaps	640(%rsp), %xmm1
	movq	%r11, 744(%rsp)
	movaps	656(%rsp), %xmm2
	movq	%rsi, 760(%rsp)
	movaps	800(%rsp), %xmm6
	movaps	816(%rsp), %xmm7
	mulps	%xmm1, %xmm6
	movaps	%xmm5, 48(%rsp)
	movq	48(%rsp), %rsi
	mulps	%xmm2, %xmm7
	movaps	%xmm4, 32(%rsp)
	movaps	%xmm4, 64(%rsp)
	movaps	%xmm5, 80(%rsp)
	movaps	%xmm7, 48(%rsp)
	movq	32(%rsp), %r11
	movq	%rsi, 784(%rsp)
	movq	88(%rsp), %rsi
	movaps	%xmm6, 32(%rsp)
	movq	%r11, 768(%rsp)
	movq	72(%rsp), %r11
	movaps	%xmm6, 64(%rsp)
	movq	%r11, 776(%rsp)
	movq	%rsi, 792(%rsp)
	movq	32(%rsp), %r11
	movq	48(%rsp), %rsi
	movaps	%xmm7, 80(%rsp)
	movaps	832(%rsp), %xmm5
	movq	%r11, 800(%rsp)
	movq	%rsi, 816(%rsp)
	movaps	848(%rsp), %xmm2
	movq	72(%rsp), %r11
	movq	88(%rsp), %rsi
	movaps	672(%rsp), %xmm1
	movaps	688(%rsp), %xmm6
	mulps	%xmm5, %xmm1
	movq	%r11, 808(%rsp)
	movq	%rsi, 824(%rsp)
	mulps	%xmm6, %xmm2
	movaps	%xmm1, 48(%rsp)
	movq	48(%rsp), %rsi
	movaps	%xmm2, 32(%rsp)
	movaps	%xmm1, 64(%rsp)
	movaps	%xmm2, 80(%rsp)
	movq	32(%rsp), %r11
	movq	%rsi, 832(%rsp)
	movq	72(%rsp), %rsi
	movq	%r11, 848(%rsp)
	movq	88(%rsp), %r11
	movq	%rsi, 840(%rsp)
	movq	%r11, 856(%rsp)
	ja	.L516
	subl	$64, %ecx
	movq	%r9, 896(%rsp)
	movq	%r8, 904(%rsp)
	movl	%ecx, %esi
	movq	%rdi, 912(%rsp)
	movq	%rax, 920(%rsp)
	shrl	$6, %esi
	movl	%esi, %edx
	sall	$6, %esi
	addq	$1, %rdx
	subl	%esi, %ecx
	salq	$8, %rdx
	addq	%rdx, %rbx
.L494:
	testl	%ecx, %ecx
	je	.L498
.L499:
	addq	$4, %rbx
	subl	$1, %ecx
	mulss	-4(%rbx), %xmm0
	jne	.L499
.L498:
	movaps	416(%rsp), %xmm7
	movaps	896(%rsp), %xmm2
	mulps	%xmm7, %xmm2
	movaps	384(%rsp), %xmm4
	movaps	400(%rsp), %xmm5
	movaps	%xmm2, 48(%rsp)
	movq	48(%rsp), %rdx
	movaps	432(%rsp), %xmm2
	movq	%rdx, 320(%rsp)
	mulps	912(%rsp), %xmm2
	movaps	48(%rsp), %xmm7
	movaps	%xmm7, 64(%rsp)
	movq	72(%rsp), %rdx
	movaps	%xmm7, %xmm3
	movaps	%xmm2, 80(%rsp)
	movq	%rdx, 328(%rsp)
	movaps	%xmm2, 32(%rsp)
	movaps	128(%rsp), %xmm2
	movq	32(%rsp), %rax
	mulps	%xmm4, %xmm2
	movq	%rax, 336(%rsp)
	movq	88(%rsp), %rax
	movaps	%xmm2, 16(%rsp)
	movq	%rax, 344(%rsp)
	movq	16(%rsp), %rdx
	movaps	144(%rsp), %xmm2
	movq	%rdx, 288(%rsp)
	mulps	%xmm5, %xmm2
	movaps	16(%rsp), %xmm6
	movaps	%xmm6, 64(%rsp)
	movq	72(%rsp), %rdx
	mulps	%xmm6, %xmm3
	movaps	%xmm2, (%rsp)
	movq	(%rsp), %rax
	movq	%rdx, 296(%rsp)
	movaps	%xmm2, 80(%rsp)
	movaps	%xmm3, %xmm7
	movq	%rax, 304(%rsp)
	movq	88(%rsp), %rax
	movq	%rax, 312(%rsp)
	movaps	32(%rsp), %xmm4
	mulps	%xmm2, %xmm4
	movaps	%xmm3, 64(%rsp)
	movaps	%xmm3, 16(%rsp)
	movaps	%xmm4, 80(%rsp)
	movaps	%xmm4, %xmm3
	movaps	%xmm4, (%rsp)
	movaps	768(%rsp), %xmm5
	movq	16(%rsp), %rdx
	movq	(%rsp), %rax
	movaps	736(%rsp), %xmm4
	mulps	%xmm4, %xmm5
	movq	%rdx, 256(%rsp)
	movaps	784(%rsp), %xmm6
	movq	72(%rsp), %rdx
	movq	%rax, 272(%rsp)
	movq	88(%rsp), %rax
	movaps	%xmm5, 48(%rsp)
	movq	%rdx, 264(%rsp)
	movq	%rax, 280(%rsp)
	movaps	752(%rsp), %xmm5
	movq	48(%rsp), %rdx
	mulps	%xmm5, %xmm6
	movq	%rdx, 224(%rsp)
	movaps	%xmm6, 32(%rsp)
	movq	32(%rsp), %rax
	movaps	32(%rsp), %xmm2
	movq	%rax, 240(%rsp)
	movaps	48(%rsp), %xmm6
	movaps	%xmm2, 80(%rsp)
	mulps	%xmm6, %xmm7
	movq	88(%rsp), %rax
	movaps	%xmm6, 64(%rsp)
	movaps	32(%rsp), %xmm2
	movq	72(%rsp), %rdx
	movq	%rax, 248(%rsp)
	mulps	%xmm3, %xmm2
	movaps	%xmm7, 16(%rsp)
	movq	%rdx, 232(%rsp)
	movaps	%xmm2, (%rsp)
	movq	16(%rsp), %rdx
	movq	(%rsp), %rax
	movaps	%xmm7, 64(%rsp)
	movaps	%xmm2, 80(%rsp)
	movaps	800(%rsp), %xmm4
	movq	%rdx, 192(%rsp)
	movq	%rax, 208(%rsp)
	movaps	832(%rsp), %xmm3
	movq	72(%rsp), %rdx
	movq	88(%rsp), %rax
	mulps	%xmm4, %xmm3
	movaps	816(%rsp), %xmm5
	movaps	848(%rsp), %xmm4
	movq	%rdx, 200(%rsp)
	movq	%rax, 216(%rsp)
	mulps	%xmm5, %xmm4
	movaps	(%rsp), %xmm6
	movaps	%xmm7, %xmm5
	movaps	%xmm3, 48(%rsp)
	movq	48(%rsp), %rdx
	mulps	%xmm3, %xmm5
	movaps	%xmm3, 64(%rsp)
	mulps	%xmm4, %xmm6
	movaps	%xmm4, 32(%rsp)
	movaps	%xmm4, 80(%rsp)
	movaps	%xmm5, 48(%rsp)
	movq	32(%rsp), %rax
	movq	%rdx, 160(%rsp)
	movq	72(%rsp), %rdx
	movaps	%xmm5, 64(%rsp)
	movq	%rax, 176(%rsp)
	movq	88(%rsp), %rax
	movaps	%xmm6, 80(%rsp)
	movq	%rdx, 168(%rsp)
	movq	%rax, 184(%rsp)
	movq	48(%rsp), %rdx
	movaps	%xmm6, 48(%rsp)
	movq	48(%rsp), %rax
	movq	%rdx, 96(%rsp)
	movq	72(%rsp), %rdx
	movq	%rax, 112(%rsp)
	movq	88(%rsp), %rax
	movq	%rdx, 104(%rsp)
	xorl	%edx, %edx
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
.L501:
	addq	$1, %rax
	mulss	96(%rsp,%rdx,4), %xmm0
	cmpq	$8, %rax
	movq	%rax, %rdx
	jne	.L501
	movss	%xmm0, (%r12)
	leaq	-24(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%rbp
	ret

.L491:
	movq	128(%rsp), %rsi
	movq	136(%rsp), %rcx
	movq	144(%rsp), %rdx
	movq	152(%rsp), %rax
	movq	%rsi, 896(%rsp)
	movq	%rcx, 904(%rsp)
	movq	%rdx, 912(%rsp)
	movq	%rax, 920(%rsp)
	movq	%rsi, 832(%rsp)
	movq	%rcx, 840(%rsp)
	movq	%rdx, 848(%rsp)
	movq	%rax, 856(%rsp)
	movq	%rsi, 800(%rsp)
	movq	%rcx, 808(%rsp)
	movq	%rdx, 816(%rsp)
	movq	%rax, 824(%rsp)
	movq	%rsi, 768(%rsp)
	movq	%rcx, 776(%rsp)
	movq	%rdx, 784(%rsp)
	movq	%rax, 792(%rsp)
	movq	%rsi, 736(%rsp)
	movq	%rcx, 744(%rsp)
	movq	%rdx, 752(%rsp)
	movq	%rax, 760(%rsp)
	movq	%rsi, 384(%rsp)
	movq	%rcx, 392(%rsp)
	movq	%rdx, 400(%rsp)
	movq	%rax, 408(%rsp)
	movq	%rsi, 416(%rsp)
	movq	%rcx, 424(%rsp)
	movq	%rdx, 432(%rsp)
	movq	%rax, 440(%rsp)
	jmp	.L498
.L515:
	movq	128(%rsp), %rdi
	movq	136(%rsp), %rsi
	movq	144(%rsp), %rdx
	movq	152(%rsp), %rax
	movq	%rdi, 896(%rsp)
	movq	%rsi, 904(%rsp)
	movq	%rdx, 912(%rsp)
	movq	%rax, 920(%rsp)
	movq	%rdi, 832(%rsp)
	movq	%rsi, 840(%rsp)
	movq	%rdx, 848(%rsp)
	movq	%rax, 856(%rsp)
	movq	%rdi, 800(%rsp)
	movq	%rsi, 808(%rsp)
	movq	%rdx, 816(%rsp)
	movq	%rax, 824(%rsp)
	movq	%rdi, 768(%rsp)
	movq	%rsi, 776(%rsp)
	movq	%rdx, 784(%rsp)
	movq	%rax, 792(%rsp)
	movq	%rdi, 736(%rsp)
	movq	%rsi, 744(%rsp)
	movq	%rdx, 752(%rsp)
	movq	%rax, 760(%rsp)
	movq	%rdi, 384(%rsp)
	movq	%rsi, 392(%rsp)
	movq	%rdx, 400(%rsp)
	movq	%rax, 408(%rsp)
	movq	%rdi, 416(%rsp)
	movq	%rsi, 424(%rsp)
	movq	%rdx, 432(%rsp)
	movq	%rax, 440(%rsp)
	jmp	.L494
simd_v10_combine:
	pushq	%rbp
	movq	%rsp, %rbp
	pushq	%r13
	movq	%rdi, %r13
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbx
	andq	$-32, %rsp
	subq	$1120, %rsp
	call	get_vec_start
	movq	%r13, %rdi
	movq	%rax, %rbx
	call	vec_length
	movss	.LC0(%rip), %xmm0
	testb	$31, %bl
	movss	%xmm0, 96(%rsp)
	movl	%eax, %edx
	movss	%xmm0, 100(%rsp)
	movq	96(%rsp), %rcx
	movss	%xmm0, 104(%rsp)
	movss	%xmm0, 108(%rsp)
	movq	%rcx, 736(%rsp)
	movss	%xmm0, 112(%rsp)
	movq	104(%rsp), %rcx
	movss	%xmm0, 116(%rsp)
	movss	%xmm0, 120(%rsp)
	movss	%xmm0, 124(%rsp)
	movq	%rcx, 744(%rsp)
	movq	112(%rsp), %rcx
	movq	%rcx, 752(%rsp)
	movq	120(%rsp), %rcx
	movq	%rcx, 760(%rsp)
	je	.L518
	testl	%eax, %eax
	jne	.L523
	jmp	.L519
.L520:
	testl	%edx, %edx
	je	.L519
.L523:
	addq	$4, %rbx
	subl	$1, %edx
	mulss	-4(%rbx), %xmm0
	testb	$31, %bl
	jne	.L520
.L518:
	cmpl	$79, %edx
	movl	%edx, %r11d
	jbe	.L543
	movq	736(%rsp), %rsi
	movq	752(%rsp), %rdx
	movq	760(%rsp), %rax
	movq	744(%rsp), %rcx
	movq	%rsi, 1056(%rsp)
	movq	%rdx, 1072(%rsp)
	movq	%rcx, 1064(%rsp)
	movq	%rax, 1080(%rsp)
	movq	%rsi, 704(%rsp)
	movq	%rcx, 712(%rsp)
	movq	%rdx, 720(%rsp)
	movq	%rax, 728(%rsp)
	movq	%rsi, 672(%rsp)
	movq	%rcx, 680(%rsp)
	movq	%rdx, 688(%rsp)
	movq	%rax, 696(%rsp)
	movq	%rsi, 640(%rsp)
	movq	%rcx, 648(%rsp)
	movq	%rdx, 656(%rsp)
	movq	%rax, 664(%rsp)
	movq	%rsi, 608(%rsp)
	movq	%rcx, 616(%rsp)
	movq	%rdx, 624(%rsp)
	movq	%rax, 632(%rsp)
	movq	%rsi, 576(%rsp)
	movq	%rcx, 584(%rsp)
	movq	%rdx, 592(%rsp)
	movq	%rax, 600(%rsp)
	movq	%rsi, 544(%rsp)
	movq	%rcx, 552(%rsp)
	movq	%rdx, 560(%rsp)
	movq	%rax, 568(%rsp)
	movq	%rsi, 512(%rsp)
	movq	%rcx, 520(%rsp)
	movq	%rdx, 528(%rsp)
	movq	%rax, 536(%rsp)
	movq	%rsi, 480(%rsp)
	movq	%rcx, 488(%rsp)
	movq	%rdx, 496(%rsp)
	movq	%rax, 504(%rsp)
	jmp	.L525
.L544:
	movl	%edx, %r11d
	movq	%r8, 1056(%rsp)
	movq	%rdi, 1064(%rsp)
	movq	%rcx, 1072(%rsp)
	movq	%rax, 1080(%rsp)
.L525:
	movq	(%rbx), %rax
	addq	$320, %rbx
	movq	%rax, 128(%rsp)
	movq	-312(%rbx), %rax
	movq	%rax, 136(%rsp)
	movq	-304(%rbx), %rax
	movq	%rax, 144(%rsp)
	movq	-296(%rbx), %rax
	movq	%rax, 152(%rsp)
	movq	-288(%rbx), %rax
	movq	%rax, 160(%rsp)
	movq	-280(%rbx), %rax
	movq	%rax, 168(%rsp)
	movq	-272(%rbx), %rax
	movq	%rax, 176(%rsp)
	movq	-264(%rbx), %rax
	movq	%rax, 184(%rsp)
	movq	-256(%rbx), %rax
	movq	%rax, 192(%rsp)
	movq	-248(%rbx), %rax
	movq	%rax, 200(%rsp)
	movq	-240(%rbx), %rax
	movq	%rax, 208(%rsp)
	movq	-232(%rbx), %rax
	movq	%rax, 216(%rsp)
	movq	-224(%rbx), %rax
	movq	%rax, 224(%rsp)
	movq	-216(%rbx), %rax
	movq	%rax, 232(%rsp)
	movq	-208(%rbx), %rax
	movq	%rax, 240(%rsp)
	movq	-200(%rbx), %rax
	movq	%rax, 248(%rsp)
	movq	-192(%rbx), %rax
	movq	%rax, 256(%rsp)
	movq	-184(%rbx), %rax
	movq	%rax, 264(%rsp)
	movq	-176(%rbx), %rax
	movq	%rax, 272(%rsp)
	movq	-168(%rbx), %rax
	movq	%rax, 280(%rsp)
	movq	-160(%rbx), %rax
	movq	%rax, 288(%rsp)
	movq	-152(%rbx), %rax
	movq	%rax, 296(%rsp)
	movq	-144(%rbx), %rax
	movq	%rax, 304(%rsp)
	movq	-136(%rbx), %rax
	movq	%rax, 312(%rsp)
	movq	-128(%rbx), %rax
	movq	%rax, 320(%rsp)
	movq	-120(%rbx), %rax
	movq	%rax, 328(%rsp)
	movq	-112(%rbx), %rax
	movq	%rax, 336(%rsp)
	movq	-104(%rbx), %rax
	movq	%rax, 344(%rsp)
	movq	-96(%rbx), %rax
	movq	%rax, 352(%rsp)
	movq	-88(%rbx), %rax
	movq	%rax, 360(%rsp)
	movq	-80(%rbx), %rax
	movq	%rax, 368(%rsp)
	movq	-72(%rbx), %rax
	movq	%rax, 376(%rsp)
	movq	-64(%rbx), %rax
	movq	%rax, 384(%rsp)
	movq	-56(%rbx), %rax
	movq	%rax, 392(%rsp)
	movq	-48(%rbx), %rax
	movaps	1056(%rsp), %xmm7
	movq	%rax, 400(%rsp)
	movq	-40(%rbx), %rax
	movaps	128(%rsp), %xmm1
	movq	%rax, 408(%rsp)
	movq	-32(%rbx), %rax
	mulps	%xmm7, %xmm1
	movaps	1072(%rsp), %xmm2
	movq	%rax, 416(%rsp)
	movq	-24(%rbx), %rax
	movaps	160(%rsp), %xmm3
	movq	%rax, 424(%rsp)
	movq	-16(%rbx), %rax
	movaps	%xmm1, 48(%rsp)
	mulps	480(%rsp), %xmm3
	movq	%rax, 432(%rsp)
	movq	-8(%rbx), %rax
	movaps	%xmm1, 64(%rsp)
	movq	48(%rsp), %r8
	movq	72(%rsp), %rdi
	movaps	%xmm3, 32(%rsp)
	movq	%rax, 440(%rsp)
	movq	%r8, 448(%rsp)
	movaps	144(%rsp), %xmm1
	movq	%rdi, 456(%rsp)
	movaps	176(%rsp), %xmm4
	mulps	%xmm1, %xmm2
	mulps	496(%rsp), %xmm4
	movaps	%xmm2, 48(%rsp)
	movq	48(%rsp), %rcx
	movaps	%xmm2, 80(%rsp)
	movq	88(%rsp), %rax
	movq	%rcx, 464(%rsp)
	movq	%rax, 472(%rsp)
	movaps	%xmm4, 48(%rsp)
	movq	32(%rsp), %rsi
	movq	48(%rsp), %rdx
	movaps	%xmm3, 64(%rsp)
	movaps	%xmm4, 80(%rsp)
	movaps	512(%rsp), %xmm5
	movq	%rsi, 480(%rsp)
	movq	%rdx, 496(%rsp)
	movaps	192(%rsp), %xmm7
	movq	72(%rsp), %rsi
	movq	88(%rsp), %rdx
	movaps	528(%rsp), %xmm6
	mulps	%xmm7, %xmm5
	movaps	208(%rsp), %xmm1
	movq	%rsi, 488(%rsp)
	movq	%rdx, 504(%rsp)
	mulps	%xmm1, %xmm6
	movaps	224(%rsp), %xmm4
	movaps	%xmm5, 32(%rsp)
	movq	32(%rsp), %rsi
	movaps	%xmm5, 64(%rsp)
	movaps	%xmm6, 48(%rsp)
	movaps	%xmm6, 80(%rsp)
	movaps	240(%rsp), %xmm5
	movq	48(%rsp), %rdx
	movq	%rsi, 512(%rsp)
	movaps	544(%rsp), %xmm7
	movq	72(%rsp), %rsi
	movaps	560(%rsp), %xmm1
	mulps	%xmm4, %xmm7
	movq	%rdx, 528(%rsp)
	movq	88(%rsp), %rdx
	mulps	%xmm5, %xmm1
	movq	%rsi, 520(%rsp)
	movq	%rdx, 536(%rsp)
	movaps	%xmm7, 32(%rsp)
	movq	32(%rsp), %rsi
	movaps	%xmm1, 48(%rsp)
	movaps	%xmm7, 64(%rsp)
	movaps	%xmm1, 80(%rsp)
	movaps	576(%rsp), %xmm2
	movq	48(%rsp), %rdx
	movq	%rsi, 544(%rsp)
	movaps	256(%rsp), %xmm1
	movq	72(%rsp), %rsi
	mulps	%xmm1, %xmm2
	movaps	592(%rsp), %xmm3
	movq	%rdx, 560(%rsp)
	movq	88(%rsp), %rdx
	movaps	288(%rsp), %xmm5
	movq	%rsi, 552(%rsp)
	movaps	304(%rsp), %xmm6
	movq	%rdx, 568(%rsp)
	movaps	%xmm2, 32(%rsp)
	movq	32(%rsp), %rsi
	movaps	272(%rsp), %xmm2
	movq	%rsi, 576(%rsp)
	mulps	%xmm2, %xmm3
	movaps	%xmm3, 48(%rsp)
	movq	48(%rsp), %rdx
	movaps	48(%rsp), %xmm4
	movq	%rdx, 592(%rsp)
	movaps	%xmm4, 80(%rsp)
	movq	88(%rsp), %rdx
	movaps	608(%rsp), %xmm4
	movq	%rdx, 600(%rsp)
	mulps	%xmm5, %xmm4
	movaps	624(%rsp), %xmm5
	movaps	32(%rsp), %xmm3
	mulps	%xmm6, %xmm5
	movaps	%xmm3, 64(%rsp)
	movq	72(%rsp), %rsi
	movaps	%xmm4, 32(%rsp)
	movaps	%xmm5, 48(%rsp)
	movq	%rsi, 584(%rsp)
	movq	32(%rsp), %rsi
	movaps	%xmm4, 64(%rsp)
	movq	48(%rsp), %rdx
	movaps	%xmm5, 80(%rsp)
	movaps	640(%rsp), %xmm6
	movq	%rsi, 608(%rsp)
	movq	%rdx, 624(%rsp)
	movaps	656(%rsp), %xmm7
	movq	72(%rsp), %rsi
	movq	88(%rsp), %rdx
	movaps	320(%rsp), %xmm2
	movaps	336(%rsp), %xmm3
	mulps	%xmm2, %xmm6
	movq	%rsi, 616(%rsp)
	movq	%rdx, 632(%rsp)
	movaps	672(%rsp), %xmm1
	mulps	%xmm3, %xmm7
	movaps	688(%rsp), %xmm2
	movaps	%xmm6, 32(%rsp)
	movq	32(%rsp), %rsi
	movaps	%xmm7, 48(%rsp)
	movaps	%xmm6, 64(%rsp)
	movaps	%xmm7, 80(%rsp)
	movaps	352(%rsp), %xmm6
	movq	48(%rsp), %rdx
	movq	%rsi, 640(%rsp)
	movaps	368(%rsp), %xmm7
	mulps	%xmm6, %xmm1
	movq	72(%rsp), %rsi
	mulps	%xmm7, %xmm2
	movq	%rdx, 656(%rsp)
	movq	88(%rsp), %rdx
	movq	%rsi, 648(%rsp)
	movaps	%xmm1, 32(%rsp)
	movq	%rdx, 664(%rsp)
	movq	32(%rsp), %rsi
	movaps	%xmm2, 48(%rsp)
	movaps	%xmm1, 64(%rsp)
	movq	48(%rsp), %rdx
	movaps	%xmm2, 80(%rsp)
	movq	%rsi, 672(%rsp)
	movq	72(%rsp), %rsi
	movaps	400(%rsp), %xmm4
	movq	%rsi, 680(%rsp)
	movq	%rdx, 688(%rsp)
	mulps	720(%rsp), %xmm4
	movaps	384(%rsp), %xmm3
	movq	88(%rsp), %rdx
	mulps	704(%rsp), %xmm3
	movaps	736(%rsp), %xmm5
	movq	%rdx, 696(%rsp)
	movaps	416(%rsp), %xmm7
	movaps	432(%rsp), %xmm1
	mulps	%xmm7, %xmm5
	movaps	752(%rsp), %xmm6
	movaps	%xmm4, 48(%rsp)
	movq	48(%rsp), %rsi
	mulps	%xmm1, %xmm6
	movaps	%xmm3, 32(%rsp)
	movaps	%xmm4, 80(%rsp)
	movaps	%xmm3, 64(%rsp)
	movaps	%xmm6, 48(%rsp)
	movq	32(%rsp), %rdx
	movq	%rsi, 720(%rsp)
	movq	88(%rsp), %rsi
	movq	48(%rsp), %r9
	movaps	%xmm5, 32(%rsp)
	movq	%rdx, 704(%rsp)
	movq	72(%rsp), %rdx
	movaps	%xmm5, 64(%rsp)
	movaps	%xmm6, 80(%rsp)
	movq	%rsi, 728(%rsp)
	movq	72(%rsp), %r10
	movq	32(%rsp), %rsi
	movq	%rdx, 712(%rsp)
	leal	-80(%r11), %edx
	cmpl	$79, %edx
	movq	%rsi, 736(%rsp)
	movq	%r10, 744(%rsp)
	movq	%r9, 752(%rsp)
	movq	88(%rsp), %r9
	movq	%r9, 760(%rsp)
	ja	.L544
	movq	%r8, 1088(%rsp)
	movq	%rdi, 1096(%rsp)
	movq	%rcx, 1104(%rsp)
	movq	%rax, 1112(%rsp)
.L522:
	testl	%edx, %edx
	je	.L526
.L527:
	addq	$4, %rbx
	subl	$1, %edx
	mulss	-4(%rbx), %xmm0
	jne	.L527
.L526:
	movaps	1088(%rsp), %xmm5
	movaps	480(%rsp), %xmm4
	mulps	%xmm5, %xmm4
	movaps	1104(%rsp), %xmm6
	movaps	496(%rsp), %xmm5
	mulps	%xmm6, %xmm5
	movaps	%xmm4, 64(%rsp)
	movaps	%xmm4, 32(%rsp)
	movaps	%xmm5, 48(%rsp)
	movaps	%xmm5, 80(%rsp)
	movaps	512(%rsp), %xmm6
	movq	32(%rsp), %rdx
	movq	48(%rsp), %rax
	movaps	560(%rsp), %xmm4
	mulps	544(%rsp), %xmm6
	movq	%rdx, 768(%rsp)
	movq	%rax, 784(%rsp)
	mulps	528(%rsp), %xmm4
	movq	72(%rsp), %rdx
	movq	88(%rsp), %rax
	movaps	32(%rsp), %xmm5
	movq	%rdx, 776(%rsp)
	movq	%rax, 792(%rsp)
	movaps	%xmm6, 16(%rsp)
	movq	16(%rsp), %rdx
	mulps	%xmm6, %xmm5
	movaps	%xmm4, (%rsp)
	movaps	%xmm6, 64(%rsp)
	movaps	%xmm4, 80(%rsp)
	movq	(%rsp), %rax
	movq	%rdx, 800(%rsp)
	movq	72(%rsp), %rdx
	movq	%rax, 816(%rsp)
	movq	88(%rsp), %rax
	movq	%rdx, 808(%rsp)
	movq	%rax, 824(%rsp)
	movaps	%xmm5, 16(%rsp)
	movq	16(%rsp), %rdx
	movaps	%xmm5, 64(%rsp)
	movaps	48(%rsp), %xmm6
	movq	%rdx, 832(%rsp)
	movq	72(%rsp), %rdx
	mulps	%xmm4, %xmm6
	movaps	576(%rsp), %xmm7
	movaps	592(%rsp), %xmm1
	movq	%rdx, 840(%rsp)
	movaps	%xmm6, (%rsp)
	movaps	%xmm5, %xmm6
	movq	(%rsp), %rax
	movaps	(%rsp), %xmm4
	movq	%rax, 848(%rsp)
	movaps	%xmm4, 80(%rsp)
	movq	88(%rsp), %rax
	movaps	608(%rsp), %xmm4
	movq	%rax, 856(%rsp)
	movaps	624(%rsp), %xmm5
	mulps	%xmm7, %xmm4
	mulps	%xmm1, %xmm5
	mulps	%xmm4, %xmm6
	movaps	%xmm4, 48(%rsp)
	movq	48(%rsp), %rdx
	movaps	%xmm4, 64(%rsp)
	movaps	%xmm5, 32(%rsp)
	movaps	%xmm5, 80(%rsp)
	movaps	%xmm6, 16(%rsp)
	movaps	(%rsp), %xmm4
	movq	32(%rsp), %rax
	movq	%rdx, 864(%rsp)
	mulps	%xmm5, %xmm4
	movq	72(%rsp), %rdx
	movq	%rax, 880(%rsp)
	movq	88(%rsp), %rax
	movq	%rdx, 872(%rsp)
	movq	16(%rsp), %rdx
	movq	%rax, 888(%rsp)
	movaps	%xmm4, (%rsp)
	movaps	%xmm6, 64(%rsp)
	movaps	%xmm4, 80(%rsp)
	movaps	672(%rsp), %xmm5
	movq	%rdx, 896(%rsp)
	movq	72(%rsp), %rdx
	movaps	640(%rsp), %xmm4
	movq	(%rsp), %rax
	mulps	%xmm4, %xmm5
	movaps	656(%rsp), %xmm7
	movq	%rdx, 904(%rsp)
	movaps	688(%rsp), %xmm6
	movq	%rax, 912(%rsp)
	movq	88(%rsp), %rax
	mulps	%xmm7, %xmm6
	movaps	16(%rsp), %xmm7
	movaps	%xmm5, 48(%rsp)
	movq	48(%rsp), %rdx
	mulps	%xmm5, %xmm7
	movaps	%xmm5, 64(%rsp)
	movaps	%xmm6, 32(%rsp)
	movaps	%xmm7, 16(%rsp)
	movaps	%xmm7, %xmm3
	movaps	%xmm6, 80(%rsp)
	movq	%rdx, 928(%rsp)
	movq	72(%rsp), %rdx
	movaps	(%rsp), %xmm4
	movq	%rax, 920(%rsp)
	movq	32(%rsp), %rax
	movq	%rdx, 936(%rsp)
	movq	16(%rsp), %rdx
	mulps	%xmm6, %xmm4
	movaps	%xmm7, 64(%rsp)
	movq	%rax, 944(%rsp)
	movq	%rdx, 960(%rsp)
	movaps	%xmm3, %xmm7
	movq	88(%rsp), %rax
	movq	72(%rsp), %rdx
	movaps	%xmm4, (%rsp)
	movaps	%xmm4, 80(%rsp)
	movq	%rax, 952(%rsp)
	movq	(%rsp), %rax
	movq	%rdx, 968(%rsp)
	movaps	704(%rsp), %xmm6
	movq	%rax, 976(%rsp)
	movq	88(%rsp), %rax
	movaps	736(%rsp), %xmm5
	movaps	720(%rsp), %xmm4
	mulps	%xmm6, %xmm5
	movq	%rax, 984(%rsp)
	movaps	752(%rsp), %xmm6
	mulps	%xmm4, %xmm6
	movaps	(%rsp), %xmm4
	mulps	%xmm5, %xmm7
	movaps	%xmm5, 48(%rsp)
	movq	48(%rsp), %rdx
	movaps	%xmm6, 32(%rsp)
	mulps	%xmm6, %xmm4
	movaps	%xmm5, 64(%rsp)
	movaps	%xmm6, 80(%rsp)
	movaps	%xmm7, 48(%rsp)
	movq	32(%rsp), %rax
	movq	%rdx, 992(%rsp)
	movq	72(%rsp), %rdx
	movaps	%xmm7, 64(%rsp)
	movq	%rax, 1008(%rsp)
	movq	88(%rsp), %rax
	movaps	%xmm4, 80(%rsp)
	movq	%rdx, 1000(%rsp)
	movq	%rax, 1016(%rsp)
	movq	48(%rsp), %rdx
	movaps	%xmm4, 48(%rsp)
	movq	48(%rsp), %rax
	movq	%rdx, 96(%rsp)
	movq	%rax, 112(%rsp)
	movq	72(%rsp), %rdx
	movq	88(%rsp), %rax
	movq	%rdx, 104(%rsp)
	movq	%rax, 120(%rsp)
	xorl	%edx, %edx
	xorl	%eax, %eax
.L529:
	addq	$1, %rax
	mulss	96(%rsp,%rdx,4), %xmm0
	cmpq	$8, %rax
	movq	%rax, %rdx
	jne	.L529
	movss	%xmm0, (%r12)
	leaq	-24(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%rbp
	ret

.L519:
	movq	736(%rsp), %rsi
	movq	752(%rsp), %rdx
	movq	760(%rsp), %rax
	movq	744(%rsp), %rcx
	movq	%rsi, 1088(%rsp)
	movq	%rdx, 1104(%rsp)
	movq	%rcx, 1096(%rsp)
	movq	%rax, 1112(%rsp)
	movq	%rsi, 704(%rsp)
	movq	%rcx, 712(%rsp)
	movq	%rdx, 720(%rsp)
	movq	%rax, 728(%rsp)
	movq	%rsi, 672(%rsp)
	movq	%rcx, 680(%rsp)
	movq	%rdx, 688(%rsp)
	movq	%rax, 696(%rsp)
	movq	%rsi, 640(%rsp)
	movq	%rcx, 648(%rsp)
	movq	%rdx, 656(%rsp)
	movq	%rax, 664(%rsp)
	movq	%rsi, 608(%rsp)
	movq	%rcx, 616(%rsp)
	movq	%rdx, 624(%rsp)
	movq	%rax, 632(%rsp)
	movq	%rsi, 576(%rsp)
	movq	%rcx, 584(%rsp)
	movq	%rdx, 592(%rsp)
	movq	%rax, 600(%rsp)
	movq	%rsi, 544(%rsp)
	movq	%rcx, 552(%rsp)
	movq	%rdx, 560(%rsp)
	movq	%rax, 568(%rsp)
	movq	%rsi, 512(%rsp)
	movq	%rcx, 520(%rsp)
	movq	%rdx, 528(%rsp)
	movq	%rax, 536(%rsp)
	movq	%rsi, 480(%rsp)
	movq	%rcx, 488(%rsp)
	movq	%rdx, 496(%rsp)
	movq	%rax, 504(%rsp)
	jmp	.L526
.L543:
	movq	736(%rsp), %rdi
	movq	752(%rsp), %rcx
	movq	760(%rsp), %rax
	movq	744(%rsp), %rsi
	movq	%rdi, 1088(%rsp)
	movq	%rcx, 1104(%rsp)
	movq	%rsi, 1096(%rsp)
	movq	%rax, 1112(%rsp)
	movq	%rdi, 704(%rsp)
	movq	%rsi, 712(%rsp)
	movq	%rcx, 720(%rsp)
	movq	%rax, 728(%rsp)
	movq	%rdi, 672(%rsp)
	movq	%rsi, 680(%rsp)
	movq	%rcx, 688(%rsp)
	movq	%rax, 696(%rsp)
	movq	%rdi, 640(%rsp)
	movq	%rsi, 648(%rsp)
	movq	%rcx, 656(%rsp)
	movq	%rax, 664(%rsp)
	movq	%rdi, 608(%rsp)
	movq	%rsi, 616(%rsp)
	movq	%rcx, 624(%rsp)
	movq	%rax, 632(%rsp)
	movq	%rdi, 576(%rsp)
	movq	%rsi, 584(%rsp)
	movq	%rcx, 592(%rsp)
	movq	%rax, 600(%rsp)
	movq	%rdi, 544(%rsp)
	movq	%rsi, 552(%rsp)
	movq	%rcx, 560(%rsp)
	movq	%rax, 568(%rsp)
	movq	%rdi, 512(%rsp)
	movq	%rsi, 520(%rsp)
	movq	%rcx, 528(%rsp)
	movq	%rax, 536(%rsp)
	movq	%rdi, 480(%rsp)
	movq	%rsi, 488(%rsp)
	movq	%rcx, 496(%rsp)
	movq	%rax, 504(%rsp)
	jmp	.L522
simd_v12_combine:
	pushq	%rbp
	movq	%rsp, %rbp
	pushq	%r13
	movq	%rdi, %r13
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbx
	andq	$-32, %rsp
	subq	$1312, %rsp
	call	get_vec_start
	movq	%r13, %rdi
	movq	%rax, %rbx
	call	vec_length
	movss	.LC0(%rip), %xmm0
	testb	$31, %bl
	movss	%xmm0, 96(%rsp)
	movl	%eax, %edx
	movss	%xmm0, 100(%rsp)
	movq	96(%rsp), %rcx
	movss	%xmm0, 104(%rsp)
	movss	%xmm0, 108(%rsp)
	movq	%rcx, 128(%rsp)
	movss	%xmm0, 112(%rsp)
	movq	104(%rsp), %rcx
	movss	%xmm0, 116(%rsp)
	movss	%xmm0, 120(%rsp)
	movss	%xmm0, 124(%rsp)
	movq	%rcx, 136(%rsp)
	movq	112(%rsp), %rcx
	movq	%rcx, 144(%rsp)
	movq	120(%rsp), %rcx
	movq	%rcx, 152(%rsp)
	je	.L547
	testl	%eax, %eax
	jne	.L552
	jmp	.L548
.L549:
	testl	%edx, %edx
	je	.L548
.L552:
	addq	$4, %rbx
	subl	$1, %edx
	mulss	-4(%rbx), %xmm0
	testb	$31, %bl
	jne	.L549
	movl	%edx, %eax
.L547:
	cmpl	$95, %eax
	jbe	.L571
	movq	128(%rsp), %r8
	movq	144(%rsp), %rsi
	movl	%eax, %edx
	movq	152(%rsp), %rcx
	movq	136(%rsp), %rdi
	movq	%r8, 1248(%rsp)
	movq	%rsi, 1264(%rsp)
	movq	%rdi, 1256(%rsp)
	movq	%rcx, 1272(%rsp)
	movq	%r8, 160(%rsp)
	movq	%rdi, 168(%rsp)
	movq	%rsi, 176(%rsp)
	movq	%rcx, 184(%rsp)
	movq	%r8, 864(%rsp)
	movq	%rdi, 872(%rsp)
	movq	%rsi, 880(%rsp)
	movq	%rcx, 888(%rsp)
	movq	%r8, 832(%rsp)
	movq	%rdi, 840(%rsp)
	movq	%rsi, 848(%rsp)
	movq	%rcx, 856(%rsp)
	movq	%r8, 800(%rsp)
	movq	%rdi, 808(%rsp)
	movq	%rsi, 816(%rsp)
	movq	%rcx, 824(%rsp)
	movq	%r8, 768(%rsp)
	movq	%rdi, 776(%rsp)
	movq	%rsi, 784(%rsp)
	movq	%rcx, 792(%rsp)
	movq	%r8, 736(%rsp)
	movq	%rdi, 744(%rsp)
	movq	%rsi, 752(%rsp)
	movq	%rcx, 760(%rsp)
	movq	%r8, 704(%rsp)
	movq	%rdi, 712(%rsp)
	movq	%rsi, 720(%rsp)
	movq	%rcx, 728(%rsp)
	movq	%r8, 672(%rsp)
	movq	%rdi, 680(%rsp)
	movq	%rsi, 688(%rsp)
	movq	%rcx, 696(%rsp)
	movq	%r8, 640(%rsp)
	movq	%rdi, 648(%rsp)
	movq	%rsi, 656(%rsp)
	movq	%rcx, 664(%rsp)
	movq	%r8, 608(%rsp)
	movq	%rdi, 616(%rsp)
	movq	%rsi, 624(%rsp)
	movq	%rcx, 632(%rsp)
	jmp	.L554
.L572:
	movq	%r8, 1248(%rsp)
	movq	%rdi, 1256(%rsp)
	movq	%rcx, 1264(%rsp)
	movq	%rax, 1272(%rsp)
.L554:
	movq	(%rbx), %rax
	subl	$96, %edx
	addq	$384, %rbx
	movq	%rax, 192(%rsp)
	movq	-376(%rbx), %rax
	movq	%rax, 200(%rsp)
	movq	-368(%rbx), %rax
	movq	%rax, 208(%rsp)
	movq	-360(%rbx), %rax
	movq	%rax, 216(%rsp)
	movq	-352(%rbx), %rax
	movq	%rax, 224(%rsp)
	movq	-344(%rbx), %rax
	movq	%rax, 232(%rsp)
	movq	-336(%rbx), %rax
	movq	%rax, 240(%rsp)
	movq	-328(%rbx), %rax
	movq	%rax, 248(%rsp)
	movq	-320(%rbx), %rax
	movq	%rax, 256(%rsp)
	movq	-312(%rbx), %rax
	movq	%rax, 264(%rsp)
	movq	-304(%rbx), %rax
	movq	%rax, 272(%rsp)
	movq	-296(%rbx), %rax
	movq	%rax, 280(%rsp)
	movq	-288(%rbx), %rax
	movq	%rax, 288(%rsp)
	movq	-280(%rbx), %rax
	movq	%rax, 296(%rsp)
	movq	-272(%rbx), %rax
	movq	%rax, 304(%rsp)
	movq	-264(%rbx), %rax
	movq	%rax, 312(%rsp)
	movq	-256(%rbx), %rax
	movq	%rax, 320(%rsp)
	movq	-248(%rbx), %rax
	movq	%rax, 328(%rsp)
	movq	-240(%rbx), %rax
	movq	%rax, 336(%rsp)
	movq	-232(%rbx), %rax
	movq	%rax, 344(%rsp)
	movq	-224(%rbx), %rax
	movq	%rax, 352(%rsp)
	movq	-216(%rbx), %rax
	movq	%rax, 360(%rsp)
	movq	-208(%rbx), %rax
	movq	%rax, 368(%rsp)
	movq	-200(%rbx), %rax
	movq	%rax, 376(%rsp)
	movq	-192(%rbx), %rax
	movq	%rax, 384(%rsp)
	movq	-184(%rbx), %rax
	movq	%rax, 392(%rsp)
	movq	-176(%rbx), %rax
	movq	%rax, 400(%rsp)
	movq	-168(%rbx), %rax
	movq	%rax, 408(%rsp)
	movq	-160(%rbx), %rax
	movq	%rax, 416(%rsp)
	movq	-152(%rbx), %rax
	movq	%rax, 424(%rsp)
	movq	-144(%rbx), %rax
	movq	%rax, 432(%rsp)
	movq	-136(%rbx), %rax
	movq	%rax, 440(%rsp)
	movq	-128(%rbx), %rax
	movq	%rax, 448(%rsp)
	movq	-120(%rbx), %rax
	movq	%rax, 456(%rsp)
	movq	-112(%rbx), %rax
	movaps	192(%rsp), %xmm4
	movq	%rax, 464(%rsp)
	movq	-104(%rbx), %rax
	movaps	208(%rsp), %xmm6
	movq	%rax, 472(%rsp)
	movq	-96(%rbx), %rax
	movaps	1248(%rsp), %xmm1
	movq	%rax, 480(%rsp)
	movq	-88(%rbx), %rax
	movaps	1264(%rsp), %xmm2
	mulps	%xmm4, %xmm1
	movq	%rax, 488(%rsp)
	movq	-80(%rbx), %rax
	mulps	%xmm6, %xmm2
	movq	%rax, 496(%rsp)
	movq	-72(%rbx), %rax
	movaps	%xmm1, 48(%rsp)
	movq	48(%rsp), %r8
	movq	%rax, 504(%rsp)
	movq	-64(%rbx), %rax
	movq	%rax, 512(%rsp)
	movq	-56(%rbx), %rax
	movq	%rax, 520(%rsp)
	movq	-48(%rbx), %rax
	movq	%rax, 528(%rsp)
	movq	-40(%rbx), %rax
	movq	%rax, 536(%rsp)
	movq	-32(%rbx), %rax
	movq	%rax, 544(%rsp)
	movq	-24(%rbx), %rax
	movq	%rax, 552(%rsp)
	movq	-16(%rbx), %rax
	movq	%rax, 560(%rsp)
	movq	-8(%rbx), %rax
	cmpl	$95, %edx
	movaps	%xmm1, 64(%rsp)
	movq	%rax, 568(%rsp)
	movaps	%xmm2, 48(%rsp)
	movq	48(%rsp), %rcx
	movq	72(%rsp), %rdi
	movaps	%xmm2, 80(%rsp)
	movaps	608(%rsp), %xmm3
	movq	88(%rsp), %rax
	movq	%r8, 576(%rsp)
	movaps	224(%rsp), %xmm4
	movq	%rdi, 584(%rsp)
	movq	%rcx, 592(%rsp)
	mulps	%xmm4, %xmm3
	movaps	240(%rsp), %xmm5
	movq	%rax, 600(%rsp)
	movaps	624(%rsp), %xmm4
	mulps	%xmm5, %xmm4
	movaps	256(%rsp), %xmm1
	movaps	272(%rsp), %xmm2
	movaps	640(%rsp), %xmm5
	movaps	656(%rsp), %xmm6
	mulps	%xmm1, %xmm5
	movaps	%xmm3, 32(%rsp)
	movq	32(%rsp), %r9
	mulps	%xmm2, %xmm6
	movaps	%xmm4, 48(%rsp)
	movaps	%xmm3, 64(%rsp)
	movaps	%xmm4, 80(%rsp)
	movaps	%xmm5, 32(%rsp)
	movq	48(%rsp), %rsi
	movq	%r9, 608(%rsp)
	movq	72(%rsp), %r9
	movaps	%xmm6, 48(%rsp)
	movq	%rsi, 624(%rsp)
	movq	88(%rsp), %rsi
	movaps	%xmm5, 64(%rsp)
	movq	%r9, 616(%rsp)
	movq	%rsi, 632(%rsp)
	movq	32(%rsp), %r9
	movq	48(%rsp), %rsi
	movaps	%xmm6, 80(%rsp)
	movaps	672(%rsp), %xmm7
	movq	%r9, 640(%rsp)
	movq	72(%rsp), %r9
	movaps	288(%rsp), %xmm5
	movq	%rsi, 656(%rsp)
	movq	88(%rsp), %rsi
	mulps	%xmm5, %xmm7
	movaps	320(%rsp), %xmm2
	movq	%r9, 648(%rsp)
	mulps	704(%rsp), %xmm2
	movaps	688(%rsp), %xmm1
	movq	%rsi, 664(%rsp)
	movaps	304(%rsp), %xmm6
	movaps	%xmm7, 32(%rsp)
	movq	32(%rsp), %r9
	mulps	%xmm6, %xmm1
	movaps	%xmm7, 64(%rsp)
	movaps	%xmm2, 32(%rsp)
	movaps	%xmm1, 48(%rsp)
	movaps	%xmm1, 80(%rsp)
	movq	%r9, 672(%rsp)
	movq	72(%rsp), %r9
	movaps	336(%rsp), %xmm3
	movq	48(%rsp), %rsi
	mulps	720(%rsp), %xmm3
	movq	%r9, 680(%rsp)
	movq	32(%rsp), %r9
	movaps	%xmm2, 64(%rsp)
	movq	%rsi, 688(%rsp)
	movq	88(%rsp), %rsi
	movq	%r9, 704(%rsp)
	movq	72(%rsp), %r9
	movaps	%xmm3, 48(%rsp)
	movq	%rsi, 696(%rsp)
	movq	48(%rsp), %rsi
	movaps	%xmm3, 80(%rsp)
	movq	%r9, 712(%rsp)
	movq	%rsi, 720(%rsp)
	movaps	736(%rsp), %xmm4
	movq	88(%rsp), %rsi
	movaps	352(%rsp), %xmm6
	movaps	752(%rsp), %xmm5
	mulps	%xmm6, %xmm4
	movq	%rsi, 728(%rsp)
	movaps	368(%rsp), %xmm7
	mulps	%xmm7, %xmm5
	movaps	768(%rsp), %xmm6
	movaps	%xmm4, 32(%rsp)
	movq	32(%rsp), %r9
	movaps	%xmm4, 64(%rsp)
	movaps	%xmm5, 48(%rsp)
	movaps	%xmm5, 80(%rsp)
	movaps	384(%rsp), %xmm3
	movq	48(%rsp), %rsi
	movq	%r9, 736(%rsp)
	movaps	400(%rsp), %xmm4
	mulps	%xmm3, %xmm6
	movq	72(%rsp), %r9
	movaps	784(%rsp), %xmm7
	movq	%rsi, 752(%rsp)
	movq	88(%rsp), %rsi
	mulps	%xmm4, %xmm7
	movq	%r9, 744(%rsp)
	movaps	%xmm6, 32(%rsp)
	movq	%rsi, 760(%rsp)
	movq	32(%rsp), %r9
	movaps	%xmm6, 64(%rsp)
	movaps	%xmm7, 48(%rsp)
	movaps	%xmm7, 80(%rsp)
	movq	48(%rsp), %rsi
	movq	%r9, 768(%rsp)
	movq	72(%rsp), %r9
	movq	%rsi, 784(%rsp)
	movq	88(%rsp), %rsi
	movq	%r9, 776(%rsp)
	movq	%rsi, 792(%rsp)
	movaps	800(%rsp), %xmm1
	movaps	416(%rsp), %xmm7
	mulps	%xmm7, %xmm1
	movaps	816(%rsp), %xmm2
	movaps	448(%rsp), %xmm4
	movaps	%xmm1, 32(%rsp)
	movq	32(%rsp), %r9
	movaps	432(%rsp), %xmm1
	movq	%r9, 800(%rsp)
	mulps	%xmm1, %xmm2
	movaps	464(%rsp), %xmm5
	movaps	%xmm2, 48(%rsp)
	movq	48(%rsp), %rsi
	movaps	48(%rsp), %xmm3
	movq	%rsi, 816(%rsp)
	movaps	%xmm3, 80(%rsp)
	movq	88(%rsp), %rsi
	movaps	832(%rsp), %xmm3
	movq	%rsi, 824(%rsp)
	mulps	%xmm4, %xmm3
	movaps	848(%rsp), %xmm4
	movaps	32(%rsp), %xmm2
	mulps	%xmm5, %xmm4
	movaps	%xmm2, 64(%rsp)
	movq	72(%rsp), %r9
	movaps	%xmm3, 32(%rsp)
	movaps	%xmm4, 48(%rsp)
	movaps	%xmm3, 64(%rsp)
	movaps	%xmm4, 80(%rsp)
	movq	48(%rsp), %rsi
	movq	%r9, 808(%rsp)
	movq	32(%rsp), %r9
	movq	%rsi, 848(%rsp)
	movq	88(%rsp), %rsi
	movq	%r9, 832(%rsp)
	movq	72(%rsp), %r9
	movq	%r9, 840(%rsp)
	movq	%rsi, 856(%rsp)
	movaps	864(%rsp), %xmm5
	movaps	880(%rsp), %xmm6
	movaps	480(%rsp), %xmm1
	movaps	496(%rsp), %xmm2
	mulps	%xmm1, %xmm5
	movaps	128(%rsp), %xmm7
	mulps	%xmm2, %xmm6
	movaps	144(%rsp), %xmm1
	movaps	%xmm5, 32(%rsp)
	movq	32(%rsp), %r9
	movaps	%xmm6, 48(%rsp)
	movaps	%xmm5, 64(%rsp)
	movaps	%xmm6, 80(%rsp)
	movaps	512(%rsp), %xmm5
	movq	48(%rsp), %rsi
	movq	%r9, 864(%rsp)
	movaps	528(%rsp), %xmm6
	mulps	%xmm5, %xmm7
	movq	72(%rsp), %r9
	mulps	%xmm6, %xmm1
	movq	%rsi, 880(%rsp)
	movq	88(%rsp), %rsi
	movaps	544(%rsp), %xmm2
	movq	%r9, 872(%rsp)
	mulps	160(%rsp), %xmm2
	movq	%rsi, 888(%rsp)
	movaps	%xmm7, 32(%rsp)
	movq	32(%rsp), %r9
	movaps	%xmm1, 48(%rsp)
	movaps	%xmm7, 64(%rsp)
	movaps	%xmm1, 80(%rsp)
	movq	48(%rsp), %rsi
	movq	%r9, 128(%rsp)
	movq	72(%rsp), %r9
	movq	%rsi, 144(%rsp)
	movq	88(%rsp), %rsi
	movq	%r9, 136(%rsp)
	movq	%rsi, 152(%rsp)
	movaps	%xmm2, 32(%rsp)
	movq	32(%rsp), %rsi
	movaps	%xmm2, 64(%rsp)
	movaps	560(%rsp), %xmm3
	movq	%rsi, 160(%rsp)
	movq	72(%rsp), %rsi
	mulps	176(%rsp), %xmm3
	movq	%rsi, 168(%rsp)
	movaps	%xmm3, 48(%rsp)
	movq	48(%rsp), %r9
	movaps	%xmm3, 80(%rsp)
	movq	%r9, 176(%rsp)
	movq	88(%rsp), %r9
	movq	%r9, 184(%rsp)
	ja	.L572
	movq	%r8, 1280(%rsp)
	movq	%rdi, 1288(%rsp)
	movq	%rcx, 1296(%rsp)
	movq	%rax, 1304(%rsp)
.L551:
	testl	%edx, %edx
	je	.L555
.L556:
	addq	$4, %rbx
	subl	$1, %edx
	mulss	-4(%rbx), %xmm0
	jne	.L556
.L555:
	movaps	1280(%rsp), %xmm7
	movaps	608(%rsp), %xmm6
	movaps	1296(%rsp), %xmm1
	mulps	%xmm7, %xmm6
	movaps	624(%rsp), %xmm7
	mulps	%xmm1, %xmm7
	movaps	688(%rsp), %xmm4
	movaps	%xmm6, %xmm2
	movaps	%xmm6, 64(%rsp)
	movaps	%xmm7, 80(%rsp)
	movaps	%xmm7, %xmm3
	movaps	%xmm6, 16(%rsp)
	movaps	%xmm7, 32(%rsp)
	movaps	640(%rsp), %xmm6
	movq	16(%rsp), %rdx
	movq	32(%rsp), %rax
	movaps	672(%rsp), %xmm7
	mulps	%xmm7, %xmm6
	movq	%rdx, 896(%rsp)
	movaps	656(%rsp), %xmm7
	movq	72(%rsp), %rdx
	movq	%rax, 912(%rsp)
	mulps	%xmm4, %xmm7
	movq	88(%rsp), %rax
	movaps	%xmm6, 48(%rsp)
	movaps	%xmm6, %xmm5
	movq	%rdx, 904(%rsp)
	movaps	%xmm6, 64(%rsp)
	movaps	%xmm2, %xmm6
	movaps	%xmm7, (%rsp)
	mulps	%xmm5, %xmm6
	movaps	%xmm7, 80(%rsp)
	movaps	(%rsp), %xmm7
	movq	48(%rsp), %rdx
	movq	%rax, 920(%rsp)
	movq	(%rsp), %rax
	mulps	%xmm3, %xmm7
	movaps	%xmm6, 16(%rsp)
	movq	%rdx, 928(%rsp)
	movq	72(%rsp), %rdx
	movaps	%xmm6, %xmm1
	movq	%rax, 944(%rsp)
	movq	88(%rsp), %rax
	movq	%rdx, 936(%rsp)
	movaps	%xmm7, %xmm2
	movq	%rax, 952(%rsp)
	movaps	%xmm7, (%rsp)
	movq	16(%rsp), %rdx
	movq	(%rsp), %rax
	movaps	%xmm6, 64(%rsp)
	movaps	%xmm7, 80(%rsp)
	movaps	704(%rsp), %xmm3
	movq	%rdx, 960(%rsp)
	movq	72(%rsp), %rdx
	movaps	736(%rsp), %xmm6
	movq	%rax, 976(%rsp)
	movq	88(%rsp), %rax
	mulps	%xmm3, %xmm6
	movaps	720(%rsp), %xmm7
	movq	%rdx, 968(%rsp)
	mulps	752(%rsp), %xmm7
	movq	%rax, 984(%rsp)
	movaps	%xmm6, 48(%rsp)
	movq	48(%rsp), %rdx
	mulps	%xmm6, %xmm1
	movaps	%xmm6, 64(%rsp)
	movaps	%xmm7, 32(%rsp)
	mulps	%xmm7, %xmm2
	movaps	%xmm1, 16(%rsp)
	movaps	%xmm7, 80(%rsp)
	movaps	%xmm2, (%rsp)
	movq	%rdx, 992(%rsp)
	movq	72(%rsp), %rdx
	movq	32(%rsp), %rax
	movaps	%xmm1, 64(%rsp)
	movq	%rdx, 1000(%rsp)
	movq	16(%rsp), %rdx
	movaps	%xmm2, %xmm1
	movq	%rax, 1008(%rsp)
	movq	%rdx, 1024(%rsp)
	movq	88(%rsp), %rax
	movq	72(%rsp), %rdx
	movaps	%xmm2, 80(%rsp)
	movq	%rax, 1016(%rsp)
	movq	(%rsp), %rax
	movq	%rdx, 1032(%rsp)
	movaps	768(%rsp), %xmm2
	movq	%rax, 1040(%rsp)
	movq	88(%rsp), %rax
	movaps	800(%rsp), %xmm3
	mulps	%xmm2, %xmm3
	movq	%rax, 1048(%rsp)
	movaps	816(%rsp), %xmm6
	movaps	%xmm3, 48(%rsp)
	movq	48(%rsp), %rdx
	movaps	784(%rsp), %xmm3
	movq	%rdx, 1056(%rsp)
	mulps	%xmm3, %xmm6
	movaps	48(%rsp), %xmm7
	movaps	%xmm7, 64(%rsp)
	movq	72(%rsp), %rdx
	movaps	%xmm6, 32(%rsp)
	movq	32(%rsp), %rax
	mulps	%xmm6, %xmm1
	movaps	%xmm6, 80(%rsp)
	movaps	16(%rsp), %xmm7
	movq	%rax, 1072(%rsp)
	movq	88(%rsp), %rax
	mulps	48(%rsp), %xmm7
	movaps	%xmm1, (%rsp)
	movq	%rdx, 1064(%rsp)
	movq	%rax, 1080(%rsp)
	movaps	%xmm1, 80(%rsp)
	movaps	%xmm7, 16(%rsp)
	movq	(%rsp), %rax
	movq	16(%rsp), %rdx
	movaps	%xmm7, 64(%rsp)
	movaps	%xmm7, %xmm5
	movaps	%xmm5, %xmm6
	movq	%rdx, 1088(%rsp)
	movq	%rax, 1104(%rsp)
	movq	72(%rsp), %rdx
	movq	88(%rsp), %rax
	movq	%rdx, 1096(%rsp)
	movq	%rax, 1112(%rsp)
	movaps	832(%rsp), %xmm1
	movaps	864(%rsp), %xmm2
	mulps	%xmm1, %xmm2
	movaps	880(%rsp), %xmm3
	movaps	160(%rsp), %xmm1
	movaps	%xmm2, 48(%rsp)
	movq	48(%rsp), %rdx
	movaps	848(%rsp), %xmm2
	movq	%rdx, 1120(%rsp)
	mulps	%xmm2, %xmm3
	movaps	%xmm3, 32(%rsp)
	movq	32(%rsp), %rax
	movaps	32(%rsp), %xmm7
	movq	%rax, 1136(%rsp)
	movaps	%xmm7, 80(%rsp)
	movq	88(%rsp), %rax
	movaps	(%rsp), %xmm7
	movq	%rax, 1144(%rsp)
	movaps	48(%rsp), %xmm3
	mulps	32(%rsp), %xmm7
	movaps	%xmm3, 64(%rsp)
	mulps	%xmm3, %xmm6
	movq	72(%rsp), %rdx
	movq	%rdx, 1128(%rsp)
	movaps	%xmm6, 16(%rsp)
	movaps	%xmm6, %xmm4
	movq	16(%rsp), %rdx
	movaps	%xmm6, 64(%rsp)
	movaps	%xmm7, %xmm5
	movaps	%xmm7, (%rsp)
	movaps	%xmm7, 80(%rsp)
	movaps	128(%rsp), %xmm6
	movq	(%rsp), %rax
	movq	%rdx, 1152(%rsp)
	mulps	%xmm6, %xmm1
	movq	72(%rsp), %rdx
	movq	%rax, 1168(%rsp)
	movq	88(%rsp), %rax
	movq	%rdx, 1160(%rsp)
	movq	%rax, 1176(%rsp)
	movaps	%xmm1, 48(%rsp)
	movq	48(%rsp), %rdx
	movaps	144(%rsp), %xmm1
	movq	%rdx, 1184(%rsp)
	movaps	176(%rsp), %xmm2
	mulps	%xmm1, %xmm2
	movaps	%xmm2, 32(%rsp)
	movq	32(%rsp), %rax
	movaps	32(%rsp), %xmm3
	movq	%rax, 1200(%rsp)
	movaps	48(%rsp), %xmm2
	movaps	%xmm3, 80(%rsp)
	movaps	%xmm4, %xmm3
	movq	88(%rsp), %rax
	movaps	%xmm2, 64(%rsp)
	mulps	%xmm2, %xmm3
	movaps	32(%rsp), %xmm6
	movq	72(%rsp), %rdx
	movq	%rax, 1208(%rsp)
	mulps	%xmm5, %xmm6
	movaps	%xmm3, 48(%rsp)
	movq	%rdx, 1192(%rsp)
	movq	48(%rsp), %rdx
	movaps	%xmm3, 64(%rsp)
	movaps	%xmm6, 48(%rsp)
	movaps	%xmm6, 80(%rsp)
	movq	48(%rsp), %rax
	movq	%rdx, 96(%rsp)
	movq	72(%rsp), %rdx
	movq	%rax, 112(%rsp)
	movq	88(%rsp), %rax
	movq	%rdx, 104(%rsp)
	xorl	%edx, %edx
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
.L558:
	addq	$1, %rax
	mulss	96(%rsp,%rdx,4), %xmm0
	cmpq	$8, %rax
	movq	%rax, %rdx
	jne	.L558
	movss	%xmm0, (%r12)
	leaq	-24(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%rbp
	ret

.L548:
	movq	128(%rsp), %rsi
	movq	144(%rsp), %rdx
	movq	152(%rsp), %rax
	movq	136(%rsp), %rcx
	movq	%rsi, 1280(%rsp)
	movq	%rdx, 1296(%rsp)
	movq	%rcx, 1288(%rsp)
	movq	%rax, 1304(%rsp)
	movq	%rsi, 160(%rsp)
	movq	%rcx, 168(%rsp)
	movq	%rdx, 176(%rsp)
	movq	%rax, 184(%rsp)
	movq	%rsi, 864(%rsp)
	movq	%rcx, 872(%rsp)
	movq	%rdx, 880(%rsp)
	movq	%rax, 888(%rsp)
	movq	%rsi, 832(%rsp)
	movq	%rcx, 840(%rsp)
	movq	%rdx, 848(%rsp)
	movq	%rax, 856(%rsp)
	movq	%rsi, 800(%rsp)
	movq	%rcx, 808(%rsp)
	movq	%rdx, 816(%rsp)
	movq	%rax, 824(%rsp)
	movq	%rsi, 768(%rsp)
	movq	%rcx, 776(%rsp)
	movq	%rdx, 784(%rsp)
	movq	%rax, 792(%rsp)
	movq	%rsi, 736(%rsp)
	movq	%rcx, 744(%rsp)
	movq	%rdx, 752(%rsp)
	movq	%rax, 760(%rsp)
	movq	%rsi, 704(%rsp)
	movq	%rcx, 712(%rsp)
	movq	%rdx, 720(%rsp)
	movq	%rax, 728(%rsp)
	movq	%rsi, 672(%rsp)
	movq	%rcx, 680(%rsp)
	movq	%rdx, 688(%rsp)
	movq	%rax, 696(%rsp)
	movq	%rsi, 640(%rsp)
	movq	%rcx, 648(%rsp)
	movq	%rdx, 656(%rsp)
	movq	%rax, 664(%rsp)
	movq	%rsi, 608(%rsp)
	movq	%rcx, 616(%rsp)
	movq	%rdx, 624(%rsp)
	movq	%rax, 632(%rsp)
	jmp	.L555
.L571:
	movq	128(%rsp), %rdi
	movq	144(%rsp), %rcx
	movq	152(%rsp), %rax
	movq	136(%rsp), %rsi
	movq	%rdi, 1280(%rsp)
	movq	%rcx, 1296(%rsp)
	movq	%rsi, 1288(%rsp)
	movq	%rax, 1304(%rsp)
	movq	%rdi, 160(%rsp)
	movq	%rsi, 168(%rsp)
	movq	%rcx, 176(%rsp)
	movq	%rax, 184(%rsp)
	movq	%rdi, 864(%rsp)
	movq	%rsi, 872(%rsp)
	movq	%rcx, 880(%rsp)
	movq	%rax, 888(%rsp)
	movq	%rdi, 832(%rsp)
	movq	%rsi, 840(%rsp)
	movq	%rcx, 848(%rsp)
	movq	%rax, 856(%rsp)
	movq	%rdi, 800(%rsp)
	movq	%rsi, 808(%rsp)
	movq	%rcx, 816(%rsp)
	movq	%rax, 824(%rsp)
	movq	%rdi, 768(%rsp)
	movq	%rsi, 776(%rsp)
	movq	%rcx, 784(%rsp)
	movq	%rax, 792(%rsp)
	movq	%rdi, 736(%rsp)
	movq	%rsi, 744(%rsp)
	movq	%rcx, 752(%rsp)
	movq	%rax, 760(%rsp)
	movq	%rdi, 704(%rsp)
	movq	%rsi, 712(%rsp)
	movq	%rcx, 720(%rsp)
	movq	%rax, 728(%rsp)
	movq	%rdi, 672(%rsp)
	movq	%rsi, 680(%rsp)
	movq	%rcx, 688(%rsp)
	movq	%rax, 696(%rsp)
	movq	%rdi, 640(%rsp)
	movq	%rsi, 648(%rsp)
	movq	%rcx, 656(%rsp)
	movq	%rax, 664(%rsp)
	movq	%rdi, 608(%rsp)
	movq	%rsi, 616(%rsp)
	movq	%rcx, 624(%rsp)
	movq	%rax, 632(%rsp)
	jmp	.L551
simd_v2a_combine:
	pushq	%rbp
	movq	%rsp, %rbp
	pushq	%r13
	movq	%rdi, %r13
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbx
	andq	$-32, %rsp
	subq	$288, %rsp
	call	get_vec_start
	movq	%r13, %rdi
	movq	%rax, %rbx
	call	vec_length
	movss	.LC0(%rip), %xmm1
	testb	$31, %bl
	movl	%eax, %ecx
	movss	%xmm1, 64(%rsp)
	movss	%xmm1, 68(%rsp)
	movaps	%xmm1, %xmm0
	movss	%xmm1, 72(%rsp)
	movss	%xmm1, 76(%rsp)
	movss	%xmm1, 80(%rsp)
	movss	%xmm1, 84(%rsp)
	movss	%xmm1, 88(%rsp)
	movss	%xmm1, 92(%rsp)
	je	.L574
	testl	%eax, %eax
	jne	.L579
	jmp	.L582
.L576:
	testl	%ecx, %ecx
	je	.L582
.L579:
	addq	$4, %rbx
	subl	$1, %ecx
	mulss	-4(%rbx), %xmm0
	testb	$31, %bl
	jne	.L576
.L574:
	cmpl	$15, %ecx
	jbe	.L578
	movq	64(%rsp), %rax
	movl	%ecx, %r10d
	movq	%rbx, %rdx
	movq	%rax, 256(%rsp)
	movq	72(%rsp), %rax
	movq	%rax, 264(%rsp)
	movq	80(%rsp), %rax
	movq	%rax, 272(%rsp)
	movq	88(%rsp), %rax
	movq	%rax, 280(%rsp)
	jmp	.L581
.L599:
	movq	%r9, 256(%rsp)
	movq	%r8, 264(%rsp)
	movq	%rdi, 272(%rsp)
	movq	%rax, 280(%rsp)
.L581:
	movq	(%rdx), %rax
	subl	$16, %r10d
	addq	$64, %rdx
	movaps	256(%rsp), %xmm4
	movq	%rax, 96(%rsp)
	movq	-56(%rdx), %rax
	movq	%rax, 104(%rsp)
	movq	-48(%rdx), %rax
	movaps	96(%rsp), %xmm2
	movq	%rax, 112(%rsp)
	movq	-40(%rdx), %rax
	movq	%rax, 120(%rsp)
	movq	-32(%rdx), %rax
	movaps	112(%rsp), %xmm3
	movq	%rax, 128(%rsp)
	movq	-24(%rdx), %rax
	movq	%rax, 136(%rsp)
	movq	-16(%rdx), %rax
	movaps	128(%rsp), %xmm6
	movq	%rax, 144(%rsp)
	movq	-8(%rdx), %rax
	cmpl	$15, %r10d
	mulps	%xmm6, %xmm2
	movq	%rax, 152(%rsp)
	movaps	144(%rsp), %xmm7
	mulps	%xmm7, %xmm3
	movaps	%xmm2, 16(%rsp)
	movq	16(%rsp), %rsi
	mulps	%xmm2, %xmm4
	movaps	%xmm2, 32(%rsp)
	movaps	%xmm3, (%rsp)
	movaps	%xmm3, 48(%rsp)
	movq	(%rsp), %rax
	movq	%rsi, 160(%rsp)
	movq	40(%rsp), %rsi
	movq	%rax, 176(%rsp)
	movq	56(%rsp), %rax
	movq	%rsi, 168(%rsp)
	movq	%rax, 184(%rsp)
	movaps	%xmm4, 16(%rsp)
	movq	16(%rsp), %r9
	movaps	%xmm4, 32(%rsp)
	movaps	272(%rsp), %xmm5
	movq	40(%rsp), %r8
	movq	%r9, 192(%rsp)
	mulps	%xmm3, %xmm5
	movq	%r8, 200(%rsp)
	movaps	%xmm5, 16(%rsp)
	movq	16(%rsp), %rdi
	movaps	%xmm5, 48(%rsp)
	movq	56(%rsp), %rax
	movq	%rdi, 208(%rsp)
	movq	%rax, 216(%rsp)
	ja	.L599
	subl	$16, %ecx
	movq	%r9, 64(%rsp)
	movq	%r9, 224(%rsp)
	movl	%ecx, %esi
	movq	%r8, 232(%rsp)
	movq	%rdi, 240(%rsp)
	shrl	$4, %esi
	movq	%rax, 248(%rsp)
	movq	%r8, 72(%rsp)
	movl	%esi, %edx
	sall	$4, %esi
	movq	%rdi, 80(%rsp)
	addq	$1, %rdx
	movq	%rax, 88(%rsp)
	subl	%esi, %ecx
	salq	$6, %rdx
	movss	64(%rsp), %xmm1
	addq	%rdx, %rbx
.L578:
	testl	%ecx, %ecx
	je	.L582
.L583:
	addq	$4, %rbx
	subl	$1, %ecx
	mulss	-4(%rbx), %xmm0
	jne	.L583
.L582:
	leaq	68(%rsp), %rax
	leaq	96(%rsp), %rdx
	jmp	.L585
.L584:
	movss	(%rax), %xmm1
	addq	$4, %rax
.L585:
	cmpq	%rdx, %rax
	mulss	%xmm1, %xmm0
	jne	.L584
	movss	%xmm0, (%r12)
	leaq	-24(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%rbp
	ret

simd_v4a_combine:
	pushq	%rbp
	movq	%rsp, %rbp
	pushq	%r13
	movq	%rdi, %r13
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbx
	andq	$-32, %rsp
	subq	$448, %rsp
	call	get_vec_start
	movq	%r13, %rdi
	movq	%rax, %rbx
	call	vec_length
	movss	.LC0(%rip), %xmm1
	testb	$31, %bl
	movl	%eax, %ecx
	movss	%xmm1, 96(%rsp)
	movss	%xmm1, 100(%rsp)
	movaps	%xmm1, %xmm0
	movss	%xmm1, 104(%rsp)
	movss	%xmm1, 108(%rsp)
	movss	%xmm1, 112(%rsp)
	movss	%xmm1, 116(%rsp)
	movss	%xmm1, 120(%rsp)
	movss	%xmm1, 124(%rsp)
	je	.L601
	testl	%eax, %eax
	jne	.L606
	jmp	.L609
.L603:
	testl	%ecx, %ecx
	je	.L609
.L606:
	addq	$4, %rbx
	subl	$1, %ecx
	mulss	-4(%rbx), %xmm0
	testb	$31, %bl
	jne	.L603
.L601:
	cmpl	$31, %ecx
	jbe	.L605
	movq	96(%rsp), %rax
	movl	%ecx, %r10d
	movq	%rbx, %rdx
	movq	%rax, 384(%rsp)
	movq	104(%rsp), %rax
	movq	%rax, 392(%rsp)
	movq	112(%rsp), %rax
	movq	%rax, 400(%rsp)
	movq	120(%rsp), %rax
	movq	%rax, 408(%rsp)
	jmp	.L608
.L626:
	movq	%r9, 384(%rsp)
	movq	%r8, 392(%rsp)
	movq	%rdi, 400(%rsp)
	movq	%rax, 408(%rsp)
.L608:
	movq	(%rdx), %rax
	subl	$32, %r10d
	subq	$-128, %rdx
	movq	%rax, 128(%rsp)
	movq	-120(%rdx), %rax
	movq	%rax, 136(%rsp)
	movq	-112(%rdx), %rax
	movaps	128(%rsp), %xmm2
	movq	%rax, 144(%rsp)
	movq	-104(%rdx), %rax
	movq	%rax, 152(%rsp)
	movq	-96(%rdx), %rax
	movq	%rax, 160(%rsp)
	movq	-88(%rdx), %rax
	movq	%rax, 168(%rsp)
	movq	-80(%rdx), %rax
	movaps	160(%rsp), %xmm3
	movq	%rax, 176(%rsp)
	movq	-72(%rdx), %rax
	mulps	%xmm3, %xmm2
	movq	%rax, 184(%rsp)
	movq	-64(%rdx), %rax
	movq	%rax, 192(%rsp)
	movq	-56(%rdx), %rax
	movq	%rax, 200(%rsp)
	movq	-48(%rdx), %rax
	movq	%rax, 208(%rsp)
	movq	-40(%rdx), %rax
	movq	%rax, 216(%rsp)
	movq	-32(%rdx), %rax
	movq	%rax, 224(%rsp)
	movq	-24(%rdx), %rax
	movq	%rax, 232(%rsp)
	movq	-16(%rdx), %rax
	movq	%rax, 240(%rsp)
	movq	-8(%rdx), %rax
	cmpl	$31, %r10d
	movq	%rax, 248(%rsp)
	movaps	%xmm2, (%rsp)
	movq	(%rsp), %rsi
	movaps	%xmm2, 64(%rsp)
	movaps	176(%rsp), %xmm4
	movq	%rsi, 256(%rsp)
	movq	72(%rsp), %rsi
	movaps	144(%rsp), %xmm3
	mulps	%xmm4, %xmm3
	movq	%rsi, 264(%rsp)
	movaps	224(%rsp), %xmm7
	movaps	192(%rsp), %xmm4
	movaps	%xmm3, 80(%rsp)
	mulps	%xmm7, %xmm4
	movaps	%xmm3, 32(%rsp)
	movaps	208(%rsp), %xmm5
	movq	32(%rsp), %rax
	movaps	%xmm4, %xmm6
	movaps	240(%rsp), %xmm3
	mulps	%xmm2, %xmm6
	movq	%rax, 272(%rsp)
	movq	88(%rsp), %rax
	mulps	%xmm3, %xmm5
	movaps	32(%rsp), %xmm7
	movaps	%xmm4, 16(%rsp)
	movq	%rax, 280(%rsp)
	movq	16(%rsp), %rsi
	movaps	%xmm4, 64(%rsp)
	mulps	%xmm5, %xmm7
	movaps	%xmm5, 48(%rsp)
	movaps	%xmm5, 80(%rsp)
	movaps	%xmm6, 16(%rsp)
	movq	48(%rsp), %rax
	movq	%rsi, 288(%rsp)
	movq	72(%rsp), %rsi
	movaps	%xmm7, 48(%rsp)
	movq	%rax, 304(%rsp)
	movq	88(%rsp), %rax
	movq	%rsi, 296(%rsp)
	movq	%rax, 312(%rsp)
	movq	16(%rsp), %rsi
	movaps	%xmm6, 64(%rsp)
	movq	48(%rsp), %rax
	movaps	%xmm7, 80(%rsp)
	movaps	384(%rsp), %xmm1
	movq	%rax, 336(%rsp)
	movq	88(%rsp), %rax
	movaps	400(%rsp), %xmm2
	mulps	%xmm6, %xmm1
	movq	%rsi, 320(%rsp)
	movq	72(%rsp), %rsi
	mulps	%xmm7, %xmm2
	movq	%rax, 344(%rsp)
	movq	%rsi, 328(%rsp)
	movaps	%xmm1, 32(%rsp)
	movq	32(%rsp), %r9
	movaps	%xmm1, 64(%rsp)
	movaps	%xmm2, 48(%rsp)
	movaps	%xmm2, 80(%rsp)
	movq	48(%rsp), %rdi
	movq	72(%rsp), %r8
	movq	88(%rsp), %rax
	movq	%r9, 352(%rsp)
	movq	%r8, 360(%rsp)
	movq	%rdi, 368(%rsp)
	movq	%rax, 376(%rsp)
	ja	.L626
	subl	$32, %ecx
	movq	%r9, 96(%rsp)
	movq	%r9, 416(%rsp)
	movl	%ecx, %esi
	movq	%r8, 424(%rsp)
	movq	%rdi, 432(%rsp)
	shrl	$5, %esi
	movq	%rax, 440(%rsp)
	movq	%r8, 104(%rsp)
	movl	%esi, %edx
	sall	$5, %esi
	movq	%rdi, 112(%rsp)
	addq	$1, %rdx
	movq	%rax, 120(%rsp)
	subl	%esi, %ecx
	salq	$7, %rdx
	movss	96(%rsp), %xmm1
	addq	%rdx, %rbx
.L605:
	testl	%ecx, %ecx
	je	.L609
.L610:
	addq	$4, %rbx
	subl	$1, %ecx
	mulss	-4(%rbx), %xmm0
	jne	.L610
.L609:
	leaq	100(%rsp), %rax
	leaq	128(%rsp), %rdx
	jmp	.L612
.L611:
	movss	(%rax), %xmm1
	addq	$4, %rax
.L612:
	cmpq	%rdx, %rax
	mulss	%xmm1, %xmm0
	jne	.L611
	movss	%xmm0, (%r12)
	leaq	-24(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%rbp
	ret

simd_v8a_combine:
	pushq	%rbp
	movq	%rsp, %rbp
	pushq	%r13
	movq	%rdi, %r13
	pushq	%r12
	movq	%rsi, %r12
	pushq	%rbx
	andq	$-32, %rsp
	subq	$736, %rsp
	call	get_vec_start
	movq	%r13, %rdi
	movq	%rax, %rbx
	call	vec_length
	movss	.LC0(%rip), %xmm1
	testb	$31, %bl
	movl	%eax, %ecx
	movss	%xmm1, 128(%rsp)
	movss	%xmm1, 132(%rsp)
	movaps	%xmm1, %xmm0
	movss	%xmm1, 136(%rsp)
	movss	%xmm1, 140(%rsp)
	movss	%xmm1, 144(%rsp)
	movss	%xmm1, 148(%rsp)
	movss	%xmm1, 152(%rsp)
	movss	%xmm1, 156(%rsp)
	je	.L628
	testl	%eax, %eax
	jne	.L633
	jmp	.L636
.L630:
	testl	%ecx, %ecx
	je	.L636
.L633:
	addq	$4, %rbx
	subl	$1, %ecx
	mulss	-4(%rbx), %xmm0
	testb	$31, %bl
	jne	.L630
.L628:
	cmpl	$63, %ecx
	jbe	.L632
	movq	128(%rsp), %rax
	movl	%ecx, %r10d
	movq	%rbx, %rdx
	movq	%rax, 704(%rsp)
	movq	136(%rsp), %rax
	movq	%rax, 712(%rsp)
	movq	144(%rsp), %rax
	movq	%rax, 720(%rsp)
	movq	152(%rsp), %rax
	movq	%rax, 728(%rsp)
	jmp	.L635
.L653:
	movq	%r9, 704(%rsp)
	movq	%r8, 712(%rsp)
	movq	%rdi, 720(%rsp)
	movq	%rax, 728(%rsp)
.L635:
	movq	(%rdx), %rax
	subl	$64, %r10d
	addq	$256, %rdx
	movq	%rax, 160(%rsp)
	movq	-248(%rdx), %rax
	movq	%rax, 168(%rsp)
	movq	-240(%rdx), %rax
	movq	%rax, 176(%rsp)
	movq	-232(%rdx), %rax
	movq	%rax, 184(%rsp)
	movq	-224(%rdx), %rax
	movq	%rax, 192(%rsp)
	movq	-216(%rdx), %rax
	movq	%rax, 200(%rsp)
	movq	-208(%rdx), %rax
	movq	%rax, 208(%rsp)
	movq	-200(%rdx), %rax
	movq	%rax, 216(%rsp)
	movq	-192(%rdx), %rax
	movq	%rax, 224(%rsp)
	movq	-184(%rdx), %rax
	movq	%rax, 232(%rsp)
	movq	-176(%rdx), %rax
	movq	%rax, 240(%rsp)
	movq	-168(%rdx), %rax
	movq	%rax, 248(%rsp)
	movq	-160(%rdx), %rax
	movq	%rax, 256(%rsp)
	movq	-152(%rdx), %rax
	movq	%rax, 264(%rsp)
	movq	-144(%rdx), %rax
	movq	%rax, 272(%rsp)
	movq	-136(%rdx), %rax
	movq	%rax, 280(%rsp)
	movq	-128(%rdx), %rax
	movq	%rax, 288(%rsp)
	movq	-120(%rdx), %rax
	movaps	192(%rsp), %xmm4
	movq	%rax, 296(%rsp)
	movq	-112(%rdx), %rax
	movaps	176(%rsp), %xmm5
	movq	%rax, 304(%rsp)
	movq	-104(%rdx), %rax
	movaps	160(%rsp), %xmm2
	movq	%rax, 312(%rsp)
	movq	-96(%rdx), %rax
	movaps	208(%rsp), %xmm3
	mulps	%xmm4, %xmm2
	movq	%rax, 320(%rsp)
	movq	-88(%rdx), %rax
	mulps	%xmm5, %xmm3
	movq	%rax, 328(%rsp)
	movq	-80(%rdx), %rax
	movaps	%xmm2, 32(%rsp)
	movq	%rax, 336(%rsp)
	movq	-72(%rdx), %rax
	movq	%rax, 344(%rsp)
	movq	-64(%rdx), %rax
	movq	%rax, 352(%rsp)
	movq	-56(%rdx), %rax
	movq	%rax, 360(%rsp)
	movq	-48(%rdx), %rax
	movq	%rax, 368(%rsp)
	movq	-40(%rdx), %rax
	movq	%rax, 376(%rsp)
	movq	-32(%rdx), %rax
	movq	%rax, 384(%rsp)
	movq	-24(%rdx), %rax
	movq	%rax, 392(%rsp)
	movq	-16(%rdx), %rax
	movq	%rax, 400(%rsp)
	movq	-8(%rdx), %rax
	cmpl	$63, %r10d
	movq	%rax, 408(%rsp)
	movaps	%xmm3, 64(%rsp)
	movq	32(%rsp), %rsi
	movq	64(%rsp), %rax
	movaps	%xmm2, 96(%rsp)
	movaps	%xmm3, 112(%rsp)
	movaps	256(%rsp), %xmm4
	movq	%rsi, 416(%rsp)
	movq	104(%rsp), %rsi
	mulps	224(%rsp), %xmm4
	movaps	272(%rsp), %xmm5
	movq	%rsi, 424(%rsp)
	movq	%rax, 432(%rsp)
	mulps	240(%rsp), %xmm5
	movq	120(%rsp), %rax
	movaps	%xmm4, %xmm6
	movq	%rax, 440(%rsp)
	movaps	%xmm4, 48(%rsp)
	movq	48(%rsp), %rsi
	mulps	%xmm2, %xmm6
	movaps	%xmm4, 96(%rsp)
	movaps	%xmm5, %xmm7
	movaps	%xmm5, 80(%rsp)
	mulps	%xmm3, %xmm7
	movaps	%xmm6, (%rsp)
	movaps	%xmm5, 112(%rsp)
	movaps	%xmm7, 16(%rsp)
	movq	%rsi, 448(%rsp)
	movq	104(%rsp), %rsi
	movq	80(%rsp), %rax
	movaps	%xmm6, 96(%rsp)
	movq	%rsi, 456(%rsp)
	movq	(%rsp), %rsi
	movq	%rax, 464(%rsp)
	movq	%rsi, 480(%rsp)
	movq	120(%rsp), %rax
	movq	104(%rsp), %rsi
	movaps	%xmm7, 112(%rsp)
	movq	%rax, 472(%rsp)
	movq	16(%rsp), %rax
	movq	%rsi, 488(%rsp)
	movaps	320(%rsp), %xmm3
	movq	%rax, 496(%rsp)
	movq	120(%rsp), %rax
	movaps	288(%rsp), %xmm1
	movaps	336(%rsp), %xmm4
	mulps	%xmm3, %xmm1
	movq	%rax, 504(%rsp)
	movaps	304(%rsp), %xmm2
	mulps	%xmm4, %xmm2
	movaps	384(%rsp), %xmm7
	movaps	%xmm1, 96(%rsp)
	movaps	%xmm1, 64(%rsp)
	movaps	%xmm2, 32(%rsp)
	movaps	%xmm2, 112(%rsp)
	movaps	400(%rsp), %xmm1
	movq	64(%rsp), %rsi
	movq	32(%rsp), %rax
	movaps	352(%rsp), %xmm3
	movaps	368(%rsp), %xmm4
	mulps	%xmm7, %xmm3
	movq	%rsi, 512(%rsp)
	movq	%rax, 528(%rsp)
	movq	104(%rsp), %rsi
	movq	120(%rsp), %rax
	mulps	%xmm1, %xmm4
	movq	%rsi, 520(%rsp)
	movq	%rax, 536(%rsp)
	movaps	%xmm3, 80(%rsp)
	movq	80(%rsp), %rsi
	movaps	%xmm3, %xmm2
	movaps	%xmm4, 48(%rsp)
	movaps	%xmm3, 96(%rsp)
	movaps	%xmm4, 112(%rsp)
	movq	48(%rsp), %rax
	movq	%rsi, 544(%rsp)
	movq	104(%rsp), %rsi
	movq	%rax, 560(%rsp)
	movq	120(%rsp), %rax
	movq	%rsi, 552(%rsp)
	movq	%rax, 568(%rsp)
	movaps	64(%rsp), %xmm5
	movaps	32(%rsp), %xmm6
	mulps	%xmm2, %xmm5
	movaps	(%rsp), %xmm7
	mulps	%xmm4, %xmm6
	movaps	16(%rsp), %xmm1
	movaps	%xmm5, %xmm4
	movaps	%xmm5, 80(%rsp)
	mulps	%xmm4, %xmm7
	movq	80(%rsp), %rsi
	movaps	%xmm6, 64(%rsp)
	mulps	%xmm6, %xmm1
	movaps	%xmm5, 96(%rsp)
	movaps	%xmm6, 112(%rsp)
	movaps	%xmm7, %xmm6
	movaps	%xmm7, 80(%rsp)
	movq	64(%rsp), %rax
	movq	%rsi, 576(%rsp)
	movq	104(%rsp), %rsi
	movaps	704(%rsp), %xmm2
	movq	%rax, 592(%rsp)
	movq	120(%rsp), %rax
	movaps	%xmm7, 96(%rsp)
	movaps	%xmm1, %xmm7
	movq	%rsi, 584(%rsp)
	movaps	%xmm1, 64(%rsp)
	mulps	%xmm6, %xmm2
	movaps	%xmm1, 112(%rsp)
	movaps	720(%rsp), %xmm3
	movq	80(%rsp), %rsi
	movq	%rax, 600(%rsp)
	movq	64(%rsp), %rax
	mulps	%xmm7, %xmm3
	movaps	%xmm2, 80(%rsp)
	movq	%rsi, 608(%rsp)
	movq	104(%rsp), %rsi
	movaps	%xmm2, 96(%rsp)
	movq	%rax, 624(%rsp)
	movq	120(%rsp), %rax
	movq	80(%rsp), %r9
	movq	%rsi, 616(%rsp)
	movq	%rax, 632(%rsp)
	movaps	%xmm3, 80(%rsp)
	movq	80(%rsp), %rdi
	movq	104(%rsp), %r8
	movaps	%xmm3, 112(%rsp)
	movq	120(%rsp), %rax
	movq	%r9, 640(%rsp)
	movq	%r8, 648(%rsp)
	movq	%rdi, 656(%rsp)
	movq	%rax, 664(%rsp)
	ja	.L653
	subl	$64, %ecx
	movq	%r9, 128(%rsp)
	movq	%r9, 672(%rsp)
	movl	%ecx, %esi
	movq	%r8, 680(%rsp)
	movq	%rdi, 688(%rsp)
	shrl	$6, %esi
	movq	%rax, 696(%rsp)
	movq	%r8, 136(%rsp)
	movl	%esi, %edx
	sall	$6, %esi
	movq	%rdi, 144(%rsp)
	addq	$1, %rdx
	movq	%rax, 152(%rsp)
	subl	%esi, %ecx
	salq	$8, %rdx
	movss	128(%rsp), %xmm1
	addq	%rdx, %rbx
.L632:
	testl	%ecx, %ecx
	je	.L636
.L637:
	addq	$4, %rbx
	subl	$1, %ecx
	mulss	-4(%rbx), %xmm0
	jne	.L637
.L636:
	leaq	132(%rsp), %rax
	leaq	160(%rsp), %rdx
	jmp	.L639
.L638:
	movss	(%rax), %xmm1
	addq	$4, %rax
.L639:
	cmpq	%rdx, %rax
	mulss	%xmm1, %xmm0
	jne	.L638
	movss	%xmm0, (%r12)
	leaq	-24(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%rbp
	ret

unroll4x2as_combine:
	pushq	%r13
	movq	%rsi, %r13
	pushq	%r12
	movq	%rdi, %r12
	pushq	%rbp
	pushq	%rbx
	subq	$8, %rsp
	call	vec_length
	movq	%rax, %rbx
	movq	%r12, %rdi
	movq	%rax, %rbp
	shrq	$63, %rbx
	addq	%rax, %rbx
	sarq	%rbx
	call	get_vec_start
	movss	.LC0(%rip), %xmm0
	testq	%rbx, %rbx
	movq	%rax, %rcx
	movaps	%xmm0, %xmm1
	leaq	(%rax,%rbx,4), %rax
	jle	.L655
	xorl	%edx, %edx
.L656:
	mulss	(%rcx,%rdx,4), %xmm1
	mulss	(%rax,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbx, %rdx
	jne	.L656
.L655:
	leaq	(%rbx,%rbx), %rdx
	cmpq	%rdx, %rbp
	jle	.L657
.L658:
	mulss	(%rcx,%rdx,4), %xmm0
	addq	$1, %rdx
	cmpq	%rbp, %rdx
	jne	.L658
.L657:
	mulss	%xmm1, %xmm0
	movss	%xmm0, 0(%r13)
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	popq	%r12
	popq	%r13
	ret

register_combiners:
	movl	$combine1, %esi
	subq	$8, %rsp
	movl	$combine1_descr, %edx
	movq	%rsi, %rdi
	call	add_combiner
	movl	$combine2_descr, %edx
	movl	$combine1, %esi
	movl	$combine2, %edi
	call	add_combiner
	movl	$combine3_descr, %edx
	movl	$combine1, %esi
	movl	$combine3, %edi
	call	add_combiner
	movl	$combine3w_descr, %edx
	movl	$combine1, %esi
	movl	$combine3w, %edi
	call	add_combiner
	movl	$combine4_descr, %edx
	movl	$combine1, %esi
	movl	$combine4, %edi
	call	add_combiner
	movl	$combine4b_descr, %edx
	movl	$combine1, %esi
	movl	$combine4b, %edi
	call	add_combiner
	movl	$combine4p_descr, %edx
	movl	$combine1, %esi
	movl	$combine4p, %edi
	call	add_combiner
	movl	$combine5_descr, %edx
	movl	$combine1, %esi
	movl	$combine5, %edi
	call	add_combiner
	movl	$combine5p_descr, %edx
	movl	$combine1, %esi
	movl	$combine5p, %edi
	call	add_combiner
	movl	$unroll2aw_descr, %edx
	movl	$combine1, %esi
	movl	$unroll2aw_combine, %edi
	call	add_combiner
	movl	$unroll3a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll3a_combine, %edi
	call	add_combiner
	movl	$unroll4a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll4a_combine, %edi
	call	add_combiner
	movl	$unroll5a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll5a_combine, %edi
	call	add_combiner
	movl	$unroll6a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll6a_combine, %edi
	call	add_combiner
	movl	$unroll7a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll7a_combine, %edi
	call	add_combiner
	movl	$unroll8a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll8a_combine, %edi
	call	add_combiner
	movl	$unroll9a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll9a_combine, %edi
	call	add_combiner
	movl	$unroll10a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll10a_combine, %edi
	call	add_combiner
	movl	$unroll16a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll16a_combine, %edi
	call	add_combiner
	movl	$unroll2_descr, %edx
	movl	$combine1, %esi
	movl	$unroll2_combine, %edi
	call	add_combiner
	movl	$unroll3_descr, %edx
	movl	$combine1, %esi
	movl	$unroll3_combine, %edi
	call	add_combiner
	movl	$unroll4_descr, %edx
	movl	$combine1, %esi
	movl	$unroll4_combine, %edi
	call	add_combiner
	movl	$unroll8_descr, %edx
	movl	$combine1, %esi
	movl	$unroll8_combine, %edi
	call	add_combiner
	movl	$unroll16_descr, %edx
	movl	$combine1, %esi
	movl	$unroll16_combine, %edi
	call	add_combiner
	movl	$combine6_descr, %edx
	movl	$combine1, %esi
	movl	$combine6, %edi
	call	add_combiner
	movl	$unroll4x2a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll4x2a_combine, %edi
	call	add_combiner
	movl	$unroll8x2a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll8x2a_combine, %edi
	call	add_combiner
	movl	$unroll3x3a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll3x3a_combine, %edi
	call	add_combiner
	movl	$unroll4x4a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll4x4a_combine, %edi
	call	add_combiner
	movl	$unroll5x5a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll5x5a_combine, %edi
	call	add_combiner
	movl	$unroll6x6a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll6x6a_combine, %edi
	call	add_combiner
	movl	$unroll7x7a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll7x7a_combine, %edi
	call	add_combiner
	movl	$unroll8x4a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll8x4a_combine, %edi
	call	add_combiner
	movl	$unroll8x8a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll8x8a_combine, %edi
	call	add_combiner
	movl	$unroll9x9a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll9x9a_combine, %edi
	call	add_combiner
	movl	$unroll10x10a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll10x10a_combine, %edi
	call	add_combiner
	movl	$unroll12x6a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll12x6a_combine, %edi
	call	add_combiner
	movl	$unroll12x12a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll12x12a_combine, %edi
	call	add_combiner
	movl	$unroll16x16a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll16x16a_combine, %edi
	call	add_combiner
	movl	$unroll20x20a_descr, %edx
	movl	$combine1, %esi
	movl	$unroll20x20a_combine, %edi
	call	add_combiner
	movl	$unroll8x2_descr, %edx
	movl	$combine1, %esi
	movl	$unroll8x2_combine, %edi
	call	add_combiner
	movl	$unroll8x4_descr, %edx
	movl	$combine1, %esi
	movl	$unroll8x4_combine, %edi
	call	add_combiner
	movl	$unroll8x8_descr, %edx
	movl	$combine1, %esi
	movl	$unroll8x8_combine, %edi
	call	add_combiner
	movl	$unroll9x3_descr, %edx
	movl	$combine1, %esi
	movl	$unroll9x3_combine, %edi
	call	add_combiner
	movl	$unrollx2as_descr, %edx
	movl	$combine1, %esi
	movl	$unrollx2as_combine, %edi
	call	add_combiner
	movl	$combine7_descr, %edx
	movl	$combine1, %esi
	movl	$combine7, %edi
	call	add_combiner
	movl	$unroll3aa_descr, %edx
	movl	$combine1, %esi
	movl	$unroll3aa_combine, %edi
	call	add_combiner
	movl	$unroll4aa_descr, %edx
	movl	$combine1, %esi
	movl	$unroll4aa_combine, %edi
	call	add_combiner
	movl	$unroll5aa_descr, %edx
	movl	$combine1, %esi
	movl	$unroll5aa_combine, %edi
	call	add_combiner
	movl	$unroll6aa_descr, %edx
	movl	$combine1, %esi
	movl	$unroll6aa_combine, %edi
	call	add_combiner
	movl	$unroll7aa_descr, %edx
	movl	$combine1, %esi
	movl	$unroll7aa_combine, %edi
	call	add_combiner
	movl	$unroll8aa_descr, %edx
	movl	$combine1, %esi
	movl	$unroll8aa_combine, %edi
	call	add_combiner
	movl	$unroll9aa_descr, %edx
	movl	$combine1, %esi
	movl	$unroll9aa_combine, %edi
	call	add_combiner
	movl	$unroll10aa_descr, %edx
	movl	$combine1, %esi
	movl	$unroll10aa_combine, %edi
	call	add_combiner
	movl	$unroll12aa_descr, %edx
	movl	$combine1, %esi
	movl	$unroll12aa_combine, %edi
	call	add_combiner
	movl	$simd_v1_descr, %edx
	movl	$combine1, %esi
	movl	$simd_v1_combine, %edi
	call	add_combiner
	movl	$simd_v2_descr, %edx
	movl	$combine1, %esi
	movl	$simd_v2_combine, %edi
	call	add_combiner
	movl	$simd_v4_descr, %edx
	movl	$combine1, %esi
	movl	$simd_v4_combine, %edi
	call	add_combiner
	movl	$simd_v8_descr, %edx
	movl	$combine1, %esi
	movl	$simd_v8_combine, %edi
	call	add_combiner
	movl	$simd_v10_descr, %edx
	movl	$combine1, %esi
	movl	$simd_v10_combine, %edi
	call	add_combiner
	movl	$simd_v12_descr, %edx
	movl	$combine1, %esi
	movl	$simd_v12_combine, %edi
	call	add_combiner
	movl	$simd_v2a_descr, %edx
	movl	$combine1, %esi
	movl	$simd_v2a_combine, %edi
	call	add_combiner
	movl	$simd_v4a_descr, %edx
	movl	$combine1, %esi
	movl	$simd_v4a_combine, %edi
	call	add_combiner
	movl	$simd_v8a_combine, %edi
	movl	$simd_v8a_descr, %edx
	movl	$combine1, %esi
	call	add_combiner
	movsd	.LC1(%rip), %xmm1
	movl	$simd_v8a_combine, %edi
	movsd	.LC2(%rip), %xmm0
	addq	$8, %rsp
	jmp	log_combiner
simd_v8a_descr:
simd_v4a_descr:
simd_v2a_descr:
simd_v12_descr:
simd_v10_descr:
simd_v8_descr:
simd_v4_descr:
simd_v2_descr:
simd_v1_descr:
unroll12aa_descr:
unroll10aa_descr:
unroll9aa_descr:
unroll8aa_descr:
unroll7aa_descr:
unroll6aa_descr:
unroll5aa_descr:
unroll4aa_descr:
unroll3aa_descr:
combine7_descr:
unroll8x8_descr:
unroll8x4_descr:
unroll9x3_descr:
unroll8x2_descr:
unroll4x2as_descr:
unrollx2as_descr:
unroll10x10a_descr:
unroll9x9a_descr:
unroll8x8a_descr:
unroll7x7a_descr:
unroll6x6a_descr:
unroll5x5a_descr:
unroll20x20a_descr:
unroll16x16a_descr:
unroll12x12a_descr:
unroll12x6a_descr:
unroll8x4a_descr:
unroll4x4a_descr:
unroll3x3a_descr:
unroll8x2a_descr:
unroll4x2a_descr:
combine6_descr:
unroll16_descr:
unroll8_descr:
unroll4_descr:
unroll3_descr:
unroll2_descr:
unroll16a_descr:
unroll10a_descr:
unroll9a_descr:
unroll8a_descr:
unroll7a_descr:
unroll6a_descr:
unroll5a_descr:
unroll4a_descr:
unroll2aw_descr:
combine5p_descr:
unroll3a_descr:
combine5_descr:
combine4p_descr:
combine4b_descr:
combine4_descr:
combine3w_descr:
combine3_descr:
combine2_descr:
combine1_descr:
