[libcxx-commits] [libcxx] [libc++] Start implementing std::datapar::simd (PR #139919)

via libcxx-commits libcxx-commits at lists.llvm.org
Wed May 14 07:56:32 PDT 2025


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff HEAD~1 HEAD --extensions ,cpp,h -- libcxx/include/__simd/abi.h libcxx/include/__simd/basic_simd.h libcxx/include/__simd/basic_simd_mask.h libcxx/include/__simd/simd_flags.h libcxx/include/__type_traits/pack_utils.h libcxx/include/__type_traits/standard_types.h libcxx/include/simd libcxx/test/libcxx/numerics/simd/implementation_defined_conversions.pass.cpp libcxx/test/std/numerics/simd/simd.class/aliases.compile.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.binary/add.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.binary/bitand.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.binary/bitor.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.binary/bitshift_left.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.binary/bitshift_right.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.binary/divide.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.binary/modulo.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.binary/multiply.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.binary/subtract.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.binary/xor.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.cassign/add.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.cassign/bitand.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.cassign/bitor.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.cassign/bitshift_left.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.cassign/bitshift_right.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.cassign/divide.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.cassign/modulo.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.cassign/multiply.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.cassign/subtract.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.cassign/xor.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.comparison/equality.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.comparison/ordering.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.ctor/broadcast.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.ctor/range.mask.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.ctor/range.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.unary/identity.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.unary/invert.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.unary/negation.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.unary/not.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.unary/postdec.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.unary/postinc.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.unary/predec.pass.cpp libcxx/test/std/numerics/simd/simd.class/simd.unary/preinc.pass.cpp libcxx/test/std/numerics/simd/simd.class/subscript.assert.pass.cpp libcxx/test/std/numerics/simd/simd.class/traits.compile.pass.cpp libcxx/test/std/numerics/simd/simd.flags.compile.pass.cpp libcxx/test/std/numerics/simd/simd.mask.class/simd.mask.ctor/broadcast.pass.cpp libcxx/test/std/numerics/simd/simd.mask.class/subscript.assert.pass.cpp libcxx/test/std/numerics/simd/simd.mask.class/traits.compile.pass.cpp libcxx/test/std/numerics/simd/simd.mask.reductions.pass.cpp libcxx/test/std/numerics/simd/utils.h libcxx/test/support/type_algorithms.h
``````````

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/libcxx/include/__simd/basic_simd.h b/libcxx/include/__simd/basic_simd.h
index acffa012d..d0897ad63 100644
--- a/libcxx/include/__simd/basic_simd.h
+++ b/libcxx/include/__simd/basic_simd.h
@@ -179,7 +179,7 @@ public:
   }
 
   _LIBCPP_HIDE_FROM_ABI friend constexpr basic_simd operator*(const basic_simd& __lhs, const basic_simd& __rhs) noexcept
-    requires requires(value_type __v) { __v * __v; }
+    requires requires(value_type __v) { __v* __v; }
   {
     return basic_simd(__lhs.__data_ * __rhs.__data_);
   }
diff --git a/libcxx/include/__type_traits/standard_types.h b/libcxx/include/__type_traits/standard_types.h
index f94599259..35d195b39 100644
--- a/libcxx/include/__type_traits/standard_types.h
+++ b/libcxx/include/__type_traits/standard_types.h
@@ -70,10 +70,10 @@ inline constexpr bool __is_character_type_v<char> = true;
 template <>
 inline constexpr bool __is_character_type_v<wchar_t> = true;
 
-#if _LIBCPP_HAS_CHAR8_T
+#  if _LIBCPP_HAS_CHAR8_T
 template <>
 inline constexpr bool __is_character_type_v<char8_t> = true;
-#endif
+#  endif
 
 template <>
 inline constexpr bool __is_character_type_v<char16_t> = true;
