1//
2//  MNNMinFloat.S
3//  MNN
4//
5//  Created by MNN on 2018/09/06.
6//  Copyright © 2018, Alibaba Group Holding Limited
7//
8
9#ifdef __arm__
10#ifndef __aarch64__
11
12#include "MNNAsmGlobal.h"
13
14.text
15.align 5
16
17asm_function MNNMinFloat
18//void MNNMinFloat(float* input, float * minBuffer, int32_t inputCountUnit);
19
20push {r4-r11, lr}
21
22//Auto: r0: input, r1:minBuffer, r2: inputCountUnit
23
24//q15 : min
25vld1.f32 {q15}, [r1]
26cmp r2, #0
27beq End
28Loop:
29    vld1.f32 {q0}, [r0]!
30    vmin.f32 q15, q0, q15
31    vld1.f32 {q1}, [r0]!
32    vmin.f32 q15, q1, q15
33    subs r2, r2, #1
34    bne Loop
35
36vst1.f32 {q15}, [r1]
37
38End:
39pop {r4-r11, pc}
40
41#endif
42#endif
43