atl_smm6x1x120_sse.c

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

C
1,763
字号
	addps	rA0, rC3	movaps	208-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	208-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	224-120(pA0), rA0	movaps	224-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	224-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	224-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	224-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	224-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	224-120(pA3,ldab,2), rB0	addps	rB0, rC5                                        addl    $240, pA0                                        addl    $240, pA3                                        addl    $240, pB0	movaps	0-120(pA0), rA0	movaps	0-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	0-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	0-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	0-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	0-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	0-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	16-120(pA0), rA0	movaps	16-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	16-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	16-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	16-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	16-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	16-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	32-120(pA0), rA0	movaps	32-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	32-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	32-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	32-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	32-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	32-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	48-120(pA0), rA0	movaps	48-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	48-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	48-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	48-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	48-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	48-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	64-120(pA0), rA0	movaps	64-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	64-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	64-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	64-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	64-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	64-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	80-120(pA0), rA0	movaps	80-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	80-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	80-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	80-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	80-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	80-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	96-120(pA0), rA0	movaps	96-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	96-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	96-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	96-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	96-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	96-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	112-120(pA0), rA0	movaps	112-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	112-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	112-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	112-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	112-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	112-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	128-120(pA0), rA0	movaps	128-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	128-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	128-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	128-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	128-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	128-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	144-120(pA0), rA0	movaps	144-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	144-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	144-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	144-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	144-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	144-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	160-120(pA0), rA0	movaps	160-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	160-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	160-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	160-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	160-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	160-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	176-120(pA0), rA0	movaps	176-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	176-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	176-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	176-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	176-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	176-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	192-120(pA0), rA0	movaps	192-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	192-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	192-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	192-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	192-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	192-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	208-120(pA0), rA0	movaps	208-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	208-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	208-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	208-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	208-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	208-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	224-120(pA0), rA0	movaps	224-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	224-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	224-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	224-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	224-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	224-120(pA3,ldab,2), rB0	addps	rB0, rC5/*ENDKLOOP *//* *      Get these bastard things summed up */                                        /* rC0 = c0a    c0b    c0c    c0d */                                        /* rC1 = c1a    c1b    c1c    c1d */                                        /* rC2 = c2a    c2b    c2c    c2d */                                        /* rC3 = c3a    c3b    c3c    c3d */                                        /* rC4 = c4a    c4b    c4c    c4d */                                        /* rC5 = c5a    c5b    c5c    c5d */#ifdef ATL_SSE3        haddps          rC1, rC0        /* rC0 = c1cd   c1ab   c0cd   c0ab */        haddps          rC3, rC2        /* rC2 = c3cd   c3ab   c2cd   c2ab */        haddps          rC5, rC4        /* rC4 = c5cd   c5ab   c4cd   c4ab */        haddps          rC2, rC0        /* rC0 = c3abcd c2abcd c1abcd c0abcd */        haddps          rC4, rC4        /* rC4 = c5abcd c4abcd c5abcd c4abcd *//* *      Write results back to C */   #if defined(X8664) && defined(BETAX)        addps   rc0, rC0        addps   rc1, rC4   #endif   #ifdef SCPLX                         /* rC0 = c3 c2 c1 c0 */        pshufd  $0x71, rC0, rC3         /* rC3 = c1 c3 c0 c1 */        movss   rC0, (pC0)        pshufd  $0x71, rC4, rC5         /* rC5 = c4 c5 c4 c5 */        movss   rC4, 4*8(pC0)        movhlps rC0, rC0                /* rC0 = c3 c2 c3 c2 */        movss   rC3, 1*8(pC0)        movhlps rC3, rC3                /* rC3 = c1 c3 c1 c3 */        movss   rC5, 5*8(pC0)        movss   rC0, 2*8(pC0)        movss   rC3, 3*8(pC0)   #else	movups	rC0, (pC0)	movlps	rC4, 16(pC0)   #endif#else        movaps          rC2, rB0        /* rB0 = c2a    c2b    c2c    c2d */                                        prefC((pC0))                                        prefC(64(pC0))        movaps          rC0, rA0        /* rA0 = c0a    c0b    c0c    c0d */        unpckhps        rC3, rB0        /* rB0 = c2c    c3c    c2d    c3d */        unpckhps        rC1, rA0        /* rA0 = c0c    c1c    c0d    c1d */        unpcklps        rC3, rC2        /* rC2 = c2a    c3a    c2b    c3b */        movlhps         rB0, rC3        /* rC3 = c3a    c3b    c2c    c3c */        unpcklps        rC1, rC0        /* rC0 = c0a    c1a    c0b    c1b */        movhlps         rA0, rC3        /* rC3 = c0d    c1d    c2c    c3c */        movlhps         rC2, rA0        /* rA0 = c0c    c1c    c2a    c3a */        movhlps         rC0, rB0        /* rB0 = c0b    c1b    c2d    c3d */        addps           rA0, rC3        /* rC3 = c0cd   c1cd   c2ac   c3ac */        movlhps         rC0, rC1        /* rC1 = c1a    c1b    c0a    c1a */        movaps          rC4, rA0        /* rA0 = c4a    c4b    c4c    c4d */        movhlps         rC1, rC2        /* rC2 = c0a    c1a    c2b    c3b */        unpcklps        rC5, rA0        /* rA0 = c4a    c5a    c4b    c5b */        addps           rB0, rC2        /* rC2 = c0ab   c1ab   c2bd   c3bd */        unpckhps        rC5, rC4        /* rC4 = c4c    c5c    c4d    c5d */        addps           rC2, rC3        /* rC3 = c0abcd c1abcd c2bdac c3bdac */        addps           rA0, rC4        /* rC4 = c4ac   c5ac   c4bd   c5bd */        movhlps         rC4, rC5        /* rC5 = c4bd   c5bd   X       X */        addps           rC5, rC4        /* rC4 = c4abcd c5abcd X       X *//* *      Write results back to C */   #if defined(X8664) && defined(BETAX)        addps   rc0, rC3        addps   rc1, rC4   #endif   #ifdef SCPLX        movss   rC3, (pC0)        movhlps rC3, rC0        movss   rC0, 16(pC0)        shufps  $0x55, rC3, rC3        shufps  $0x55, rC0, rC0        movss   rC3, 8(pC0)        movss   rC0, 24(pC0)        movss   rC4, 32(pC0)        shufps  $0x55, rC4, rC4        movss   rC4, 40(pC0)   #else	movups	rC3, (pC0)	movlps	rC4, 16(pC0)   #endif#endif/* *      pC += 6;   pA += 6*NB */        addl    $CMUL(24), pC0        addl    $NB6so-240, pA0        addl    $NB6so-240, pA3	subl	$240, pB0   #ifdef X8632	subb	$1, stM   #else        subq    $6, stM   #endif        jnz     MLOOP#endif/* * Last iteration of MLOOP unrolled to prefetch B */#if MB == 0MLOOPCU:#endif#ifdef X8664   #if defined(BETAX)      #ifdef SCPLX        movups  (pC0), rc0        movups  16(pC0), rtmp        shufps  $0xE8, rc0, rc0        shufps  $0xE8, rtmp, rtmp        movlhps rtmp, rc0        movss   32(pC0), rc1        movss   40(pC0), rtmp        unpcklps        rtmp, rc1      #else        movups  (pC0), rc0        xorps   rc1, rc1        movlps  16(pC0), rc1      #endif        mulps   rBETA, rc0        mulps   rBETA, rc1   #endif        ALIGN16#elif defined(BETAX)        movss   (pC0), rC0        movss   CMUL(4)(pC0), rC1        movss   CMUL(8)(pC0), rC2        movss   CMUL(12)(pC0), rC3        movss   CMUL(16)(pC0), rC4        movss   CMUL(20)(pC0), rC5        movss   BETAOFF(%esp), rA0        mulss   rA0, rC0        mulss   rA0, rC1        mulss   rA0, rC2        mulss   rA0, rC3        mulss   rA0, rC4        mulss   rA0, rC5        ALIGN16#endif/*KLOOP */#if defined(BETA1)	movaps	0-120(pA0), rC0	movaps	0-120(pB0), rB0	mulps	rB0, rC0        addss   (pC0), rC0	movaps	0-120(pA0,ldab), rC1	mulps	rB0, rC1        addss   CMUL(4)(pC0), rC1	movaps	0-120(pA0,ldab,2), rC2	mulps	rB0, rC2        addss   CMUL(8)(pC0), rC2	movaps	0-120(pA3), rC3	mulps	rB0, rC3        addss   CMUL(12)(pC0), rC3	movaps	0-120(pA3,ldab), rC4	mulps	rB0, rC4        addss   CMUL(16)(pC0), rC4	movaps	0-120(pA3,ldab,2), rC5	mulps	rB0, rC5        addss   CMUL(20)(pC0), rC5#elif defined(BETA0) || defined(X8664)	movaps	0-120(pA0), rC0	movaps	0-120(pB0), rB0	mulps	rB0, rC0	movaps	0-120(pA0,ldab), rC1	mulps	rB0, rC1	movaps	0-120(pA0,ldab,2), rC2	mulps	rB0, rC2	movaps	0-120(pA3), rC3	mulps	rB0, rC3	movaps	0-120(pA3,ldab), rC4	mulps	rB0, rC4	movaps	0-120(pA3,ldab,2), rC5	mulps	rB0, rC5#else	movaps	0-120(pA0), rA0	movaps	0-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	0-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	0-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	0-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	0-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	0-120(pA3,ldab,2), rB0	addps	rB0, rC5#endif	movaps	16-120(pA0), rA0	movaps	16-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	16-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	16-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	16-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	16-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	16-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	32-120(pA0), rA0	movaps	32-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	32-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	32-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	32-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	32-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	32-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	48-120(pA0), rA0	movaps	48-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	48-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	48-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	48-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	48-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	48-120(pA3,ldab,2), rB0	addps	rB0, rC5	movaps	64-120(pA0), rA0	movaps	64-120(pB0), rB0	mulps	rB0, rA0	addps	rA0, rC0	movaps	64-120(pA0,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC1	movaps	64-120(pA0,ldab,2), rA0	mulps	rB0, rA0	addps	rA0, rC2	movaps	64-120(pA3), rA0	mulps	rB0, rA0	addps	rA0, rC3	movaps	64-120(pA3,ldab), rA0	mulps	rB0, rA0	addps	rA0, rC4	mulps	64-120(pA3,ldab,2), rB0

⌨️ 快捷键说明

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