diff options
Diffstat (limited to 'libswresample/aarch64/resample.S')
-rw-r--r-- | libswresample/aarch64/resample.S | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/libswresample/aarch64/resample.S b/libswresample/aarch64/resample.S index bbad619a81..114d1216fb 100644 --- a/libswresample/aarch64/resample.S +++ b/libswresample/aarch64/resample.S @@ -21,57 +21,57 @@ #include "libavutil/aarch64/asm.S" function ff_resample_common_apply_filter_x4_float_neon, export=1 - movi v0.4S, #0 // accumulator -1: ld1 {v1.4S}, [x1], #16 // src[0..3] - ld1 {v2.4S}, [x2], #16 // filter[0..3] - fmla v0.4S, v1.4S, v2.4S // accumulator += src[0..3] * filter[0..3] + movi v0.4s, #0 // accumulator +1: ld1 {v1.4s}, [x1], #16 // src[0..3] + ld1 {v2.4s}, [x2], #16 // filter[0..3] + fmla v0.4s, v1.4s, v2.4s // accumulator += src[0..3] * filter[0..3] subs w3, w3, #4 // filter_length -= 4 b.gt 1b // loop until filter_length - faddp v0.4S, v0.4S, v0.4S // pair adding of the 4x32-bit accumulated values - faddp v0.4S, v0.4S, v0.4S // pair adding of the 4x32-bit accumulated values - st1 {v0.S}[0], [x0], #4 // write accumulator + faddp v0.4s, v0.4s, v0.4s // pair adding of the 4x32-bit accumulated values + faddp v0.4s, v0.4s, v0.4s // pair adding of the 4x32-bit accumulated values + st1 {v0.s}[0], [x0], #4 // write accumulator ret endfunc function ff_resample_common_apply_filter_x8_float_neon, export=1 - movi v0.4S, #0 // accumulator -1: ld1 {v1.4S}, [x1], #16 // src[0..3] - ld1 {v2.4S}, [x2], #16 // filter[0..3] - ld1 {v3.4S}, [x1], #16 // src[4..7] - ld1 {v4.4S}, [x2], #16 // filter[4..7] - fmla v0.4S, v1.4S, v2.4S // accumulator += src[0..3] * filter[0..3] - fmla v0.4S, v3.4S, v4.4S // accumulator += src[4..7] * filter[4..7] + movi v0.4s, #0 // accumulator +1: ld1 {v1.4s}, [x1], #16 // src[0..3] + ld1 {v2.4s}, [x2], #16 // filter[0..3] + ld1 {v3.4s}, [x1], #16 // src[4..7] + ld1 {v4.4s}, [x2], #16 // filter[4..7] + fmla v0.4s, v1.4s, v2.4s // accumulator += src[0..3] * filter[0..3] + fmla v0.4s, v3.4s, v4.4s // accumulator += src[4..7] * filter[4..7] subs w3, w3, #8 // filter_length -= 8 b.gt 1b // loop until filter_length - faddp v0.4S, v0.4S, v0.4S // pair adding of the 4x32-bit accumulated values - faddp v0.4S, v0.4S, v0.4S // pair adding of the 4x32-bit accumulated values - st1 {v0.S}[0], [x0], #4 // write accumulator + faddp v0.4s, v0.4s, v0.4s // pair adding of the 4x32-bit accumulated values + faddp v0.4s, v0.4s, v0.4s // pair adding of the 4x32-bit accumulated values + st1 {v0.s}[0], [x0], #4 // write accumulator ret endfunc function ff_resample_common_apply_filter_x4_s16_neon, export=1 - movi v0.4S, #0 // accumulator -1: ld1 {v1.4H}, [x1], #8 // src[0..3] - ld1 {v2.4H}, [x2], #8 // filter[0..3] - smlal v0.4S, v1.4H, v2.4H // accumulator += src[0..3] * filter[0..3] + movi v0.4s, #0 // accumulator +1: ld1 {v1.4h}, [x1], #8 // src[0..3] + ld1 {v2.4h}, [x2], #8 // filter[0..3] + smlal v0.4s, v1.4h, v2.4h // accumulator += src[0..3] * filter[0..3] subs w3, w3, #4 // filter_length -= 4 b.gt 1b // loop until filter_length - addp v0.4S, v0.4S, v0.4S // pair adding of the 4x32-bit accumulated values - addp v0.4S, v0.4S, v0.4S // pair adding of the 4x32-bit accumulated values - st1 {v0.S}[0], [x0], #4 // write accumulator + addp v0.4s, v0.4s, v0.4s // pair adding of the 4x32-bit accumulated values + addp v0.4s, v0.4s, v0.4s // pair adding of the 4x32-bit accumulated values + st1 {v0.s}[0], [x0], #4 // write accumulator ret endfunc function ff_resample_common_apply_filter_x8_s16_neon, export=1 - movi v0.4S, #0 // accumulator -1: ld1 {v1.8H}, [x1], #16 // src[0..7] - ld1 {v2.8H}, [x2], #16 // filter[0..7] - smlal v0.4S, v1.4H, v2.4H // accumulator += src[0..3] * filter[0..3] - smlal2 v0.4S, v1.8H, v2.8H // accumulator += src[4..7] * filter[4..7] + movi v0.4s, #0 // accumulator +1: ld1 {v1.8h}, [x1], #16 // src[0..7] + ld1 {v2.8h}, [x2], #16 // filter[0..7] + smlal v0.4s, v1.4h, v2.4h // accumulator += src[0..3] * filter[0..3] + smlal2 v0.4s, v1.8h, v2.8h // accumulator += src[4..7] * filter[4..7] subs w3, w3, #8 // filter_length -= 8 b.gt 1b // loop until filter_length - addp v0.4S, v0.4S, v0.4S // pair adding of the 4x32-bit accumulated values - addp v0.4S, v0.4S, v0.4S // pair adding of the 4x32-bit accumulated values - st1 {v0.S}[0], [x0], #4 // write accumulator + addp v0.4s, v0.4s, v0.4s // pair adding of the 4x32-bit accumulated values + addp v0.4s, v0.4s, v0.4s // pair adding of the 4x32-bit accumulated values + st1 {v0.s}[0], [x0], #4 // write accumulator ret endfunc |