[syntax tree] added syntactic support for dereferencing
This commit is contained in:
@@ -20,19 +20,25 @@ extern translation_unit *ast_root;
|
||||
|
||||
const char src[] =
|
||||
"\
|
||||
void test(fp32 *A, fp32 *B, fp32 *C, int32 M, int32 N, int32 K){\
|
||||
void test(fp32 *a, fp32 *b, fp32 *c, int32 M, int32 N, int32 K){\
|
||||
int32 rx[16] = get_global_range[16](0);\
|
||||
int32 ry[16] = get_global_range[16](1);\
|
||||
int32 rk[8] = 0 ... 8;\
|
||||
fp32 c[16, 16] = 0;\
|
||||
int32 rka[8] = 0 ... 8;\
|
||||
int32 rkb[8] = 0 ... 8;\
|
||||
fp32 C[16, 16] = 0;\
|
||||
int32 k;\
|
||||
fp32* pa[16, 8] = A + rx[:, newaxis] + rk[newaxis, :]*M;\
|
||||
fp32* pb[16, 8] = B + ry[:, newaxis] + rk[newaxis, :]*K;\
|
||||
fp32* pa[16, 8] = a + rx[:, newaxis] + rka[newaxis, :]*M;\
|
||||
fp32* pb[16, 8] = b + ry[:, newaxis] + rkb[newaxis, :]*K;\
|
||||
fp32* pc[16, 16];\
|
||||
for(k = 0; k < K; k = k + 8){\
|
||||
fp32 a[16, 8] = *pa;\
|
||||
fp32 b[16, 8] = *pb;\
|
||||
pa = pa + 8;\
|
||||
fp32 A[16, 8] = *pa;\
|
||||
fp32 B[16, 8] = *pb;\
|
||||
C = dot(A, B, C);\
|
||||
pa = pa + 8*M;\
|
||||
pb = pb + 8*K;\
|
||||
}\
|
||||
pc = c + rx[:, newaxis] + ry[newaxis, :];\
|
||||
*pc = C;\
|
||||
}\
|
||||
";
|
||||
|
||||
|
Reference in New Issue
Block a user