[PATCH] D41148: [libcxx] implement <experimental/simd> declarations based on P0214R7.

Zhihao Yuan via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Dec 12 19:30:51 PST 2017


lichray added a comment.

I beg you to resubmit this patch relative to "libcxx"; I had to `arc export` this patch and `patch -p1 < your.diff` manually rather than just `arc patch D41148`.



================
Comment at: libcxx/include/experimental/simd:1069
+                std::is_same<_Abi, simd_abi::fixed_size<size()>>::value &&
+                __is_non_narrowing_convertible<_Up, _Tp>()>::type>
+  simd(const simd<_Up, simd_abi::fixed_size<size()>>&) {}
----------------
Does it causes a problem if the logic of `is_convertible` is folded into `__is_non_narrowing_convertible`?


================
Comment at: libcxx/include/experimental/simd:1088
+  // Inserted "int = 0", otherwise it is not implementable wrt `simd(_Up&&
+  // value)`.
+  // TODO: revise P0214.
----------------
Really?  `decltype(simd(...), 0) = 0` seems passing your tests.


================
Comment at: libcxx/test/std/experimental/simd/simd_cast.pass.cpp:87
+
+int main() { return 0; }
----------------
No more `return 0;` in `main`; no other files do so.


================
Comment at: libcxx/test/std/experimental/simd/traits.pass.cpp:37
+
+static_assert(is_abi_tag<simd_abi::native<int8_t> >::value, "");
+static_assert(is_abi_tag<simd_abi::native<int16_t> >::value, "");
----------------
`> >` is not a fashion...


https://reviews.llvm.org/D41148





More information about the cfe-commits mailing list