expr.inl 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /* Copyright (C) 2016 Povilas Kanapickas <[email protected]>
  2. Distributed under the Boost Software License, Version 1.0.
  3. (See accompanying file LICENSE_1_0.txt or copy at
  4. http://www.boost.org/LICENSE_1_0.txt)
  5. */
  6. #ifndef LIBSIMDPP_SIMD_TYPES_GENERIC_INL
  7. #define LIBSIMDPP_SIMD_TYPES_GENERIC_INL
  8. #include <simdpp/setup_arch.h>
  9. #include <simdpp/expr.h>
  10. #include <simdpp/detail/expr/bit_and.h>
  11. #include <simdpp/detail/expr/bit_andnot.h>
  12. #include <simdpp/detail/expr/bit_not.h>
  13. #include <simdpp/detail/expr/bit_or.h>
  14. #include <simdpp/detail/expr/blend.h>
  15. #include <simdpp/detail/expr/f_abs.h>
  16. #include <simdpp/detail/expr/f_add.h>
  17. #include <simdpp/detail/expr/f_fmadd.h>
  18. #include <simdpp/detail/expr/f_fmsub.h>
  19. #include <simdpp/detail/expr/f_mul.h>
  20. #include <simdpp/detail/expr/f_neg.h>
  21. #include <simdpp/detail/expr/f_sub.h>
  22. #include <simdpp/detail/expr/i_abs.h>
  23. #include <simdpp/detail/expr/i_add.h>
  24. #include <simdpp/detail/expr/i_add_sat.h>
  25. #include <simdpp/detail/expr/i_mul.h>
  26. #include <simdpp/detail/expr/i_mull.h>
  27. #include <simdpp/detail/expr/i_neg.h>
  28. #include <simdpp/detail/expr/i_sub.h>
  29. #include <simdpp/detail/expr/i_sub_sat.h>
  30. #include <simdpp/detail/expr/scalar.h>
  31. #include <simdpp/detail/expr/splat_n.h>
  32. #include <simdpp/detail/expr/test_bits.h>
  33. #include <simdpp/detail/expr/vec.h>
  34. namespace simdpp {
  35. namespace SIMDPP_ARCH_NAMESPACE {
  36. namespace detail {
  37. template<class R, class E> struct expr_eval_wrapper {
  38. static SIMDPP_INL R eval(const E& e) { return expr_eval<R, E>::eval(e); }
  39. };
  40. } // namespace detail
  41. } // namespace SIMDPP_ARCH_NAMESPACE
  42. } // namespace simdpp
  43. #endif