static_simd_cast.pass.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. //===----------------------------------------------------------------------===//
  2. //
  3. // The LLVM Compiler Infrastructure
  4. //
  5. // This file is dual licensed under the MIT and the University of Illinois Open
  6. // Source Licenses. See LICENSE.TXT for details.
  7. //
  8. //===----------------------------------------------------------------------===//
  9. // UNSUPPORTED: c++98, c++03
  10. // <experimental/simd>
  11. //
  12. // [simd.casts]
  13. // template <class T, class U, class Abi> see below static_simd_cast(const simd<U, Abi>&);
  14. #include <experimental/simd>
  15. #include <cstdint>
  16. using namespace std::experimental::parallelism_v2;
  17. static_assert(
  18. std::is_same<decltype(static_simd_cast<float>(native_simd<int>())),
  19. native_simd<float>>::value,
  20. "");
  21. static_assert(std::is_same<decltype(static_simd_cast<fixed_size_simd<float, 1>>(
  22. simd<int, simd_abi::scalar>())),
  23. fixed_size_simd<float, 1>>::value,
  24. "");
  25. static_assert(
  26. std::is_same<decltype(static_simd_cast<simd<float, simd_abi::scalar>>(
  27. fixed_size_simd<int, 1>())),
  28. simd<float, simd_abi::scalar>>::value,
  29. "");
  30. int main() {}