From 288d1a3f6e44562702cfd780ed0a0f5536035a35 Mon Sep 17 00:00:00 2001
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Date: Sun, 25 Feb 2018 19:45:16 +0100
Subject: [PATCH 1/5] Use dot.S also for DSDOT on ARMV8

---
 kernel/arm64/KERNEL.ARMV8 | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/arm64/KERNEL.ARMV8 b/kernel/arm64/KERNEL.ARMV8
index 05c7eeef9b..d057546280 100644
--- a/kernel/arm64/KERNEL.ARMV8
+++ b/kernel/arm64/KERNEL.ARMV8
@@ -49,6 +49,7 @@ SDOTKERNEL   = dot.S
 DDOTKERNEL   = dot.S
 CDOTKERNEL   = zdot.S
 ZDOTKERNEL   = zdot.S
+DSDOTKERNEL  = dot.S
 
 SNRM2KERNEL  = nrm2.S
 DNRM2KERNEL  = nrm2.S

From c9d408064add1fe605ed055118e36d0158582737 Mon Sep 17 00:00:00 2001
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Date: Sun, 25 Feb 2018 19:48:09 +0100
Subject: [PATCH 2/5] Use dot.S also for DSDOT on CORTEXA57

---
 kernel/arm64/KERNEL.CORTEXA57 | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/arm64/KERNEL.CORTEXA57 b/kernel/arm64/KERNEL.CORTEXA57
index 2bf88867e7..371e488cdb 100644
--- a/kernel/arm64/KERNEL.CORTEXA57
+++ b/kernel/arm64/KERNEL.CORTEXA57
@@ -29,6 +29,7 @@ SDOTKERNEL   = dot.S
 DDOTKERNEL   = dot.S
 CDOTKERNEL   = zdot.S
 ZDOTKERNEL   = zdot.S
+DSDOTKERNEL  = dot.S
 
 SNRM2KERNEL  = nrm2.S
 DNRM2KERNEL  = nrm2.S

From e207107150d7f6affc94f8da8eec26b35682c507 Mon Sep 17 00:00:00 2001
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Date: Sun, 25 Feb 2018 19:51:25 +0100
Subject: [PATCH 3/5] Use generic/dot.c for DSDOT on z13

The implementation in arm/dot.c has lower precision, as shown by the utest for dsdot.
---
 kernel/zarch/KERNEL.Z13 | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/zarch/KERNEL.Z13 b/kernel/zarch/KERNEL.Z13
index 8e5c3706a2..add628bfe1 100644
--- a/kernel/zarch/KERNEL.Z13
+++ b/kernel/zarch/KERNEL.Z13
@@ -49,6 +49,7 @@ SDOTKERNEL   = ../arm/dot.c
 DDOTKERNEL   = ddot.c
 CDOTKERNEL   = ../arm/zdot.c
 ZDOTKERNEL   = zdot.c
+DSDOTKERNEL  = ../generic/dot.c
 
 SNRM2KERNEL  = ../arm/nrm2.c
 DNRM2KERNEL  = ../arm/nrm2.c

From 58f236ad730fbb59ce59c95dd19a6f371ea885f9 Mon Sep 17 00:00:00 2001
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Date: Sun, 25 Feb 2018 19:52:14 +0100
Subject: [PATCH 4/5] Use generic/dot.c for DSDOT on zarch

---
 kernel/zarch/KERNEL.ZARCH_GENERIC | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/zarch/KERNEL.ZARCH_GENERIC b/kernel/zarch/KERNEL.ZARCH_GENERIC
index d80f84e711..848ee9b548 100644
--- a/kernel/zarch/KERNEL.ZARCH_GENERIC
+++ b/kernel/zarch/KERNEL.ZARCH_GENERIC
@@ -49,6 +49,7 @@ SDOTKERNEL   = ../arm/dot.c
 DDOTKERNEL   = ../arm/dot.c
 CDOTKERNEL   = ../arm/zdot.c
 ZDOTKERNEL   = ../arm/zdot.c
+DSDOTKERNEL  = ../generic/dot.c
 
 SNRM2KERNEL  = ../arm/nrm2.c
 DNRM2KERNEL  = ../arm/nrm2.c

From 6e70287776b6679f27f92912f940c6a4632346da Mon Sep 17 00:00:00 2001
From: Martin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Date: Sun, 25 Feb 2018 19:57:23 +0100
Subject: [PATCH 5/5] Use generic/dot.c for DSDOT on ARMV5 and above

The default arm/dot.c is less precise when used for DSDOT, as shown by utest
---
 kernel/arm/KERNEL.ARMV5 | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/arm/KERNEL.ARMV5 b/kernel/arm/KERNEL.ARMV5
index 27157dad1c..10808e2d93 100644
--- a/kernel/arm/KERNEL.ARMV5
+++ b/kernel/arm/KERNEL.ARMV5
@@ -49,6 +49,7 @@ SDOTKERNEL   = ../arm/dot.c
 DDOTKERNEL   = ../arm/dot.c
 CDOTKERNEL   = ../arm/zdot.c
 ZDOTKERNEL   = ../arm/zdot.c
+DSDOTKERNEL  = ../generic/dot.c
 
 SNRM2KERNEL  = ../arm/nrm2.c
 DNRM2KERNEL  = ../arm/nrm2.c