FFmpeg/libavutil
Henrik Gramner f7197f68dc x86inc: AVX-512 support
AVX-512 consists of a plethora of different extensions, but in order to keep
things a bit more manageable we group together the following extensions
under a single baseline cpu flag which should cover SKL-X and future CPUs:
 * AVX-512 Foundation (F)
 * AVX-512 Conflict Detection Instructions (CD)
 * AVX-512 Byte and Word Instructions (BW)
 * AVX-512 Doubleword and Quadword Instructions (DQ)
 * AVX-512 Vector Length Extensions (VL)

On x86-64 AVX-512 provides 16 additional vector registers, prefer using
those over existing ones since it allows us to avoid using `vzeroupper`
unless more than 16 vector registers are required. They also happen to
be volatile on Windows which means that we don't need to save and restore
existing xmm register contents unless more than 22 vector registers are
required.

Big thanks to Intel for their support.
2017-12-24 22:02:41 +01:00
..
aarch64 Merge commit '69ac24e556' 2017-11-11 17:46:48 -03:00
arm libavutil: Add saturating subtraction functions 2017-12-04 07:28:45 +00:00
avr32 Merge commit '41ed7ab45f' 2016-06-21 21:55:34 +02:00
bfin Merge commit '880e2aa236' 2014-06-02 19:38:01 +02:00
mips avcodec/mips: Improve hevc bi weighted hv mc msa functions 2017-10-25 21:50:37 +02:00
ppc Merge commit 'd76479c502' 2017-11-01 20:16:33 -03:00
sh4
tests avutil: add AVX-512 flags 2017-12-24 22:02:41 +01:00
tomi Merge remote-tracking branch 'qatar/master' 2013-02-20 12:04:50 +01:00
x86 x86inc: AVX-512 support 2017-12-24 22:02:41 +01:00
.gitignore Merge commit '257f00ec1a' 2016-06-22 11:28:51 +02:00
adler32.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
adler32.h avutil: Group hash functions separately in Doxygen 2016-08-02 07:48:08 -07:00
aes.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
aes.h lavu: Drop deprecated context size variables 2015-08-28 16:04:27 +02:00
aes_ctr.c avutil/aes_crt: free AVAESCTR struct properly 2016-02-03 19:33:23 -03:00
aes_ctr.h libavutil: add aes-ctr support 2015-12-15 14:16:28 +01:00
aes_internal.h lavu/aes: align AVAES struct members 2015-10-28 04:23:14 -05:00
atomic.c lavu: remove the custom atomic API 2016-10-02 19:35:55 +02:00
atomic.h lavu: remove the custom atomic API 2016-10-02 19:35:55 +02:00
atomic_gcc.h Revert "lavu/atomic: add support for the new memory model aware gcc built-ins" 2017-03-08 00:48:37 -03:00
atomic_suncc.h lavu: remove the custom atomic API 2016-10-02 19:35:55 +02:00
atomic_win32.h lavu: remove the custom atomic API 2016-10-02 19:35:55 +02:00
attributes.h Merge commit '8e2346154e' 2017-10-21 14:25:55 -03:00
audio_fifo.c Merge commit '0456e68439' 2017-03-24 13:17:55 +01:00
audio_fifo.h avfilter: add loop filters 2016-02-18 11:55:00 +01:00
avassert.h avutil/avassert: Add av_assertX_fpu() 2016-10-22 13:50:09 +02:00
avstring.c avutil/avstring: improve av_strreplace implement 2017-04-11 10:54:35 +08:00
avstring.h avutil/avstring: improve av_strreplace implement 2017-04-11 10:54:35 +08:00
avutil.h lavu: add av_fourcc_make_string() and av_fourcc2str() 2017-03-29 14:49:29 +02:00
avutilres.rc Add Windows resource file support for shared libraries 2013-12-05 23:42:07 +01:00
base64.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
base64.h lavu/base64: add AV_BASE64_DECODE_SIZE() macro 2016-04-02 12:48:21 +02:00
blowfish.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
blowfish.h avutil: undo FF_API_CRYPTO_CONTEXT deprecation 2015-10-16 19:13:38 -03:00
bprint.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
bprint.h avutil/bprint: C++ compatible AVBPrint definition. 2014-11-29 03:51:35 +01:00
bswap.h Fix compile error on bfin. 2014-08-05 01:54:47 +02:00
buffer.c Merge commit '27079a426c' 2017-03-22 17:46:01 +01:00
buffer.h Merge commit 'ec021d4844' 2017-03-18 19:22:30 +01:00
buffer_internal.h Merge commit '27079a426c' 2017-03-22 17:46:01 +01:00
camellia.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
camellia.h avutil/camellia: fix documentation for av_camellia_crypt() 2015-01-02 21:23:45 +01:00
cast5.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
cast5.h avutil/cast5: update Doxygen for av_cast5_init with return information 2015-10-15 22:32:58 -04:00
channel_layout.c avutil/channel_layout: add av_get_extended_channel_layout 2017-01-24 23:51:36 +01:00
channel_layout.h avutil/channel_layout: add av_get_extended_channel_layout 2017-01-24 23:51:36 +01:00
color_utils.c lavu: Adding ARIB STD-B67 (hybrid log-gamma) enum value and transfer function. 2016-06-01 16:32:08 +02:00
color_utils.h avutil/color_utils: Add basic transfer functions for each AVColorTransferCharacteristic 2015-09-10 23:53:05 +02:00
colorspace.h Merge commit '1f77e634bb' 2016-06-21 22:16:16 +02:00
common.h libavutil: Add saturating subtraction functions 2017-12-04 07:28:45 +00:00
cpu.c avutil: add AVX-512 flags 2017-12-24 22:02:41 +01:00
cpu.h avutil: add AVX-512 flags 2017-12-24 22:02:41 +01:00
cpu_internal.h cpu: split flag checks per arch in av_cpu_max_align() 2017-10-09 11:48:24 +02:00
crc.c avutil/crc: use ff_thread_once at av_crc_get_table 2017-11-14 06:25:05 +07:00
crc.h avutil/crc: remove gap in AVCRCId enum values 2017-10-22 00:44:55 -03:00
des.c Merge commit 'a6a750c7ef' 2016-06-22 13:44:34 +02:00
des.h avutil: undo FF_API_CRYPTO_CONTEXT deprecation 2015-10-16 19:13:38 -03:00
dict.c avformat: factorize iso 8601 timestamp writer to a dictionary avutil function 2016-08-17 23:45:41 +02:00
dict.h cosmetics: Fix spelling mistakes 2016-05-04 18:16:21 +02:00
display.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
display.h Merge commit '075acbb6ff' 2017-04-13 17:31:15 -03:00
downmix_info.c Merge commit 'c98f3169bf' 2014-02-16 02:05:29 +01:00
downmix_info.h fix spelling errors 2014-07-12 22:33:27 +02:00
dynarray.h dynarray: Change AV_ to FF_ for AV_DYNARRAY_ADD 2016-07-31 10:19:03 -07:00
error.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
error.h avutil/error: Introduce new error codes for 4XX and 5XX replies from remote servers 2014-10-19 22:32:14 +02:00
eval.c Merge commit '97cfe1d8bd' 2017-11-01 20:05:09 -03:00
eval.h avutil/eval: minor typo 2015-11-01 19:35:01 -05:00
ffmath.h all: move ff_exp10, ff_exp10f, ff_fast_powf to lavu/ffmath.h 2016-03-22 10:15:31 -07:00
fifo.c fifo: Return the correct AVERROR value 2017-01-26 10:25:20 +01:00
fifo.h avutil/fifo: add function av_fifo_generic_peek_at() 2015-10-14 20:23:58 +02:00
file.c Merge commit '97cfe1d8bd' 2017-11-01 20:05:09 -03:00
file.h avutil/file: Move av_tempfile() to avutil/file_open ff_tempfile() 2016-03-12 02:08:34 +01:00
file_open.c Merge commit 'e41daa6246' 2017-11-11 10:22:11 -03:00
fixed_dsp.c x86/fixed_dsp: add ff_butterflies_fixed_sse2 2016-01-16 21:09:38 -03:00
fixed_dsp.h x86/fixed_dsp: add ff_butterflies_fixed_sse2 2016-01-16 21:09:38 -03:00
float_dsp.c avutil/float_dsp: add vector_dmac_scalar() 2017-04-10 12:04:14 +02:00
float_dsp.h avutil/float_dsp: add vector_dmac_scalar() 2017-04-10 12:04:14 +02:00
frame.c avutil/frame: Add private_ref to AVFrame 2017-11-10 16:44:17 +01:00
frame.h avutil/frame: Add private_ref to AVFrame 2017-11-10 16:44:17 +01:00
hash.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
hash.h avutil/hash: Add more detailed Doxygen documentation 2016-08-02 21:49:52 -07:00
hmac.c Merge commit '00b6a76543' 2017-05-05 13:27:03 +02:00
hmac.h avutil/hmac: remove gap in AVHMACType enum values 2017-10-22 19:47:05 -03:00
hwcontext.c lavu/hwcontext: add AV_HWDEVICE_TYPE_MEDIACODEC 2017-12-16 00:52:00 +01:00
hwcontext.h lavu/hwcontext: add AV_HWDEVICE_TYPE_MEDIACODEC 2017-12-16 00:52:00 +01:00
hwcontext_cuda.c compat/cuda: Pass a logging context to load functions 2017-11-20 15:47:05 +00:00
hwcontext_cuda.h avutil/hwcontext_cuda: use dynamically loaded CUDA 2016-11-22 10:34:27 +01:00
hwcontext_cuda_internal.h avutil/hwcontext_cuda: use dynamically loaded CUDA 2016-11-22 10:34:27 +01:00
hwcontext_d3d11va.c hwcontext_d3d11va: properly reset values after release/close 2017-11-25 18:51:41 +02:00
hwcontext_d3d11va.h hwcontext_d3d11va: add missing stdint.h include 2017-11-17 23:27:43 +01:00
hwcontext_drm.c lavu: Add DRM hwcontext 2017-09-13 22:03:27 +01:00
hwcontext_drm.h lavu: Add DRM hwcontext 2017-09-13 22:03:27 +01:00
hwcontext_dxva2.c avutil/hwcontext_dxva2: return an error when buffer allocation fails 2017-09-19 19:30:08 -03:00
hwcontext_dxva2.h dxva: add support for new dxva2 and d3d11 hwaccel APIs 2017-06-27 18:05:02 +02:00
hwcontext_internal.h lavu/hwcontext: add AV_HWDEVICE_TYPE_MEDIACODEC 2017-12-16 00:52:00 +01:00
hwcontext_mediacodec.c lavu/hwcontext: add AV_HWDEVICE_TYPE_MEDIACODEC 2017-12-16 00:52:00 +01:00
hwcontext_mediacodec.h lavu/hwcontext: add AV_HWDEVICE_TYPE_MEDIACODEC 2017-12-16 00:52:00 +01:00
hwcontext_opencl.c lavu/lavc/lavf/lavfi: Do not use type modifier %zu on Windows MSVCRT. 2017-12-17 18:05:42 +01:00
hwcontext_opencl.h lavu/hwcontext_opencl.h: fix build on macOS 2017-11-28 00:23:42 -06:00
hwcontext_qsv.c lavu/qsv: remove unused variable 2017-11-20 15:45:01 +00:00
hwcontext_qsv.h Merge commit '59e7361cc7' 2016-09-28 13:30:27 -03:00
hwcontext_vaapi.c hwcontext_vaapi: Do not assume that sw_format is transferable 2017-11-26 15:40:24 +00:00
hwcontext_vaapi.h hwcontext_vaapi: Try to support the VDPAU wrapper 2017-06-14 22:23:43 +01:00
hwcontext_vdpau.c Merge commit '09a145b3c8' 2017-03-20 16:05:51 +01:00
hwcontext_vdpau.h Merge commit 'a001ce31bc' 2016-02-17 16:16:34 +00:00
hwcontext_videotoolbox.c videotoolbox: add hwcontext support 2017-05-15 11:30:36 +02:00
hwcontext_videotoolbox.h hwcontext_videotoolbox: fix fate-source 2017-05-15 18:50:04 +02:00
imgutils.c Merge commit '97cfe1d8bd' 2017-11-01 20:05:09 -03:00
imgutils.h Merge commit 'ce6d72d107' 2017-09-27 20:35:04 -03:00
imgutils_internal.h Merge commit 'd7bc52bf45' 2017-03-20 08:34:10 +01:00
integer.c avutil/integer: Fix av_mod_i() with negative dividend 2015-12-01 13:26:12 +01:00
integer.h
internal.h Merge commit '3152058bf1' 2017-11-19 18:26:45 -03:00
intfloat.h Reinstate proper FFmpeg license for all files. 2013-08-30 15:47:38 +00:00
intmath.c intmath: remove av_ctz. 2015-10-11 18:03:10 -04:00
intmath.h intmath: add faster clz support 2017-03-01 11:23:19 -05:00
intreadwrite.h Merge commit '0af8a72174' 2017-11-11 23:41:35 -03:00
lfg.c libavutil: add av_lfg_init_from_data() function 2017-01-22 02:28:53 +01:00
lfg.h libavutil: add av_lfg_init_from_data() function 2017-01-22 02:28:53 +01:00
libavutil.v build: Change structure of the linker version script templates 2016-05-29 16:43:11 +02:00
libm.h lavu/libm: add isfinite fallback 2016-01-13 20:00:19 -05:00
lls.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
lls.h Merge commit '50078c1c80' 2016-01-02 10:25:12 +01:00
log.c Merge commit 'e41daa6246' 2017-11-11 10:22:11 -03:00
log.h Merge commit '35cf146a33' 2017-10-23 18:20:07 -03:00
log2_tab.c
lzo.c avutil/lzo: split test out into a separate file 2016-05-13 22:48:56 -03:00
lzo.h
macros.h Merge commit '50078c1c80' 2016-01-02 10:25:12 +01:00
Makefile lavu/hwcontext: add AV_HWDEVICE_TYPE_MEDIACODEC 2017-12-16 00:52:00 +01:00
mastering_display_metadata.c lavu: add support for Content Light Level side metadata 2017-04-06 11:26:25 -03:00
mastering_display_metadata.h lavu: add support for Content Light Level side metadata 2017-04-06 11:26:25 -03:00
mathematics.c lavu/mathematics: split closing bracket out of ifdefery 2017-03-18 23:50:05 +01:00
mathematics.h mathematics: Extend and edit Doxygen 2016-08-02 21:53:34 -07:00
md5.c avutil/md5: fix misaligned reads 2017-06-02 21:00:35 -04:00
md5.h Merge commit 'e435beb1ea' 2017-05-05 13:04:38 +02:00
mem.c avutil: add alignment needed for AVX-512 2017-12-24 22:02:41 +01:00
mem.h avutil/mem: Add DECLARE_ASM_ALIGNED macro for DJGPP architecture. 2017-12-02 19:14:09 +01:00
mem_internal.h avutil/mem_internal: add missing header includes 2015-07-13 21:54:15 -03:00
motion_vector.h avutil/motion_vector: export subpel motion information 2015-11-23 10:55:15 +01:00
murmur3.c lavu/murmur3: Enforce usual function attribute order. 2017-11-01 03:05:51 +01:00
murmur3.h murmur3: Add Doxygen documentation 2016-08-02 07:50:44 -07:00
opt.c lavu/opt: Use "&&" instead of "*" in boolean expression. 2017-10-08 23:15:53 +02:00
opt.h Merge commit '619a433eca' 2017-10-23 18:18:00 -03:00
parseutils.c add locale month names to av_small_strptime 2017-02-26 17:16:22 +01:00
parseutils.h Merge commit '27f2746282' 2015-04-07 20:46:25 +02:00
pca.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
pca.h avutil/pca: Make argument of ff_pca_add() const 2014-09-28 16:17:18 +02:00
pixdesc.c lavu: Add OpenCL hardware pixfmt 2017-11-22 23:01:29 +00:00
pixdesc.h avutil/pixdesc: remove reference to avcodec_get_chroma_sub_sample 2017-11-06 19:16:46 -03:00
pixelutils.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
pixelutils.h avutil: add pixelutils API 2014-08-05 21:05:52 +02:00
pixfmt.h lavu/pixfmt: Remove gap in the middle of enum AVPixelFormat 2017-11-25 14:42:10 +00:00
qsort.h all: Add missing header guards 2016-01-28 19:49:48 -08:00
random_seed.c Merge commit '7ac092d05d' 2017-11-11 16:53:19 -03:00
random_seed.h
rational.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
rational.h rational: Extend Doxygen 2016-08-02 21:52:40 -07:00
rc4.c avutil: use EINVAL instead of -1 for the return code of crypto related init functions 2015-10-18 15:17:58 -04:00
rc4.h avutil: undo FF_API_CRYPTO_CONTEXT deprecation 2015-10-16 19:13:38 -03:00
replaygain.h Merge commit '29c2d06d67' 2016-02-24 17:31:44 +00:00
reverse.c avutil: add ff_reverse as av_reverse replacement 2015-08-12 00:14:14 +02:00
reverse.h avutil/reverse: move the ff_reverse declaration to a separate header 2017-01-12 19:59:37 -03:00
ripemd.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
ripemd.h avutil: Group hash functions separately in Doxygen 2016-08-02 07:48:08 -07:00
samplefmt.c swresample: add int64 sample format 2016-08-18 15:30:05 +02:00
samplefmt.h swresample: add int64 sample format 2016-08-18 15:30:05 +02:00
sha.c Merge commit 'e435beb1ea' 2017-05-05 13:04:38 +02:00
sha.h Merge commit 'e435beb1ea' 2017-05-05 13:04:38 +02:00
sha512.c lavu/sha512: update length argument following sha+md5 changes 2017-05-05 13:24:35 +02:00
sha512.h lavu/sha512: update length argument following sha+md5 changes 2017-05-05 13:24:35 +02:00
slicethread.c avutil: merge slice threading implementation from avcodec and avfilter 2017-07-19 15:50:07 +07:00
slicethread.h avutil: merge slice threading implementation from avcodec and avfilter 2017-07-19 15:50:07 +07:00
softfloat.h avutil/softfloat: Add FLOAT_MIN 2017-11-05 22:13:16 +01:00
softfloat_ieee754.h avutil/softfloat_ieee754: make all functions inline 2016-11-05 17:53:26 -03:00
softfloat_tables.h avutil/softfloat_tables: add missing stdint.h include 2015-04-30 17:38:41 -03:00
spherical.c spherical: add functions to retrieve and request projection names 2017-04-27 09:59:54 -04:00
spherical.h spherical: add functions to retrieve and request projection names 2017-04-27 09:59:54 -04:00
stereo3d.c Merge commit 'fd9212f2ed' 2017-09-26 16:02:40 -03:00
stereo3d.h Merge commit '99e9697e3a' 2017-11-29 21:06:49 -03:00
tablegen.h libavutil/tablegen: add missing math.h include 2015-12-04 14:49:35 +01:00
tea.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
tea.h Add support for TEA (Tiny Encryption Algorithm) 2015-07-21 23:10:44 +02:00
thread.h Merge commit '193b091890' 2017-10-26 17:13:14 -03:00
threadmessage.c avutil/threadmessage: fix error return in case of av_fifo_alloc failure 2017-07-14 02:30:37 +02:00
threadmessage.h avutil/threadmessage.h: Fix swapped comments 2016-06-16 23:54:51 +02:00
time.c avutil/tile: check clock_gettime at runtime for apple platforms 2017-01-09 11:52:06 +08:00
time.h Merge commit '1bd0bdcdc2' 2014-10-24 11:06:56 +02:00
time_internal.h avutil/time_internal: do not attempt to override *time_r() macros 2014-11-05 18:44:15 +01:00
timecode.c lavu/timecode: clarify error msg for timecode_rate 2017-11-10 00:53:11 +01:00
timecode.h lavu/timecode: Increase AV_TIMECODE_STR_SIZE. 2017-05-05 10:09:12 +02:00
timer.h Merge commit 'b46900914a' 2017-11-11 16:42:27 -03:00
timestamp.h lavu/timestamp: Avoid C++-unfriendly code in user header 2016-09-01 20:01:28 +01:00
tree.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
tree.h doc: fix spelling errors 2016-10-21 23:58:47 +02:00
twofish.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
twofish.h libavutil: Added twofish symmetric block cipher 2015-01-29 01:56:11 +01:00
utils.c lavc: drop VDA 2017-10-23 11:56:15 +02:00
version.h avutil: add AVX-512 flags 2017-12-24 22:02:41 +01:00
wchar_filename.h Merge commit 'e41daa6246' 2017-11-11 10:22:11 -03:00
xga_font_data.c
xga_font_data.h Merge commit 'abf1c058d1' 2017-11-11 11:29:16 -03:00
xtea.c Merge commit 'd12b5b2f13' 2016-05-11 19:13:03 +01:00
xtea.h Merge commit '588b6215b4' 2015-11-22 14:29:09 +00:00