atl_mm4x4x8p.c

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

C
420
字号
            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;                   ATL_pfl1R(pB0+KB+16);            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;                  ATL_pfl1R(pB0+KB2+16);            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;                  ATL_pfl1R(pB0+KB3+16);            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;         rC1_1 += m1; m1 = rA1 * rB2;                  ATL_pfl1R(pA0+KB4);         rC2_1 += m2; m2 = rA2 * rB2;         rC3_1 += m3; m3 = rA3 * rB2; rB2 = pB0[KB2+1];         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;                  ATL_pfl1R(pA0+KB5);         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;                  ATL_pfl1R(pA0+KB6);         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;                  ATL_pfl1R(pA0+KB7);         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;         rC1_1 += m1; m1 = rA1 * rB2;                  ATL_pfl1R(pB0-KB+8);         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;                  ATL_pfl1R(pB0+8);         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;                  ATL_pfl1R(pB0+KB+8);         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; ATL_pfl1W(pC0);/* *       Drain pipe on last iteration of K-loop */         rC0_0 += m0; m0 = rA0 * rB1;         rC1_0 += m1; m1 = rA1 * rB1; ATL_pfl1W(pC1);         rC2_0 += m2; m2 = rA2 * rB1;         rC3_0 += m3; m3 = rA3 * rB1; ATL_pfl1W(pC2);         rC0_1 += m0; m0 = rA0 * rB2;         rC1_1 += m1; m1 = rA1 * rB2; ATL_pfl1W(pC3);         rC2_1 += m2; m2 = rA2 * rB2;         rC3_1 += m3; m3 = rA3 * rB2; ATL_pfl1R(pC0+4);         rC0_2 += m0; m0 = rA0 * rB3;         rC1_2 += m1; m1 = rA1 * rB3; ATL_pfl1R(pC1+4);         rC2_2 += m2; m2 = rA2 * rB3;         rC3_2 += m3; m3 = rA3 * rB3; ATL_pfl1R(pC2+4);         rC0_3 += m0;         rC1_3 += m1;                 ATL_pfl1R(pC3+4);         rC2_3 += m2;         rC3_3 += m3;                 ATL_pfl1R(pB0+KB3+8);         #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      }      while(pA0 != stM);      pC0 += incCn; pC1 += incCn; pC2 += incCn; pC3 += incCn;      pA0 += incAn; pB0 += incBn;   }   while(pB0 != stN);}#undef incBn

⌨️ 快捷键说明

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