diff options
author | Anton Khirnov <anton@khirnov.net> | 2019-04-10 14:43:16 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2019-04-10 14:43:16 +0200 |
commit | b38434e2c0e43ba0eff35a561d5642e7959a6162 (patch) | |
tree | b2fb13ded4825a9f05b3f34efaea85f1db5b1a97 /transfer_interp.asm | |
parent | 552bcf4c906522c3ef7695654052f61e12260049 (diff) |
transfer: implement transfer_addtransfer_add
Diffstat (limited to 'transfer_interp.asm')
-rw-r--r-- | transfer_interp.asm | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/transfer_interp.asm b/transfer_interp.asm index 1b1fe7d..982b8aa 100644 --- a/transfer_interp.asm +++ b/transfer_interp.asm @@ -73,9 +73,11 @@ cglobal transfer_interp_line_cont_4, 7, 8, 6, dst, dst_len, src, src_stride, idx RET -INIT_YMM fma3 -cglobal transfer_interp_line_cont_6, 7, 9, 11, dst, dst_len, src, src_stride, idx_x, fact_x, fact_y,\ - idx_x_val, offset6 +%macro INTERP6 1 +%if %1 + mova m12, m0 +%endif + shl src_strideq, 3 shl dst_lenq, 3 @@ -145,9 +147,25 @@ cglobal transfer_interp_line_cont_6, 7, 9, 11, dst, dst_len, src, src_stride, id haddpd xm8, xm8 addpd m8, m9 +%if %1 + movq xm13, [dstq + offsetq] + vfmadd213pd xm8, xm12, xm13 + movq [dstq + offsetq], xm8 +%else movq [dstq + offsetq], xm8 +%endif add offsetq, 8 add offset6q, 8 * 6 js .loop RET +%endmacro + +INIT_YMM fma3 +cglobal transfer_interp_line_cont_6, 7, 9, 11, dst, dst_len, src, src_stride, idx_x, fact_x, fact_y,\ + idx_x_val, offset6 +INTERP6 0 + +cglobal transfer_interp_line_add_cont_6, 7, 9, 13, dst, dst_len, src, src_stride, idx_x, fact_x, fact_y,\ + idx_x_val, offset6 +INTERP6 1 |