/* * Copyright 2018 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "skcms_public.h" // NO_G3_REWRITE #include "skcms_internals.h" // NO_G3_REWRITE #include "skcms_Transform.h" // NO_G3_REWRITE #include #include #include #include #include #if defined(__ARM_NEON) #include #elif defined(__SSE__) #include #if defined(__clang__) // That #include is usually enough, but Clang's headers // avoid #including the whole kitchen sink when _MSC_VER is defined, // because lots of programs on Windows would include that and it'd be // a lot slower. But we want all those headers included, so we can use // their features (after making runtime checks). #include #include #include #include #include #endif #endif namespace skcms_private { namespace hsw { #if defined(SKCMS_DISABLE_HSW) void run_program(const Op* program, const void** contexts, ptrdiff_t programSize, const char* src, char* dst, int n, size_t src_bpp, size_t dst_bpp) { skcms_private::baseline::run_program(program, contexts, programSize, src, dst, n, src_bpp, dst_bpp); } #else #define USING_AVX #define USING_AVX_F16C #define USING_AVX2 #define N 8 template using V = skcms_private::Vec; #include "Transform_inl.h" #endif } // namespace hsw } // namespace skcms_private