diff --git a/libcxx/test/std/numerics/simd/simd.class/simd.binary/bitshift_left.pass.cpp b/libcxx/test/std/numerics/simd/simd.class/simd.binary/bitshift_left.pass.cpp
index 2236ebdcc..aaa4060e8 100644
--- a/libcxx/test/std/numerics/simd/simd.class/simd.binary/bitshift_left.pass.cpp
+++ b/libcxx/test/std/numerics/simd/simd.class/simd.binary/bitshift_left.pass.cpp
@@ -40,7 +40,9 @@ constexpr bool test() {
   static_assert(has_bitshift_left<dp::simd<int>>);
 
   types::for_each(types::vectorizable_float_types{}, []<class T> {
-    simd_utils::test_sizes([]<int N>(std::integral_constant<int, N>) { static_assert(!has_bitshift_left<dp::simd<T, N>>); });
+    simd_utils::test_sizes([]<int N>(std::integral_constant<int, N>) {
+      static_assert(!has_bitshift_left<dp::simd<T, N>>);
+    });
   });
 
   return true;
diff --git a/libcxx/test/std/numerics/simd/simd.class/simd.cassign/bitshift_left.pass.cpp b/libcxx/test/std/numerics/simd/simd.class/simd.cassign/bitshift_left.pass.cpp
index b254a8d2f..0e588ce50 100644
--- a/libcxx/test/std/numerics/simd/simd.class/simd.cassign/bitshift_left.pass.cpp
+++ b/libcxx/test/std/numerics/simd/simd.class/simd.cassign/bitshift_left.pass.cpp
@@ -41,7 +41,9 @@ constexpr bool test() {
   static_assert(has_bitshift_left<dp::simd<int>>);
 
   types::for_each(types::vectorizable_float_types{}, []<class T> {
-    simd_utils::test_sizes([]<int N>(std::integral_constant<int, N>) { static_assert(!has_bitshift_left<dp::simd<T, N>>); });
+    simd_utils::test_sizes([]<int N>(std::integral_constant<int, N>) {
+      static_assert(!has_bitshift_left<dp::simd<T, N>>);
+    });
   });
 
   return true;
diff --git a/libcxx/test/std/numerics/simd/simd.class/simd.comparison/ordering.pass.cpp b/libcxx/test/std/numerics/simd/simd.class/simd.comparison/ordering.pass.cpp
index 69b5bcd07..b19032068 100644
--- a/libcxx/test/std/numerics/simd/simd.class/simd.comparison/ordering.pass.cpp
+++ b/libcxx/test/std/numerics/simd/simd.class/simd.comparison/ordering.pass.cpp
@@ -58,8 +58,8 @@ constexpr bool test() {
   });
   types::for_each(types::vectorizable_float_types{}, []<class T> {
     constexpr auto nan = std::numeric_limits<T>::quiet_NaN();
-    dp::simd<T, 4> a = std::array<T, 4>{nan, nan, nan, nan};
-    dp::simd<T, 4> b = a;
+    dp::simd<T, 4> a   = std::array<T, 4>{nan, nan, nan, nan};
+    dp::simd<T, 4> b   = a;
     assert(dp::none_of(a < b));
     assert(dp::none_of(a > b));
     assert(dp::none_of(a <= b));
diff --git a/libcxx/test/std/numerics/simd/simd.flags.compile.pass.cpp b/libcxx/test/std/numerics/simd/simd.flags.compile.pass.cpp
index 097903cd4..97e533f68 100644
--- a/libcxx/test/std/numerics/simd/simd.flags.compile.pass.cpp
+++ b/libcxx/test/std/numerics/simd/simd.flags.compile.pass.cpp
@@ -48,5 +48,7 @@ static_assert(test<convert_flag_t>(dp::simd_flags<>{}, dp::simd_flags<convert_fl
 static_assert(test<convert_flag_t>(dp::simd_flags<convert_flag_t>{}, dp::simd_flags<convert_flag_t>{}));
 static_assert(test<overaligned_flag_t<1>>(dp::simd_flags<overaligned_flag_t<1>>{}, dp::simd_flags<>{}));
 static_assert(test<overaligned_flag_t<1>>(dp::simd_flags<>{}, dp::simd_flags<overaligned_flag_t<1>>{}));
-static_assert(test<overaligned_flag_t<1>>(dp::simd_flags<overaligned_flag_t<1>>{}, dp::simd_flags<overaligned_flag_t<1>>{}));
-static_assert(test<overaligned_flag_t<16>>(dp::simd_flags<overaligned_flag_t<16>>{}, dp::simd_flags<overaligned_flag_t<1>>{}));
+static_assert(test<overaligned_flag_t<1>>(dp::simd_flags<overaligned_flag_t<1>>{},
+                                          dp::simd_flags<overaligned_flag_t<1>>{}));
+static_assert(test<overaligned_flag_t<16>>(dp::simd_flags<overaligned_flag_t<16>>{},
+                                           dp::simd_flags<overaligned_flag_t<1>>{}));

``````````

</details>


https://github.com/llvm/llvm-project/pull/139919


More information about the libcxx-commits mailing list