// { dg-options "-std=gnu++17" } // { dg-do compile { target c++17 } } #include namespace stdx = std::experimental; template void test01() { using M = typename V::mask_type; [[maybe_unused]] auto x = to_fixed_size(V()); [[maybe_unused]] auto k = to_fixed_size(M()); if constexpr (stdx::simd::size() == V::size()) { [[maybe_unused]] auto xx = to_compatible(x); [[maybe_unused]] auto kk = to_compatible(k); x = to_fixed_size(xx); k = to_fixed_size(kk); } if constexpr (stdx::native_simd::size() == V::size()) { [[maybe_unused]] auto xx = to_native(x); [[maybe_unused]] auto kk = to_native(k); x = to_fixed_size(xx); k = to_fixed_size(kk); } } template void iterate_abis() { test01>(); test01>(); test01>(); test01>(); test01 - 4>>(); } int main() { iterate_abis(); iterate_abis(); iterate_abis(); iterate_abis(); iterate_abis(); iterate_abis(); iterate_abis(); iterate_abis(); iterate_abis(); iterate_abis(); iterate_abis(); iterate_abis(); iterate_abis(); iterate_abis(); iterate_abis(); iterate_abis(); iterate_abis(); }