[libcxx-commits] [PATCH] D144363: [libcxx] <experimental/simd> Added simd width functions, simd_size traits and related tests
Michał Górny via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Sep 12 03:17:04 PDT 2023
mgorny added a comment.
I'm seeing a bunch of test failures with this (and the subsequent) changes on 32-bit x86. They all seem to be related to size assertions, e.g.:
$ ":" "COMPILED WITH"
$ "/usr/lib/ccache/bin/i686-pc-linux-gnu-clang++" "/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.class/simd_alias.pass.cpp" "-pthread" "--target=i686-pc-linux-g
nu" "-nostdinc++" "-I" "/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/include/c++/v1" "-I" "/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x
86_32.x86/include/c++/v1" "-I" "/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/support" "-std=c++26" "-Werror" "-Wall" "-Wctad-maybe-unsupported" "-Wextra" "-Wshadow" "-Wundef" "-Wunused-t
emplate" "-Wno-unused-command-line-argument" "-Wno-attributes" "-Wno-pessimizing-move" "-Wno-noexcept-type" "-Wno-atomic-alignment" "-Wno-reserved-module-identifier" "-Wno-user-defined-literals" "-Wno-tautologi
cal-compare" "-Wsign-compare" "-Wunused-variable" "-Wunused-parameter" "-Wunreachable-code" "-Wno-unused-local-typedef" "-Wno-local-type-template-args" "-Wno-c++11-extensions" "-Wno-unknown-pragmas" "-Wno-pass-
failed" "-Wno-mismatched-new-delete" "-Wno-redundant-move" "-Wno-self-move" "-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER" "-D_LIBCPP_ENABLE_EXPERIMENTAL" "-Werror=thread-safety" "-Wuser-defined-warnings" "-lc++experi
mental" "-nostdlib++" "-L" "/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/lib" "-Wl,-rpath,/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x8
6_32.x86/lib" "-lc++" "-o" "/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/test/std/experimental/simd/simd.class/Output/simd_alias.pass.cpp.dir/t.tmp.exe"
# command stderr:
In file included from /var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.class/simd_alias.pass.cpp:19:
In file included from /var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.class/../test_utils.h:17:
In file included from /var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/include/c++/v1/experimental/simd:81:
In file included from /var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/include/c++/v1/experimental/__simd/abi_tag.h:14:
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/include/c++/v1/experimental/__simd/vec_ext.h:31:29: error: vector size not an integral multiple of component size
31 | _Tp __data __attribute__((__vector_size__(std::__bit_ceil((sizeof(_Tp) * _Np)))));
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/include/c++/v1/experimental/__simd/simd.h:33:12: note: in instantiation of template class 'std::experimental::__simd_storag
e<long double, std::experimental::simd_abi::__vec_ext<1>>' requested here
33 | _Storage __s_;
| ^
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.class/simd_alias.pass.cpp:28:47: note: in instantiation of template class 'std::experimental::simd<long double, st
d::experimental::simd_abi::__vec_ext<1>>' requested here
28 | static_assert(std::is_same_v<typename ex::simd<T, SimdAbi>::value_type, T>);
| ^
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/support/type_algorithms.h:52:23: note: in instantiation of function template specialization 'CheckSimdAlias<long double, 1>::operator()<std::
experimental::simd_abi::__vec_ext<1>>' requested here
52 | swallow((f.template operator()<Types>(), 0)...);
| ^
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/support/type_algorithms.h:52:23: note: in instantiation of function template specialization 'TestAllSimdAbiFunctor<CheckSimdAlias>::operator(
)<long double>' requested here
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.class/simd_alias.pass.cpp:35:3: note: in instantiation of function template specialization 'test_all_simd_abi<CheckSimdAlias>' requested here
35 | test_all_simd_abi<CheckSimdAlias>();
| ^
In file included from /var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.class/simd_alias.pass.cpp:19:
In file included from /var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.class/../test_utils.h:18:
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/support/type_algorithms.h:52:23: error: no matching member function for call to 'operator()'
52 | swallow((f.template operator()<Types>(), 0)...);
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.class/../test_utils.h:31:13: note: in instantiation of function template specialization 'types::for_each<std::expe
rimental::simd_abi::__vec_ext<1>, std::experimental::simd_abi::__vec_ext<1>, CheckSimdAlias<long double, 1>>' requested here
31 | (types::for_each(sized_abis<T, Ns + 1>{}, F<T, Ns + 1>{}), ...);
| ^
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.class/../test_utils.h:39:5: note: in instantiation of function template specialization 'TestAllSimdAbiFunctor<Chec
kSimdAlias>::instantiate_with_n<long double, 0U, 1U, 2U, 3U, 4U, 5U, 6U, 7U, 8U, 9U, 10U, 11U, 12U, 13U, 14U, 15U, 16U, 17U, 18U, 19U, 20U, 21U, 22U, 23U, 24U, 25U, 26U, 27U, 28U, 29U, 30U>' requested here
39 | instantiate_with_n<T>(std::make_index_sequence<max_simd_size - 1>{});
| ^
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/support/type_algorithms.h:52:23: note: in instantiation of function template specialization 'TestAllSimdAbiFunctor<CheckSimdAlias>::operator()<long double>' requested here
52 | swallow((f.template operator()<Types>(), 0)...);
| ^
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.class/simd_alias.pass.cpp:35:3: note: in instantiation of function template specialization 'test_all_simd_abi<Chec
kSimdAlias>' requested here
35 | test_all_simd_abi<CheckSimdAlias>();
| ^
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.class/simd_alias.pass.cpp:27:8: note: candidate template ignored: substitution failure [with SimdAbi = std::experi
mental::simd_abi::__vec_ext<1>]
27 | void operator()() {
| ^
----
$ ":" "COMPILED WITH"
$ "/usr/lib/ccache/bin/i686-pc-linux-gnu-clang++" "/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.mask.class/simd_mask_alias.pass.cpp" "-pthread" "--target=i686-pc-linux-gnu" "-nostdinc++" "-I" "/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/include/c++/v1" "-I" "/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/include/c++/v1" "-I" "/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/support" "-std=c++26" "-Werror" "-Wall" "-Wctad-maybe-unsupported" "-Wextra" "-Wshadow" "-Wundef" "-Wunused-template" "-Wno-unused-command-line-argument" "-Wno-attributes" "-Wno-pessimizing-move" "-Wno-noexcept-type" "-Wno-atomic-alignment" "-Wno-reserved-module-identifier" "-Wno-user-defined-literals" "-Wno-tautological-compare" "-Wsign-compare" "-Wunused-variable" "-Wunused-parameter" "-Wunreachable-code" "-Wno-unused-local-typedef" "-Wno-local-type-template-args" "-Wno-c++11-extensions" "-Wno-unknown-pragmas" "-Wno-pass-failed" "-Wno-mismatched-new-delete" "-Wno-redundant-move" "-Wno-self-move" "-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER" "-D_LIBCPP_ENABLE_EXPERIMENTAL" "-Werror=thread-safety" "-Wuser-defined-warnings" "-lc++experimental" "-nostdlib++" "-L" "/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/lib" "-Wl,-rpath,/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/lib" "-lc++" "-o" "/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/test/std/experimental/simd/simd.mask.class/Output/simd_mask_alias.pass.cpp.dir/t.tmp.exe"
# command stderr:
In file included from /var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.mask.class/simd_mask_alias.pass.cpp:19:
In file included from /var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.mask.class/../test_utils.h:17:
In file included from /var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/include/c++/v1/experimental/simd:81:
In file included from /var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/include/c++/v1/experimental/__simd/abi_tag.h:14:
In file included from /var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/include/c++/v1/experimental/__simd/vec_ext.h:16:
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/include/c++/v1/experimental/__simd/utility.h:53:19: error: static assertion failed due to requirement 'sizeof(long double) == 0': Unexpected size
53 | static_assert(sizeof(_Tp) == 0, "Unexpected size");
| ^~~~~~~~~~~~~~~~
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/include/c++/v1/experimental/__simd/vec_ext.h:45:45: note: in instantiation of function template specialization 'std::experimental::__choose_mask_type<long double>' requested here
45 | : __simd_storage<decltype(experimental::__choose_mask_type<_Tp>()), simd_abi::__vec_ext<_Np>> {};
| ^
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/include/c++/v1/experimental/__simd/simd_mask.h:31:12: note: in instantiation of template class 'std::experimental::__mask_storage<long double, std::experimental::simd_abi::__vec_ext<1>>' requested here
31 | _Storage __s_;
| ^
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.mask.class/simd_mask_alias.pass.cpp:28:47: note: in instantiation of template class 'std::experimental::simd_mask<long double, std::experimental::simd_abi::__vec_ext<1>>' requested here
28 | static_assert(std::is_same_v<typename ex::simd_mask<T, SimdAbi>::value_type, bool>);
| ^
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/support/type_algorithms.h:52:23: note: in instantiation of function template specialization 'CheckSimdMaskAlias<long double, 1>::operator()<std::experimental::simd_abi::__vec_ext<1>>' requested here
52 | swallow((f.template operator()<Types>(), 0)...);
| ^
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/support/type_algorithms.h:52:23: note: in instantiation of function template specialization 'TestAllSimdAbiFunctor<CheckSimdMaskAlias>::operator()<long double>' requested here
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/libcxx/test/std/experimental/simd/simd.mask.class/simd_mask_alias.pass.cpp:35:3: note: in instantiation of function template specialization 'test_all_simd_abi<CheckSimdMaskAlias>' requested here
35 | test_all_simd_abi<CheckSimdMaskAlias>();
| ^
/var/tmp/portage/sys-libs/libcxx-18.0.0_pre20230912/work/runtimes_build-abi_x86_32.x86/include/c++/v1/experimental/__simd/utility.h:53:31: note: expression evaluates to '12 == 0'
53 | static_assert(sizeof(_Tp) == 0, "Unexpected size");
| ~~~~~~~~~~~~^~~~
Full log (.xz, 2.8M uncompressed): F29202951: sys-libs:libcxx-18.0.0_pre20230912:20230912-085749.log.xz <https://reviews.llvm.org/F29202951>
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D144363/new/
https://reviews.llvm.org/D144363
More information about the libcxx-commits
mailing list