diff --git a/Android.mk b/Android.mk index 5d8c90d1..fb960f17 100644 --- a/Android.mk +++ b/Android.mk @@ -99,7 +99,6 @@ dsp_enc_srcs := \ src/dsp/cost_mips_dsp_r2.c \ src/dsp/cost_sse2.c \ src/dsp/enc.c \ - src/dsp/enc_avx2.c \ src/dsp/enc_mips32.c \ src/dsp/enc_mips_dsp_r2.c \ src/dsp/enc_msa.c \ diff --git a/Makefile.vc b/Makefile.vc index 5d1bf865..52abff78 100644 --- a/Makefile.vc +++ b/Makefile.vc @@ -53,11 +53,6 @@ OUTDIR = ..\obj\ OUTDIR = $(OBJDIR) !ENDIF -!IF "$(HAVE_AVX2)" == "1" -CFLAGS = $(CFLAGS) /DWEBP_HAVE_AVX2 -AVX2_FLAGS = /arch:AVX2 -!ENDIF - ############################################################## # Runtime library configuration !IF "$(RTLIBCFG)" == "static" @@ -241,7 +236,6 @@ DSP_ENC_OBJS = \ $(DIROBJ)\dsp\cost_mips_dsp_r2.obj \ $(DIROBJ)\dsp\cost_sse2.obj \ $(DIROBJ)\dsp\enc.obj \ - $(DIROBJ)\dsp\enc_avx2.obj \ $(DIROBJ)\dsp\enc_mips32.obj \ $(DIROBJ)\dsp\enc_mips_dsp_r2.obj \ $(DIROBJ)\dsp\enc_msa.obj \ @@ -454,9 +448,6 @@ $(DIROBJ)\$(DLLINC): .SUFFIXES: .c .obj .res .exe # File-specific flag builds. Note batch rules take precedence over wildcards, # so for now name each file individually. -$(DIROBJ)\dsp\enc_avx2.obj: src\dsp\enc_avx2.c - $(CC) $(CFLAGS) $(AVX2_FLAGS) /Fd$(LIBWEBP_PDBNAME) /Fo$(DIROBJ)\dsp\ \ - src\dsp\$(@B).c $(DIROBJ)\examples\anim_diff.obj: examples\anim_diff.c $(CC) $(CFLAGS) /DWEBP_HAVE_GIF /Fd$(LIBWEBP_PDBNAME) \ /Fo$(DIROBJ)\examples\ examples\$(@B).c diff --git a/build.gradle b/build.gradle index 88ad1290..233562f6 100644 --- a/build.gradle +++ b/build.gradle @@ -175,7 +175,6 @@ model { include "cost_mips_dsp_r2.c" include "cost_sse2.c" include "enc.c" - include "enc_avx2.c" include "enc_mips32.c" include "enc_mips_dsp_r2.c" include "enc_msa.c" diff --git a/cmake/config.h.in b/cmake/config.h.in index ec84acda..547aa4c8 100644 --- a/cmake/config.h.in +++ b/cmake/config.h.in @@ -103,9 +103,6 @@ /* Version number of package */ #cmakedefine VERSION "@VERSION@" -/* Set to 1 if AVX2 is supported */ -#cmakedefine WEBP_HAVE_AVX2 1 - /* Set to 1 if GIF library is installed */ #cmakedefine WEBP_HAVE_GIF 1 diff --git a/cmake/cpu.cmake b/cmake/cpu.cmake index 43869a1a..27ed4f2a 100644 --- a/cmake/cpu.cmake +++ b/cmake/cpu.cmake @@ -28,18 +28,18 @@ function(webp_check_compiler_flag WEBP_SIMD_FLAG ENABLE_SIMD) endfunction() # those are included in the names of WEBP_USE_* in c++ code. -set(WEBP_SIMD_FLAGS "SSE2;SSE41;AVX2;MIPS32;MIPS_DSP_R2;NEON;MSA") +set(WEBP_SIMD_FLAGS "SSE2;SSE41;MIPS32;MIPS_DSP_R2;NEON;MSA") set(WEBP_SIMD_FILE_EXTENSIONS - "_sse2.c;_sse41.c;_avx2.c;_mips32.c;_mips_dsp_r2.c;_neon.c;_msa.c") + "_sse2.c;_sse41.c;_mips32.c;_mips_dsp_r2.c;_neon.c;_msa.c") if(MSVC) # MSVC does not have a SSE4 flag but AVX2 support implies SSE4 support. - set(SIMD_ENABLE_FLAGS "/arch:SSE2;/arch:AVX2;/arch:AVX2;;;;") + set(SIMD_ENABLE_FLAGS "/arch:SSE2;/arch:AVX2;;;;") set(SIMD_DISABLE_FLAGS) else() set(SIMD_ENABLE_FLAGS - "-msse2;-msse4.1;-mavx2;-mips32;-mdspr2;-mfpu=neon;-mmsa") + "-msse2;-msse4.1;-mips32;-mdspr2;-mfpu=neon;-mmsa") set(SIMD_DISABLE_FLAGS - "-mno-sse2;-mno-sse4.1;-mno-avx2;;-mno-dspr2;;-mno-msa") + "-mno-sse2;-mno-sse4.1;;-mno-dspr2;;-mno-msa") endif() set(WEBP_SIMD_FILES_TO_NOT_INCLUDE) diff --git a/configure.ac b/configure.ac index ba116d67..c85047f6 100644 --- a/configure.ac +++ b/configure.ac @@ -122,31 +122,6 @@ AS_IF([test "$GCC" = "yes" ], [ AC_SUBST([AM_CFLAGS]) dnl === Check for machine specific flags -AC_ARG_ENABLE([avx2], - AS_HELP_STRING([--disable-avx2], - [Disable detection of AVX2 support - @<:@default=auto@:>@])) - -AS_IF([test "x$enable_avx2" != "xno" -a "x$enable_sse4_1" != "xno" \ - -a "x$enable_sse2" != "xno"], [ - AVX2_CFLAGS="$INTRINSICS_CFLAGS $AVX2_FLAGS" - TEST_AND_ADD_CFLAGS([AVX2_FLAGS], [-mavx2]) - AS_IF([test -n "$AVX2_FLAGS"], [ - SAVED_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $AVX2_FLAGS" - AC_CHECK_HEADER([immintrin.h], - [AC_DEFINE(WEBP_HAVE_AVX2, [1], - [Set to 1 if AVX2 is supported])], - [AVX2_FLAGS=""], - dnl it's illegal to directly include avx2intrin.h, but it's - dnl included conditionally in immintrin.h, tricky! - [#ifndef __AVX2__ - #error avx2 is not enabled - #endif - ]) - CFLAGS=$SAVED_CFLAGS]) - AC_SUBST([AVX2_FLAGS])]) - AC_ARG_ENABLE([sse4.1], AS_HELP_STRING([--disable-sse4.1], [Disable detection of SSE4.1 support diff --git a/makefile.unix b/makefile.unix index 26a4b9c4..ed64fc54 100644 --- a/makefile.unix +++ b/makefile.unix @@ -89,12 +89,6 @@ EXTRA_FLAGS += -DWEBP_HAVE_SSE41 src/dsp/%_sse41.o: EXTRA_FLAGS += -msse4.1 endif -# AVX2-specific flags: -ifeq ($(HAVE_AVX2), 1) -EXTRA_FLAGS += -DWEBP_HAVE_AVX2 -src/dsp/%_avx2.o: EXTRA_FLAGS += -mavx2 -endif - # NEON-specific flags: # EXTRA_FLAGS += -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8 # -> seems to make the overall lib slower: -fno-split-wide-types @@ -193,7 +187,6 @@ DSP_ENC_OBJS = \ src/dsp/cost_mips_dsp_r2.o \ src/dsp/cost_sse2.o \ src/dsp/enc.o \ - src/dsp/enc_avx2.o \ src/dsp/enc_mips32.o \ src/dsp/enc_mips_dsp_r2.o \ src/dsp/enc_msa.o \ diff --git a/src/dsp/Makefile.am b/src/dsp/Makefile.am index 53de1b37..b2e79948 100644 --- a/src/dsp/Makefile.am +++ b/src/dsp/Makefile.am @@ -1,7 +1,6 @@ AM_CPPFLAGS += -I$(top_builddir) -I$(top_srcdir) noinst_LTLIBRARIES = noinst_LTLIBRARIES += libwebpdsp.la -noinst_LTLIBRARIES += libwebpdsp_avx2.la noinst_LTLIBRARIES += libwebpdsp_sse2.la noinst_LTLIBRARIES += libwebpdspdecode_sse2.la noinst_LTLIBRARIES += libwebpdsp_sse41.la @@ -43,11 +42,6 @@ ENC_SOURCES += enc.c ENC_SOURCES += lossless_enc.c ENC_SOURCES += ssim.c -libwebpdsp_avx2_la_SOURCES = -libwebpdsp_avx2_la_SOURCES += enc_avx2.c -libwebpdsp_avx2_la_CPPFLAGS = $(libwebpdsp_la_CPPFLAGS) -libwebpdsp_avx2_la_CFLAGS = $(AM_CFLAGS) $(AVX2_FLAGS) - libwebpdspdecode_sse41_la_SOURCES = libwebpdspdecode_sse41_la_SOURCES += alpha_processing_sse41.c libwebpdspdecode_sse41_la_SOURCES += dec_sse41.c @@ -167,7 +161,6 @@ libwebpdsp_la_CPPFLAGS += $(AM_CPPFLAGS) libwebpdsp_la_CPPFLAGS += $(USE_SWAP_16BIT_CSP) libwebpdsp_la_LDFLAGS = -lm libwebpdsp_la_LIBADD = -libwebpdsp_la_LIBADD += libwebpdsp_avx2.la libwebpdsp_la_LIBADD += libwebpdsp_sse2.la libwebpdsp_la_LIBADD += libwebpdsp_sse41.la libwebpdsp_la_LIBADD += libwebpdsp_neon.la diff --git a/src/dsp/dsp.h b/src/dsp/dsp.h index bc3de6c0..fafc2d05 100644 --- a/src/dsp/dsp.h +++ b/src/dsp/dsp.h @@ -76,10 +76,6 @@ extern "C" { #define WEBP_USE_SSE41 #endif -#if defined(__AVX2__) || defined(WEBP_HAVE_AVX2) -#define WEBP_USE_AVX2 -#endif - // The intrinsics currently cause compiler errors with arm-nacl-gcc and the // inline assembly would need to be modified for use with Native Client. #if (defined(__ARM_NEON__) || \ diff --git a/src/dsp/enc.c b/src/dsp/enc.c index fa23b40a..2fddbc4c 100644 --- a/src/dsp/enc.c +++ b/src/dsp/enc.c @@ -734,7 +734,6 @@ VP8BlockCopy VP8Copy16x8; extern void VP8EncDspInitSSE2(void); extern void VP8EncDspInitSSE41(void); -extern void VP8EncDspInitAVX2(void); extern void VP8EncDspInitNEON(void); extern void VP8EncDspInitMIPS32(void); extern void VP8EncDspInitMIPSdspR2(void); @@ -784,11 +783,6 @@ WEBP_DSP_INIT_FUNC(VP8EncDspInit) { #endif } #endif -#if defined(WEBP_USE_AVX2) - if (VP8GetCPUInfo(kAVX2)) { - VP8EncDspInitAVX2(); - } -#endif #if defined(WEBP_USE_MIPS32) if (VP8GetCPUInfo(kMIPS32)) { VP8EncDspInitMIPS32(); diff --git a/src/dsp/enc_avx2.c b/src/dsp/enc_avx2.c deleted file mode 100644 index 8bc5798f..00000000 --- a/src/dsp/enc_avx2.c +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2014 Google Inc. All Rights Reserved. -// -// Use of this source code is governed by a BSD-style license -// that can be found in the COPYING file in the root of the source -// tree. An additional intellectual property rights grant can be found -// in the file PATENTS. All contributing project authors may -// be found in the AUTHORS file in the root of the source tree. -// ----------------------------------------------------------------------------- -// -// AVX2 version of speed-critical encoding functions. - -#include "src/dsp/dsp.h" - -#if defined(WEBP_USE_AVX2) - -#endif // WEBP_USE_AVX2 - -//------------------------------------------------------------------------------ -// Entry point - -WEBP_DSP_INIT_STUB(VP8EncDspInitAVX2)