[PATCH] D41376: [libcxx] Implement <simd> ABI for Clang/GCC vector extension, constructors, copy_from and copy_to.
Tim Shen via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Dec 18 18:10:51 PST 2017
timshen created this revision.
timshen added reviewers: mclow.lists, EricWF.
Herald added a subscriber: sanjoy.
This patch added a new macro _LIBCPP_HAS_VECTOR_EXTENSION for detecting
whether a vector extension (__attribute__((vector_size(num_bytes)))) is
available.
This patch also backports std::integer_sequence to C++11.
On the top of that, this patch implements the following API:
- all constructors
- operator[]
- copy_from
- copy_to
It also defines simd_abi::native to use vector extension, if available.
In GCC and Clang, certain values with vector extension are passed by registers,
instead of memory.
Based on https://reviews.llvm.org/D41148.
https://reviews.llvm.org/D41376
Files:
libcxx/include/__config
libcxx/include/experimental/__config
libcxx/include/experimental/simd
libcxx/include/utility
libcxx/test/std/experimental/simd/simd.abi/vector_extension.pass.cpp
libcxx/test/std/experimental/simd/simd.access/default.pass.cpp
libcxx/test/std/experimental/simd/simd.casts/simd_cast.pass.cpp
libcxx/test/std/experimental/simd/simd.cons/broadcast.pass.cpp
libcxx/test/std/experimental/simd/simd.cons/default.pass.cpp
libcxx/test/std/experimental/simd/simd.cons/geneartor.pass.cpp
libcxx/test/std/experimental/simd/simd.cons/load.pass.cpp
libcxx/test/std/experimental/simd/simd.mem/load.pass.cpp
libcxx/test/std/experimental/simd/simd.mem/store.pass.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41376.127452.patch
Type: text/x-patch
Size: 35775 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171219/58e1d794/attachment-0001.bin>
More information about the cfe-commits
mailing list