@@ -132,7 +132,7 @@ static void dtrsm_RN_solve_opt(BLASLONG n, FLOAT *a, FLOAT *b, FLOAT *c, BLASLON
132
132
"1: \n\t"
133
133
134
134
" vmovups (%8,%1,4), %%ymm4 \n\t" // read a
135
- " vpermpd $0xb1 , %%ymm0 , %%ymm3 \n\t"
135
+ " vpermilpd $0x05 , %%ymm0 , %%ymm3 \n\t" // was vpermpd 0xb1
136
136
137
137
" vfmadd231pd %%ymm0 , %%ymm1 , %%ymm8 \n\t"
138
138
" vfmadd231pd %%ymm0 , %%ymm2 , %%ymm12 \n\t"
@@ -143,7 +143,7 @@ static void dtrsm_RN_solve_opt(BLASLONG n, FLOAT *a, FLOAT *b, FLOAT *c, BLASLON
143
143
144
144
" vpermpd $0x1b , %%ymm3 , %%ymm0 \n\t"
145
145
" vmovups 32(%9,%1,8), %%ymm6 \n\t" // read b1
146
- " vpermpd $0xb1 , %%ymm0 , %%ymm3 \n\t"
146
+ " vpermilpd $0x05 , %%ymm0 , %%ymm3 \n\t"
147
147
" vfmadd231pd %%ymm0 , %%ymm1 , %%ymm10 \n\t"
148
148
" vfmadd231pd %%ymm0 , %%ymm2 , %%ymm14 \n\t"
149
149
@@ -160,7 +160,7 @@ static void dtrsm_RN_solve_opt(BLASLONG n, FLOAT *a, FLOAT *b, FLOAT *c, BLASLON
160
160
" vfmadd231pd %%ymm4 , %%ymm5 , %%ymm8 \n\t"
161
161
" vfmadd231pd %%ymm4 , %%ymm6 , %%ymm12 \n\t"
162
162
163
- " vpermpd $0xb1 , %%ymm4 , %%ymm4 \n\t"
163
+ " vpermilpd $0x05 , %%ymm4 , %%ymm4 \n\t"
164
164
" vmovups (%9,%1,8), %%ymm1 \n\t" // read b0
165
165
" vfmadd231pd %%ymm4 , %%ymm5 , %%ymm9 \n\t"
166
166
" vfmadd231pd %%ymm4 , %%ymm6 , %%ymm13 \n\t"
@@ -170,7 +170,7 @@ static void dtrsm_RN_solve_opt(BLASLONG n, FLOAT *a, FLOAT *b, FLOAT *c, BLASLON
170
170
" vfmadd231pd %%ymm4 , %%ymm5 , %%ymm10 \n\t"
171
171
" vfmadd231pd %%ymm4 , %%ymm6 , %%ymm14 \n\t"
172
172
173
- " vpermpd $0xb1 , %%ymm4 , %%ymm4 \n\t"
173
+ " vpermilpd $0x05 , %%ymm4 , %%ymm4 \n\t"
174
174
" addq $8, %1 \n\t"
175
175
" vfmadd231pd %%ymm4 , %%ymm5 , %%ymm11 \n\t"
176
176
" vfmadd231pd %%ymm4 , %%ymm6 , %%ymm15 \n\t"
@@ -185,15 +185,15 @@ static void dtrsm_RN_solve_opt(BLASLONG n, FLOAT *a, FLOAT *b, FLOAT *c, BLASLON
185
185
" vfmadd231pd %%ymm0 , %%ymm1 , %%ymm8 \n\t"
186
186
" vfmadd231pd %%ymm0 , %%ymm2 , %%ymm12 \n\t"
187
187
188
- " vpermpd $0xb1 , %%ymm0 , %%ymm0 \n\t"
188
+ " vpermilpd $0x05 , %%ymm0 , %%ymm0 \n\t"
189
189
" vfmadd231pd %%ymm0 , %%ymm1 , %%ymm9 \n\t"
190
190
" vfmadd231pd %%ymm0 , %%ymm2 , %%ymm13 \n\t"
191
191
192
192
" vpermpd $0x1b , %%ymm0 , %%ymm0 \n\t"
193
193
" vfmadd231pd %%ymm0 , %%ymm1 , %%ymm10 \n\t"
194
194
" vfmadd231pd %%ymm0 , %%ymm2 , %%ymm14 \n\t"
195
195
196
- " vpermpd $0xb1 , %%ymm0 , %%ymm0 \n\t"
196
+ " vpermilpd $0x05 , %%ymm0 , %%ymm0 \n\t"
197
197
" vfmadd231pd %%ymm0 , %%ymm1 , %%ymm11 \n\t"
198
198
" vfmadd231pd %%ymm0 , %%ymm2 , %%ymm15 \n\t"
199
199
@@ -204,50 +204,46 @@ static void dtrsm_RN_solve_opt(BLASLONG n, FLOAT *a, FLOAT *b, FLOAT *c, BLASLON
204
204
" vfmadd231pd %%ymm4 , %%ymm5 , %%ymm8 \n\t"
205
205
" vfmadd231pd %%ymm4 , %%ymm6 , %%ymm12 \n\t"
206
206
207
- " vpermpd $0xb1 , %%ymm4 , %%ymm4 \n\t"
207
+ " vpermilpd $0x05 , %%ymm4 , %%ymm4 \n\t"
208
208
" vfmadd231pd %%ymm4 , %%ymm5 , %%ymm9 \n\t"
209
209
" vfmadd231pd %%ymm4 , %%ymm6 , %%ymm13 \n\t"
210
210
211
211
" vpermpd $0x1b , %%ymm4 , %%ymm4 \n\t"
212
212
" vfmadd231pd %%ymm4 , %%ymm5 , %%ymm10 \n\t"
213
213
" vfmadd231pd %%ymm4 , %%ymm6 , %%ymm14 \n\t"
214
214
215
- " vpermpd $0xb1 , %%ymm4 , %%ymm4 \n\t"
215
+ " vpermilpd $0x05 , %%ymm4 , %%ymm4 \n\t"
216
216
" vfmadd231pd %%ymm4 , %%ymm5 , %%ymm11 \n\t"
217
217
" vfmadd231pd %%ymm4 , %%ymm6 , %%ymm15 \n\t"
218
218
219
219
"3: \n\t"
220
220
221
- " vpermpd $0xb1 , %%ymm9 , %%ymm9 \n\t"
222
- " vpermpd $0xb1 , %%ymm11, %%ymm11 \n\t"
221
+ " vpermilpd $0x05 , %%ymm9 , %%ymm9 \n\t"
222
+ " vpermilpd $0x05 , %%ymm11, %%ymm11 \n\t"
223
223
224
224
" vblendpd $0x0a , %%ymm9 , %%ymm8 , %%ymm0 \n\t"
225
225
" vblendpd $0x05 , %%ymm9 , %%ymm8 , %%ymm1 \n\t"
226
226
" vblendpd $0x0a , %%ymm11, %%ymm10, %%ymm2 \n\t"
227
227
" vblendpd $0x05 , %%ymm11, %%ymm10, %%ymm3 \n\t"
228
228
229
- " vpermpd $0x1b , %%ymm2 , %%ymm2 \n\t"
230
- " vpermpd $0x1b , %%ymm3 , %%ymm3 \n\t"
231
- " vpermpd $0xb1 , %%ymm2 , %%ymm2 \n\t"
232
- " vpermpd $0xb1 , %%ymm3 , %%ymm3 \n\t"
229
+ " vperm2f128 $0x01 , %%ymm2 , %%ymm2 , %%ymm2 \n\t"
230
+ " vperm2f128 $0x01 , %%ymm3 , %%ymm3 , %%ymm3 \n\t"
233
231
234
232
" vblendpd $0x03 , %%ymm0 , %%ymm2 , %%ymm8 \n\t"
235
233
" vblendpd $0x03 , %%ymm1 , %%ymm3 , %%ymm9 \n\t"
236
234
" vblendpd $0x03 , %%ymm2 , %%ymm0 , %%ymm10 \n\t"
237
235
" vblendpd $0x03 , %%ymm3 , %%ymm1 , %%ymm11 \n\t"
238
236
239
- " vpermpd $0xb1 , %%ymm13, %%ymm13 \n\t"
240
- " vpermpd $0xb1 , %%ymm15, %%ymm15 \n\t"
237
+ " vpermilpd $0x05 , %%ymm13, %%ymm13 \n\t"
238
+ " vpermilpd $0x05 , %%ymm15, %%ymm15 \n\t"
241
239
242
240
" vblendpd $0x0a , %%ymm13, %%ymm12, %%ymm0 \n\t"
243
241
" vblendpd $0x05 , %%ymm13, %%ymm12, %%ymm1 \n\t"
244
242
" vblendpd $0x0a , %%ymm15, %%ymm14, %%ymm2 \n\t"
245
243
" vblendpd $0x05 , %%ymm15, %%ymm14, %%ymm3 \n\t"
246
244
247
- " vpermpd $0x1b , %%ymm2 , %%ymm2 \n\t"
248
- " vpermpd $0x1b , %%ymm3 , %%ymm3 \n\t"
249
- " vpermpd $0xb1 , %%ymm2 , %%ymm2 \n\t"
250
- " vpermpd $0xb1 , %%ymm3 , %%ymm3 \n\t"
245
+ " vperm2f128 $0x01 , %%ymm2 , %%ymm2 , %%ymm2 \n\t"
246
+ " vperm2f128 $0x01 , %%ymm3 , %%ymm3 , %%ymm3 \n\t"
251
247
252
248
" vblendpd $0x03 , %%ymm0 , %%ymm2 , %%ymm12 \n\t"
253
249
" vblendpd $0x03 , %%ymm1 , %%ymm3 , %%ymm13 \n\t"
0 commit comments