This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit e382772e4a1557ef70c3b0ad9c274973d7fdabf7 Author: Shreesh Adiga <[email protected]> AuthorDate: Sun Oct 26 10:45:55 2025 +0530 Commit: Andreas Rheinhardt <[email protected]> CommitDate: Sun Jan 4 15:49:30 2026 +0100 avutil/cpu: add x86 CPU feature flag for clmul Signed-off-by: Andreas Rheinhardt <[email protected]> --- configure | 4 ++++ doc/APIchanges | 3 +++ libavutil/cpu.c | 1 + libavutil/cpu.h | 1 + libavutil/tests/cpu.c | 1 + libavutil/version.h | 4 ++-- libavutil/x86/cpu.c | 2 ++ libavutil/x86/cpu.h | 2 ++ tests/checkasm/checkasm.c | 1 + 9 files changed, 17 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 3273ba746b..ed460543b7 100755 --- a/configure +++ b/configure @@ -470,6 +470,7 @@ Optimization options (experts only): --disable-avx512 disable AVX-512 optimizations --disable-avx512icl disable AVX-512ICL optimizations --disable-aesni disable AESNI optimizations + --disable-clmul disable CLMUL optimizations --disable-armv5te disable armv5te optimizations --disable-armv6 disable armv6 optimizations --disable-armv6t2 disable armv6t2 optimizations @@ -2258,6 +2259,7 @@ ARCH_EXT_LIST_WASM=" ARCH_EXT_LIST_X86_SIMD=" aesni + clmul amd3dnow amd3dnowext avx @@ -2879,6 +2881,7 @@ ssse3_deps="sse3" sse4_deps="ssse3" sse42_deps="sse4" aesni_deps="sse42" +clmul_deps="sse42" avx_deps="sse42" xop_deps="avx" fma3_deps="avx" @@ -8207,6 +8210,7 @@ if enabled x86; then echo "SSE enabled ${sse-no}" echo "SSSE3 enabled ${ssse3-no}" echo "AESNI enabled ${aesni-no}" + echo "CLMUL enabled ${clmul-no}" echo "AVX enabled ${avx-no}" echo "AVX2 enabled ${avx2-no}" echo "AVX-512 enabled ${avx512-no}" diff --git a/doc/APIchanges b/doc/APIchanges index 3131b38f02..d8bff3c4b5 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2025-03-28 API changes, most recent first: +2026-01-04 - xxxxxxxxxx - lavu 60.22.100 - cpu.h + Add AV_CPU_FLAG_CLMUL. + 2025-12-29 - xxxxxxxxxx - lavu 60.21.100 - iamf.h Add nb_demixing_matrix to AVIAMFLayer diff --git a/libavutil/cpu.c b/libavutil/cpu.c index 5aed2f39dc..ce53c4d14a 100644 --- a/libavutil/cpu.c +++ b/libavutil/cpu.c @@ -149,6 +149,7 @@ int av_parse_cpu_caps(unsigned *flags, const char *s) { "3dnowext", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_3DNOWEXT }, .unit = "flags" }, { "cmov", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_CMOV }, .unit = "flags" }, { "aesni", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_AESNI }, .unit = "flags" }, + { "clmul", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_CLMUL }, .unit = "flags" }, { "avx512" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_AVX512 }, .unit = "flags" }, { "avx512icl", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_AVX512ICL }, .unit = "flags" }, { "slowgather", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_SLOW_GATHER }, .unit = "flags" }, diff --git a/libavutil/cpu.h b/libavutil/cpu.h index 87cecd0424..d0b2270286 100644 --- a/libavutil/cpu.h +++ b/libavutil/cpu.h @@ -47,6 +47,7 @@ #define AV_CPU_FLAG_SSE4 0x0100 ///< Penryn SSE4.1 functions #define AV_CPU_FLAG_SSE42 0x0200 ///< Nehalem SSE4.2 functions #define AV_CPU_FLAG_AESNI 0x80000 ///< Advanced Encryption Standard functions +#define AV_CPU_FLAG_CLMUL 0x400000 ///< Carry-less Multiplication instruction #define AV_CPU_FLAG_AVX 0x4000 ///< AVX functions: requires OS support even if YMM registers aren't used #define AV_CPU_FLAG_AVXSLOW 0x8000000 ///< AVX supported, but slow when using YMM registers (e.g. Bulldozer) #define AV_CPU_FLAG_XOP 0x0400 ///< Bulldozer XOP functions diff --git a/libavutil/tests/cpu.c b/libavutil/tests/cpu.c index c63b7e7d53..2f25bcf86f 100644 --- a/libavutil/tests/cpu.c +++ b/libavutil/tests/cpu.c @@ -89,6 +89,7 @@ static const struct { { AV_CPU_FLAG_BMI1, "bmi1" }, { AV_CPU_FLAG_BMI2, "bmi2" }, { AV_CPU_FLAG_AESNI, "aesni" }, + { AV_CPU_FLAG_CLMUL, "clmul" }, { AV_CPU_FLAG_AVX512, "avx512" }, { AV_CPU_FLAG_AVX512ICL, "avx512icl" }, { AV_CPU_FLAG_SLOW_GATHER, "slowgather" }, diff --git a/libavutil/version.h b/libavutil/version.h index e9ec6db96e..3bea461f82 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -79,8 +79,8 @@ */ #define LIBAVUTIL_VERSION_MAJOR 60 -#define LIBAVUTIL_VERSION_MINOR 21 -#define LIBAVUTIL_VERSION_MICRO 102 +#define LIBAVUTIL_VERSION_MINOR 22 +#define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ LIBAVUTIL_VERSION_MINOR, \ diff --git a/libavutil/x86/cpu.c b/libavutil/x86/cpu.c index 1a592f3bf4..5563f6cc3b 100644 --- a/libavutil/x86/cpu.c +++ b/libavutil/x86/cpu.c @@ -121,6 +121,8 @@ int ff_get_cpu_flags_x86(void) rval |= AV_CPU_FLAG_SSE2; if (ecx & 1) rval |= AV_CPU_FLAG_SSE3; + if (ecx & 0x2) + rval |= AV_CPU_FLAG_CLMUL; if (ecx & 0x00000200 ) rval |= AV_CPU_FLAG_SSSE3; if (ecx & 0x00080000 ) diff --git a/libavutil/x86/cpu.h b/libavutil/x86/cpu.h index 00e82255b1..af081b2ed8 100644 --- a/libavutil/x86/cpu.h +++ b/libavutil/x86/cpu.h @@ -44,6 +44,7 @@ #define X86_FMA4(flags) CPUEXT(flags, FMA4) #define X86_AVX2(flags) CPUEXT(flags, AVX2) #define X86_AESNI(flags) CPUEXT(flags, AESNI) +#define X86_CLMUL(flags) CPUEXT(flags, CLMUL) #define X86_AVX512(flags) CPUEXT(flags, AVX512) #define EXTERNAL_MMX(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, MMX) @@ -72,6 +73,7 @@ #define EXTERNAL_AVX2_FAST(flags) CPUEXT_SUFFIX_FAST2(flags, _EXTERNAL, AVX2, AVX) #define EXTERNAL_AVX2_SLOW(flags) CPUEXT_SUFFIX_SLOW2(flags, _EXTERNAL, AVX2, AVX) #define EXTERNAL_AESNI(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, AESNI) +#define EXTERNAL_CLMUL(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, CLMUL) #define EXTERNAL_AVX512(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, AVX512) #define EXTERNAL_AVX512ICL(flags) CPUEXT_SUFFIX(flags, _EXTERNAL, AVX512ICL) diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c index 461f1e7e5a..12712a111d 100644 --- a/tests/checkasm/checkasm.c +++ b/tests/checkasm/checkasm.c @@ -404,6 +404,7 @@ static const struct { { "SSE4.1", "sse4", AV_CPU_FLAG_SSE4 }, { "SSE4.2", "sse42", AV_CPU_FLAG_SSE42 }, { "AES-NI", "aesni", AV_CPU_FLAG_AESNI }, + { "CLMUL", "clmul", AV_CPU_FLAG_CLMUL }, { "AVX", "avx", AV_CPU_FLAG_AVX }, { "XOP", "xop", AV_CPU_FLAG_XOP }, { "FMA3", "fma3", AV_CPU_FLAG_FMA3 }, _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
