1/* Copyright (C) 2013 Povilas Kanapickas <povilas@radix.lt>
2
3 Distributed under the Boost Software License, Version 1.0.
4 (See accompanying file LICENSE_1_0.txt or copy at
5 http://www.boost.org/LICENSE_1_0.txt)
6*/
7
8#ifndef LIBSIMDPP_SIMDPP_DETAIL_INSN_DETAIL_CAST_H
9#define LIBSIMDPP_SIMDPP_DETAIL_INSN_DETAIL_CAST_H
10
11#ifndef LIBSIMDPP_SIMD_H
12 #error "This file must be included through simd.h"
13#endif
14
15#include <simdpp/setup_arch.h>
16#include <simdpp/core/cast.h>
17
18#include <cstring>
19
20namespace simdpp {
21namespace SIMDPP_ARCH_NAMESPACE {
22namespace detail {
23
24enum {
25 CAST_MASK_MEMCPY,
26 CAST_MASK_UNMASK,
27 CAST_MASK_REMASK
28};
29
30enum {
31 CAST_TYPE_OTHER,
32 CAST_TYPE_VECTOR_TO_VECTOR,
33 CAST_TYPE_MASK_TO_VECTOR,
34 CAST_TYPE_VECTOR_TO_MASK,
35 CAST_TYPE_MASK_TO_MASK_BITWISE,
36 CAST_TYPE_MASK_TO_MASK_UNMASK,
37 CAST_TYPE_MASK_TO_MASK_REMASK
38};
39
40// defined in cast.inl
41template<unsigned CastType> struct cast_wrapper;
42
43
44} // namespace detail
45} // namespace SIMDPP_ARCH_NAMESPACE
46} // namespace simdpp
47
48#endif
49