[libcxx-commits] [PATCH] D144363: [libcxx] <experimental/simd> Added simd width functions, simd_size traits and related tests
Yin Zhang via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Jun 25 08:26:35 PDT 2023
Joy12138 added inline comments.
================
Comment at: libcxx/docs/Status/ParallelismProjects.csv:11
| `[parallel.simd.traits] <https://wg21.link/N4808>`_, "simd type traits is_simd_flag_type", None, Yin Zhang, |In Progress|
-| `[parallel.simd.traits] <https://wg21.link/N4808>`_, "simd type traits simd_size", None, Yin Zhang, |In Progress|
+| `[parallel.simd.traits] <https://wg21.link/N4808>`_, "`simd type traits simd_size[_v] <https://reviews.llvm.org/D144363>`_", [parallel.simd.traits] is_abi_tag[_v], Yin Zhang, |Complete|
| `[parallel.simd.traits] <https://wg21.link/N4808>`_, "simd type traits memory_alignment", None, Yin Zhang, |In Progress|
----------------
philnik wrote:
> This looks wrong. Should there have been two lines?
> This looks wrong. Should there have been two lines?
This line corresponds to traits `simd_size` and `simd_size_v`.
And traits `is_abi_tag_v` is the dependency because the implementation of `simd_size_v` used it for SFINAE check. Am I right?
================
Comment at: libcxx/docs/Status/ParallelismProjects.csv:17
| `[parallel.simd.class] <https://wg21.link/N4808>`_, "`Class template simd declaration and alias <https://reviews.llvm.org/D144362>`_", [parallel.simd.abi], Yin Zhang, |Complete|
+| `[parallel.simd.class] <https://wg21.link/N4808>`_, "`Class template simd width function <https://reviews.llvm.org/D144363>`_", [parallel.simd.traits] simd_size[_v], Yin Zhang, |Complete|
| `[parallel.simd.class] <https://wg21.link/N4808>`_, "Class template simd implementation", None, Yin Zhang, |In Progress|
----------------
philnik wrote:
> I'm a bit confused by this entry and the one below. What exactly are you trying to mark as completed?
> I'm a bit confused by this entry and the one below. What exactly are you trying to mark as completed?
This line and the one below correspond to the function `size()` in class `simd` and class `simd_mask`. And the function `size()` in class `simd` is dependent on traits `simd_size_v`. The function `size()` in class `simd_mask` is dependent on the function `size()` in class `simd`.
================
Comment at: libcxx/include/experimental/__simd/utility.h:10
-#ifndef _LIBCPP_EXPERIMENTAL___SIMD_SIMD_H
-#define _LIBCPP_EXPERIMENTAL___SIMD_SIMD_H
+#ifndef _LIBCPP_EXPERIMENTAL___SIMD_UTILITY_H
+#define _LIBCPP_EXPERIMENTAL___SIMD_UTILITY_H
----------------
philnik wrote:
> `utility` doesn't really seem like that nice of a name for a header. Do you have plans to add more functions? If yes, which ones?
Yes, this file is mainly used to implement some internal functions that are not easy to classify. You can see them here: https://reviews.llvm.org/D139421#change-93rWXSd8B8Z9
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