summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorMartin Kroeker <martin@ruby.chemie.uni-freiburg.de>2019-08-09 07:55:20 +0200
committerGitHub <noreply@github.com>2019-08-09 07:55:20 +0200
commitdccff2e7859cf0dc18e37f5f696dfbf3cca221a8 (patch)
tree187aa5a3cd6bea9e2eca846afdbe449facc9f38a /kernel
parent5c3458a6e78f6c7bd7365372e15adc82c5f3badb (diff)
parent2dfb804cb943ac12035fe51859d109daca76b4f4 (diff)
downloadopenblas-dccff2e7859cf0dc18e37f5f696dfbf3cca221a8.tar.gz
openblas-dccff2e7859cf0dc18e37f5f696dfbf3cca221a8.tar.bz2
openblas-dccff2e7859cf0dc18e37f5f696dfbf3cca221a8.zip
Merge pull request #2206 from martin-frbg/zen-dtrmm
Replace vpermpd with vpermilpd in the Haswell DTRMM kernel
Diffstat (limited to 'kernel')
-rw-r--r--kernel/x86_64/dtrmm_kernel_4x8_haswell.c24
1 files changed, 10 insertions, 14 deletions
diff --git a/kernel/x86_64/dtrmm_kernel_4x8_haswell.c b/kernel/x86_64/dtrmm_kernel_4x8_haswell.c
index 651736b89..2acdc4615 100644
--- a/kernel/x86_64/dtrmm_kernel_4x8_haswell.c
+++ b/kernel/x86_64/dtrmm_kernel_4x8_haswell.c
@@ -33,7 +33,7 @@ static void dtrmm_kernel_4x8( BLASLONG n, FLOAT *alpha ,FLOAT *a, FLOAT *b, FLOA
" vfmadd231pd %%ymm0 , %%ymm1 , %%ymm4 \n\t"
" vfmadd231pd %%ymm0 , %%ymm2 , %%ymm8 \n\t"
- " vpermpd $0xb1 , %%ymm0 , %%ymm0 \n\t"
+ " vpermilpd $0x05 , %%ymm0 , %%ymm0 \n\t"
" vfmadd231pd %%ymm0 , %%ymm1 , %%ymm5 \n\t"
" vfmadd231pd %%ymm0 , %%ymm2 , %%ymm9 \n\t"
@@ -41,7 +41,7 @@ static void dtrmm_kernel_4x8( BLASLONG n, FLOAT *alpha ,FLOAT *a, FLOAT *b, FLOA
" vfmadd231pd %%ymm0 , %%ymm1 , %%ymm6 \n\t"
" vfmadd231pd %%ymm0 , %%ymm2 , %%ymm10 \n\t"
- " vpermpd $0xb1 , %%ymm0 , %%ymm0 \n\t"
+ " vpermilpd $0x05 , %%ymm0 , %%ymm0 \n\t"
" vfmadd231pd %%ymm0 , %%ymm1 , %%ymm7 \n\t"
" vfmadd231pd %%ymm0 , %%ymm2 , %%ymm11 \n\t"
@@ -62,18 +62,16 @@ static void dtrmm_kernel_4x8( BLASLONG n, FLOAT *alpha ,FLOAT *a, FLOAT *b, FLOA
" vmulpd %%ymm0 , %%ymm10, %%ymm10 \n\t"
" vmulpd %%ymm0 , %%ymm11, %%ymm11 \n\t"
- " vpermpd $0xb1 , %%ymm5 , %%ymm5 \n\t"
- " vpermpd $0xb1 , %%ymm7 , %%ymm7 \n\t"
+ " vpermilpd $0x05 , %%ymm5 , %%ymm5 \n\t"
+ " vpermilpd $0x05 , %%ymm7 , %%ymm7 \n\t"
" vblendpd $0x0a , %%ymm5 , %%ymm4 , %%ymm0 \n\t"
" vblendpd $0x05 , %%ymm5 , %%ymm4 , %%ymm1 \n\t"
" vblendpd $0x0a , %%ymm7 , %%ymm6 , %%ymm2 \n\t"
" vblendpd $0x05 , %%ymm7 , %%ymm6 , %%ymm3 \n\t"
- " vpermpd $0x1b , %%ymm2 , %%ymm2 \n\t"
- " vpermpd $0x1b , %%ymm3 , %%ymm3 \n\t"
- " vpermpd $0xb1 , %%ymm2 , %%ymm2 \n\t"
- " vpermpd $0xb1 , %%ymm3 , %%ymm3 \n\t"
+ " vperm2f128 $0x01 , %%ymm2 , %%ymm2 , %%ymm2 \n\t"
+ " vperm2f128 $0x01 , %%ymm3 , %%ymm3 , %%ymm3 \n\t"
" vblendpd $0x03 , %%ymm0 , %%ymm2 , %%ymm4 \n\t"
" 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
" vmovups %%ymm6 , (%7) \n\t"
" vmovups %%ymm7 , (%8) \n\t"
- " vpermpd $0xb1 , %%ymm9 , %%ymm9 \n\t"
- " vpermpd $0xb1 , %%ymm11, %%ymm11 \n\t"
+ " vpermilpd $0x05 , %%ymm9 , %%ymm9 \n\t"
+ " vpermilpd $0x05 , %%ymm11, %%ymm11 \n\t"
" vblendpd $0x0a , %%ymm9 , %%ymm8 , %%ymm0 \n\t"
" vblendpd $0x05 , %%ymm9 , %%ymm8 , %%ymm1 \n\t"
" vblendpd $0x0a , %%ymm11, %%ymm10, %%ymm2 \n\t"
" vblendpd $0x05 , %%ymm11, %%ymm10, %%ymm3 \n\t"
- " vpermpd $0x1b , %%ymm2 , %%ymm2 \n\t"
- " vpermpd $0x1b , %%ymm3 , %%ymm3 \n\t"
- " vpermpd $0xb1 , %%ymm2 , %%ymm2 \n\t"
- " vpermpd $0xb1 , %%ymm3 , %%ymm3 \n\t"
+ " vperm2f128 $0x01 , %%ymm2 , %%ymm2 , %%ymm2 \n\t"
+ " vperm2f128 $0x01 , %%ymm3 , %%ymm3 , %%ymm3 \n\t"
" vblendpd $0x03 , %%ymm0 , %%ymm2 , %%ymm4 \n\t"
" vblendpd $0x03 , %%ymm1 , %%ymm3 , %%ymm5 \n\t"