parent
d573a1180d
commit
7f3582d0f5
@ -1,82 +0,0 @@
|
|||||||
|
|
||||||
#ifdef __aarch64__
|
|
||||||
.text
|
|
||||||
.align 5
|
|
||||||
//.p2align 5,,15
|
|
||||||
.global BiasAdd
|
|
||||||
#ifndef __APPLE__
|
|
||||||
.type BiasAdd, %function
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//void BiasAdd(const float* bias, float* data, size_t oc4, size_t plan_size)
|
|
||||||
|
|
||||||
//Auto: x0:bias, x1: data, x2:oc4,x3: plan_size,
|
|
||||||
|
|
||||||
BiasAdd:
|
|
||||||
cmp x2, #0
|
|
||||||
beq BiasAddEnd
|
|
||||||
|
|
||||||
cmp x3, #0
|
|
||||||
beq BiasAddEnd
|
|
||||||
|
|
||||||
LoopOc4:
|
|
||||||
ld1 {v0.4s}, [x0], #16
|
|
||||||
mov x6, x3
|
|
||||||
mov x5, x1
|
|
||||||
|
|
||||||
Loop16LineIn:
|
|
||||||
cmp x6, #4
|
|
||||||
blt L4
|
|
||||||
sub x6, x6, #4
|
|
||||||
|
|
||||||
ld1 {v1.4s, v2.4s}, [x5], #32
|
|
||||||
|
|
||||||
fadd v5.4s, v0.4s, v1.4s
|
|
||||||
fadd v6.4s, v0.4s, v2.4s
|
|
||||||
ld1 {v3.4s, v4.4s}, [x5], #32
|
|
||||||
|
|
||||||
cmp x6, #4
|
|
||||||
blt Loop16LineOut
|
|
||||||
|
|
||||||
Loop16:
|
|
||||||
st1 {v5.4s, v6.4s}, [x1], #32
|
|
||||||
fadd v7.4s, v0.4s, v3.4s
|
|
||||||
fadd v8.4s, v0.4s, v4.4s
|
|
||||||
ld1 {v1.4s, v2.4s}, [x5], #32
|
|
||||||
|
|
||||||
st1 {v7.4s, v8.4s}, [x1], #32
|
|
||||||
fadd v5.4s, v0.4s, v1.4s
|
|
||||||
fadd v6.4s, v0.4s, v2.4s
|
|
||||||
ld1 {v3.4s, v4.4s}, [x5], #32
|
|
||||||
|
|
||||||
sub x6, x6, #4
|
|
||||||
cmp x6, #4
|
|
||||||
bge Loop16
|
|
||||||
|
|
||||||
Loop16LineOut:
|
|
||||||
st1 {v5.4s, v6.4s}, [x1], #32
|
|
||||||
fadd v7.4s, v0.4s, v3.4s
|
|
||||||
fadd v8.4s, v0.4s, v4.4s
|
|
||||||
|
|
||||||
st1 {v7.4s, v8.4s}, [x1], #32
|
|
||||||
|
|
||||||
L4:
|
|
||||||
cmp x6, #0
|
|
||||||
beq Loop16LineEnd
|
|
||||||
Loop4:
|
|
||||||
ld1 {v1.4s}, [x5], #16
|
|
||||||
fadd v2.4s, v1.4s, v0.4s
|
|
||||||
subs x6, x6, #1
|
|
||||||
st1 {v2.4s}, [x1], #16
|
|
||||||
bne Loop4
|
|
||||||
|
|
||||||
Loop16LineEnd:
|
|
||||||
subs x2, x2, #1
|
|
||||||
bne LoopOc4
|
|
||||||
|
|
||||||
BiasAddEnd:
|
|
||||||
|
|
||||||
ret
|
|
||||||
#endif
|
|
@ -1,94 +0,0 @@
|
|||||||
|
|
||||||
#ifdef __aarch64__
|
|
||||||
.text
|
|
||||||
.align 5
|
|
||||||
//.p2align 5,,15
|
|
||||||
.global BiasAddRelu
|
|
||||||
#ifndef __APPLE__
|
|
||||||
.type BiasAddRelu, %function
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
//void BiasAddRelu(const float* bias, float* data, size_t oc4, size_t plan_size)
|
|
||||||
|
|
||||||
//Auto: x0:bias, x1: data, x2:oc4,x3: plan_size,
|
|
||||||
|
|
||||||
BiasAddRelu:
|
|
||||||
cmp x2, #0
|
|
||||||
beq BiasAddEnd
|
|
||||||
|
|
||||||
cmp x3, #0
|
|
||||||
beq BiasAddEnd
|
|
||||||
|
|
||||||
dup v16.4s, wzr
|
|
||||||
|
|
||||||
LoopOc4:
|
|
||||||
ld1 {v0.4s}, [x0], #16
|
|
||||||
mov x6, x3
|
|
||||||
mov x5, x1
|
|
||||||
|
|
||||||
Loop16LineIn:
|
|
||||||
cmp x6, #4
|
|
||||||
blt L4
|
|
||||||
sub x6, x6, #4
|
|
||||||
|
|
||||||
ld1 {v1.4s, v2.4s}, [x5], #32
|
|
||||||
|
|
||||||
fadd v21.4s, v0.4s, v1.4s
|
|
||||||
fadd v22.4s, v0.4s, v2.4s
|
|
||||||
ld1 {v3.4s, v4.4s}, [x5], #32
|
|
||||||
|
|
||||||
fmax v23.4s, v21.4s, v16.4s
|
|
||||||
fmax v24.4s, v22.4s, v16.4s
|
|
||||||
|
|
||||||
cmp x6, #4
|
|
||||||
blt Loop16LineOut
|
|
||||||
|
|
||||||
Loop16:
|
|
||||||
st1 {v23.4s, v24.4s}, [x1], #32
|
|
||||||
fadd v25.4s, v0.4s, v3.4s
|
|
||||||
fadd v26.4s, v0.4s, v4.4s
|
|
||||||
ld1 {v1.4s, v2.4s}, [x5], #32
|
|
||||||
|
|
||||||
fmax v27.4s, v25.4s, v16.4s
|
|
||||||
fmax v28.4s, v26.4s, v16.4s
|
|
||||||
fadd v21.4s, v0.4s, v1.4s
|
|
||||||
fadd v22.4s, v0.4s, v2.4s
|
|
||||||
|
|
||||||
st1 {v27.4s, v28.4s}, [x1], #32
|
|
||||||
ld1 {v3.4s, v4.4s}, [x5], #32
|
|
||||||
fmax v23.4s, v21.4s, v16.4s
|
|
||||||
fmax v24.4s, v22.4s, v16.4s
|
|
||||||
sub x6, x6, #4
|
|
||||||
cmp x6, #4
|
|
||||||
bge Loop16
|
|
||||||
|
|
||||||
Loop16LineOut:
|
|
||||||
st1 {v23.4s, v24.4s}, [x1], #32
|
|
||||||
fadd v25.4s, v0.4s, v3.4s
|
|
||||||
fadd v26.4s, v0.4s, v4.4s
|
|
||||||
|
|
||||||
fmax v27.4s, v25.4s, v16.4s
|
|
||||||
fmax v28.4s, v26.4s, v16.4s
|
|
||||||
st1 {v27.4s, v28.4s}, [x1], #32
|
|
||||||
|
|
||||||
L4:
|
|
||||||
cmp x6, #0
|
|
||||||
beq Loop16LineEnd
|
|
||||||
Loop4:
|
|
||||||
ld1 {v1.4s}, [x5], #16
|
|
||||||
fadd v1.4s, v1.4s, v0.4s
|
|
||||||
fmax v1.4s, v1.4s, v16.4s
|
|
||||||
|
|
||||||
subs x6, x6, #1
|
|
||||||
st1 {v1.4s}, [x1], #16
|
|
||||||
bne Loop4
|
|
||||||
|
|
||||||
Loop16LineEnd:
|
|
||||||
subs x2, x2, #1
|
|
||||||
bne LoopOc4
|
|
||||||
|
|
||||||
BiasAddEnd:
|
|
||||||
|
|
||||||
ret
|
|
||||||
#endif
|
|
@ -1,113 +0,0 @@
|
|||||||
|
|
||||||
#ifdef __aarch64__
|
|
||||||
.text
|
|
||||||
.align 5
|
|
||||||
//.p2align 5,,15
|
|
||||||
.global BiasAddRelu6
|
|
||||||
#ifndef __APPLE__
|
|
||||||
.type BiasAddRelu6, %function
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//void BiasAddRelu6(const float* bias, float* data, size_t oc4, size_t plan_size)
|
|
||||||
|
|
||||||
//Auto: x0:bias, x1: data, x2:oc4,x3: plan_size,
|
|
||||||
|
|
||||||
BiasAddRelu6:
|
|
||||||
cmp x2, #0
|
|
||||||
beq BiasAddEnd
|
|
||||||
|
|
||||||
cmp x3, #0
|
|
||||||
beq BiasAddEnd
|
|
||||||
|
|
||||||
dup v16.4s, wzr
|
|
||||||
movi v17.4s, #6
|
|
||||||
scvtf v17.4s, v17.4s
|
|
||||||
|
|
||||||
LoopOc4:
|
|
||||||
ld1 {v0.4s}, [x0], #16
|
|
||||||
mov x6, x3
|
|
||||||
mov x5, x1
|
|
||||||
|
|
||||||
Loop16LineIn:
|
|
||||||
cmp x6, #4
|
|
||||||
blt L4
|
|
||||||
sub x6, x6, #4
|
|
||||||
|
|
||||||
ld1 {v1.4s, v2.4s}, [x5], #32
|
|
||||||
|
|
||||||
fadd v21.4s, v0.4s, v1.4s
|
|
||||||
fadd v22.4s, v0.4s, v2.4s
|
|
||||||
ld1 {v3.4s, v4.4s}, [x5], #32
|
|
||||||
|
|
||||||
fmax v23.4s, v21.4s, v16.4s
|
|
||||||
fmax v24.4s, v22.4s, v16.4s
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
cmp x6, #4
|
|
||||||
blt Loop16LineOut
|
|
||||||
|
|
||||||
Loop16:
|
|
||||||
fmin v23.4s, v23.4s, v17.4s
|
|
||||||
fmin v24.4s, v24.4s, v17.4s
|
|
||||||
fadd v25.4s, v0.4s, v3.4s
|
|
||||||
fadd v26.4s, v0.4s, v4.4s
|
|
||||||
ld1 {v1.4s, v2.4s}, [x5], #32
|
|
||||||
|
|
||||||
st1 {v23.4s, v24.4s}, [x1], #32
|
|
||||||
fmax v27.4s, v25.4s, v16.4s
|
|
||||||
fmax v28.4s, v26.4s, v16.4s
|
|
||||||
fadd v21.4s, v0.4s, v1.4s
|
|
||||||
fadd v22.4s, v0.4s, v2.4s
|
|
||||||
|
|
||||||
fmin v27.4s, v27.4s, v17.4s
|
|
||||||
fmin v28.4s, v28.4s, v17.4s
|
|
||||||
fmax v23.4s, v21.4s, v16.4s
|
|
||||||
fmax v24.4s, v22.4s, v16.4s
|
|
||||||
ld1 {v3.4s, v4.4s}, [x5], #32
|
|
||||||
|
|
||||||
st1 {v27.4s, v28.4s}, [x1], #32
|
|
||||||
|
|
||||||
|
|
||||||
sub x6, x6, #4
|
|
||||||
cmp x6, #4
|
|
||||||
bge Loop16
|
|
||||||
|
|
||||||
Loop16LineOut:
|
|
||||||
fmin v23.4s, v23.4s, v17.4s
|
|
||||||
fmin v24.4s, v24.4s, v17.4s
|
|
||||||
fadd v25.4s, v0.4s, v3.4s
|
|
||||||
fadd v26.4s, v0.4s, v4.4s
|
|
||||||
|
|
||||||
fmax v27.4s, v25.4s, v16.4s
|
|
||||||
fmax v28.4s, v26.4s, v16.4s
|
|
||||||
st1 {v23.4s, v24.4s}, [x1], #32
|
|
||||||
|
|
||||||
fmin v27.4s, v27.4s, v17.4s
|
|
||||||
fmin v28.4s, v28.4s, v17.4s
|
|
||||||
|
|
||||||
st1 {v27.4s, v28.4s}, [x1], #32
|
|
||||||
|
|
||||||
L4:
|
|
||||||
cmp x6, #0
|
|
||||||
beq Loop16LineEnd
|
|
||||||
Loop4:
|
|
||||||
ld1 {v1.4s}, [x5], #16
|
|
||||||
fadd v1.4s, v1.4s, v0.4s
|
|
||||||
fmax v1.4s, v1.4s, v16.4s
|
|
||||||
fmin v1.4s, v1.4s, v17.4s
|
|
||||||
|
|
||||||
subs x6, x6, #1
|
|
||||||
st1 {v1.4s}, [x1], #16
|
|
||||||
bne Loop4
|
|
||||||
|
|
||||||
Loop16LineEnd:
|
|
||||||
subs x2, x2, #1
|
|
||||||
bne LoopOc4
|
|
||||||
|
|
||||||
BiasAddEnd:
|
|
||||||
|
|
||||||
ret
|
|
||||||
#endif
|
|
@ -1,73 +0,0 @@
|
|||||||
|
|
||||||
#ifdef __aarch64__
|
|
||||||
.text
|
|
||||||
.align 5
|
|
||||||
//.p2align 5,,15
|
|
||||||
.global Relu
|
|
||||||
#ifndef __APPLE__
|
|
||||||
.type Relu, %function
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
//void Relu(float* data, size_t element4)
|
|
||||||
|
|
||||||
//Auto: x0:data, x1: element4
|
|
||||||
|
|
||||||
Relu:
|
|
||||||
cmp x1, #0
|
|
||||||
beq ReluEnd
|
|
||||||
|
|
||||||
dup v16.4s, wzr
|
|
||||||
|
|
||||||
mov x5, x0
|
|
||||||
|
|
||||||
Loop16LineIn:
|
|
||||||
cmp x1, #4
|
|
||||||
blt L4
|
|
||||||
sub x1, x1, #4
|
|
||||||
|
|
||||||
ld1 {v1.4s, v2.4s}, [x5], #32
|
|
||||||
|
|
||||||
fmax v5.4s, v16.4s, v1.4s
|
|
||||||
fmax v6.4s, v16.4s, v2.4s
|
|
||||||
ld1 {v3.4s, v4.4s}, [x5], #32
|
|
||||||
|
|
||||||
cmp x1, #4
|
|
||||||
blt Loop16LineOut
|
|
||||||
|
|
||||||
Loop16:
|
|
||||||
st1 {v5.4s, v6.4s}, [x0], #32
|
|
||||||
fmax v7.4s, v16.4s, v3.4s
|
|
||||||
fmax v8.4s, v16.4s, v4.4s
|
|
||||||
ld1 {v1.4s, v2.4s}, [x5], #32
|
|
||||||
|
|
||||||
st1 {v7.4s, v8.4s}, [x0], #32
|
|
||||||
fmax v5.4s, v16.4s, v1.4s
|
|
||||||
fmax v6.4s, v16.4s, v2.4s
|
|
||||||
ld1 {v3.4s, v4.4s}, [x5], #32
|
|
||||||
|
|
||||||
sub x1, x1, #4
|
|
||||||
cmp x1, #4
|
|
||||||
bge Loop16
|
|
||||||
|
|
||||||
Loop16LineOut:
|
|
||||||
st1 {v5.4s, v6.4s}, [x0], #32
|
|
||||||
fmax v7.4s, v16.4s, v3.4s
|
|
||||||
fmax v8.4s, v16.4s, v4.4s
|
|
||||||
|
|
||||||
st1 {v7.4s, v8.4s}, [x0], #32
|
|
||||||
|
|
||||||
L4:
|
|
||||||
cmp x1, #0
|
|
||||||
beq ReluEnd
|
|
||||||
Loop4:
|
|
||||||
ld1 {v1.4s}, [x5], #16
|
|
||||||
fmax v2.4s, v16.4s, v0.4s
|
|
||||||
subs x1, x1, #1
|
|
||||||
st1 {v2.4s}, [x0], #16
|
|
||||||
bne Loop4
|
|
||||||
|
|
||||||
ReluEnd:
|
|
||||||
|
|
||||||
ret
|
|
||||||
#endif
|
|
@ -1,89 +0,0 @@
|
|||||||
|
|
||||||
#ifdef __aarch64__
|
|
||||||
.text
|
|
||||||
.align 5
|
|
||||||
//.p2align 5,,15
|
|
||||||
.global Relu6
|
|
||||||
#ifndef __APPLE__
|
|
||||||
.type Relu6, %function
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
//void Relu6(float* data, size_t element4)
|
|
||||||
|
|
||||||
//Auto: x0:data, x1: element4
|
|
||||||
|
|
||||||
Relu6:
|
|
||||||
cmp x1, #0
|
|
||||||
beq Relu6End
|
|
||||||
|
|
||||||
dup v16.4s, wzr
|
|
||||||
movi v17.4s, #6
|
|
||||||
scvtf v17.4s, v17.4s
|
|
||||||
|
|
||||||
mov x5, x0
|
|
||||||
|
|
||||||
Loop16LineIn:
|
|
||||||
cmp x1, #4
|
|
||||||
blt L4
|
|
||||||
sub x1, x1, #4
|
|
||||||
|
|
||||||
ld1 {v1.4s, v2.4s}, [x5], #32
|
|
||||||
|
|
||||||
fmax v21.4s, v1.4s, v16.4s
|
|
||||||
fmax v22.4s, v2.4s, v16.4s
|
|
||||||
ld1 {v3.4s, v4.4s}, [x5], #32
|
|
||||||
|
|
||||||
fmin v23.4s, v21.4s, v17.4s
|
|
||||||
fmin v24.4s, v22.4s, v17.4s
|
|
||||||
|
|
||||||
|
|
||||||
cmp x1, #4
|
|
||||||
blt Loop16LineOut
|
|
||||||
|
|
||||||
Loop16:
|
|
||||||
st1 {v23.4s, v24.4s}, [x0], #32
|
|
||||||
fmax v25.4s, v3.4s, v16.4s
|
|
||||||
fmax v26.4s, v4.4s, v16.4s
|
|
||||||
ld1 {v1.4s, v2.4s}, [x5], #32
|
|
||||||
|
|
||||||
fmin v27.4s, v25.4s, v17.4s
|
|
||||||
fmin v28.4s, v26.4s, v17.4s
|
|
||||||
fmax v21.4s, v1.4s, v16.4s
|
|
||||||
fmax v22.4s, v2.4s, v16.4s
|
|
||||||
|
|
||||||
st1 {v27.4s, v28.4s}, [x0], #32
|
|
||||||
ld1 {v3.4s, v4.4s}, [x5], #32
|
|
||||||
fmin v23.4s, v21.4s, v17.4s
|
|
||||||
fmin v24.4s, v22.4s, v17.4s
|
|
||||||
|
|
||||||
sub x1, x1, #4
|
|
||||||
cmp x1, #4
|
|
||||||
bge Loop16
|
|
||||||
|
|
||||||
Loop16LineOut:
|
|
||||||
st1 {v23.4s, v24.4s}, [x0], #32
|
|
||||||
fmax v25.4s, v3.4s, v16.4s
|
|
||||||
fmax v26.4s, v4.4s, v16.4s
|
|
||||||
|
|
||||||
fmin v27.4s, v25.4s, v17.4s
|
|
||||||
fmin v28.4s, v26.4s, v17.4s
|
|
||||||
st1 {v27.4s, v28.4s}, [x0], #32
|
|
||||||
|
|
||||||
L4:
|
|
||||||
cmp x1, #0
|
|
||||||
beq Relu6End
|
|
||||||
Loop4:
|
|
||||||
ld1 {v1.4s}, [x5], #16
|
|
||||||
fmax v1.4s, v1.4s, v16.4s
|
|
||||||
|
|
||||||
fmin v1.4s, v1.4s, v17.4s
|
|
||||||
|
|
||||||
subs x1, x1, #1
|
|
||||||
st1 {v1.4s}, [x0], #16
|
|
||||||
bne Loop4
|
|
||||||
|
|
||||||
Relu6End:
|
|
||||||
|
|
||||||
ret
|
|
||||||
#endif
|
|
Loading…
Reference in new issue