5 real(8) a(n1,n2),b(n2,n3)
9 vector(real(8)) av1, av2, av3, av4, av5, av6, av7, av8
10 vector(real(8)) bv1, bsv1, bsv2, bsv3, bsv4
11 vector(real(8)) bv2, bsv5, bsv6, bsv7, bsv8
14 call alignx(32, a(1,1))
15 call alignx(32, b(1,1))
16 call alignx(32, c(1,1))
19 av1 = vec_ld(0,a(i,1))
20 av2 = vec_ld(0,a(i,2))
21 av3 = vec_ld(0,a(i,3))
22 av4 = vec_ld(0,a(i,4))
23 av5 = vec_ld(0,a(i,5))
24 av6 = vec_ld(0,a(i,6))
25 av7 = vec_ld(0,a(i,7))
26 av8 = vec_ld(0,a(i,8))
29 bv1 = vec_ld(0,b(1,j))
30 bv2 = vec_ld(0,b(5,j))
31 bsv1 = vec_splat(bv1, 0)
32 bsv2 = vec_splat(bv1, 1)
33 bsv3 = vec_splat(bv1, 2)
34 bsv4 = vec_splat(bv1, 3)
35 bsv5 = vec_splat(bv2, 0)
36 bsv6 = vec_splat(bv2, 1)
37 bsv7 = vec_splat(bv2, 2)
38 bsv8 = vec_splat(bv2, 3)
40 cv = vec_mul(av1, bsv1)
41 cv = vec_madd(av2, bsv2, cv)
42 cv = vec_madd(av3, bsv3, cv)
43 cv = vec_madd(av4, bsv4, cv)
44 cv = vec_madd(av5, bsv5, cv)
45 cv = vec_madd(av6, bsv6, cv)
46 cv = vec_madd(av7, bsv7, cv)
47 cv = vec_madd(av8, bsv8, cv)
49 call vec_st(cv, 0, c(i,j))
59 real(8) a(n1,n2),b(n2,n3)
64 vector(real(8)) av1, av2, av3, av4, av5, av6, av7, av8
65 vector(real(8)) av9, av10, av11, av12, av13, av14, av15, av16
66 vector(real(8)) bv1, bsv1, bsv2, bsv3, bsv4
67 vector(real(8)) bv2, bsv5, bsv6, bsv7, bsv8
68 vector(real(8)) bv3, bsv9, bsv10, bsv11, bsv12
69 vector(real(8)) bv4, bsv13, bsv14, bsv15, bsv16
73 call alignx(32, a(1,1))
74 call alignx(32, b(1,1))
75 call alignx(32, c(1,1))
78 av1 = vec_ld(0,a(i,1))
79 av2 = vec_ld(0,a(i,2))
80 av3 = vec_ld(0,a(i,3))
81 av4 = vec_ld(0,a(i,4))
82 av5 = vec_ld(0,a(i,5))
83 av6 = vec_ld(0,a(i,6))
84 av7 = vec_ld(0,a(i,7))
85 av8 = vec_ld(0,a(i,8))
86 av9 = vec_ld(0,a(i,9))
87 av10 = vec_ld(0,a(i,10))
88 av11 = vec_ld(0,a(i,11))
89 av12 = vec_ld(0,a(i,12))
90 av13 = vec_ld(0,a(i,13))
91 av14 = vec_ld(0,a(i,14))
92 av15 = vec_ld(0,a(i,15))
93 av16 = vec_ld(0,a(i,16))
96 bv1 = vec_ld(0,b(1,j))
97 bv2 = vec_ld(0,b(5,j))
98 bv3 = vec_ld(0,b(9,j))
99 bv4 = vec_ld(0,b(13,j))
101 bsv1 = vec_splat(bv1, 0)
102 bsv2 = vec_splat(bv1, 1)
103 bsv3 = vec_splat(bv1, 2)
104 bsv4 = vec_splat(bv1, 3)
105 bsv5 = vec_splat(bv2, 0)
106 bsv6 = vec_splat(bv2, 1)
107 bsv7 = vec_splat(bv2, 2)
108 bsv8 = vec_splat(bv2, 3)
109 bsv9 = vec_splat(bv3, 0)
110 bsv10 = vec_splat(bv3, 1)
111 bsv11 = vec_splat(bv3, 2)
112 bsv12 = vec_splat(bv3, 3)
113 bsv13 = vec_splat(bv4, 0)
114 bsv14 = vec_splat(bv4, 1)
115 bsv15 = vec_splat(bv4, 2)
116 bsv16 = vec_splat(bv4, 3)
118 cv = vec_mul(av1, bsv1)
119 cv = vec_madd(av2, bsv2, cv)
120 cv = vec_madd(av3, bsv3, cv)
121 cv = vec_madd(av4, bsv4, cv)
122 cv = vec_madd(av5, bsv5, cv)
123 cv = vec_madd(av6, bsv6, cv)
124 cv = vec_madd(av7, bsv7, cv)
125 cv = vec_madd(av8, bsv8, cv)
126 cv = vec_madd(av9, bsv9, cv)
127 cv = vec_madd(av10, bsv10, cv)
128 cv = vec_madd(av11, bsv11, cv)
129 cv = vec_madd(av12, bsv12, cv)
130 cv = vec_madd(av13, bsv13, cv)
131 cv = vec_madd(av14, bsv14, cv)
132 cv = vec_madd(av15, bsv15, cv)
133 cv = vec_madd(av16, bsv16, cv)
135 call vec_st(cv, 0, c(i,j))
146 real(8) a(n1,n2),b(n2,n3)
151 vector(real(8)) av1, av2, av3, av4, av5, av6
152 vector(real(8)) bv1, bsv1, bsv2, bsv3, bsv4
153 vector(real(8)) bv2, bsv5, bsv6
157 call alignx(32, a(1,1))
158 call alignx(32, b(1,1))
159 call alignx(32, c(1,1))
162 av1 = vec_ld(0,a(i,1))
163 av2 = vec_ld(0,a(i,2))
164 av3 = vec_ld(0,a(i,3))
165 av4 = vec_ld(0,a(i,4))
166 av5 = vec_ld(0,a(i,5))
167 av6 = vec_ld(0,a(i,6))
170 bv1 = vec_ld(0,b(1,j))
171 bv2 = vec_ld(0,b(5,j))
173 bsv1 = vec_splat(bv1, 0)
174 bsv2 = vec_splat(bv1, 1)
175 bsv3 = vec_splat(bv1, 2)
176 bsv4 = vec_splat(bv1, 3)
177 bsv5 = vec_splat(bv2, 0)
178 bsv6 = vec_splat(bv2, 1)
180 cv = vec_mul(av1, bsv1)
181 cv = vec_madd(av2, bsv2, cv)
182 cv = vec_madd(av3, bsv3, cv)
183 cv = vec_madd(av4, bsv4, cv)
184 cv = vec_madd(av5, bsv5, cv)
185 cv = vec_madd(av6, bsv6, cv)
187 call vec_st(cv, 0, c(i,j))
189 bv1 = vec_ld(0,b(9,j))
191 bsv1 = vec_splat(bv2, 2)
192 bsv2 = vec_splat(bv2, 3)
193 bsv3 = vec_splat(bv1, 0)
194 bsv4 = vec_splat(bv1, 1)
195 bsv5 = vec_splat(bv1, 2)
196 bsv6 = vec_splat(bv1, 3)
198 cv = vec_mul(av1, bsv1)
199 cv = vec_madd(av2, bsv2, cv)
200 cv = vec_madd(av3, bsv3, cv)
201 cv = vec_madd(av4, bsv4, cv)
202 cv = vec_madd(av5, bsv5, cv)
203 cv = vec_madd(av6, bsv6, cv)
205 call vec_st(cv, 0, c(i,j+1))
215 real(8) a(n1,n2),b(n2,n3)
220 vector(real(8)) av1, av2, av3, av4, av5, av6, av7, av8
221 vector(real(8)) av9, av10
222 vector(real(8)) bv1, bsv1, bsv2, bsv3, bsv4
223 vector(real(8)) bv2, bsv5, bsv6, bsv7, bsv8
224 vector(real(8)) bv3, bsv9, bsv10
227 call alignx(32, a(1,1))
228 call alignx(32, b(1,1))
229 call alignx(32, c(1,1))
232 av1 = vec_ld(0,a(i,1))
233 av2 = vec_ld(0,a(i,2))
234 av3 = vec_ld(0,a(i,3))
235 av4 = vec_ld(0,a(i,4))
236 av5 = vec_ld(0,a(i,5))
237 av6 = vec_ld(0,a(i,6))
238 av7 = vec_ld(0,a(i,7))
239 av8 = vec_ld(0,a(i,8))
240 av9 = vec_ld(0,a(i,9))
241 av10 = vec_ld(0,a(i,10))
244 bv1 = vec_ld(0,b(1,j))
245 bv2 = vec_ld(0,b(5,j))
246 bv3 = vec_ld(0,b(9,j))
248 bsv1 = vec_splat(bv1, 0)
249 bsv2 = vec_splat(bv1, 1)
250 bsv3 = vec_splat(bv1, 2)
251 bsv4 = vec_splat(bv1, 3)
252 bsv5 = vec_splat(bv2, 0)
253 bsv6 = vec_splat(bv2, 1)
254 bsv7 = vec_splat(bv2, 2)
255 bsv8 = vec_splat(bv2, 3)
256 bsv9 = vec_splat(bv3, 0)
257 bsv10 = vec_splat(bv3, 1)
259 cv = vec_mul(av1, bsv1)
260 cv = vec_madd(av2, bsv2, cv)
261 cv = vec_madd(av3, bsv3, cv)
262 cv = vec_madd(av4, bsv4, cv)
263 cv = vec_madd(av5, bsv5, cv)
264 cv = vec_madd(av6, bsv6, cv)
265 cv = vec_madd(av7, bsv7, cv)
266 cv = vec_madd(av8, bsv8, cv)
267 cv = vec_madd(av9, bsv9, cv)
268 cv = vec_madd(av10, bsv10, cv)
270 call vec_st(cv, 0, c(i,j))
272 bv1 = vec_ld(0,b(13,j))
273 bv2 = vec_ld(0,b(17,j))
275 bsv1 = vec_splat(bv3, 2)
276 bsv2 = vec_splat(bv3, 3)
277 bsv3 = vec_splat(bv1, 0)
278 bsv4 = vec_splat(bv1, 1)
279 bsv5 = vec_splat(bv1, 2)
280 bsv6 = vec_splat(bv1, 3)
281 bsv7 = vec_splat(bv2, 0)
282 bsv8 = vec_splat(bv2, 1)
283 bsv9 = vec_splat(bv2, 2)
284 bsv10 = vec_splat(bv2, 3)
286 cv = vec_mul(av1, bsv1)
287 cv = vec_madd(av2, bsv2, cv)
288 cv = vec_madd(av3, bsv3, cv)
289 cv = vec_madd(av4, bsv4, cv)
290 cv = vec_madd(av5, bsv5, cv)
291 cv = vec_madd(av6, bsv6, cv)
292 cv = vec_madd(av7, bsv7, cv)
293 cv = vec_madd(av8, bsv8, cv)
294 cv = vec_madd(av9, bsv9, cv)
295 cv = vec_madd(av10, bsv10, cv)
297 call vec_st(cv, 0, c(i,j+1))
subroutine mxm_bgq_16(a, n1, b, n2, c, n3)
subroutine mxm_bgq_10(a, n1, b, n2, c, n3)
subroutine mxm_bgq_8(a, n1, b, n2, c, n3)
subroutine mxm_bgq_6(a, n1, b, n2, c, n3)