@@ -64,13 +64,11 @@ static void BF16GEMV_N_VSX_1(BLASLONG n, IFLOAT **ap, IFLOAT *xo, FLOAT *y, FLOA
64
64
n &= 7 ;
65
65
if (n > 4 ) {
66
66
BLASLONG n3 = n & 3 ;
67
- vy0 [0 ] = v_y [(i * 2 ) + 0 ];
68
- vy0 [1 ] = vec_loadN_f32 (& v_y [(i * 2 ) + 1 ], n3 );
67
+ vec_loadN2_f32 (vy0 , & v_y [(i * 2 ) + 0 ], n3 );
69
68
70
69
vec_loadN_mult2 (v_x0 , & va0 [i ], n , zero , vy0 );
71
70
72
- v_y [(i * 2 ) + 0 ] = vy0 [0 ];
73
- vec_storeN_f32 (vy0 [1 ], & v_y [(i * 2 ) + 1 ], n3 );
71
+ vec_storeN2_f32 (vy0 , & v_y [(i * 2 ) + 0 ], n3 );
74
72
} else if (n ) {
75
73
vec_f32 vy0 = vec_loadN_f32 (& v_y [(i * 2 ) + 0 ], n );
76
74
@@ -116,14 +114,12 @@ static void BF16GEMV_N_VSX_2(BLASLONG n, IFLOAT **ap, IFLOAT *xo, FLOAT *y, FLOA
116
114
n &= 7 ;
117
115
if (n > 4 ) {
118
116
BLASLONG n3 = n & 3 ;
119
- vy0 [0 ] = v_y [(i * 2 ) + 0 ];
120
- vy0 [1 ] = vec_loadN_f32 (& v_y [(i * 2 ) + 1 ], n3 );
117
+ vec_loadN2_f32 (vy0 , & v_y [(i * 2 ) + 0 ], n3 );
121
118
122
119
vec_loadN_mult2 (v_x0 , & va0 [i ], n , zero , vy0 );
123
120
vec_loadN_mult2 (v_x1 , & va1 [i ], n , zero , vy0 );
124
121
125
- v_y [(i * 2 ) + 0 ] = vy0 [0 ];
126
- vec_storeN_f32 (vy0 [1 ], & v_y [(i * 2 ) + 1 ], n3 );
122
+ vec_storeN2_f32 (vy0 , & v_y [(i * 2 ) + 0 ], n3 );
127
123
} else if (n ) {
128
124
vec_f32 vy0 = vec_loadN_f32 (& v_y [(i * 2 ) + 0 ], n );
129
125
@@ -178,16 +174,14 @@ static void BF16GEMV_N_VSX_4(BLASLONG n, IFLOAT **ap, IFLOAT *xo, FLOAT *y, FLOA
178
174
n &= 7 ;
179
175
if (n > 4 ) {
180
176
BLASLONG n3 = n & 3 ;
181
- vy0 [0 ] = v_y [(i * 2 ) + 0 ];
182
- vy0 [1 ] = vec_loadN_f32 (& v_y [(i * 2 ) + 1 ], n3 );
177
+ vec_loadN2_f32 (vy0 , & v_y [(i * 2 ) + 0 ], n3 );
183
178
184
179
vec_loadN_mult2 (v_x0 , & va0 [i ], n , zero , vy0 );
185
180
vec_loadN_mult2 (v_x1 , & va1 [i ], n , zero , vy0 );
186
181
vec_loadN_mult2 (v_x2 , & va2 [i ], n , zero , vy0 );
187
182
vec_loadN_mult2 (v_x3 , & va3 [i ], n , zero , vy0 );
188
183
189
- v_y [(i * 2 ) + 0 ] = vy0 [0 ];
190
- vec_storeN_f32 (vy0 [1 ], & v_y [(i * 2 ) + 1 ], n3 );
184
+ vec_storeN2_f32 (vy0 , & v_y [(i * 2 ) + 0 ], n3 );
191
185
} else if (n ) {
192
186
vec_f32 vy0 = vec_loadN_f32 (& v_y [(i * 2 ) + 0 ], n );
193
187
@@ -263,8 +257,7 @@ static void BF16GEMV_N_VSX_8(BLASLONG n, IFLOAT **ap, IFLOAT *xo, FLOAT *y, BLAS
263
257
n &= 7 ;
264
258
if (n > 4 ) {
265
259
BLASLONG n3 = n & 3 ;
266
- vy0 [0 ] = v_y [(i * 2 ) + 0 ];
267
- vy0 [1 ] = vec_loadN_f32 (& v_y [(i * 2 ) + 1 ], n3 );
260
+ vec_loadN2_f32 (vy0 , & v_y [(i * 2 ) + 0 ], n3 );
268
261
269
262
vec_loadN_mult2 (v_x0 , & va0 [i ], n , zero , vy0 );
270
263
vec_loadN_mult2 (v_x1 , & va1 [i ], n , zero , vy0 );
@@ -275,8 +268,7 @@ static void BF16GEMV_N_VSX_8(BLASLONG n, IFLOAT **ap, IFLOAT *xo, FLOAT *y, BLAS
275
268
vec_loadN_mult2 (v_x6 , & vb2 [i ], n , zero , vy0 );
276
269
vec_loadN_mult2 (v_x7 , & vb3 [i ], n , zero , vy0 );
277
270
278
- v_y [(i * 2 ) + 0 ] = vy0 [0 ];
279
- vec_storeN_f32 (vy0 [1 ], & v_y [(i * 2 ) + 1 ], n3 );
271
+ vec_storeN2_f32 (vy0 , & v_y [(i * 2 ) + 0 ], n3 );
280
272
} else
281
273
if (n ) {
282
274
vec_f32 vy0 = vec_loadN_f32 (& v_y [(i * 2 ) + 0 ], n );
0 commit comments