atl_dmm6x1x72_sse2.c

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

C
3,260
字号
	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	528-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	528-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif/*						pref2((pfA)) *//*						addl	$48, pfA */#if KB > 68	movapd	544-120(pB0), rB0	movapd	544-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	544-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	544-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	544-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	544-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	544-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 70	movapd	560-120(pB0), rB0	movapd	560-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	560-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	560-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	560-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	560-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	560-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 72	movapd	576-120(pB0), rB0	movapd	576-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	576-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	576-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	576-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	576-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	576-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 74	movapd	592-120(pB0), rB0	movapd	592-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	592-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	592-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	592-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	592-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	592-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 76	movapd	608-120(pB0), rB0	movapd	608-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	608-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	608-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	608-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	608-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	608-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 78	movapd	624-120(pB0), rB0	movapd	624-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	624-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	624-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	624-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	624-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	624-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif/* *      Get these bastard things summed up correctly */#ifdef ATL_SSE3        haddpd          rC1, rC0        /* rC0 = c0ab c1ab */				addl	$NBso, pB0        haddpd          rC3, rC2        /* rC2 = c2ab c3ab */        #if MB == 0                                subl    incAn_m, pA0        #else				subl	$MBKBso-NB6so, pA0        #endif        haddpd          rC5, rC4        /* rC4 = c4ab c3ab */        #if MB == 0                                movl    pA0, pA3                                addl    $NB3so, pA3        #else				subl	$MBKBso-NB6so, pA3        #endif#else                                        /* rC0 = c0a  c0b */                                        /* rC1 = c1a  c1b */                                        /* rC2 = c2a  c2b */                                        /* rC3 = c3a  c3b *//* */                                        /* rC4 = c4a  c4b */                                        /* rC5 = c5a  c5b */        movapd          rC0, rA0				addl	$NBso, pB0        movapd          rC4, rB0        unpcklpd        rC1, rC0        /* rC0 = c0a  c1a */        #if MB == 0                                subl    incAn_m, pA0        #else				subl	$MBKBso-NB6so, pA0        #endif        unpcklpd        rC5, rC4        /* rC4 = c4a  c5a */        unpckhpd        rC1, rA0        /* rA0 = c0b  c1b */        unpckhpd        rC5, rB0        /* rB0 = c4b  c5b */        addpd           rA0, rC0        /* rC0 = c0ab c1ab */        addpd           rB0, rC4        /* rC4 = c4ab c5ab */        movapd          rC2, rA0        unpcklpd        rC3, rC2        /* rC2 = c2a  c3a */        unpckhpd        rC3, rA0        /* rA0 = c2b  c3b */        #if MB == 0                                movl    pA0, pA3                                addl    $NB3so, pA3        #else				subl	$MBKBso-NB6so, pA3        #endif        addpd           rA0, rC2        /* rC2 = c2ab c3ab */#endif/* *      Write results back to C */   #ifdef DCPLX	movlpd	rC0, (pC)	movhpd	rC0, 16(pC)	movlpd	rC2, 32(pC)	movhpd	rC2, 48(pC)	movlpd	rC4, 64(pC)	movhpd	rC4, 80(pC)   #else	movapd	rC0, (pC)	movapd	rC2, 16(pC)	movapd	rC4, 32(pC)   #endif/* *      pC += 6;   pA += 6*NB *//* *      pC += incCn;  pA -= NBNB;  pB += NB; *//*	addl	incCn, pC */   	addl	incCn_m, pC/* *      while (pB != stN); */	sub	$1, stN	jnz	NLOOP/* *      Restore callee-saved iregs */   #ifdef ATL_GAS_x8664        movq    -8(%rsp), %rbx        movq    -16(%rsp), %rbp   #elif defined(BETAX)	movl	32(%esp), %ebp	movl	28(%esp), %ebx	movl	24(%esp), %esi	movl	20(%esp), %edi	movl	16(%esp), %esp   #else	movl	12(%esp), %ebp	movl	 8(%esp), %ebx	movl	 4(%esp), %esi	movl	  (%esp), %edi	addl	$28, %esp   #endif	ret#endifUNALIGNED:#if MB == 0        subl    M_m, incCn	addl	$6, incCn#else	subl	$MB-6, incCn#endif   #ifdef DCPLX	shl	$4, incCn   #else	shl	$3, incCn   #endif   #ifndef ATL_GAS_x8664   	movl	incCn, COFF(%esp)   #endif	movl	$NBso, ldab	movl	pA0, pA3	addl	$NB3so, pA3        movl    pA0, pfA#if MB == 0        addl    $NB6so-120, pfA        addl    incAn_m, pfA#else	addl	$MBKBso-120, pfA#endifUNLOOP:#if MB == 0        movb    M_m, stM        subb     $6, stM        jz      ULMLOOP#else        movb    $MB-6, stM#endif#if MB != 6UMLOOP:#ifdef BETA0	xorpd	rC0, rC0	xorpd	rC1, rC1	xorpd	rC2, rC2	xorpd	rC3, rC3	xorpd	rC4, rC4	xorpd	rC5, rC5#else   #ifdef DCPLX	movsd	(pC), rC0	movsd	16(pC), rC1	movsd	32(pC), rC2	movsd	48(pC), rC3	movsd	64(pC), rC4	movsd	80(pC), rC5   #else	movsd	(pC), rC0	movsd	8(pC), rC1	movsd	16(pC), rC2	movsd	24(pC), rC3	movsd	32(pC), rC4	movsd	40(pC), rC5   #endif   #ifdef BETAX      #ifndef ATL_GAS_x8664	movlpd	(%esp), rbeta      #endif	mulsd	rbeta, rC0	mulsd	rbeta, rC1	mulsd	rbeta, rC2	mulsd	rbeta, rC3	mulsd	rbeta, rC4	mulsd	rbeta, rC5   #endif#endif	movapd	0-120(pB0), rB0	movapd	0-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	0-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	0-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	0-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	0-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	0-120(pA3,ldab,2), rB0	addpd	rB0, rC5#if KB > 2	movapd	16-120(pB0), rB0	movapd	16-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	16-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	16-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	16-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	16-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	16-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 4	movapd	32-120(pB0), rB0	movapd	32-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	32-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	32-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	32-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	32-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	32-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 6	movapd	48-120(pB0), rB0	movapd	48-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	48-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	48-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	48-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	48-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	48-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 8	movapd	64-120(pB0), rB0	movapd	64-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	64-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	64-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	64-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	64-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	64-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 10	movapd	80-120(pB0), rB0	movapd	80-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	80-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	80-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	80-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	80-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	80-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 12	movapd	96-120(pB0), rB0	movapd	96-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	96-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	96-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	96-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	96-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	96-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 14	movapd	112-120(pB0), rB0	movapd	112-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	112-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	112-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	112-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	112-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	112-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 16	movapd	128-120(pB0), rB0	movapd	128-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	128-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	128-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	128-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	128-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	128-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 18	movapd	144-120(pB0), rB0	movapd	144-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	144-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	144-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	144-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	144-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	144-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 20	movapd	160-120(pB0), rB0	movapd	160-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	160-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	160-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	160-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	160-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	160-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif						pref2((pfA))						addl	$PFAINC, pfA#if KB > 22	movapd	176-120(pB0), rB0	movapd	176-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	176-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	176-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	176-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	176-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	176-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 24	movapd	192-120(pB0), rB0	movapd	192-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	192-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	192-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	192-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	192-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	192-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 26	movapd	208-120(pB0), rB0	movapd	208-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	208-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	208-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	208-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	208-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	208-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 28	movapd	224-120(pB0), rB0	movapd	224-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	224-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	224-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	224-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	224-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	224-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 30	movapd	240-120(pB0), rB0	movapd	240-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	240-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1	movapd	240-120(pA0,ldab,2), rA0	mulpd	rB0, rA0	addpd	rA0, rC2	movapd	240-120(pA3), rA0	mulpd	rB0, rA0	addpd	rA0, rC3	movapd	240-120(pA3,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC4	mulpd	240-120(pA3,ldab,2), rB0	addpd	rB0, rC5#endif#if KB > 32	movapd	256-120(pB0), rB0	movapd	256-120(pA0), rA0	mulpd	rB0, rA0	addpd	rA0, rC0	movapd	256-120(pA0,ldab), rA0	mulpd	rB0, rA0	addpd	rA0, rC1

⌨️ 快捷键说明

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