atl_mm4x4x8_bpfab.c
来自「基于Blas CLapck的.用过的人知道是干啥的」· C语言 代码 · 共 744 行 · 第 1/3 页
C
744 行
rC0_3 += m0; m0 = rA0 * rB0; rB3 = pB0[KB3+3]; rC1_3 += m1; m1 = rA1 * rB0; rC2_3 += m2; m2 = rA2 * rB0; rC3_3 += m3; m3 = rA3 * rB0; rB0 = pB0[4]; rC0_0 += m0; m0 = rA0 * rB1; ATL_pfl1W(pfC0); rC1_0 += m1; m1 = rA1 * rB1; ATL_pfl1W(pfC1); rC2_0 += m2; m2 = rA2 * rB1; ATL_pfl1W(pfC2); rC3_0 += m3; m3 = rA3 * rB1; rB1 = pB0[KB+4]; ATL_pfl1W(pfC3); rC0_1 += m0; m0 = rA0 * rB2; pfC0 += 8; rC1_1 += m1; m1 = rA1 * rB2; pfC1 += 8; rC2_1 += m2; m2 = rA2 * rB2; pfC2 += 8; rC3_1 += m3; m3 = rA3 * rB2; rB2 = pB0[KB2+4];pfC3 += 8; rC0_2 += m0; m0 = rA0 * rB3; rA0 = pA0[4]; rC1_2 += m1; m1 = rA1 * rB3; rA1 = pA0[KB+4]; rC2_2 += m2; m2 = rA2 * rB3; rA2 = pA0[KB2+4]; rC3_2 += m3; m3 = rA3 * rB3; rA3 = pA0[KB3+4]; rC0_3 += m0; m0 = rA0 * rB0; rB3 = pB0[KB3+4]; rC1_3 += m1; m1 = rA1 * rB0; rC2_3 += m2; m2 = rA2 * rB0; rC3_3 += m3; m3 = rA3 * rB0; rB0 = pB0[5]; rC0_0 += m0; m0 = rA0 * rB1; rC1_0 += m1; m1 = rA1 * rB1; rC2_0 += m2; m2 = rA2 * rB1; rC3_0 += m3; m3 = rA3 * rB1; rB1 = pB0[KB+5]; rC0_1 += m0; m0 = rA0 * rB2; rC1_1 += m1; m1 = rA1 * rB2; rC2_1 += m2; m2 = rA2 * rB2; rC3_1 += m3; m3 = rA3 * rB2; rB2 = pB0[KB2+5]; rC0_2 += m0; m0 = rA0 * rB3; rA0 = pA0[5]; rC1_2 += m1; m1 = rA1 * rB3; rA1 = pA0[KB+5]; rC2_2 += m2; m2 = rA2 * rB3; rA2 = pA0[KB2+5]; rC3_2 += m3; m3 = rA3 * rB3; rA3 = pA0[KB3+5]; rC0_3 += m0; m0 = rA0 * rB0; rB3 = pB0[KB3+5]; rC1_3 += m1; m1 = rA1 * rB0; rC2_3 += m2; m2 = rA2 * rB0; rC3_3 += m3; m3 = rA3 * rB0; rB0 = pB0[6]; rC0_0 += m0; m0 = rA0 * rB1; rC1_0 += m1; m1 = rA1 * rB1; rC2_0 += m2; m2 = rA2 * rB1; rC3_0 += m3; m3 = rA3 * rB1; rB1 = pB0[KB+6]; rC0_1 += m0; m0 = rA0 * rB2; rC1_1 += m1; m1 = rA1 * rB2; rC2_1 += m2; m2 = rA2 * rB2; rC3_1 += m3; m3 = rA3 * rB2; rB2 = pB0[KB2+6]; rC0_2 += m0; m0 = rA0 * rB3; rA0 = pA0[6]; rC1_2 += m1; m1 = rA1 * rB3; rA1 = pA0[KB+6]; rC2_2 += m2; m2 = rA2 * rB3; rA2 = pA0[KB2+6]; rC3_2 += m3; m3 = rA3 * rB3; rA3 = pA0[KB3+6]; rC0_3 += m0; m0 = rA0 * rB0; rB3 = pB0[KB3+6]; rC1_3 += m1; m1 = rA1 * rB0; rC2_3 += m2; m2 = rA2 * rB0; rC3_3 += m3; m3 = rA3 * rB0; rB0 = pB0[7]; rC0_0 += m0; m0 = rA0 * rB1; rC1_0 += m1; m1 = rA1 * rB1; rC2_0 += m2; m2 = rA2 * rB1; rC3_0 += m3; m3 = rA3 * rB1; rB1 = pB0[KB+7]; rC0_1 += m0; m0 = rA0 * rB2; rC1_1 += m1; m1 = rA1 * rB2; rC2_1 += m2; m2 = rA2 * rB2; rC3_1 += m3; m3 = rA3 * rB2; rB2 = pB0[KB2+7]; rC0_2 += m0; m0 = rA0 * rB3; rA0 = pA0[7]; rC1_2 += m1; m1 = rA1 * rB3; rA1 = pA0[KB+7]; rC2_2 += m2; m2 = rA2 * rB3; rA2 = pA0[KB2+7]; rC3_2 += m3; m3 = rA3 * rB3; rA3 = pA0[KB3+7]; rC0_3 += m0; m0 = rA0 * rB0; rB3 = pB0[KB3+7]; rC1_3 += m1; m1 = rA1 * rB0; rC2_3 += m2; m2 = rA2 * rB0; rC3_3 += m3; m3 = rA3 * rB0; rB0 = pB0[8]; rC0_0 += m0; m0 = rA0 * rB1; rC1_0 += m1; m1 = rA1 * rB1; rC2_0 += m2; m2 = rA2 * rB1; rC3_0 += m3; m3 = rA3 * rB1; rB1 = pB0[KB+8]; rC0_1 += m0; m0 = rA0 * rB2; rC1_1 += m1; m1 = rA1 * rB2; rC2_1 += m2; m2 = rA2 * rB2; rC3_1 += m3; m3 = rA3 * rB2; rB2 = pB0[KB2+8]; rC0_2 += m0; m0 = rA0 * rB3; rA0 = pA0[8]; rC1_2 += m1; m1 = rA1 * rB3; rA1 = pA0[KB+8]; rC2_2 += m2; m2 = rA2 * rB3; rA2 = pA0[KB2+8]; rC3_2 += m3; m3 = rA3 * rB3; rA3 = pA0[KB3+8]; rC0_3 += m0; m0 = rA0 * rB0; rB3 = pB0[KB3+8]; rC1_3 += m1; m1 = rA1 * rB0; pA0 += 8; rC2_3 += m2; m2 = rA2 * rB0; pB0 += 8; rC3_3 += m3; m3 = rA3 * rB0; } rC0_0 += m0; m0 = rA0 * rB1; rB0 = pB0[1]; rC1_0 += m1; m1 = rA1 * rB1; rC2_0 += m2; m2 = rA2 * rB1; rC3_0 += m3; m3 = rA3 * rB1; rB1 = pB0[KB+1]; rC0_1 += m0; m0 = rA0 * rB2; ATL_pfl1R(pB0+KB4); rC1_1 += m1; m1 = rA1 * rB2; ATL_pfl1R(pB0+KB5); rC2_1 += m2; m2 = rA2 * rB2; ATL_pfl1R(pB0+KB6); rC3_1 += m3; m3 = rA3 * rB2; rB2 = pB0[KB2+1]; ATL_pfl1R(pB0+KB7); rC0_2 += m0; m0 = rA0 * rB3; rA0 = pA0[1]; rC1_2 += m1; m1 = rA1 * rB3; rA1 = pA0[KB+1]; rC2_2 += m2; m2 = rA2 * rB3; rA2 = pA0[KB2+1]; rC3_2 += m3; m3 = rA3 * rB3; rA3 = pA0[KB3+1]; rC0_3 += m0; m0 = rA0 * rB0; rB3 = pB0[KB3+1]; rC1_3 += m1; m1 = rA1 * rB0; rC2_3 += m2; m2 = rA2 * rB0; rC3_3 += m3; m3 = rA3 * rB0; rB0 = pB0[2]; rC0_0 += m0; m0 = rA0 * rB1; rC1_0 += m1; m1 = rA1 * rB1; rC2_0 += m2; m2 = rA2 * rB1; rC3_0 += m3; m3 = rA3 * rB1; rB1 = pB0[KB+2]; rC0_1 += m0; m0 = rA0 * rB2; rC1_1 += m1; m1 = rA1 * rB2; rC2_1 += m2; m2 = rA2 * rB2; rC3_1 += m3; m3 = rA3 * rB2; rB2 = pB0[KB2+2]; rC0_2 += m0; m0 = rA0 * rB3; rA0 = pA0[2]; rC1_2 += m1; m1 = rA1 * rB3; rA1 = pA0[KB+2]; rC2_2 += m2; m2 = rA2 * rB3; rA2 = pA0[KB2+2]; rC3_2 += m3; m3 = rA3 * rB3; rA3 = pA0[KB3+2]; rC0_3 += m0; m0 = rA0 * rB0; rB3 = pB0[KB3+2]; rC1_3 += m1; m1 = rA1 * rB0; rC2_3 += m2; m2 = rA2 * rB0; rC3_3 += m3; m3 = rA3 * rB0; rB0 = pB0[3]; rC0_0 += m0; m0 = rA0 * rB1; rC1_0 += m1; m1 = rA1 * rB1; rC2_0 += m2; m2 = rA2 * rB1; rC3_0 += m3; m3 = rA3 * rB1; rB1 = pB0[KB+3]; rC0_1 += m0; m0 = rA0 * rB2; rC1_1 += m1; m1 = rA1 * rB2; rC2_1 += m2; m2 = rA2 * rB2; rC3_1 += m3; m3 = rA3 * rB2; rB2 = pB0[KB2+3]; rC0_2 += m0; m0 = rA0 * rB3; rA0 = pA0[3]; rC1_2 += m1; m1 = rA1 * rB3; rA1 = pA0[KB+3]; rC2_2 += m2; m2 = rA2 * rB3; rA2 = pA0[KB2+3]; rC3_2 += m3; m3 = rA3 * rB3; rA3 = pA0[KB3+3]; rC0_3 += m0; m0 = rA0 * rB0; rB3 = pB0[KB3+3]; rC1_3 += m1; m1 = rA1 * rB0; rC2_3 += m2; m2 = rA2 * rB0; rC3_3 += m3; m3 = rA3 * rB0; rB0 = pB0[4]; rC0_0 += m0; m0 = rA0 * rB1; rC1_0 += m1; m1 = rA1 * rB1; rC2_0 += m2; m2 = rA2 * rB1; rC3_0 += m3; m3 = rA3 * rB1; rB1 = pB0[KB+4]; rC0_1 += m0; m0 = rA0 * rB2; rC1_1 += m1; m1 = rA1 * rB2; rC2_1 += m2; m2 = rA2 * rB2; rC3_1 += m3; m3 = rA3 * rB2; rB2 = pB0[KB2+4]; rC0_2 += m0; m0 = rA0 * rB3; rA0 = pA0[4]; rC1_2 += m1; m1 = rA1 * rB3; rA1 = pA0[KB+4]; rC2_2 += m2; m2 = rA2 * rB3; rA2 = pA0[KB2+4]; rC3_2 += m3; m3 = rA3 * rB3; rA3 = pA0[KB3+4]; rC0_3 += m0; m0 = rA0 * rB0; rB3 = pB0[KB3+4]; rC1_3 += m1; m1 = rA1 * rB0; rC2_3 += m2; m2 = rA2 * rB0; rC3_3 += m3; m3 = rA3 * rB0; rB0 = pB0[5]; rC0_0 += m0; m0 = rA0 * rB1; rC1_0 += m1; m1 = rA1 * rB1; rC2_0 += m2; m2 = rA2 * rB1; rC3_0 += m3; m3 = rA3 * rB1; rB1 = pB0[KB+5]; rC0_1 += m0; m0 = rA0 * rB2; ATL_pfl1W(pfC0); rC1_1 += m1; m1 = rA1 * rB2; ATL_pfl1W(pfC1); rC2_1 += m2; m2 = rA2 * rB2; ATL_pfl1W(pfC2); rC3_1 += m3; m3 = rA3 * rB2; rB2 = pB0[KB2+5]; ATL_pfl1W(pfC3); rC0_2 += m0; m0 = rA0 * rB3; rA0 = pA0[5]; pfC0 += incCn; rC1_2 += m1; m1 = rA1 * rB3; rA1 = pA0[KB+5]; pfC1 += incCn; rC2_2 += m2; m2 = rA2 * rB3; rA2 = pA0[KB2+5]; pfC2 += incCn; rC3_2 += m3; m3 = rA3 * rB3; rA3 = pA0[KB3+5]; pfC3 += incCn; rC0_3 += m0; m0 = rA0 * rB0; rB3 = pB0[KB3+5]; rC1_3 += m1; m1 = rA1 * rB0; rC2_3 += m2; m2 = rA2 * rB0; rC3_3 += m3; m3 = rA3 * rB0; rB0 = pB0[6]; rC0_0 += m0; m0 = rA0 * rB1; rC1_0 += m1; m1 = rA1 * rB1; rC2_0 += m2; m2 = rA2 * rB1; rC3_0 += m3; m3 = rA3 * rB1; rB1 = pB0[KB+6]; rC0_1 += m0; m0 = rA0 * rB2; rC1_1 += m1; m1 = rA1 * rB2; rC2_1 += m2; m2 = rA2 * rB2; rC3_1 += m3; m3 = rA3 * rB2; rB2 = pB0[KB2+6]; rC0_2 += m0; m0 = rA0 * rB3; rA0 = pA0[6]; rC1_2 += m1; m1 = rA1 * rB3; rA1 = pA0[KB+6]; rC2_2 += m2; m2 = rA2 * rB3; rA2 = pA0[KB2+6]; rC3_2 += m3; m3 = rA3 * rB3; rA3 = pA0[KB3+6]; rC0_3 += m0; m0 = rA0 * rB0; rB3 = pB0[KB3+6]; rC1_3 += m1; m1 = rA1 * rB0; rC2_3 += m2; m2 = rA2 * rB0; rC3_3 += m3; m3 = rA3 * rB0; rB0 = pB0[7]; rC0_0 += m0; m0 = rA0 * rB1; rC1_0 += m1; m1 = rA1 * rB1; rC2_0 += m2; m2 = rA2 * rB1; rC3_0 += m3; m3 = rA3 * rB1; rB1 = pB0[KB+7]; rC0_1 += m0; m0 = rA0 * rB2; rC1_1 += m1; m1 = rA1 * rB2; rC2_1 += m2; m2 = rA2 * rB2; rC3_1 += m3; m3 = rA3 * rB2; rB2 = pB0[KB2+7]; rC0_2 += m0; m0 = rA0 * rB3; rA0 = pA0[7]; rC1_2 += m1; m1 = rA1 * rB3; rA1 = pA0[KB+7]; rC2_2 += m2; m2 = rA2 * rB3; rA2 = pA0[KB2+7]; rC3_2 += m3; m3 = rA3 * rB3; rA3 = pA0[KB3+7]; rC0_3 += m0; m0 = rA0 * rB0; rB3 = pB0[KB3+7]; rC1_3 += m1; m1 = rA1 * rB0; pB0 += incBm; rC2_3 += m2; m2 = rA2 * rB0; pA0 += incAm; rC3_3 += m3; m3 = rA3 * rB0;/* * Drain pipe on last iteration of K-loop */ rC0_0 += m0; m0 = rA0 * rB1; rC1_0 += m1; m1 = rA1 * rB1; rC2_0 += m2; m2 = rA2 * rB1; rC3_0 += m3; m3 = rA3 * rB1; rC0_1 += m0; m0 = rA0 * rB2; rC1_1 += m1; m1 = rA1 * rB2; rC2_1 += m2; m2 = rA2 * rB2; rC3_1 += m3; m3 = rA3 * rB2; rC0_2 += m0; m0 = rA0 * rB3; rC1_2 += m1; m1 = rA1 * rB3; rC2_2 += m2; m2 = rA2 * rB3; rC3_2 += m3; m3 = rA3 * rB3; rC0_3 += m0; rC1_3 += m1; rC2_3 += m2; rC3_3 += m3; #ifdef TREAL *pC0 = rC0_0; pC0[1] = rC1_0; pC0[2] = rC2_0; pC0[3] = rC3_0; pC0 += 4; *pC1 = rC0_1; pC1[1] = rC1_1; pC1[2] = rC2_1; pC1[3] = rC3_1; pC1 += 4; *pC2 = rC0_2; pC2[1] = rC1_2; pC2[2] = rC2_2; pC2[3] = rC3_2; pC2 += 4; *pC3 = rC0_3; pC3[1] = rC1_3; pC3[2] = rC2_3; pC3[3] = rC3_3; pC3 += 4; #else *pC0 = rC0_0; pC0[2] = rC1_0; pC0[4] = rC2_0; pC0[6] = rC3_0; pC0 += 8; *pC1 = rC0_1; pC1[2] = rC1_1; pC1[4] = rC2_1; pC1[6] = rC3_1; pC1 += 8; *pC2 = rC0_2; pC2[2] = rC1_2; pC2[4] = rC2_2; pC2[6] = rC3_2; pC2 += 8; *pC3 = rC0_3; pC3[2] = rC1_3; pC3[4] = rC2_3; pC3[6] = rC3_3; pC3 += 8; #endif } pC0 += incCn; pC1 += incCn; pC2 += incCn; pC3 += incCn; pA0 += incAn; pB0 += incBn; } while(pB0 != stN);}#undef incBn
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?