aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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.