Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
51 changes: 51 additions & 0 deletions libcudacxx/include/cuda/std/__simd/abi.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
//===----------------------------------------------------------------------===//
//
// Part of libcu++ in the CUDA C++ Core Libraries,
// under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES.
//
//===----------------------------------------------------------------------===//

#ifndef _CUDA_STD___SIMD_ABI_H
#define _CUDA_STD___SIMD_ABI_H

#include <cuda/std/detail/__config>

#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
# pragma GCC system_header
#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
# pragma clang system_header
#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
# pragma system_header
#endif // no system header

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

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

namespace cuda::std::simd
{
using __simd_size_type = ::cuda::std::ptrdiff_t;

// [simd.expos.abi], simd ABI tags
namespace simd_abi
{
template <__simd_size_type _Np>
struct __fixed_size_simple; // internal ABI tag

template <__simd_size_type _Np>
using fixed_size_simple = __fixed_size_simple<_Np>; // implementation-defined ABI

template <typename>
using native = fixed_size_simple<1>; // implementation-defined ABI

template <typename, __simd_size_type _Np>
using __deduce_abi_t = fixed_size_simple<_Np>; // exposition-only
} // namespace simd_abi
} // namespace cuda::std::simd

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

#endif // _CUDA_STD___SIMD_ABI_H
Loading
Loading