atl_dmm6x1x60_sse2_32.c
来自「基于Blas CLapck的.用过的人知道是干啥的」· C语言 代码 · 共 1,718 行 · 第 1/3 页
C
1,718 行
movapd 208-120(pB0), rB0 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 movapd 224-120(pA0), rA0 movapd 224-120(pB0), rB0 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 addl $240, pA0 addl $240, pB0 movapd 0-120(pA0), rA0 movapd 0-120(pB0), rB0 mulpd rB0, rA0 addpd rA0, rC0 addl $240, pA3 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 movapd 16-120(pA0), rA0 movapd 16-120(pB0), rB0 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 movapd 32-120(pA0), rA0 movapd 32-120(pB0), rB0 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 movapd 48-120(pA0), rA0 movapd 48-120(pB0), rB0 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 movapd 64-120(pA0), rA0 movapd 64-120(pB0), rB0 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 movapd 80-120(pA0), rA0 movapd 80-120(pB0), rB0 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 movapd 96-120(pA0), rA0 movapd 96-120(pB0), rB0 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 movapd 112-120(pA0), rA0 movapd 112-120(pB0), rB0 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 movapd 128-120(pA0), rA0 movapd 128-120(pB0), rB0 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 movapd 144-120(pA0), rA0 movapd 144-120(pB0), rB0 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 movapd 160-120(pA0), rA0 movapd 160-120(pB0), rB0 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 movapd 176-120(pA0), rA0 movapd 176-120(pB0), rB0 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 movapd 192-120(pA0), rA0 movapd 192-120(pB0), rB0 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 movapd 208-120(pA0), rA0 movapd 208-120(pB0), rB0 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 movapd 224-120(pA0), rA0 movapd 224-120(pB0), rB0 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/*ENDKLOOP *//* * 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 */ movapd rC0, rA0 movapd rC4, rB0 unpcklpd rC1, rC0 /* rC0 = c0a c1a */ prefC(112(pC0)) prefC(176(pC0)) unpcklpd rC5, rC4 /* rC4 = c4a c5a */ unpckhpd rC1, rA0 /* rA0 = c0b c1b */ unpckhpd rC5, rB0 /* rB0 = c4b c5b */ addpd rA0, rC0 /* rC0 = c0ab c1ab */ #if defined(X8632) || !defined(BETAX) addpd rB0, rC4 /* rC4 = c4ab c5ab */ movapd rC2, rA0 unpcklpd rC3, rC2 /* rC2 = c2a c3a */ pref2((pfA)) addl $54, pfA unpckhpd rC3, rA0 /* rA0 = c2b c3b */ addpd rA0, rC2 /* rC2 = c2ab c3ab */ #else addpd rB0, rC4 /* rC4 = c4ab c5ab */ movapd rC2, rA0 addpd rc0, rC0 unpcklpd rC3, rC2 /* rC2 = c2a c3a */ addpd rc2, rC4 pref2((pfA)) addl $54, pfA unpckhpd rC3, rA0 /* rA0 = c2b c3b */ addpd rA0, rC2 /* rC2 = c2ab c3ab */ addpd rc1, rC2 #endif/* * Write results back to C */ #ifdef DCPLX movlpd rC0, (pC0) movhpd rC0, 16(pC0) movlpd rC2, 32(pC0) movhpd rC2, 48(pC0) movlpd rC4, 64(pC0) movhpd rC4, 80(pC0) #else movupd rC0, (pC0) movupd rC2, 16(pC0) movupd rC4, 32(pC0) #endif/* * pC += 6; pA += 6*NB */ addl $CMUL(48), 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 loop unrolled for prefetch of B */#if MB == 0MLOOPCU:#endif#ifdef BETAX #ifdef X8632 movsd (pC0), rC0 movsd CMUL(8)(pC0), rC1 movsd CMUL(16)(pC0), rC2 movsd CMUL(24)(pC0), rC3 movsd CMUL(32)(pC0), rC4 movsd CMUL(40)(pC0), rC5 movlpd BETAOFF(%esp), rA0 mulsd rA0, rC0 mulsd rA0, rC1 mulsd rA0, rC2 mulsd rA0, rC3 mulsd rA0, rC4 mulsd rA0, rC5 #else #ifdef DCPLX movlpd (pC0), rc0 movhpd 16(pC0), rc0 movlpd 32(pC0), rc1 movhpd 48(pC0), rc1 movlpd 64(pC0), rc1 movhpd 80(pC0), rc1 #else movupd (pC0), rc0 movupd 16(pC0), rc1 movupd 32(pC0), rc2 #endif mulpd rBETA, rc0 mulpd rBETA, rc1 mulpd rBETA, rc2 #endif ALIGN16#endif/*KLOOP */#ifdef BETA1 movapd 0-120(pA0), rC0 movapd 0-120(pB0), rB0 mulpd rB0, rC0 addsd (pC0), rC0 movapd 0-120(pA0,ldab), rC1 mulpd rB0, rC1 addsd CMUL(8)(pC0), rC1 movapd 0-120(pA0,ldab,2), rC2 mulpd rB0, rC2 addsd CMUL(16)(pC0), rC2 movapd 0-120(pA3), rC3 mulpd rB0, rC3 addsd CMUL(24)(pC0), rC3 movapd 0-120(pA3,ldab), rC4 mulpd rB0, rC4 addsd CMUL(32)(pC0), rC4 movapd 0-120(pA3,ldab,2), rC5 mulpd rB0, rC5 addsd CMUL(40)(pC0), rC5#elif defined(BETA0) || defined(X8664) movapd 0-120(pA0), rC0 movapd 0-120(pB0), rB0 mulpd rB0, rC0 movapd 0-120(pA0,ldab), rC1 mulpd rB0, rC1 movapd 0-120(pA0,ldab,2), rC2 mulpd rB0, rC2 movapd 0-120(pA3), rC3 mulpd rB0, rC3 movapd 0-120(pA3,ldab), rC4 mulpd rB0, rC4 movapd 0-120(pA3,ldab,2), rC5 mulpd rB0, rC5#else movapd 0-120(pA0), rA0 movapd 0-120(pB0), rB0 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#endif prefB(-120(pB0,ldab)) prefB(64-120(pB0,ldab)) movapd 16-120(pA0), rA0 movapd 16-120(pB0), rB0 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 movapd 32-120(pA0), rA0 movapd 32-120(pB0), rB0 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 movapd 48-120(pA0), rA0 movapd 48-120(pB0), rB0 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 movapd 64-120(pA0), rA0 movapd 64-120(pB0), rB0 mulpd rB0, rA0 addpd rA0, rC0 movapd 64-120(pA0,ldab), rA0 mulpd rB0, rA0 addpd rA0, rC1 prefB(128-120(pB0,ldab)) prefB(192-120(pB0,ldab)) 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 movapd 80-120(pA0), rA0 movapd 80-120(pB0), rB0
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?