Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
2394c68
std::simd core functionalities
fbusato Mar 31, 2026
d65a896
remove simd_abi namespace
fbusato Mar 31, 2026
28dbe31
type_traits unit tests and formatting
fbusato Apr 1, 2026
49ffb87
flags unit test
fbusato Apr 1, 2026
e8f7ae3
renaming
fbusato Apr 2, 2026
b5e5fee
basic_mask unit test
fbusato Apr 3, 2026
e333e93
basic_mask unit tests
fbusato Apr 3, 2026
6c32bf3
basic_mask small improvements
fbusato Apr 3, 2026
a243f92
fix CI failures
fbusato Apr 3, 2026
cb854c3
extend basic_mask test coverage
fbusato Apr 3, 2026
05d27e1
basic_vec operator unit tests
fbusato Apr 3, 2026
8a129f0
add floating-point
fbusato Apr 3, 2026
2dec0ab
add extended floating point types and deduction guide tests
fbusato Apr 3, 2026
0a053cb
fix deduction guides
fbusato Apr 3, 2026
f6dd824
remove macros from fixed_size_vec.h
fbusato Apr 7, 2026
72d6e1c
additional tests and simplifications
fbusato Apr 8, 2026
d4d6ea6
address comments and CI
fbusato Apr 8, 2026
99e0412
fixed alignment and added more unit tests
fbusato Apr 8, 2026
089a55c
remove reductions
fbusato Apr 13, 2026
979d861
avoid internal initialization in C++20
fbusato Apr 13, 2026
6a8b6c6
fix headers
fbusato Apr 15, 2026
0377ea4
fix NVRTC c++17
fbusato Apr 15, 2026
d34d5d3
add specialization header
fbusato Apr 15, 2026
fda62b4
use inline
fbusato Apr 15, 2026
526215a
Update libcudacxx/include/cuda/std/__simd/basic_vec.h
fbusato Apr 16, 2026
a998247
remove c++17/20 dispatch
fbusato Apr 16, 2026
9fbcec6
minor simplification
fbusato Apr 16, 2026
2693a1f
follow c++ specification for non-specialized classes
fbusato Apr 16, 2026
0d3a3d3
extend deduction tests
fbusato Apr 16, 2026
574e878
use is_extended_arithmetic
fbusato Apr 16, 2026
996020a
use fwd
fbusato Apr 16, 2026
09ca81c
fix unit test headers
fbusato Apr 16, 2026
185bb13
use const parameters
fbusato Apr 16, 2026
5be8f3d
Merge branch 'main' into simd-core
fbusato Apr 16, 2026
0b0faee
Merge branch 'simd-core' of github.com:fbusato/cccl into simd-core
fbusato Apr 16, 2026
5e64748
use noexcept
fbusato Apr 17, 2026
2c6c796
use TEST_FUNC
fbusato Apr 17, 2026
1dbf6f9
static permute implementation
fbusato Apr 17, 2026
7b9fcdd
add dynamic permute
fbusato Apr 18, 2026
32f962b
[simd.permute.mask] implementation
fbusato Apr 18, 2026
a642a30
unit test
fbusato Apr 20, 2026
83bb193
simd-permute-memory implementation
fbusato Apr 20, 2026
fdbf932
unit test
fbusato Apr 20, 2026
21c1d23
Merge branch 'main' into simd-memory-permute
fbusato Apr 20, 2026
45b2e77
Merge branch 'main' into simd-memory-permute
fbusato Apr 21, 2026
f3042fe
Merge branch 'main' into simd-memory-permute
fbusato Apr 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions libcudacxx/include/cuda/std/__simd/abi.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,17 @@
#endif // no system header

#include <cuda/std/__cstddef/types.h>
#include <cuda/std/__type_traits/integral_constant.h>

#include <cuda/std/__cccl/prologue.h>

_CCCL_BEGIN_NAMESPACE_CUDA_STD_SIMD

using __simd_size_type = ptrdiff_t;

template <__simd_size_type _Np>
using __simd_size_constant = integral_constant<__simd_size_type, _Np>;

// [simd.expos.abi], simd ABI tags
template <__simd_size_type _Np>
struct __fixed_size; // internal ABI tag
Expand Down
2 changes: 1 addition & 1 deletion libcudacxx/include/cuda/std/__simd/basic_mask.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ class basic_mask<_Bytes, _Abi, enable_if_t<__is_vectorizable_byte_size_v<_Bytes>
// constexpr default_sentinel_t end() const noexcept { return {}; }
// constexpr default_sentinel_t cend() const noexcept { return {}; }

static constexpr integral_constant<__simd_size_type, __simd_size_v<__integer_from<_Bytes>, _Abi>> size{};
static constexpr __simd_size_constant<__simd_size_v<__integer_from<_Bytes>, _Abi>> size{};

static constexpr auto __usize = size_t{size};
static constexpr auto __size = __simd_size_type{size};
Expand Down
2 changes: 1 addition & 1 deletion libcudacxx/include/cuda/std/__simd/basic_vec.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ class basic_vec<_Tp, _Abi, enable_if_t<__is_vectorizable_v<_Tp> && __is_enabled_
// constexpr default_sentinel_t end() const noexcept { return {}; }
// constexpr default_sentinel_t cend() const noexcept { return {}; }

static constexpr integral_constant<__simd_size_type, __simd_size_v<value_type, abi_type>> size{};
static constexpr __simd_size_constant<__simd_size_v<value_type, abi_type>> size{};

static constexpr auto __usize = size_t{size};
static constexpr auto __size = __simd_size_type{size};
Expand Down
7 changes: 7 additions & 0 deletions libcudacxx/include/cuda/std/__simd/concepts.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,13 @@ _CCCL_BEGIN_NAMESPACE_CUDA_STD_SIMD
template <typename _From, typename _To>
_CCCL_CONCEPT __explicitly_convertible_to = _CCCL_REQUIRES_EXPR((_From, _To))((static_cast<_To>(declval<_From>())));

// [simd.expos], simd-vec-type concept

template <typename _Vp>
_CCCL_CONCEPT __simd_vec_type = _CCCL_REQUIRES_EXPR(
(_Vp))(requires(same_as<_Vp, basic_vec<typename _Vp::value_type, typename _Vp::abi_type>>),
requires(is_default_constructible_v<_Vp>));

// [simd.expos], constexpr-wrapper-like concept

template <typename _Tp>
Expand Down
Loading
Loading