#include "skcms_public.h"
#include "skcms_internals.h"
#include "skcms_Transform.h"
#include <assert.h>
#include <float.h>
#include <limits.h>
#include <stdlib.h>
#include <string.h>
#if defined(__ARM_NEON)
#include <arm_neon.h>
#elif defined(__SSE__)
#include <immintrin.h>
#if defined(__clang__)
#include <smmintrin.h>
#include <avxintrin.h>
#include <avx2intrin.h>
#include <avx512fintrin.h>
#include <avx512dqintrin.h>
#endif
#endif
namespace skcms_private {
namespace skx {
#if defined(SKCMS_DISABLE_SKX)
void run_program(const Op* program, const void** contexts, ptrdiff_t programSize,
const char* src, char* dst, int n,
const size_t src_bpp, const size_t dst_bpp) {
skcms_private::baseline::run_program(program, contexts, programSize,
src, dst, n, src_bpp, dst_bpp);
}
#else
#define USING_AVX512F
#define N …
template <typename T> using V = skcms_private::Vec<N,T>;
#include "Transform_inl.h"
#endif
}
}