atl_mm4x4x56_av.c

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

C
1,129
字号
            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+9];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+9];            rC0_3 += rA0 * rB3; rA0 = pA0[9];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+9];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+9];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+9];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+9];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[10];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+10];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+10];            rC0_3 += rA0 * rB3; rA0 = pA0[10];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+10];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+10];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+10];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+10];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[11];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+11];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+11];            rC0_3 += rA0 * rB3; rA0 = pA0[11];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+11];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+11];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+11];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+11];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[12];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+12];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+12];            rC0_3 += rA0 * rB3; rA0 = pA0[12];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+12];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+12];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+12];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+12];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[13];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+13];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+13];            rC0_3 += rA0 * rB3; rA0 = pA0[13];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+13];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+13];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+13];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+13];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[14];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+14];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+14];            rC0_3 += rA0 * rB3; rA0 = pA0[14];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+14];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+14];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+14];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+14];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[15];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+15];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+15];            rC0_3 += rA0 * rB3; rA0 = pA0[15];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+15];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+15];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+15];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+15];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[16];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+16];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+16];            rC0_3 += rA0 * rB3; rA0 = pA0[16];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+16];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+16];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+16];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+16];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[17];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+17];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+17];            rC0_3 += rA0 * rB3; rA0 = pA0[17];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+17];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+17];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+17];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+17];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[18];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+18];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+18];            rC0_3 += rA0 * rB3; rA0 = pA0[18];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+18];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+18];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+18];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+18];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[19];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+19];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+19];            rC0_3 += rA0 * rB3; rA0 = pA0[19];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+19];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+19];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+19];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+19];            rC1_0 += rA1 * rB0; ATL_pfavW(pC0, cwrdC, 0);            rC2_0 += rA2 * rB0; ATL_pfavW(pC1, cwrdC, 1);            rC3_0 += rA3 * rB0; rB0 = pB0[20];            rC0_1 += rA0 * rB1; ATL_pfavW(pC2, cwrdC, 2);            rC1_1 += rA1 * rB1; ATL_pfavW(pC3, cwrdC, 3);            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+20];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+20];            rC0_3 += rA0 * rB3; rA0 = pA0[20];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+20];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+20];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+20];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+20];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[21];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+21];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+21];            rC0_3 += rA0 * rB3; rA0 = pA0[21];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+21];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+21];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+21];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+21];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[22];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+22];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+22];            rC0_3 += rA0 * rB3; rA0 = pA0[22];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+22];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+22];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+22];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+22];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[23];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1; ATL_pfavR(pA0+KB3+28, cwrdKB, 0);            rC3_1 += rA3 * rB1; rB1 = pB0[KB+23];            rC0_2 += rA0 * rB2; ATL_pfavR(pA0+KB4+28, cwrdKB, 1);            rC1_2 += rA1 * rB2; ATL_pfavR(pA0+KB5+28, cwrdKB, 2);            rC2_2 += rA2 * rB2; ATL_pfavR(pA0+KB6+28, cwrdKB, 3);            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+23];            rC0_3 += rA0 * rB3; rA0 = pA0[23];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+23];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+23];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+23];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+23];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[24];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+24];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+24];            rC0_3 += rA0 * rB3; rA0 = pA0[24];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+24];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+24];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+24];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+24];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[25];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+25];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+25];            rC0_3 += rA0 * rB3; rA0 = pA0[25];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+25];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+25];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+25];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+25];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[26];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+26];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+26];            rC0_3 += rA0 * rB3; rA0 = pA0[26];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+26];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+26];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+26];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+26];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0; rB0 = pB0[27];            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1; rB1 = pB0[KB+27];            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2; rB2 = pB0[KB2+27];            rC0_3 += rA0 * rB3; rA0 = pA0[27];            rC1_3 += rA1 * rB3; rA1 = pA0[KB+27];            rC2_3 += rA2 * rB3; rA2 = pA0[KB2+27];            rC3_3 += rA3 * rB3; rA3 = pA0[KB3+27];            rC0_0 += rA0 * rB0; rB3 = pB0[KB3+27];            rC1_0 += rA1 * rB0;            rC2_0 += rA2 * rB0;            rC3_0 += rA3 * rB0;            rC0_1 += rA0 * rB1;            rC1_1 += rA1 * rB1;            rC2_1 += rA2 * rB1;            rC3_1 += rA3 * rB1;            rC0_2 += rA0 * rB2;            rC1_2 += rA1 * rB2;            rC2_2 += rA2 * rB2;            rC3_2 += rA3 * rB2;            rC0_3 += rA0 * rB3;            rC1_3 += rA1 * rB3;            rC2_3 += rA2 * rB3;            rC3_3 += rA3 * rB3;            pA0 += 28;            pB0 += 28;         }         #ifdef TREAL            *pC0 = rC0_0; pC0[1] = rC1_0; pC0[2] = rC2_0; pC0[3] = rC3_0;            *pC1 = rC0_1; pC1[1] = rC1_1; pC1[2] = rC2_1; pC1[3] = rC3_1;            *pC2 = rC0_2; pC2[1] = rC1_2; pC2[2] = rC2_2; pC2[3] = rC3_2;            *pC3 = rC0_3; pC3[1] = rC1_3; pC3[2] = rC2_3; pC3[3] = rC3_3;         #else            *pC0 = rC0_0; pC0[2] = rC1_0; pC0[4] = rC2_0; pC0[6] = rC3_0;            *pC1 = rC0_1; pC1[2] = rC1_1; pC1[4] = rC2_1; pC1[6] = rC3_1;            *pC2 = rC0_2; pC2[2] = rC1_2; pC2[4] = rC2_2; pC2[6] = rC3_2;            *pC3 = rC0_3; pC3[2] = rC1_3; pC3[4] = rC2_3; pC3[6] = rC3_3;         #endif         pC0 += incCm;         pC1 += incCm;         pC2 += incCm;         pC3 += incCm;         pA0 += incAm;         pB0 += incBm;      }      while(pA0 != stM);      pC0 += incCn;      pC1 += incCn;      pC2 += incCn;      pC3 += incCn;      pA0 += incAn;      pB0 += incBn;   }   while(pB0 != stN);}#ifdef incAm   #undef incAm#endif#ifdef incBn   #undef incBn#endif#ifdef incCm   #undef incCm#endif

⌨️ 快捷键说明

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