From f29975848a384fc127cf5401683fc246bab0d903 Mon Sep 17 00:00:00 2001 From: David Mansell Date: Wed, 14 Feb 2018 11:32:08 +0000 Subject: 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 Reviewed-by: Anthony Barbier Tested-by: Jenkins --- .../core/NEON/kernels/assembly/kernels/a32_sgemm_8x6/generic.hpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'arm_compute/core/NEON') 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. -- cgit v1.2.1