mirror of https://git.ffmpeg.org/ffmpeg.git
x86inc: create xm# and ym#, analagous to m#
For when we want to mix simd sizes within one function. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
This commit is contained in:
parent
49ebe3f9fe
commit
3fb78e99a0
|
@ -792,7 +792,11 @@ SECTION .note.GNU-stack noalloc noexec nowrite progbits
|
|||
%endif
|
||||
%endmacro
|
||||
|
||||
; merge mmx and sse*
|
||||
; Merge mmx and sse*
|
||||
; m# is a simd regsiter of the currently selected size
|
||||
; xm# is the corresponding xmmreg (if selcted xmm or ymm size), or mmreg (if selected mmx)
|
||||
; ym# is the corresponding ymmreg (if selcted xmm or ymm size), or mmreg (if selected mmx)
|
||||
; (All 3 remain in sync through SWAP.)
|
||||
|
||||
%macro CAT_XDEFINE 3
|
||||
%xdefine %1%2 %3
|
||||
|
@ -869,6 +873,26 @@ SECTION .note.GNU-stack noalloc noexec nowrite progbits
|
|||
|
||||
INIT_XMM
|
||||
|
||||
%macro DECLARE_MMCAST 1
|
||||
%define mmmm%1 mm%1
|
||||
%define mmxmm%1 mm%1
|
||||
%define mmymm%1 mm%1
|
||||
%define xmmmm%1 mm%1
|
||||
%define xmmxmm%1 xmm%1
|
||||
%define xmmymm%1 xmm%1
|
||||
%define ymmmm%1 mm%1
|
||||
%define ymmxmm%1 ymm%1
|
||||
%define ymmymm%1 ymm%1
|
||||
%define xm%1 xmm %+ m%1
|
||||
%define ym%1 ymm %+ m%1
|
||||
%endmacro
|
||||
|
||||
%assign i 0
|
||||
%rep 16
|
||||
DECLARE_MMCAST i
|
||||
%assign i i+1
|
||||
%endrep
|
||||
|
||||
; I often want to use macros that permute their arguments. e.g. there's no
|
||||
; efficient way to implement butterfly or transpose or dct without swapping some
|
||||
; arguments.
|
||||
|
|
Loading…
Reference in New Issue