This is an archive of the discontinued LLVM Phabricator instance.

[libcxx] implement <experimental/simd> operators and reduction.
Needs ReviewPublic

Authored by timshen on Dec 19 2017, 4:54 PM.

Details

Summary

This patch completes the implementation of simd<> and related operations.

Event Timeline

timshen created this revision.Dec 19 2017, 4:54 PM
timshen updated this revision to Diff 129011.Jan 8 2018, 4:58 PM

Rebased.

A few nits, a bit of things moving underneath you, but this looks good.
Need to add more stuff to the tests ;-)

libcxx/include/experimental/simd
1351–1358

In the TS, hmin, hmax (and a bunch of others) are noexcept. This was added in P1110, in response to NB comments CH 30 and CH 33.

Need to fix that here, and add ASSERT_NOEXCEPT to a bunch of tests.

1412

We're going to need a lot of _LIBCPP_TYPE_VIS and other annotations. That can be a separate patch, though

1590

I don't think that auto buys you anything here. simd is fine, and no longer.

libcxx/test/std/experimental/simd/simd.horizontal/hmax.pass.cpp
24

Check the return types here with ASSERT_SAME_TYPE