diff options
author | David Mansell <David.Mansell@arm.com> | 2018-02-14 11:32:08 +0000 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:47:18 +0000 |
commit | f29975848a384fc127cf5401683fc246bab0d903 (patch) | |
tree | 75fe8ff67b575208d8c56d9d28eb8c4dec3c31e5 /arm_compute | |
parent | 59716fa47f43b2e85e12fb52d9d56794f7c8e41c (diff) | |
download | ComputeLibrary-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>
Diffstat (limited to 'arm_compute')
-rw-r--r-- | arm_compute/core/NEON/kernels/assembly/kernels/a32_sgemm_8x6/generic.hpp | 6 |
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. |