MCPcopy Create free account
hub / github.com/AdvancedCompiler/AdvancedCompiler / func_unroll4

Function func_unroll4

code/Chapter8/8-9.c:6–17  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4int Ti = 3;
5#define min(a,b) ((a)<(b)?(a):(b))
6void func_unroll4(float* A, float* B, int NI, int NJ) {
7 for (int ii = 0; ii < NI; ii += Ti) {
8 for (int j = 0; j < NJ; j += 4) {//第二层循环展开四次
9 for (int i = ii; i < min(ii + Ti, NI); ++i) {//连加四次以后再将数据存储到A[i]
10 A[i] += B[j * NI + i];
11 A[i] += B[(j + 1) * NI + i];
12 A[i] += B[(j + 2) * NI + i];
13 A[i] += B[(j + 3) * NI + i];
14 }
15 }
16 }
17}
18int main(){
19 float* A, * B;
20 int i,na=6, nb=12;

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected