atl_dmm14x1x56_sse2pabc.c

来自「基于Blas CLapck的.用过的人知道是干啥的」· C语言 代码 · 共 2,893 行 · 第 1/5 页

C
2,893
字号
	addpd	rA0, rC7	movapd	112-120(pA10, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC8	movapd	112-120(pA5,ldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC9	movapd	112-120(pA10), rA0	mulpd	rB0, rA0	addpd	rA0, rC10	movapd	112-120(pA10,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC11	movapd	112-120(pA10,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC12	mulpd	112-120(pA5,ldab,8), rB0	addpd	rB0, rC13	movapd	128-120(pA10,mldab5,2), rA0	movapd	128-120(pB0), rB0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	128-120(pA5, mldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	128-120(pA10, mldab,8), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	128-120(pA5, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	128-120(pA5, mldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	movapd	128-120(pA5), rA0	mulpd	rB0, rA0	addpd	rA0, rC5	movapd	128-120(pA5, ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC6	movapd	128-120(pA5, ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC7	movapd	128-120(pA10, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC8	movapd	128-120(pA5,ldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC9	movapd	128-120(pA10), rA0	mulpd	rB0, rA0	addpd	rA0, rC10	movapd	128-120(pA10,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC11	movapd	128-120(pA10,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC12	mulpd	128-120(pA5,ldab,8), rB0	addpd	rB0, rC13	movapd	144-120(pA10,mldab5,2), rA0	movapd	144-120(pB0), rB0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	144-120(pA5, mldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	144-120(pA10, mldab,8), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	144-120(pA5, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	144-120(pA5, mldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	movapd	144-120(pA5), rA0	mulpd	rB0, rA0	addpd	rA0, rC5	movapd	144-120(pA5, ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC6	movapd	144-120(pA5, ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC7	movapd	144-120(pA10, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC8	movapd	144-120(pA5,ldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC9	movapd	144-120(pA10), rA0	mulpd	rB0, rA0	addpd	rA0, rC10	movapd	144-120(pA10,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC11	movapd	144-120(pA10,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC12	mulpd	144-120(pA5,ldab,8), rB0	addpd	rB0, rC13	movapd	160-120(pA10,mldab5,2), rA0	movapd	160-120(pB0), rB0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	160-120(pA5, mldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	160-120(pA10, mldab,8), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	160-120(pA5, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	160-120(pA5, mldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	movapd	160-120(pA5), rA0	mulpd	rB0, rA0	addpd	rA0, rC5	movapd	160-120(pA5, ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC6	movapd	160-120(pA5, ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC7	movapd	160-120(pA10, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC8	movapd	160-120(pA5,ldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC9	movapd	160-120(pA10), rA0	mulpd	rB0, rA0	addpd	rA0, rC10	movapd	160-120(pA10,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC11	movapd	160-120(pA10,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC12	mulpd	160-120(pA5,ldab,8), rB0	addpd	rB0, rC13	movapd	176-120(pA10,mldab5,2), rA0	movapd	176-120(pB0), rB0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	176-120(pA5, mldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	176-120(pA10, mldab,8), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	176-120(pA5, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	176-120(pA5, mldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	movapd	176-120(pA5), rA0	mulpd	rB0, rA0	addpd	rA0, rC5	movapd	176-120(pA5, ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC6	movapd	176-120(pA5, ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC7	movapd	176-120(pA10, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC8	movapd	176-120(pA5,ldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC9	movapd	176-120(pA10), rA0	mulpd	rB0, rA0	addpd	rA0, rC10	movapd	176-120(pA10,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC11	movapd	176-120(pA10,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC12	mulpd	176-120(pA5,ldab,8), rB0	addpd	rB0, rC13	movapd	192-120(pA10,mldab5,2), rA0	movapd	192-120(pB0), rB0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	192-120(pA5, mldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	192-120(pA10, mldab,8), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	192-120(pA5, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	192-120(pA5, mldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	movapd	192-120(pA5), rA0	mulpd	rB0, rA0	addpd	rA0, rC5	movapd	192-120(pA5, ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC6	movapd	192-120(pA5, ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC7	movapd	192-120(pA10, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC8	movapd	192-120(pA5,ldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC9	movapd	192-120(pA10), rA0	mulpd	rB0, rA0	addpd	rA0, rC10	movapd	192-120(pA10,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC11	movapd	192-120(pA10,ldab,2), rA0	mulpd	rB0, rA0	 	 	 	prefC((pC))	 	 	 	prefC(64(pC))	addpd	rA0, rC12	mulpd	192-120(pA5,ldab,8), rB0	addpd	rB0, rC13	movapd	208-120(pA10,mldab5,2), rA0	movapd	208-120(pB0), rB0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	208-120(pA5, mldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	208-120(pA10, mldab,8), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	208-120(pA5, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	208-120(pA5, mldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	movapd	208-120(pA5), rA0	mulpd	rB0, rA0	addpd	rA0, rC5	movapd	208-120(pA5, ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC6	movapd	208-120(pA5, ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC7	movapd	208-120(pA10, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC8	movapd	208-120(pA5,ldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC9	movapd	208-120(pA10), rA0	mulpd	rB0, rA0	addpd	rA0, rC10	movapd	208-120(pA10,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC11	movapd	208-120(pA10,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC12	mulpd	208-120(pA5,ldab,8), rB0	addpd	rB0, rC13/* *      While (pB != stK); * *      cmp	pB, stK *	jne	KLOOP *//* *      Get these bastard things summed up correctly */                                        /* rC0 = c0a  c0b */                                        /* rC1 = c1a  c1b */                                        /* rC2 = c2a  c2b */                                        /* rC3 = c3a  c3b */                                        /* rC4 = c4a  c4b */                                        /* rC5 = c5a  c5b */                                        /* rC6 = c6a  c6b */                                        /* rC7 = c7a  c7b */				pref2((pfA))				pref2(64(pfA))        movapd          rC0, rA0        movapd          rC4, rB0        unpcklpd        rC1, rC0        /* rC0 = c0a  c1a */        unpcklpd        rC5, rC4        /* rC4 = c4a  c5a */	 	 	 	prefC(112(pC))	 	 	 	prefC(176(pC))        unpckhpd        rC1, rA0        /* rA0 = c0b  c1b */        unpckhpd        rC5, rB0        /* rB0 = c4b  c5b */#ifdef BETAX		movapd	(pC), rC5        addpd           rA0, rC0        /* rC0 = c0ab c1ab */        addpd           rB0, rC4        /* rC4 = c4ab c5ab */		mulpd	BOF(%rsp), rC5        movapd          rC2, rA0        movapd          rC6, rB0        unpcklpd        rC3, rC2        /* rC2 = c2a  c3a */		addpd	rC5, rC0        unpcklpd        rC7, rC6        /* rC6 = c6a  c7a */		movapd	16(pC), rC5					addq	$150, pfA        unpckhpd        rC3, rA0        /* rA0 = c2b  c3b */					pref2(-22(pfA))        unpckhpd        rC7, rB0        /* rB0 = c6b  c7b */		movapd	32(pC), rC7        addpd           rA0, rC2        /* rC2 = c2ab c3ab */		mulpd	BOF(%rsp), rC5        addpd           rB0, rC6        /* rC6 = c6ab c7ab */                                        /* rC8 = c08a  c08b */                                        /* rC9 = c09a  c09b */                                        /* rC10 = c10a  c10b */                                        /* rC11 = c11a  c11b */					/* rC12 = c12a c12b */					/* rC13 = c13a c13b */        movapd          rC8, rA0        movapd          rC10, rC1		addpd	rC5, rC2		mulpd	BOF(%rsp), rC7	movapd		rC12, rC3        unpcklpd        rC9, rC8        /* rC8 = c08a  c09a */		movapd	48(pC), rC5				addq	$NB14so-224, pA5        unpcklpd        rC11, rC10      /* rC10 = c10a  c11a */				addq	$NB14so-224, pA10	unpcklpd	rC13, rC12	/* rC12 = c12a c13a */        unpckhpd        rC11, rC1       /* rC1 = c10b  c11b */		addpd	rC7, rC4		mulpd	BOF(%rsp), rC5		movapd	64(pC), rC7        unpckhpd        rC9, rA0        /* rA0 = c08b  c09b */		movapd	80(pC), rC11	unpckhpd	rC13, rC3	/* rC3  = c12b c13b */		mulpd	BOF(%rsp), rC7        addpd           rA0, rC8        /* rC8 = c08ab c09ab */		mulpd	BOF(%rsp), rC11		addpd	rC5, rC6				subq	$224, pB0        addpd           rC1, rC10       /* rC10 = c10ab c11ab */		movapd	96(pC), rC5				addq	$112, pC	addpd		rC3, rC12	/* rc12 = c12ab c13ab */		addpd	rC7, rC8		mulpd	BOF(%rsp), rC5		addpd	rC11, rC10		addpd	rC5, rC12#else        addpd           rA0, rC0        /* rC0 = c0ab c1ab */        addpd           rB0, rC4        /* rC4 = c4ab c5ab */        movapd          rC2, rA0        movapd          rC6, rB0        unpcklpd        rC3, rC2        /* rC2 = c2a  c3a */        unpcklpd        rC7, rC6        /* rC6 = c6a  c7a */					addq	$150, pfA        unpckhpd        rC3, rA0        /* rA0 = c2b  c3b */					pref2(-22(pfA))        unpckhpd        rC7, rB0        /* rB0 = c6b  c7b */        addpd           rA0, rC2        /* rC2 = c2ab c3ab */        addpd           rB0, rC6        /* rC6 = c6ab c7ab */                                        /* rC8 = c08a  c08b */                                        /* rC9 = c09a  c09b */                                        /* rC10 = c10a  c10b */                                        /* rC11 = c11a  c11b */					/* rC12 = c12a c12b */					/* rC13 = c13a c13b */        movapd          rC8, rA0        movapd          rC10, rC1	movapd		rC12, rC3        unpcklpd        rC9, rC8        /* rC8 = c08a  c09a */		addq	$NB14so-224, pA5        unpcklpd        rC11, rC10      /* rC10 = c10a  c11a */		addq	$NB14so-224, pA10	unpcklpd	rC13, rC12	/* rC12 = c12a c13a */        unpckhpd        rC11, rC1       /* rC1 = c10b  c11b */        unpckhpd        rC9, rA0        /* rA0 = c08b  c09b */	unpckhpd	rC13, rC3	/* rC3  = c12b c13b */        addpd           rA0, rC8        /* rC8 = c08ab c09ab */		subq	$224, pB0        addpd           rC1, rC10       /* rC10 = c10ab c11ab */		addq	$112, pC	addpd		rC3, rC12	/* rc12 = c12ab c13ab */#endif/* *      Write results back to C */	movapd	rC0, -112(pC)	movapd	rC2, 16-112(pC)	movapd	rC4, 32-112(pC)	movapd	rC6, 48-112(pC)	movapd	rC8, 64-112(pC)	movapd	rC10, 80-112(pC)	movapd	rC12, 96-112(pC)/* *      pC += 14;  pA += 14*NB; pB -= NB; *//*	while (pA != stM); */	subq	$1, stM	jne	MLOOP/* *      Last iteration of M-loop unrolled to prefetch next col of B *//*MLOOP: *//*KLOOP: */#ifdef BETA1	movapd	0-120(pA10,mldab5,2), rC0	movapd	0-120(pB0), rB0	mulpd	rB0, rC0	addsd	(pC), rC0	movapd	0-120(pA5, mldab,4), rC1	mulpd	rB0, rC1	addsd	CMUL(8)(pC), rC1	movapd	0-120(pA10, mldab,8), rC2	mulpd	rB0, rC2	addsd	CMUL(16)(pC), rC2	movapd	0-120(pA5, mldab,2), rC3	mulpd	rB0, rC3	addsd	CMUL(24)(pC), rC3	movapd	0-120(pA5, mldab), rC4	mulpd	rB0, rC4	addsd	CMUL(32)(pC), rC4	movapd	0-120(pA5), rC5	mulpd	rB0, rC5	addsd	CMUL(40)(pC), rC5	movapd	0-120(pA5, ldab), rC6	mulpd	rB0, rC6	addsd	CMUL(48)(pC), rC6	movapd	0-120(pA5, ldab,2), rC7	mulpd	rB0, rC7	addsd	CMUL(56)(pC), rC7	movapd	0-120(pA10, mldab,2), rC8	mulpd	rB0, rC8	addsd	CMUL(64)(pC), rC8	movapd	0-120(pA5,ldab,4), rC9	mulpd	rB0, rC9	addsd	CMUL(72)(pC), rC9	movapd	0-120(pA10), rC10	mulpd	rB0, rC10	addsd	CMUL(80)(pC), rC10	movapd	0-120(pA10,ldab), rC11	mulpd	rB0, rC11	addsd	CMUL(88)(pC), rC11	movapd	0-120(pA10,ldab,2), rC12	mulpd	rB0, rC12	addsd	CMUL(96)(pC), rC12	movapd	0-120(pA5,ldab,8), rC13	mulpd	rB0, rC13	addsd	CMUL(104)(pC), rC13#else	movapd	0-120(pA10,mldab5,2), rC0	movapd	0-120(pB0), rC13	mulpd	rC13, rC0	movapd	0-120(pA5, mldab,4), rC1	mulpd	rC13, rC1	movapd	0-120(pA10, mldab,8), rC2	mulpd	rC13, rC2	movapd	0-120(pA5, mldab,2), rC3	mulpd	rC13, rC3	movapd	0-120(pA5, mldab), rC4	mulpd	rC13, rC4	movapd	0-120(pA5), rC5	mulpd	rC13, rC5	movapd	0-120(pA5, ldab), rC6	mulpd	rC13, rC6	movapd	0-120(pA5, ldab,2), rC7	mulpd	rC13, rC7	movapd	0-120(pA10, mldab,2), rC8	mulpd	rC13, rC8	movapd	0-120(pA5,ldab,4), rC9	mulpd	rC13, rC9	movapd	0-120(pA10), rC10	mulpd	rC13, rC10	movapd	0-120(pA10,ldab), rC11	mulpd	rC13, rC11	movapd	0-120(pA10,ldab,2), rC12	mulpd	rC13, rC12	mulpd 	0-120(pA5,ldab,8), rC13#endif						prefB(-120(pB0,ldab))						prefB(64-120(pB0,ldab))	movapd	16-120(pA10,mldab5,2), rA0	movapd	16-120(pB0), rB0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	16-120(pA5, mldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	16-120(pA10, mldab,8), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	16-120(pA5, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	16-120(pA5, mldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	movapd	16-120(pA5), rA0	mulpd	rB0, rA0	addpd	rA0, rC5	movapd	16-120(pA5, ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC6	movapd	16-120(pA5, ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC7	movapd	16-120(pA10, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC8	movapd	16-120(pA5,ldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC9	movapd	16-120(pA10), rA0	mulpd	rB0, rA0	addpd	rA0, rC10	movapd	16-120(pA10,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC11	movapd	16-120(pA10,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC12	mulpd	16-120(pA5,ldab,8), rB0	addpd	rB0, rC13	movapd	32-120(pA10,mldab5,2), rA0	movapd	32-120(pB0), rB0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	32-120(pA5, mldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	32-120(pA10, mldab,8), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	32-120(pA5, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	32-120(pA5, mldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	movapd	32-120(pA5), rA0	mulpd	rB0, rA0	addpd	rA0, rC5	movapd	32-120(pA5, ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC6	movapd	32-120(pA5, ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC7	movapd	32-120(pA10, mldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC8	movapd	32-120(pA5,ldab,4), rA0	mulpd	rB0, rA0	addpd	rA0, rC9	movapd	32-120(pA10), rA0	mulpd	rB0, rA0

⌨️ 快捷键说明

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