summaryrefslogtreecommitdiff
path: root/transfer_interp.asm
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2019-04-08 10:42:15 +0200
committerAnton Khirnov <anton@khirnov.net>2019-04-08 10:42:15 +0200
commit264d8ce5e39676582f2e6a65cf517924846070b9 (patch)
treece0b49c785eff34393e180f638a1de1d0b800978 /transfer_interp.asm
parent553c8fb35710da42ed958a79940693d4b68290ee (diff)
x86: add a misc utility header
Diffstat (limited to 'transfer_interp.asm')
-rw-r--r--transfer_interp.asm11
1 files changed, 6 insertions, 5 deletions
diff --git a/transfer_interp.asm b/transfer_interp.asm
index a6ae60f..b7c9af5 100644
--- a/transfer_interp.asm
+++ b/transfer_interp.asm
@@ -17,11 +17,12 @@
;/
%include "config.asm"
+%include "util.asm"
%include "x86inc.asm"
SECTION .text
-INIT_YMM fma3
+INIT_YMM avx2
cglobal transfer_interp_line_cont_4, 7, 8, 6, dst, dst_len, src, src_stride, idx_x, fact_x, fact_y,\
idx_x_val
shl src_strideq, 3
@@ -35,10 +36,10 @@ cglobal transfer_interp_line_cont_4, 7, 8, 6, dst, dst_len, src, src_stride, idx
%define offsetq dst_lenq
movu m0, [fact_yq]
- vpermq m1, m0, 01010101b ; fact y + 1 -> m1
- vpermq m2, m0, 10101010b ; fact y + 2 -> m2
- vpermq m3, m0, 11111111b ; fact y + 3 -> m3
- vpermq m0, m0, 00000000b ; fact y + 0 -> m0
+ SPLATPD m1, m0, 1 ; fact y + 1 -> m1
+ SPLATPD m2, m0, 2 ; fact y + 2 -> m2
+ SPLATPD m3, m0, 3 ; fact y + 3 -> m3
+ SPLATPD m0, m0, 0 ; fact y + 0 -> m0
.loop:
mov idx_x_valq, [idx_xq + offsetq]