Skip to content

Commit dccff2e

Browse files
authored
Merge pull request #2206 from martin-frbg/zen-dtrmm
Replace vpermpd with vpermilpd in the Haswell DTRMM kernel
2 parents 5c3458a + 2dfb804 commit dccff2e

File tree

1 file changed

+10
-14
lines changed

1 file changed

+10
-14
lines changed

kernel/x86_64/dtrmm_kernel_4x8_haswell.c

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,15 @@ static void dtrmm_kernel_4x8( BLASLONG n, FLOAT *alpha ,FLOAT *a, FLOAT *b, FLOA
3333
" vfmadd231pd %%ymm0 , %%ymm1 , %%ymm4 \n\t"
3434
" vfmadd231pd %%ymm0 , %%ymm2 , %%ymm8 \n\t"
3535

36-
" vpermpd $0xb1 , %%ymm0 , %%ymm0 \n\t"
36+
" vpermilpd $0x05 , %%ymm0 , %%ymm0 \n\t"
3737
" vfmadd231pd %%ymm0 , %%ymm1 , %%ymm5 \n\t"
3838
" vfmadd231pd %%ymm0 , %%ymm2 , %%ymm9 \n\t"
3939

4040
" vpermpd $0x1b , %%ymm0 , %%ymm0 \n\t"
4141
" vfmadd231pd %%ymm0 , %%ymm1 , %%ymm6 \n\t"
4242
" vfmadd231pd %%ymm0 , %%ymm2 , %%ymm10 \n\t"
4343

44-
" vpermpd $0xb1 , %%ymm0 , %%ymm0 \n\t"
44+
" vpermilpd $0x05 , %%ymm0 , %%ymm0 \n\t"
4545
" vfmadd231pd %%ymm0 , %%ymm1 , %%ymm7 \n\t"
4646
" vfmadd231pd %%ymm0 , %%ymm2 , %%ymm11 \n\t"
4747

@@ -62,18 +62,16 @@ static void dtrmm_kernel_4x8( BLASLONG n, FLOAT *alpha ,FLOAT *a, FLOAT *b, FLOA
6262
" vmulpd %%ymm0 , %%ymm10, %%ymm10 \n\t"
6363
" vmulpd %%ymm0 , %%ymm11, %%ymm11 \n\t"
6464

65-
" vpermpd $0xb1 , %%ymm5 , %%ymm5 \n\t"
66-
" vpermpd $0xb1 , %%ymm7 , %%ymm7 \n\t"
65+
" vpermilpd $0x05 , %%ymm5 , %%ymm5 \n\t"
66+
" vpermilpd $0x05 , %%ymm7 , %%ymm7 \n\t"
6767

6868
" vblendpd $0x0a , %%ymm5 , %%ymm4 , %%ymm0 \n\t"
6969
" vblendpd $0x05 , %%ymm5 , %%ymm4 , %%ymm1 \n\t"
7070
" vblendpd $0x0a , %%ymm7 , %%ymm6 , %%ymm2 \n\t"
7171
" vblendpd $0x05 , %%ymm7 , %%ymm6 , %%ymm3 \n\t"
7272

73-
" vpermpd $0x1b , %%ymm2 , %%ymm2 \n\t"
74-
" vpermpd $0x1b , %%ymm3 , %%ymm3 \n\t"
75-
" vpermpd $0xb1 , %%ymm2 , %%ymm2 \n\t"
76-
" vpermpd $0xb1 , %%ymm3 , %%ymm3 \n\t"
73+
" vperm2f128 $0x01 , %%ymm2 , %%ymm2 , %%ymm2 \n\t"
74+
" vperm2f128 $0x01 , %%ymm3 , %%ymm3 , %%ymm3 \n\t"
7775

7876
" vblendpd $0x03 , %%ymm0 , %%ymm2 , %%ymm4 \n\t"
7977
" vblendpd $0x03 , %%ymm1 , %%ymm3 , %%ymm5 \n\t"
@@ -85,18 +83,16 @@ static void dtrmm_kernel_4x8( BLASLONG n, FLOAT *alpha ,FLOAT *a, FLOAT *b, FLOA
8583
" vmovups %%ymm6 , (%7) \n\t"
8684
" vmovups %%ymm7 , (%8) \n\t"
8785

88-
" vpermpd $0xb1 , %%ymm9 , %%ymm9 \n\t"
89-
" vpermpd $0xb1 , %%ymm11, %%ymm11 \n\t"
86+
" vpermilpd $0x05 , %%ymm9 , %%ymm9 \n\t"
87+
" vpermilpd $0x05 , %%ymm11, %%ymm11 \n\t"
9088

9189
" vblendpd $0x0a , %%ymm9 , %%ymm8 , %%ymm0 \n\t"
9290
" vblendpd $0x05 , %%ymm9 , %%ymm8 , %%ymm1 \n\t"
9391
" vblendpd $0x0a , %%ymm11, %%ymm10, %%ymm2 \n\t"
9492
" vblendpd $0x05 , %%ymm11, %%ymm10, %%ymm3 \n\t"
9593

96-
" vpermpd $0x1b , %%ymm2 , %%ymm2 \n\t"
97-
" vpermpd $0x1b , %%ymm3 , %%ymm3 \n\t"
98-
" vpermpd $0xb1 , %%ymm2 , %%ymm2 \n\t"
99-
" vpermpd $0xb1 , %%ymm3 , %%ymm3 \n\t"
94+
" vperm2f128 $0x01 , %%ymm2 , %%ymm2 , %%ymm2 \n\t"
95+
" vperm2f128 $0x01 , %%ymm3 , %%ymm3 , %%ymm3 \n\t"
10096

10197
" vblendpd $0x03 , %%ymm0 , %%ymm2 , %%ymm4 \n\t"
10298
" vblendpd $0x03 , %%ymm1 , %%ymm3 , %%ymm5 \n\t"

0 commit comments

Comments
 (0)