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 + -
显示快捷键?