1 /* 2 * Copyright (c) 2016, Alliance for Open Media. All rights reserved. 3 * 4 * This source code is subject to the terms of the BSD 2 Clause License and 5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License 6 * was not distributed with this source code in the LICENSE file, you can 7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open 8 * Media Patent License 1.0 was not distributed with this source code in the 9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent. 10 */ 11 12 #ifndef AOM_AOM_DSP_AOM_SIMD_H_ 13 #define AOM_AOM_DSP_AOM_SIMD_H_ 14 15 #include <stdint.h> 16 17 #if defined(_WIN32) 18 #include <intrin.h> 19 #endif 20 21 #include "config/aom_config.h" 22 23 #include "aom_dsp/aom_simd_inline.h" 24 25 #define SIMD_CHECK 1 // Sanity checks in C equivalents 26 27 // VS compiling for 32 bit targets does not support vector types in 28 // structs as arguments, which makes the v256 type of the intrinsics 29 // hard to support, so optimizations for this target are disabled. 30 #if HAVE_SSE2 && (defined(_WIN64) || !defined(_MSC_VER) || defined(__clang__)) 31 #include "simd/v256_intrinsics_x86.h" 32 #else 33 #include "simd/v256_intrinsics.h" 34 #endif 35 36 #endif // AOM_AOM_DSP_AOM_SIMD_H_ 37