⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zdot_sse2_core2.s

📁 Optimized GotoBLAS libraries
💻 S
📖 第 1 页 / 共 2 页
字号:
	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm0	movapd	 (Y), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 (X), %xmm4	movhpd	 1 * SIZE(X), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm2	movapd	 (Y), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	 (X), %xmm4	movhpd	 1 * SIZE(X), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm0	movapd	 (Y), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 (X), %xmm4	movhpd	 1 * SIZE(X), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addq	INCX, X	addq	INCY, Y	ALIGN_3.L46:	testq	$2, N	jle	.L47	addpd	 %xmm6, %xmm2	movapd	 (Y), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	 (X), %xmm4	movhpd	 1 * SIZE(X), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm0	movapd	 (Y), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 (X), %xmm4	movhpd	 1 * SIZE(X), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addq	INCX, X	addq	INCY, Y	ALIGN_3.L47:	addpd	 %xmm6, %xmm2	addpd	 %xmm7, %xmm3	testq	$1, N	jle	.L49	movapd	 (Y), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 (X), %xmm4	movhpd	 1 * SIZE(X), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm6, %xmm0	mulpd	 %xmm4, %xmm7	addpd	 %xmm7, %xmm1	ALIGN_3.L49:	addpd	%xmm0, %xmm2	addpd	%xmm1, %xmm3	movapd	 %xmm2, %xmm0	unpckhpd %xmm2, %xmm2	movapd	 %xmm3, %xmm1	unpckhpd %xmm3, %xmm3#ifndef CONJ	subsd	 %xmm2, %xmm0	addsd	 %xmm3, %xmm1#else	addsd	 %xmm2, %xmm0	subsd	 %xmm3, %xmm1#endif#if defined(F_INTERFACE) && defined(F_INTERFACE_F2C)	movsd	%xmm0, 0 * SIZE(RESULT)	movsd	%xmm1, 1 * SIZE(RESULT)#endif	RESTOREREGISTERS	ret	ALIGN_3.L50:	/* X is aligned, Y is not aligned */	cmpq	$2 * SIZE, INCX	jne	.L60	cmpq	$2 * SIZE, INCY	jne	.L60	subq	$-16 * SIZE, X	subq	$-16 * SIZE, Y	movq	N,  %rax	sarq	$3, %rax	jle	.L55	ALIGN_3.L51:	addpd	 %xmm6, %xmm2	movapd	 -16 * SIZE(X), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	 -16 * SIZE(Y), %xmm4	movhpd	 -15 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addpd	 %xmm6, %xmm0	movapd	 -14 * SIZE(X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 -14 * SIZE(Y), %xmm4	movhpd	 -13 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addpd	 %xmm6, %xmm2	movapd	 -12 * SIZE(X), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	 -12 * SIZE(Y), %xmm4	movhpd	 -11 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addpd	 %xmm6, %xmm0	movapd	 -10 * SIZE(X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 -10 * SIZE(Y), %xmm4	movhpd	  -9 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addpd	 %xmm6, %xmm2	movapd	  -8 * SIZE(X), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	  -8 * SIZE(Y), %xmm4	movhpd	  -7 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addpd	 %xmm6, %xmm0	movapd	  -6 * SIZE(X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	  -6 * SIZE(Y), %xmm4	movhpd	  -5 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addpd	 %xmm6, %xmm2	movapd	  -4 * SIZE(X), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	  -4 * SIZE(Y), %xmm4	movhpd	  -3 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addpd	 %xmm6, %xmm0	movapd	  -2 * SIZE(X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	  -2 * SIZE(Y), %xmm4	movhpd	  -1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	subq	$-16 * SIZE, X	subq	$-16 * SIZE, Y	decq	%rax	jg	.L51	ALIGN_3.L55:	testq	$4, N	jle	.L56	addpd	 %xmm6, %xmm2	movapd	 -16 * SIZE(X), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	 -16 * SIZE(Y), %xmm4	movhpd	 -15 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addpd	 %xmm6, %xmm0	movapd	 -14 * SIZE(X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 -14 * SIZE(Y), %xmm4	movhpd	 -13 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addpd	 %xmm6, %xmm2	movapd	 -12 * SIZE(X), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	 -12 * SIZE(Y), %xmm4	movhpd	 -11 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addpd	 %xmm6, %xmm0	movapd	 -10 * SIZE(X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 -10 * SIZE(Y), %xmm4	movhpd	  -9 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addq	$8 * SIZE, X	addq	$8 * SIZE, Y	ALIGN_3.L56:	testq	$2, N	jle	.L57	addpd	 %xmm6, %xmm2	movapd	 -16 * SIZE(X), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	 -16 * SIZE(Y), %xmm4	movhpd	 -15 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addpd	 %xmm6, %xmm0	movapd	 -14 * SIZE(X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 -14 * SIZE(Y), %xmm4	movhpd	 -13 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addq	$4 * SIZE, X	addq	$4 * SIZE, Y	ALIGN_3.L57:	addpd	 %xmm6, %xmm2	addpd	 %xmm7, %xmm3	testq	$1, N	jle	.L69	movapd	 -16 * SIZE(X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 -16 * SIZE(Y), %xmm4	movhpd	 -15 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm6, %xmm0	mulpd	 %xmm4, %xmm7	addpd	 %xmm7, %xmm1	jmp	 .L69	ALIGN_3.L60:#ifdef F_INTERFACE	testq	INCX, INCX	jge	.L61	movq	N, %rax	decq	%rax	imulq	INCX, %rax	subq	%rax, X	ALIGN_3.L61:	testq	INCY, INCY	jge	.L62	movq	N, %rax	decq	%rax	imulq	INCY, %rax	subq	%rax, Y	ALIGN_3.L62:#endif	movq	N,  %rax	sarq	$3, %rax	jle	.L65	ALIGN_3.L63:	addpd	 %xmm6, %xmm2	movapd	 (X), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm0	movapd	 (X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm2	movapd	 (X), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm0	movapd	 (X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm2	movapd	 (X), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm0	movapd	 (X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm2	movapd	 (X), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm0	movapd	 (X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addq	INCX, X	addq	INCY, Y	decq	%rax	jg	.L63	ALIGN_3.L65:	testq	$4, N	jle	.L66	addpd	 %xmm6, %xmm2	movapd	 (X), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm0	movapd	 (X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm2	movapd	 (X), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm0	movapd	 (X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addq	INCX, X	addq	INCY, Y	ALIGN_3.L66:	testq	$2, N	jle	.L67	addpd	 %xmm6, %xmm2	movapd	 (X), %xmm5	movapd	%xmm5, %xmm6	SHUFPD_1 %xmm5, %xmm5	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm7, %xmm3	mulpd	 %xmm4, %xmm5	addq	INCX, X	addq	INCY, Y	addpd	 %xmm6, %xmm0	movapd	 (X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm5, %xmm1	mulpd	 %xmm4, %xmm7	addq	INCX, X	addq	INCY, Y	ALIGN_3.L67:	addpd	 %xmm6, %xmm2	addpd	 %xmm7, %xmm3	testq	$1, N	jle	.L69	movapd	 (X), %xmm7	movapd	%xmm7, %xmm6	SHUFPD_1 %xmm7, %xmm7	movsd	 (Y), %xmm4	movhpd	 1 * SIZE(Y), %xmm4	mulpd	 %xmm4, %xmm6	addpd	 %xmm6, %xmm0	mulpd	 %xmm4, %xmm7	addpd	 %xmm7, %xmm1	ALIGN_3.L69:	addpd	%xmm0, %xmm2	addpd	%xmm3, %xmm1	movapd	 %xmm2, %xmm0	unpckhpd %xmm2, %xmm2	movapd	 %xmm1, %xmm3	unpckhpd %xmm1, %xmm1#ifndef CONJ	subsd	 %xmm2, %xmm0	addsd	 %xmm3, %xmm1#else	addsd	 %xmm2, %xmm0	subsd	 %xmm3, %xmm1#endif#if defined(F_INTERFACE) && defined(F_INTERFACE_F2C)	movsd	%xmm0, 0 * SIZE(RESULT)	movsd	%xmm1, 1 * SIZE(RESULT)#endif	RESTOREREGISTERS	ret	ALIGN_3.L70:	cmpq	$2 * SIZE, INCX	jne	.L80	cmpq	$2 * SIZE, INCY	jne	.L80	movapd	-1 * SIZE(Y), %xmm8	movq	N,  %rax	sarq	$2, %rax	jle	.L75	ALIGN_3.L73:	movsd	 0 * SIZE(X), %xmm4	movhpd	 1 * SIZE(X), %xmm4	movsd	 2 * SIZE(X), %xmm5	movhpd	 3 * SIZE(X), %xmm5	movapd	 1 * SIZE(Y), %xmm9	movapd	 3 * SIZE(Y), %xmm10	SHUFPD_3 %xmm8,  %xmm8	movddup	 %xmm9,  %xmm12	SHUFPD_3 %xmm9,  %xmm9	movddup	 %xmm10, %xmm13	mulpd	 %xmm4, %xmm8	mulpd	 %xmm4, %xmm12	mulpd	 %xmm5, %xmm9	mulpd	 %xmm5, %xmm13	addpd	 %xmm8,  %xmm0	addpd	 %xmm12, %xmm1	addpd	 %xmm9,  %xmm2	addpd	 %xmm13, %xmm3	movsd	 4 * SIZE(X), %xmm6	movhpd	 5 * SIZE(X), %xmm6	movsd	 6 * SIZE(X), %xmm7	movhpd	 7 * SIZE(X), %xmm7	movapd	 5 * SIZE(Y), %xmm11	movapd	 7 * SIZE(Y), %xmm8	SHUFPD_3 %xmm10, %xmm10	movddup	 %xmm11, %xmm14	SHUFPD_3 %xmm11, %xmm11	movddup	 %xmm8, %xmm15	mulpd	 %xmm6, %xmm10	mulpd	 %xmm6, %xmm14	mulpd	 %xmm7, %xmm11	mulpd	 %xmm7, %xmm15	addpd	 %xmm10, %xmm0	addpd	 %xmm14, %xmm1	addpd	 %xmm11, %xmm2	addpd	 %xmm15, %xmm3	addq	 $8 * SIZE, X	addq	 $8 * SIZE, Y	decq	%rax	jg	.L73	ALIGN_3.L75:	testq	$2, N	jle	.L77	movsd	 0 * SIZE(X), %xmm4	movhpd	 1 * SIZE(X), %xmm4	movapd	 1 * SIZE(Y), %xmm9	SHUFPD_3 %xmm8, %xmm8	movddup	 %xmm9, %xmm13	SHUFPD_3 %xmm9, %xmm9	mulpd	 %xmm4, %xmm8	mulpd	 %xmm4, %xmm13	addpd	 %xmm8,   %xmm0	addpd	 %xmm13,  %xmm1	movsd	 2 * SIZE(X), %xmm5	movhpd	 3 * SIZE(X), %xmm5	movapd	 3 * SIZE(Y), %xmm8	movddup	 %xmm8, %xmm14	mulpd	 %xmm5, %xmm9	mulpd	 %xmm5, %xmm14	addpd	 %xmm9,  %xmm2	addpd	 %xmm14, %xmm3	addq	 $4 * SIZE, X	addq	 $4 * SIZE, Y	ALIGN_3.L77:	testq	$1, N	jle	.L999	movsd	 0 * SIZE(X), %xmm4	movhpd	 1 * SIZE(X), %xmm4	movapd	 1 * SIZE(Y), %xmm9	SHUFPD_3 %xmm8, %xmm8	movddup	 %xmm9, %xmm13	mulpd	 %xmm4,  %xmm8	mulpd	 %xmm4,  %xmm13	addpd	 %xmm8,  %xmm0	addpd	 %xmm13, %xmm1	jmp	 .L999	ALIGN_3.L80:#ifdef F_INTERFACE	testq	INCX, INCX		# if (incx < 0)	jge	.L81	movq	N, %rax		# n	decq	%rax			# n - 1	imulq	INCX, %rax		# (n - 1) * incx	subq	%rax, X	ALIGN_3.L81:	testq	INCY, INCY		# if (incy < 0)	jge	.L82	movq	N, %rax	decq	%rax			# (n - 1)	imulq	INCY, %rax		# (n - 1) * incy	subq	%rax, Y	ALIGN_3.L82:#endif	movq	N,  %rax	sarq	$2, %rax	jle	.L85	ALIGN_3.L83:	movsd	 0 * SIZE(X), %xmm4	movhpd	 1 * SIZE(X), %xmm4	addq	 INCX, X	movsd	 0 * SIZE(X), %xmm5	movhpd	 1 * SIZE(X), %xmm5	addq	 INCX, X	movsd	 0 * SIZE(X), %xmm6	movhpd	 1 * SIZE(X), %xmm6	addq	 INCX, X	movsd	 0 * SIZE(X), %xmm7	movhpd	 1 * SIZE(X), %xmm7	addq	 INCX, X	MOVDDUP( 0 * SIZE, Y, %xmm8)	MOVDDUP( 1 * SIZE, Y, %xmm9)	addq	 INCY, Y	MOVDDUP( 0 * SIZE, Y, %xmm10)	MOVDDUP( 1 * SIZE, Y, %xmm11)	addq	 INCY, Y	mulpd	 %xmm4, %xmm8	mulpd	 %xmm4, %xmm9	mulpd	 %xmm5, %xmm10	mulpd	 %xmm5, %xmm11	MOVDDUP( 0 * SIZE, Y, %xmm12)	MOVDDUP( 1 * SIZE, Y, %xmm13)	addq	 INCY, Y	MOVDDUP( 0 * SIZE, Y, %xmm14)	MOVDDUP( 1 * SIZE, Y, %xmm15)	addq	 INCY, Y	addpd	 %xmm8, %xmm0	mulpd	 %xmm6, %xmm12	addpd	 %xmm9, %xmm1	mulpd	 %xmm6, %xmm13	addpd	 %xmm10, %xmm2	mulpd	 %xmm7, %xmm14	addpd	 %xmm11, %xmm3	mulpd	 %xmm7, %xmm15	addpd	 %xmm12, %xmm0	addpd	 %xmm13, %xmm1	addpd	 %xmm14, %xmm2	addpd	 %xmm15, %xmm3	decq	%rax	jg	.L83	ALIGN_3.L85:	testq	$2, N	jle	.L87	movsd	 0 * SIZE(X), %xmm4	movhpd	 1 * SIZE(X), %xmm4	addq	 INCX, X	movsd	 0 * SIZE(X), %xmm5	movhpd	 1 * SIZE(X), %xmm5	addq	 INCX, X	MOVDDUP( 0 * SIZE, Y, %xmm8)	MOVDDUP( 1 * SIZE, Y, %xmm9)	addq	 INCY, Y	MOVDDUP( 0 * SIZE, Y, %xmm10)	MOVDDUP( 1 * SIZE, Y, %xmm11)	addq	 INCY, Y	mulpd	 %xmm4, %xmm8	mulpd	 %xmm4, %xmm9	mulpd	 %xmm5, %xmm10	mulpd	 %xmm5, %xmm11	addpd	 %xmm8, %xmm0	addpd	 %xmm9, %xmm1	addpd	 %xmm10, %xmm2	addpd	 %xmm11, %xmm3	ALIGN_3.L87:	testq	$1, N	jle	.L999	movsd	 0 * SIZE(X), %xmm4	movhpd	 1 * SIZE(X), %xmm4	addq	 INCX, X	MOVDDUP( 0 * SIZE, Y, %xmm8)	MOVDDUP( 1 * SIZE, Y, %xmm9)	mulpd	 %xmm4, %xmm8	mulpd	 %xmm4, %xmm9	addpd	 %xmm8, %xmm0	addpd	 %xmm9, %xmm1	ALIGN_3.L999:        addpd   %xmm0, %xmm2        addpd   %xmm1, %xmm3        movapd  %xmm2,  %xmm0        unpckhpd %xmm2, %xmm2        movapd  %xmm3, %xmm1        unpckhpd %xmm3, %xmm3#ifndef CONJ        subsd    %xmm3, %xmm0        addsd    %xmm2, %xmm1#else        addsd    %xmm3, %xmm0        subsd    %xmm2, %xmm1#endif#if defined(F_INTERFACE) && defined(F_INTERFACE_F2C)	movsd	%xmm0, 0 * SIZE(RESULT)	movsd	%xmm1, 1 * SIZE(RESULT)#endif	RESTOREREGISTERS	ret	EPILOGUE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -