1*ce5652c7SZhangyin //===----------------------------------------------------------------------===// 2*ce5652c7SZhangyin // 3*ce5652c7SZhangyin // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*ce5652c7SZhangyin // See https://llvm.org/LICENSE.txt for license information. 5*ce5652c7SZhangyin // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*ce5652c7SZhangyin // 7*ce5652c7SZhangyin //===----------------------------------------------------------------------===// 8*ce5652c7SZhangyin 9*ce5652c7SZhangyin // UNSUPPORTED: c++03, c++11, c++14 10*ce5652c7SZhangyin 11*ce5652c7SZhangyin // <experimental/simd> 12*ce5652c7SZhangyin // 13*ce5652c7SZhangyin // [simd.class] 14*ce5652c7SZhangyin // static constexpr std::size_t size() noexcept; 15*ce5652c7SZhangyin 16*ce5652c7SZhangyin #include "../test_utils.h" 17*ce5652c7SZhangyin 18*ce5652c7SZhangyin namespace ex = std::experimental::parallelism_v2; 19*ce5652c7SZhangyin 20*ce5652c7SZhangyin template <class T, std::size_t> 21*ce5652c7SZhangyin struct CheckSimdWidth { 22*ce5652c7SZhangyin template <class SimdAbi> operator ()CheckSimdWidth23*ce5652c7SZhangyin void operator()() { 24*ce5652c7SZhangyin static_assert(ex::simd<T, SimdAbi>::size() == ex::simd_size_v<T, SimdAbi>); 25*ce5652c7SZhangyin } 26*ce5652c7SZhangyin }; 27*ce5652c7SZhangyin main(int,char **)28*ce5652c7SZhangyinint main(int, char**) { 29*ce5652c7SZhangyin test_all_simd_abi<CheckSimdWidth>(); 30*ce5652c7SZhangyin return 0; 31*ce5652c7SZhangyin } 32