aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Mansell <David.Mansell@arm.com>2018-02-14 11:32:08 +0000
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:47:18 +0000
commitf29975848a384fc127cf5401683fc246bab0d903 (patch)
tree75fe8ff67b575208d8c56d9d28eb8c4dec3c31e5
parent59716fa47f43b2e85e12fb52d9d56794f7c8e41c (diff)
downloadComputeLibrary-f29975848a384fc127cf5401683fc246bab0d903.tar.gz
COMPMID-918: AArch32 SGEMM generic kernel fix.
This kernel was missing the test for zero iterations of main loop, added it. Change-Id: I661066ee4644f83a847ee7cbd9b8c9642d175744 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/120278 Reviewed-by: Pablo Tello <pablo.tello@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
-rw-r--r--arm_compute/core/NEON/kernels/assembly/kernels/a32_sgemm_8x6/generic.hpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/arm_compute/core/NEON/kernels/assembly/kernels/a32_sgemm_8x6/generic.hpp b/arm_compute/core/NEON/kernels/assembly/kernels/a32_sgemm_8x6/generic.hpp
index bdeba91471..7a44fed5b2 100644
--- a/arm_compute/core/NEON/kernels/assembly/kernels/a32_sgemm_8x6/generic.hpp
+++ b/arm_compute/core/NEON/kernels/assembly/kernels/a32_sgemm_8x6/generic.hpp
@@ -75,6 +75,9 @@ inline void a32_sgemm_8x6(const float *Apanel, const float *Bpanel, float *Cpane
ASM_PREFETCH("[%[b_ptr], #176]")
"vmov.i32 q15, #0\n"
+ "cmp %[k], #0\n"
+ "beq 6f\n"
+
"1:\n"
// Unroll 0
"vmla.f32 q4, q2, d0[0]\n"
@@ -156,6 +159,9 @@ inline void a32_sgemm_8x6(const float *Apanel, const float *Bpanel, float *Cpane
"vmla.f32 q15, q3, d3[1]\n"
"bne 1b\n"
+ // Branch here if we never execute main loop.
+ "6:\n"
+
// "Tails" shows how many multiply blocks are needed at the
// end, must be 1-4 inclusive. Bail out to alternative tail
// immediately if it's 1.