atl_dmm1x14x56_sse2pabc.c
来自「基于Blas CLapck的.用过的人知道是干啥的」· C语言 代码 · 共 2,923 行 · 第 1/5 页
C
2,923 行
mulpd rB0, rA0 addpd rA0, rC9 movapd 64-120(pA10), rA0 mulpd rB0, rA0 addpd rA0, rC10 movapd 64-120(pA10,ldab), rA0 mulpd rB0, rA0 addpd rA0, rC11 movapd 64-120(pA10,ldab,2), rA0 mulpd rB0, rA0 addpd rA0, rC12 mulpd 64-120(pA5,ldab,8), rB0 addpd rB0, rC13 movapd 80-120(pA10,mldab5,2), rA0 movapd 80-120(pB0), rB0 mulpd rB0, rA0 addpd rA0, rC0 movapd 80-120(pA5, mldab,4), rA0 mulpd rB0, rA0 addpd rA0, rC1 movapd 80-120(pA10, mldab,8), rA0 mulpd rB0, rA0 addpd rA0, rC2 movapd 80-120(pA5, mldab,2), rA0 mulpd rB0, rA0 addpd rA0, rC3 movapd 80-120(pA5, mldab), rA0 mulpd rB0, rA0 addpd rA0, rC4 movapd 80-120(pA5), rA0 mulpd rB0, rA0 addpd rA0, rC5 movapd 80-120(pA5, ldab), rA0 mulpd rB0, rA0 addpd rA0, rC6 movapd 80-120(pA5, ldab,2), rA0 mulpd rB0, rA0 addpd rA0, rC7 movapd 80-120(pA10, mldab,2), rA0 mulpd rB0, rA0 addpd rA0, rC8 movapd 80-120(pA5,ldab,4), rA0 mulpd rB0, rA0 addpd rA0, rC9 movapd 80-120(pA10), rA0 mulpd rB0, rA0 addpd rA0, rC10 movapd 80-120(pA10,ldab), rA0 mulpd rB0, rA0 addpd rA0, rC11 movapd 80-120(pA10,ldab,2), rA0 mulpd rB0, rA0 addpd rA0, rC12 mulpd 80-120(pA5,ldab,8), rB0 addpd rB0, rC13 movapd 96-120(pA10,mldab5,2), rA0 movapd 96-120(pB0), rB0 mulpd rB0, rA0 addpd rA0, rC0 movapd 96-120(pA5, mldab,4), rA0 mulpd rB0, rA0 addpd rA0, rC1 movapd 96-120(pA10, mldab,8), rA0 mulpd rB0, rA0 addpd rA0, rC2 movapd 96-120(pA5, mldab,2), rA0 mulpd rB0, rA0 addpd rA0, rC3 movapd 96-120(pA5, mldab), rA0 mulpd rB0, rA0 addpd rA0, rC4 movapd 96-120(pA5), rA0 mulpd rB0, rA0 addpd rA0, rC5 movapd 96-120(pA5, ldab), rA0 mulpd rB0, rA0 addpd rA0, rC6 movapd 96-120(pA5, ldab,2), rA0 mulpd rB0, rA0 addpd rA0, rC7 movapd 96-120(pA10, mldab,2), rA0 mulpd rB0, rA0 addpd rA0, rC8 movapd 96-120(pA5,ldab,4), rA0 mulpd rB0, rA0 addpd rA0, rC9 movapd 96-120(pA10), rA0 mulpd rB0, rA0 addpd rA0, rC10 movapd 96-120(pA10,ldab), rA0 mulpd rB0, rA0 addpd rA0, rC11 movapd 96-120(pA10,ldab,2), rA0 mulpd rB0, rA0 addpd rA0, rC12 mulpd 96-120(pA5,ldab,8), rB0 addpd rB0, rC13 movapd 112-120(pA10,mldab5,2), rA0 movapd 112-120(pB0), rB0 mulpd rB0, rA0 addpd rA0, rC0 movapd 112-120(pA5, mldab,4), rA0 mulpd rB0, rA0 addpd rA0, rC1 movapd 112-120(pA10, mldab,8), rA0 mulpd rB0, rA0 addpd rA0, rC2 movapd 112-120(pA5, mldab,2), rA0 mulpd rB0, rA0 addpd rA0, rC3 movapd 112-120(pA5, mldab), rA0 mulpd rB0, rA0 addpd rA0, rC4 movapd 112-120(pA5), rA0 mulpd rB0, rA0 addpd rA0, rC5 movapd 112-120(pA5, ldab), rA0 mulpd rB0, rA0 addpd rA0, rC6 movapd 112-120(pA5, ldab,2), rA0 mulpd rB0, rA0 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 prefC((pC,ldc)) prefC((pC,ldc,2)) 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 prefC((pC,ldc3)) movapd 160-120(pA10,mldab5,2), rA0 movapd 160-120(pB0), rB0 mulpd rB0, rA0 addpd rA0, rC0 lea (pC,mldc,8), pC movapd 160-120(pA5, mldab,4), rA0 mulpd rB0, rA0 addpd rA0, rC1 lea (pC,mldc,8), pC movapd 160-120(pA10, mldab,8), rA0 mulpd rB0, rA0 addpd rA0, rC2 lea (pC,mldc,4), pC movapd 160-120(pA5, mldab,2), rA0 mulpd rB0, rA0 addpd rA0, rC3 subq ldc, pC 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 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 UKLOOP *//* * 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 */ #ifdef DREAL pref2((pfA)) pref2(64(pfA)) #endif movapd rC0, rA0 movapd rC4, rB0 unpcklpd rC1, rC0 /* rC0 = c0a c1a */ 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 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 */ addpd rC3, rC12 /* rc12 = c12ab c13ab *//* * Write results back to C */ movlpd rC0, (pC,mldc,2) movhpd rC0, (pC, mldc) movlpd rC2, (pC) movhpd rC2, (pC,ldc) movlpd rC4, (pC,ldc,2) movhpd rC4, (pC,ldc3) movlpd rC6, (pC,ldc,4) subq ldc, pC lea (pC,ldc,8), pC movhpd rC6, (pC,mldc,2) movlpd rC8, (pC,mldc) movhpd rC8, (pC) movlpd rC10, (pC,ldc) movhpd rC10, (pC,ldc,2) movlpd rC12, (pC,ldc3) movhpd rC12, (pC,ldc,4) add ldc, pC lea (pC,ldc3,2), pC/* * pC += 14; pA += 14*NB; pB -= NB; *//* * while (pA != stM); */ subq $14, stM jne UMLOOP#endif/* * Last iteration of M-loop unrolled to prefetch next col of B */#if NB == 0UMLOOPCU:#endif/*UKLOOP: */#ifdef BETA1 movapd 0-120(pA10,mldab5,2), rC0 movapd 0-120(pB0), rB0 mulpd rB0, rC0 addsd (pC,mldc,2), rC0 movapd 0-120(pA5, mldab,4), rC1 mulpd rB0, rC1 addsd (pC,mldc), rC1 movapd 0-120(pA10, mldab,8), rC2 mulpd rB0, rC2 addsd (pC), rC2 movapd 0-120(pA5, mldab,2), rC3 mulpd rB0, rC3 addsd (pC,ldc), rC3 movapd 0-120(pA5, mldab), rC4 mulpd rB0, rC4 addsd (pC,ldc,2), rC4 movapd 0-120(pA5), rC5 mulpd rB0, rC5 addsd (pC,ldc3), rC5 movapd 0-120(pA5, ldab), rC6 mulpd rB0, rC6 addsd (pC,ldc,4), rC6 addq ldc, pC movapd 0-120(pA5, ldab,2), rC7 lea (pC,ldc3,2), pC mulpd rB0, rC7 addsd (pC,mldc,2), rC7 movapd 0-120(pA10, mldab,2), rC8 mulpd rB0, rC8 addsd (pC,mldc), rC8 movapd 0-120(pA5,ldab,4), rC9 mulpd rB0, rC9 addsd (pC), rC9 movapd 0-120(pA10), rC10 mulpd rB0, rC10 addsd (pC,ldc), rC10 movapd 0-120(pA10,ldab), rC11 mulpd rB0, rC11 addsd (pC,ldc,2), rC11 movapd 0-120(pA10,ldab,2), rC12 mulpd rB0, rC12 addsd (pC,ldc3), rC12 movapd 0-120(pA5,ldab,8), rC13 mulpd rB0, rC13 addsd (pC,ldc,4), rC13#elif defined(BETA0) 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
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?