Skip to content

Commit 8ab6245

Browse files
committed
Small change.
1 parent df19375 commit 8ab6245

File tree

1 file changed

+50
-50
lines changed

1 file changed

+50
-50
lines changed

kernel/power/sbgemv_n_power10.c

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -68,21 +68,21 @@ static void BF16GEMV_N_MMA_1(BLASLONG n, IFLOAT **ap, IFLOAT *xo, FLOAT *y, FLOA
6868
vec_make_mult1(v_x0, false);
6969

7070
for (; i + 8 <= n8; i += 8) {
71-
vec_load8_pair(vy0, &v_y[(i * 2) + 0]);
72-
7371
vec_load_mult184_mma(&temp[0], &va0[i + 0], &v_x0[ 0]);
7472
vec_load_mult184_mma(&temp[2], &va0[i + 4], &v_x0[ 0]);
7573

74+
vec_load8_pair(vy0, &v_y[(i * 2) + 0]);
75+
7676
vec_reduce88_mma(&temp[0], temp0 + 0, v_alpha, vy0 + 0);
7777

7878
vec_store8_pair(&v_y[(i * 2) + 0], vy0);
7979
}
8080

8181
if (n8 & 4) {
82-
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
83-
8482
vec_load_mult184_mma(&temp[0], &va0[i + 0], &v_x0[ 0]);
8583

84+
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
85+
8686
vec_reduce84_mma(&temp[0], temp0, v_alpha, vy0);
8787

8888
vec_store4_pair(&v_y[(i * 2) + 0], vy0);
@@ -95,41 +95,41 @@ static void BF16GEMV_N_MMA_1(BLASLONG n, IFLOAT **ap, IFLOAT *xo, FLOAT *y, FLOA
9595
vec_f32 vy0[2*4];
9696

9797
for (; i + 4 <= n8; i += 4) {
98-
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
99-
10098
vec_load_mult18_mma(&temp[0], &va0[i + 0], v_x0[ 0]);
10199

100+
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
101+
102102
vec_reduce8_mma(&temp[0], temp0, v_alpha, vy0);
103103

104104
vec_store4_pair(&v_y[(i * 2) + 0], vy0);
105105
}
106106
#endif
107107

108108
for (; i < n8; i++) {
109-
vec_load_pair(vy0, &v_y[(i * 2) + 0]);
110-
111109
vec_load_mult12_mma(&temp[0], &va0[i], v_x0[ 0]);
112110

111+
vec_load_pair(vy0, &v_y[(i * 2) + 0]);
112+
113113
vec_reduce2_mma(&temp[0], temp0, v_alpha, vy0);
114114

115115
vec_store_pair(&v_y[(i * 2) + 0], vy0);
116116
}
117117

118118
n &= 7;
119119
if (n > 4) {
120+
vec_loadN_mult12_mma(&temp[0], &va0[i], v_x0[ 0], n);
121+
120122
BLASLONG n3 = n & 3;
121123
vec_loadN2_f32(vy0, &v_y[(i * 2) + 0], n3);
122124

123-
vec_loadN_mult12_mma(&temp[0], &va0[i], v_x0[ 0], n);
124-
125125
vec_reduce2_mma(&temp[0], temp0, v_alpha, vy0);
126126

127127
vec_storeN2_f32(vy0, &v_y[(i * 2) + 0], n3);
128128
} else if (n) {
129-
vy0[0] = vec_loadN_f32(&v_y[(i * 2) + 0], n);
130-
131129
vec_loadN_mult11_mma(&temp[0], &va0[i], v_x0[ 0], n);
132130

131+
vy0[0] = vec_loadN_f32(&v_y[(i * 2) + 0], n);
132+
133133
vec_reduce1_mma(&temp[0], temp0, v_alpha, vy0);
134134

135135
vec_storeN_f32(vy0[0], &v_y[(i * 2) + 0], n);
@@ -163,20 +163,20 @@ static void BF16GEMV_N_MMA_2(BLASLONG n, IFLOAT **ap, IFLOAT *xo, FLOAT *y, FLOA
163163
vec_make_mult1(v_x0, false);
164164

165165
for (; i + 8 <= n8; i += 8) {
166-
vec_load8_pair(vy0, &v_y[(i * 2) + 0]);
167-
168166
vec_load_mult288a_mma(&temp[0], &va0[i + 0], &va1[i + 0], &v_x0[ 0]);
169167

168+
vec_load8_pair(vy0, &v_y[(i * 2) + 0]);
169+
170170
vec_reduce88_mma(&temp[0], temp0 + 0, v_alpha, vy0 + 0);
171171

172172
vec_store8_pair(&v_y[(i * 2) + 0], vy0);
173173
}
174174

175175
if (n8 & 4) {
176-
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
177-
178176
vec_load_mult284a_mma(&temp[0], &va0[i + 0], &va1[i + 0], &v_x0[ 0]);
179177

178+
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
179+
180180
vec_reduce84_mma(&temp[0], temp0, v_alpha, vy0);
181181

182182
vec_store4_pair(&v_y[(i * 2) + 0], vy0);
@@ -189,41 +189,41 @@ static void BF16GEMV_N_MMA_2(BLASLONG n, IFLOAT **ap, IFLOAT *xo, FLOAT *y, FLOA
189189
v_x0[0] = vec_loadN(x_bf, 2);
190190

191191
for (; i + 4 <= n8; i += 4) {
192-
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
193-
194192
vec_load_mult28a_mma(&temp[0], &va0[i + 0], &va1[i + 0], v_x0[ 0]);
195193

194+
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
195+
196196
vec_reduce8_mma(&temp[0], temp0, v_alpha, vy0);
197197

198198
vec_store4_pair(&v_y[(i * 2) + 0], vy0);
199199
}
200200
#endif
201201

202202
for (; i < n8; i++) {
203-
vec_load_pair(vy0, &v_y[(i * 2) + 0]);
204-
205203
vec_load_mult22a_mma(&temp[0], &va0[i], &va1[i], v_x0[ 0]);
206204

205+
vec_load_pair(vy0, &v_y[(i * 2) + 0]);
206+
207207
vec_reduce2_mma(&temp[0], temp0, v_alpha, vy0);
208208

209209
vec_store_pair(&v_y[(i * 2) + 0], vy0);
210210
}
211211

212212
n &= 7;
213213
if (n > 4) {
214+
vec_loadN_mult22a_mma(&temp[0], &va0[i], &va1[i], v_x0[ 0], n);
215+
214216
BLASLONG n3 = n & 3;
215217
vec_loadN2_f32(vy0, &v_y[(i * 2) + 0], n3);
216218

217-
vec_loadN_mult22a_mma(&temp[0], &va0[i], &va1[i], v_x0[ 0], n);
218-
219219
vec_reduce2_mma(&temp[0], temp0, v_alpha, vy0);
220220

221221
vec_storeN2_f32(vy0, &v_y[(i * 2) + 0], n3);
222222
} else if (n) {
223-
vy0[0] = vec_loadN_f32(&v_y[(i * 2) + 0], n);
224-
225223
vec_loadN_mult11a_mma(&temp[0], &va0[i], &va1[i], v_x0[ 0], n);
226224

225+
vy0[0] = vec_loadN_f32(&v_y[(i * 2) + 0], n);
226+
227227
vec_reduce1_mma(&temp[0], temp0, v_alpha, vy0);
228228

229229
vec_storeN_f32(vy0[0], &v_y[(i * 2) + 0], n);
@@ -261,22 +261,22 @@ static void BF16GEMV_N_MMA_4(BLASLONG n, IFLOAT **ap, IFLOAT *xo, FLOAT *y, FLOA
261261
vec_make_mult2(v_x0);
262262

263263
for (; i + 8 <= n8; i += 8) {
264-
vec_load8_pair(vy0, &v_y[(i * 2) + 0]);
265-
266264
vec_load_mult288a_mma(&temp[0], &va0[i + 0], &va1[i + 0], &v_x0[ 0]);
267265
vec_load_mult288b_mma(&temp[0], &va2[i + 0], &va3[i + 0], &v_x0[ 4]);
268266

267+
vec_load8_pair(vy0, &v_y[(i * 2) + 0]);
268+
269269
vec_reduce88_mma(&temp[0], temp0 + 0, v_alpha, vy0 + 0);
270270

271271
vec_store8_pair(&v_y[(i * 2) + 0], vy0);
272272
}
273273

274274
if (n8 & 4) {
275-
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
276-
277275
vec_load_mult284a_mma(&temp[0], &va0[i + 0], &va1[i + 0], &v_x0[ 0]);
278276
vec_load_mult284b_mma(&temp[0], &va2[i + 0], &va3[i + 0], &v_x0[ 4]);
279277

278+
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
279+
280280
vec_reduce84_mma(&temp[0], temp0, v_alpha, vy0);
281281

282282
vec_store4_pair(&v_y[(i * 2) + 0], vy0);
@@ -291,45 +291,45 @@ static void BF16GEMV_N_MMA_4(BLASLONG n, IFLOAT **ap, IFLOAT *xo, FLOAT *y, FLOA
291291
v_x0[ 4] = (vec_bf16)vec_splat((vec_f32)v_x0[0], 1);
292292

293293
for (; i + 4 <= n8; i += 4) {
294-
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
295-
296294
vec_load_mult28a_mma(&temp[0], &va0[i + 0], &va1[i + 0], v_x0[ 0]);
297295
vec_load_mult28b_mma(&temp[0], &va2[i + 0], &va3[i + 0], v_x0[ 4]);
298296

297+
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
298+
299299
vec_reduce8_mma(&temp[0], temp0, v_alpha, vy0);
300300

301301
vec_store4_pair(&v_y[(i * 2) + 0], vy0);
302302
}
303303
#endif
304304

305305
for (; i < n8; i++) {
306-
vec_load_pair(vy0, &v_y[(i * 2) + 0]);
307-
308306
vec_load_mult22a_mma(&temp[0], &va0[i], &va1[i], v_x0[ 0]);
309307
vec_load_mult22b_mma(&temp[0], &va2[i], &va3[i], v_x0[ 4]);
310308

309+
vec_load_pair(vy0, &v_y[(i * 2) + 0]);
310+
311311
vec_reduce2_mma(&temp[0], temp0, v_alpha, vy0);
312312

313313
vec_store_pair(&v_y[(i * 2) + 0], vy0);
314314
}
315315

316316
n &= 7;
317317
if (n > 4) {
318-
BLASLONG n3 = n & 3;
319-
vec_loadN2_f32(vy0, &v_y[(i * 2) + 0], n3);
320-
321318
vec_loadN_mult22a_mma(&temp[0], &va0[i], &va1[i], v_x0[ 0], n);
322319
vec_loadN_mult22b_mma(&temp[0], &va2[i], &va3[i], v_x0[ 4], n);
323320

321+
BLASLONG n3 = n & 3;
322+
vec_loadN2_f32(vy0, &v_y[(i * 2) + 0], n3);
323+
324324
vec_reduce2_mma(&temp[0], temp0, v_alpha, vy0);
325325

326326
vec_storeN2_f32(vy0, &v_y[(i * 2) + 0], n3);
327327
} else if (n) {
328-
vy0[0] = vec_loadN_f32(&v_y[(i * 2) + 0], n);
329-
330328
vec_loadN_mult11a_mma(&temp[0], &va0[i], &va1[i], v_x0[ 0], n);
331329
vec_loadN_mult11b_mma(&temp[0], &va2[i], &va3[i], v_x0[ 4], n);
332330

331+
vy0[0] = vec_loadN_f32(&v_y[(i * 2) + 0], n);
332+
333333
vec_reduce1_mma(&temp[0], temp0, v_alpha, vy0);
334334

335335
vec_storeN_f32(vy0[0], &v_y[(i * 2) + 0], n);
@@ -376,26 +376,26 @@ static void BF16GEMV_N_MMA_8(BLASLONG n, IFLOAT **ap, IFLOAT *xo, FLOAT *y, BLAS
376376
vec_make_mult4(v_x0);
377377

378378
for (; i + 8 <= n8; i += 8) {
379-
vec_load8_pair(vy0, &v_y[(i * 2) + 0]);
380-
381379
vec_load_mult288a_mma(&temp[0], &va0[i + 0], &va1[i + 0], &v_x0[ 0]);
382380
vec_load_mult288b_mma(&temp[0], &va2[i + 0], &va3[i + 0], &v_x0[ 4]);
383381
vec_load_mult288b_mma(&temp[0], &vb0[i + 0], &vb1[i + 0], &v_x0[ 8]);
384382
vec_load_mult288b_mma(&temp[0], &vb2[i + 0], &vb3[i + 0], &v_x0[12]);
385383

384+
vec_load8_pair(vy0, &v_y[(i * 2) + 0]);
385+
386386
vec_reduce88_mma(&temp[0], temp0 + 0, v_alpha, vy0 + 0);
387387

388388
vec_store8_pair(&v_y[(i * 2) + 0], vy0);
389389
}
390390

391391
if (n8 & 4) {
392-
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
393-
394392
vec_load_mult284a_mma(&temp[0], &va0[i + 0], &va1[i + 0], &v_x0[ 0]);
395393
vec_load_mult284b_mma(&temp[0], &va2[i + 0], &va3[i + 0], &v_x0[ 4]);
396394
vec_load_mult284b_mma(&temp[0], &vb0[i + 0], &vb1[i + 0], &v_x0[ 8]);
397395
vec_load_mult284b_mma(&temp[0], &vb2[i + 0], &vb3[i + 0], &v_x0[12]);
398396

397+
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
398+
399399
vec_reduce84_mma(&temp[0], temp0, v_alpha, vy0);
400400

401401
vec_store4_pair(&v_y[(i * 2) + 0], vy0);
@@ -412,53 +412,53 @@ static void BF16GEMV_N_MMA_8(BLASLONG n, IFLOAT **ap, IFLOAT *xo, FLOAT *y, BLAS
412412
v_x0[12] = (vec_bf16)vec_splat((vec_f32)v_x0[0], 3);
413413

414414
for (; i + 4 <= n8; i += 4) {
415-
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
416-
417415
vec_load_mult28a_mma(&temp[0], &va0[i + 0], &va1[i + 0], v_x0[ 0]);
418416
vec_load_mult28b_mma(&temp[0], &va2[i + 0], &va3[i + 0], v_x0[ 4]);
419417
vec_load_mult28b_mma(&temp[0], &vb0[i + 0], &vb1[i + 0], v_x0[ 8]);
420418
vec_load_mult28b_mma(&temp[0], &vb2[i + 0], &vb3[i + 0], v_x0[12]);
421419

420+
vec_load4_pair(vy0, &v_y[(i * 2) + 0]);
421+
422422
vec_reduce8_mma(&temp[0], temp0, v_alpha, vy0);
423423

424424
vec_store4_pair(&v_y[(i * 2) + 0], vy0);
425425
}
426426
#endif
427427

428428
for (; i < n8; i++) {
429-
vec_load_pair(vy0, &v_y[(i * 2) + 0]);
430-
431429
vec_load_mult22a_mma(&temp[0], &va0[i], &va1[i], v_x0[ 0]);
432430
vec_load_mult22b_mma(&temp[0], &va2[i], &va3[i], v_x0[ 4]);
433431
vec_load_mult22b_mma(&temp[0], &vb0[i], &vb1[i], v_x0[ 8]);
434432
vec_load_mult22b_mma(&temp[0], &vb2[i], &vb3[i], v_x0[12]);
435433

434+
vec_load_pair(vy0, &v_y[(i * 2) + 0]);
435+
436436
vec_reduce2_mma(&temp[0], temp0, v_alpha, vy0);
437437

438438
vec_store_pair(&v_y[(i * 2) + 0], vy0);
439439
}
440440

441441
n &= 7;
442442
if (n > 4) {
443-
BLASLONG n3 = n & 3;
444-
vec_loadN2_f32(vy0, &v_y[(i * 2) + 0], n3);
445-
446443
vec_loadN_mult22a_mma(&temp[0], &va0[i], &va1[i], v_x0[ 0], n);
447444
vec_loadN_mult22b_mma(&temp[0], &va2[i], &va3[i], v_x0[ 4], n);
448445
vec_loadN_mult22b_mma(&temp[0], &vb0[i], &vb1[i], v_x0[ 8], n);
449446
vec_loadN_mult22b_mma(&temp[0], &vb2[i], &vb3[i], v_x0[12], n);
450447

448+
BLASLONG n3 = n & 3;
449+
vec_loadN2_f32(vy0, &v_y[(i * 2) + 0], n3);
450+
451451
vec_reduce2_mma(&temp[0], temp0, v_alpha, vy0);
452452

453453
vec_storeN2_f32(vy0, &v_y[(i * 2) + 0], n3);
454454
} else if (n) {
455-
vy0[0] = vec_loadN_f32(&v_y[(i * 2) + 0], n);
456-
457455
vec_loadN_mult11a_mma(&temp[0], &va0[i], &va1[i], v_x0[ 0], n);
458456
vec_loadN_mult11b_mma(&temp[0], &va2[i], &va3[i], v_x0[ 4], n);
459457
vec_loadN_mult11b_mma(&temp[0], &vb0[i], &vb1[i], v_x0[ 8], n);
460458
vec_loadN_mult11b_mma(&temp[0], &vb2[i], &vb3[i], v_x0[12], n);
461459

460+
vy0[0] = vec_loadN_f32(&v_y[(i * 2) + 0], n);
461+
462462
vec_reduce1_mma(&temp[0], temp0, v_alpha, vy0);
463463

464464
vec_storeN_f32(vy0[0], &v_y[(i * 2) + 0], n);

0 commit comments

Comments
 (0)