3
#include "atlas_misc.h"
6
(const int M, const int N, const int K, const float alpha, const float *A, const int lda, const float *B, const int ldb, const float beta, float *C, const int ldc)
9
/*--- achitecture specific declarations ---*/
11
/*--- program specific declarations ---*/
14
vector zerovec = {0.0,0.0,0.0,0.0};
18
const float *stM = A + MB*KB;
19
const float *stN = B + N*KB;
20
const int incAm = 2*KB-KB+32;
21
const int incBm = -KB+32;
22
const int incCm = 2 SHIFT;
23
const int incAn = -MB*KB;
24
const int incBn = 1*KB;
25
const int incCn = (ldc*1-MB)SHIFT;
27
/*--- initial arhitecture specific statements ---*/
30
/*--- main program statements ---*/
31
vec_mov_mr_1(&beta,reg0);
32
vec_mov_rm(reg0,&betavec);
38
vec_mov_mr(zerovec,reg7);
39
vec_mov_rr(reg7,reg0);
40
vec_mov_rr(reg7,reg1);
42
vec_mov_mr_1(pC0,reg0);
43
vec_mov_mr_1(pC0+(1 SHIFT),reg1);
45
vec_mov_mr(betavec,reg7);
46
vec_mov_mr_1(pC0,reg0);
47
vec_mul_rr(reg7,reg0);
48
vec_mov_mr_1(pC0+(1 SHIFT),reg1);
49
vec_mul_rr(reg7,reg1);
51
vec_mov_mr_a(pB0,reg6);
52
vec_mov_mr_a(pA0,reg2);
53
vec_mov_mr_a(pA0+KB,reg3);
54
vec_mul_rr(reg6,reg2);
55
vec_add_rr(reg2,reg0);
56
vec_mov_mr_a(pA0+4,reg4);
57
vec_mul_rr(reg6,reg3);
58
vec_add_rr(reg3,reg1);
59
vec_mov_mr_a(pB0+4,reg7);
60
vec_mov_mr_a(pA0+4+KB,reg5);
61
vec_mul_rr(reg7,reg4);
62
vec_add_rr(reg4,reg0);
63
vec_mov_mr_a(pA0+8,reg2);
64
vec_mul_rr(reg7,reg5);
65
vec_add_rr(reg5,reg1);
66
vec_mov_mr_a(pB0+8,reg6);
67
vec_mov_mr_a(pA0+8+KB,reg3);
68
vec_mul_rr(reg6,reg2);
69
vec_add_rr(reg2,reg0);
70
vec_mov_mr_a(pA0+12,reg4);
71
vec_mul_rr(reg6,reg3);
72
vec_add_rr(reg3,reg1);
73
vec_mov_mr_a(pB0+12,reg7);
74
vec_mov_mr_a(pA0+12+KB,reg5);
75
vec_mul_rr(reg7,reg4);
76
vec_add_rr(reg4,reg0);
77
vec_mov_mr_a(pA0+16,reg2);
78
vec_mul_rr(reg7,reg5);
79
vec_add_rr(reg5,reg1);
80
vec_mov_mr_a(pB0+16,reg6);
81
vec_mov_mr_a(pA0+16+KB,reg3);
82
vec_mul_rr(reg6,reg2);
83
vec_add_rr(reg2,reg0);
84
vec_mov_mr_a(pA0+20,reg4);
85
vec_mul_rr(reg6,reg3);
86
vec_add_rr(reg3,reg1);
87
vec_mov_mr_a(pB0+20,reg7);
88
vec_mov_mr_a(pA0+20+KB,reg5);
89
vec_mul_rr(reg7,reg4);
90
vec_add_rr(reg4,reg0);
91
vec_mov_mr_a(pA0+24,reg2);
92
vec_mul_rr(reg7,reg5);
93
vec_add_rr(reg5,reg1);
94
vec_mov_mr_a(pB0+24,reg6);
95
vec_mov_mr_a(pA0+24+KB,reg3);
96
vec_mul_rr(reg6,reg2);
97
vec_add_rr(reg2,reg0);
98
vec_mov_mr_a(pA0+28,reg2);
99
vec_mul_rr(reg6,reg3);
100
vec_add_rr(reg3,reg1);
101
vec_mov_mr_a(pB0+28,reg6);
102
vec_mov_mr_a(pA0+28+KB,reg3);
103
vec_mul_rr(reg6,reg2);
104
vec_add_rr(reg2,reg0);
105
vec_mul_rr(reg6,reg3);
106
vec_add_rr(reg3,reg1);
109
vec_mov_rm_1(reg0,pC0);
110
vec_mov_rm_1(reg1,pC0+(1 SHIFT));