diff --git a/rapids-cmake/cpm/patches/cccl/pr_1643.diff b/rapids-cmake/cpm/patches/cccl/pr_1643.diff new file mode 100644 index 00000000..210d69e1 --- /dev/null +++ b/rapids-cmake/cpm/patches/cccl/pr_1643.diff @@ -0,0 +1,14832 @@ +diff --git a/ci/update_version.sh b/ci/update_version.sh +index c31e0ef11..97f0cb412 100755 +--- a/ci/update_version.sh ++++ b/ci/update_version.sh +@@ -26,7 +26,7 @@ if [ -z "$major" ] || [ -z "$minor" ] || [ -z "$patch" ]; then + fi + + # Version file paths +-CCCL_VERSION_FILE="libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/version.h" ++CCCL_VERSION_FILE="libcudacxx/include/cuda/std/__cccl/version.h" + THRUST_VERSION_FILE="thrust/thrust/version.h" + CUB_VERSION_FILE="cub/cub/version.cuh" + CCCL_CMAKE_VERSION_FILE="lib/cmake/cccl/cccl-config-version.cmake" +diff --git a/cub/cub/util_device.cuh b/cub/cub/util_device.cuh +index 8075444c5..4b8e2d083 100644 +--- a/cub/cub/util_device.cuh ++++ b/cub/cub/util_device.cuh +@@ -49,12 +49,11 @@ + + #include + #include +-#include + #include ++#include + // for backward compatibility + #include + +-#include + #include + #include + +@@ -68,215 +67,6 @@ CUB_NAMESPACE_BEGIN + + #ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document + +-namespace detail +-{ +- +-/** +- * @brief Helper class template that allows overwriting the `BLOCK_THREAD` and `ITEMS_PER_THREAD` +- * configurations of a given policy. +- */ +-template +-struct policy_wrapper_t : PolicyT +-{ +- static constexpr int ITEMS_PER_THREAD = ITEMS_PER_THREAD_; +- static constexpr int BLOCK_THREADS = BLOCK_THREADS_; +- static constexpr int ITEMS_PER_TILE = BLOCK_THREADS * ITEMS_PER_THREAD; +-}; +- +-/** +- * @brief Helper struct to wrap all the information needed to implement virtual shared memory that's passed to a kernel. +- * +- */ +-struct vsmem_t +-{ +- void* gmem_ptr; +-}; +- +-// The maximum amount of static shared memory available per thread block +-// Note that in contrast to dynamic shared memory, static shared memory is still limited to 48 KB +-static constexpr std::size_t max_smem_per_block = 48 * 1024; +- +-/** +- * @brief Class template that helps to prevent exceeding the available shared memory per thread block. +- * +- * @tparam AgentT The agent for which we check whether per-thread block shared memory is sufficient or whether virtual +- * shared memory is needed. +- */ +-template +-class vsmem_helper_impl +-{ +-private: +- // Per-block virtual shared memory may be padded to make sure vsmem is an integer multiple of `line_size` +- static constexpr std::size_t line_size = 128; +- +- // The amount of shared memory or virtual shared memory required by the algorithm's agent +- static constexpr std::size_t required_smem = sizeof(typename AgentT::TempStorage); +- +- // Whether we need to allocate global memory-backed virtual shared memory +- static constexpr bool needs_vsmem = required_smem > max_smem_per_block; +- +- // Padding bytes to an integer multiple of `line_size`. Only applies to virtual shared memory +- static constexpr std::size_t padding_bytes = +- (required_smem % line_size == 0) ? 0 : (line_size - (required_smem % line_size)); +- +-public: +- // Type alias to be used for static temporary storage declaration within the algorithm's kernel +- using static_temp_storage_t = cub::detail::conditional_t; +- +- // The amount of global memory-backed virtual shared memory needed, padded to an integer multiple of 128 bytes +- static constexpr std::size_t vsmem_per_block = needs_vsmem ? (required_smem + padding_bytes) : 0; +- +- /** +- * @brief Used from within the device algorithm's kernel to get the temporary storage that can be +- * passed to the agent, specialized for the case when we can use native shared memory as temporary +- * storage. +- */ +- static _CCCL_DEVICE _CCCL_FORCEINLINE typename AgentT::TempStorage& +- get_temp_storage(typename AgentT::TempStorage& static_temp_storage, vsmem_t&) +- { +- return static_temp_storage; +- } +- +- /** +- * @brief Used from within the device algorithm's kernel to get the temporary storage that can be +- * passed to the agent, specialized for the case when we can use native shared memory as temporary +- * storage and taking a linear block id. +- */ +- static __device__ __forceinline__ typename AgentT::TempStorage& +- get_temp_storage(typename AgentT::TempStorage& static_temp_storage, vsmem_t&, std::size_t) +- { +- return static_temp_storage; +- } +- +- /** +- * @brief Used from within the device algorithm's kernel to get the temporary storage that can be +- * passed to the agent, specialized for the case when we have to use global memory-backed +- * virtual shared memory as temporary storage. +- */ +- static _CCCL_DEVICE _CCCL_FORCEINLINE typename AgentT::TempStorage& +- get_temp_storage(cub::NullType& static_temp_storage, vsmem_t& vsmem) +- { +- return *reinterpret_cast( +- static_cast(vsmem.gmem_ptr) + (vsmem_per_block * blockIdx.x)); +- } +- +- /** +- * @brief Used from within the device algorithm's kernel to get the temporary storage that can be +- * passed to the agent, specialized for the case when we have to use global memory-backed +- * virtual shared memory as temporary storage and taking a linear block id. +- */ +- static __device__ __forceinline__ typename AgentT::TempStorage& +- get_temp_storage(cub::NullType& static_temp_storage, vsmem_t& vsmem, std::size_t linear_block_id) +- { +- return *reinterpret_cast( +- static_cast(vsmem.gmem_ptr) + (vsmem_per_block * linear_block_id)); +- } +- +- /** +- * @brief Hints to discard modified cache lines of the used virtual shared memory. +- * modified cache lines. +- * +- * @note Needs to be followed by `__syncthreads()` if the function returns true and the virtual shared memory is +- * supposed to be reused after this function call. +- */ +- template ::type = 0> +- static _CCCL_DEVICE _CCCL_FORCEINLINE bool discard_temp_storage(typename AgentT::TempStorage& temp_storage) +- { +- return false; +- } +- +- /** +- * @brief Hints to discard modified cache lines of the used virtual shared memory. +- * modified cache lines. +- * +- * @note Needs to be followed by `__syncthreads()` if the function returns true and the virtual shared memory is +- * supposed to be reused after this function call. +- */ +- template ::type = 0> +- static _CCCL_DEVICE _CCCL_FORCEINLINE bool discard_temp_storage(typename AgentT::TempStorage& temp_storage) +- { +- // Ensure all threads finished using temporary storage +- CTA_SYNC(); +- +- const std::size_t linear_tid = threadIdx.x; +- const std::size_t block_stride = line_size * blockDim.x; +- +- char* ptr = reinterpret_cast(&temp_storage); +- auto ptr_end = ptr + vsmem_per_block; +- +- // 128 byte-aligned virtual shared memory discard +- for (auto thread_ptr = ptr + (linear_tid * line_size); thread_ptr < ptr_end; thread_ptr += block_stride) +- { +- cuda::discard_memory(thread_ptr, line_size); +- } +- +- return true; +- } +-}; +- +-template +-constexpr bool use_fallback_agent() +-{ +- return (sizeof(typename DefaultAgentT::TempStorage) > max_smem_per_block) +- && (sizeof(typename FallbackAgentT::TempStorage) <= max_smem_per_block); +-} +- +-/** +- * @brief Class template that helps to prevent exceeding the available shared memory per thread block with two measures: +- * (1) If an agent's `TempStorage` declaration exceeds the maximum amount of shared memory per thread block, we check +- * whether using a fallback policy, e.g., with a smaller tile size, would fit into shared memory. +- * (2) If the fallback still doesn't fit into shared memory, we make use of virtual shared memory that is backed by +- * global memory. +- * +- * @tparam DefaultAgentPolicyT The default tuning policy that is used if the default agent's shared memory requirements +- * fall within the bounds of `max_smem_per_block` or when virtual shared memory is needed +- * @tparam DefaultAgentT The default agent, instantiated with the given default tuning policy +- * @tparam FallbackAgentPolicyT A fallback tuning policy that may exhibit lower shared memory requirements, e.g., by +- * using a smaller tile size, than the default. This fallback policy is used if and only if the shared memory +- * requirements of the default agent exceed `max_smem_per_block`, yet the shared memory requirements of the fallback +- * agent falls within the bounds of `max_smem_per_block`. +- * @tparam FallbackAgentT The fallback agent, instantiated with the given fallback tuning policy +- */ +-template ()> +-struct vsmem_helper_with_fallback_impl : public vsmem_helper_impl +-{ +- using agent_t = DefaultAgentT; +- using agent_policy_t = DefaultAgentPolicyT; +-}; +-template +-struct vsmem_helper_with_fallback_impl +- : public vsmem_helper_impl +-{ +- using agent_t = FallbackAgentT; +- using agent_policy_t = FallbackAgentPolicyT; +-}; +- +-/** +- * @brief Alias template for the `vsmem_helper_with_fallback_impl` that instantiates the given AgentT template with the +- * respective policy as first template parameter, followed by the parameters captured by the `AgentParamsT` template +- * parameter pack. +- */ +-template class AgentT, typename... AgentParamsT> +-using vsmem_helper_fallback_policy_t = +- vsmem_helper_with_fallback_impl, +- FallbackPolicyT, +- AgentT>; +- +-/** +- * @brief Alias template for the `vsmem_helper_t` by using a simple fallback policy that uses `DefaultPolicyT` as basis, +- * overwriting `64` threads per block and `1` item per thread. +- */ +-template class AgentT, typename... AgentParamsT> +-using vsmem_helper_default_fallback_policy_t = +- vsmem_helper_fallback_policy_t, AgentT, AgentParamsT...>; +- +-} // namespace detail +- + /** + * \brief Empty kernel for querying PTX manifest metadata (e.g., version) for the current device + */ +diff --git a/cub/cub/util_vsmem.cuh b/cub/cub/util_vsmem.cuh +new file mode 100644 +index 000000000..e18c9d337 +--- /dev/null ++++ b/cub/cub/util_vsmem.cuh +@@ -0,0 +1,277 @@ ++/****************************************************************************** ++ * Copyright (c) 2023-24, NVIDIA CORPORATION. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are met: ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * * Neither the name of the NVIDIA CORPORATION nor the ++ * names of its contributors may be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++ * DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY ++ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ * ++ ******************************************************************************/ ++ ++/** ++ * \file ++ * This file contains facilities that help to prevent exceeding the available shared memory per thread block ++ */ ++ ++#pragma once ++ ++#include ++ ++#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 ++ ++#if defined(_CCCL_CUDA_COMPILER) ++# include ++#endif // _CCCL_CUDA_COMPILER ++#include ++ ++#include ++ ++#include ++ ++CUB_NAMESPACE_BEGIN ++ ++#ifndef DOXYGEN_SHOULD_SKIP_THIS // Do not document ++ ++namespace detail ++{ ++ ++/** ++ * @brief Helper class template that allows overwriting the `BLOCK_THREAD` and `ITEMS_PER_THREAD` ++ * configurations of a given policy. ++ */ ++template ++struct policy_wrapper_t : PolicyT ++{ ++ static constexpr int ITEMS_PER_THREAD = ITEMS_PER_THREAD_; ++ static constexpr int BLOCK_THREADS = BLOCK_THREADS_; ++ static constexpr int ITEMS_PER_TILE = BLOCK_THREADS * ITEMS_PER_THREAD; ++}; ++ ++/** ++ * @brief Helper struct to wrap all the information needed to implement virtual shared memory that's passed to a kernel. ++ * ++ */ ++struct vsmem_t ++{ ++ void* gmem_ptr; ++}; ++ ++// The maximum amount of static shared memory available per thread block ++// Note that in contrast to dynamic shared memory, static shared memory is still limited to 48 KB ++static constexpr std::size_t max_smem_per_block = 48 * 1024; ++ ++/** ++ * @brief Class template that helps to prevent exceeding the available shared memory per thread block. ++ * ++ * @tparam AgentT The agent for which we check whether per-thread block shared memory is sufficient or whether virtual ++ * shared memory is needed. ++ */ ++template ++class vsmem_helper_impl ++{ ++private: ++ // Per-block virtual shared memory may be padded to make sure vsmem is an integer multiple of `line_size` ++ static constexpr std::size_t line_size = 128; ++ ++ // The amount of shared memory or virtual shared memory required by the algorithm's agent ++ static constexpr std::size_t required_smem = sizeof(typename AgentT::TempStorage); ++ ++ // Whether we need to allocate global memory-backed virtual shared memory ++ static constexpr bool needs_vsmem ++# if defined(_CCCL_CUDA_COMPILER) ++ = required_smem > max_smem_per_block; ++# else // ^^^ _CCCL_CUDA_COMPILER ^^^ / vvv !_CCCL_CUDA_COMPILER vvv ++ = false; ++# endif // !_CCCL_CUDA_COMPILER ++ ++ // Padding bytes to an integer multiple of `line_size`. Only applies to virtual shared memory ++ static constexpr std::size_t padding_bytes = ++ (required_smem % line_size == 0) ? 0 : (line_size - (required_smem % line_size)); ++ ++public: ++ // Type alias to be used for static temporary storage declaration within the algorithm's kernel ++ using static_temp_storage_t = cub::detail::conditional_t; ++ ++ // The amount of global memory-backed virtual shared memory needed, padded to an integer multiple of 128 bytes ++ static constexpr std::size_t vsmem_per_block = needs_vsmem ? (required_smem + padding_bytes) : 0; ++ ++ /** ++ * @brief Used from within the device algorithm's kernel to get the temporary storage that can be ++ * passed to the agent, specialized for the case when we can use native shared memory as temporary ++ * storage. ++ */ ++ static _CCCL_DEVICE _CCCL_FORCEINLINE typename AgentT::TempStorage& ++ get_temp_storage(typename AgentT::TempStorage& static_temp_storage, vsmem_t&) ++ { ++ return static_temp_storage; ++ } ++ ++ /** ++ * @brief Used from within the device algorithm's kernel to get the temporary storage that can be ++ * passed to the agent, specialized for the case when we can use native shared memory as temporary ++ * storage and taking a linear block id. ++ */ ++ static _CCCL_DEVICE _CCCL_FORCEINLINE typename AgentT::TempStorage& ++ get_temp_storage(typename AgentT::TempStorage& static_temp_storage, vsmem_t&, std::size_t) ++ { ++ return static_temp_storage; ++ } ++ ++# if defined(_CCCL_CUDA_COMPILER) ++ /** ++ * @brief Used from within the device algorithm's kernel to get the temporary storage that can be ++ * passed to the agent, specialized for the case when we have to use global memory-backed ++ * virtual shared memory as temporary storage. ++ */ ++ static _CCCL_DEVICE _CCCL_FORCEINLINE typename AgentT::TempStorage& ++ get_temp_storage(cub::NullType& static_temp_storage, vsmem_t& vsmem) ++ { ++ return *reinterpret_cast( ++ static_cast(vsmem.gmem_ptr) + (vsmem_per_block * blockIdx.x)); ++ } ++ ++ /** ++ * @brief Used from within the device algorithm's kernel to get the temporary storage that can be ++ * passed to the agent, specialized for the case when we have to use global memory-backed ++ * virtual shared memory as temporary storage and taking a linear block id. ++ */ ++ static _CCCL_DEVICE _CCCL_FORCEINLINE typename AgentT::TempStorage& ++ get_temp_storage(cub::NullType& static_temp_storage, vsmem_t& vsmem, std::size_t linear_block_id) ++ { ++ return *reinterpret_cast( ++ static_cast(vsmem.gmem_ptr) + (vsmem_per_block * linear_block_id)); ++ } ++# endif // _CCCL_CUDA_COMPILER ++ ++ /** ++ * @brief Hints to discard modified cache lines of the used virtual shared memory. ++ * modified cache lines. ++ * ++ * @note Needs to be followed by `__syncthreads()` if the function returns true and the virtual shared memory is ++ * supposed to be reused after this function call. ++ */ ++ template ::type = 0> ++ static _CCCL_DEVICE _CCCL_FORCEINLINE bool discard_temp_storage(typename AgentT::TempStorage& temp_storage) ++ { ++ return false; ++ } ++ ++# if defined(_CCCL_CUDA_COMPILER) ++ /** ++ * @brief Hints to discard modified cache lines of the used virtual shared memory. ++ * modified cache lines. ++ * ++ * @note Needs to be followed by `__syncthreads()` if the function returns true and the virtual shared memory is ++ * supposed to be reused after this function call. ++ */ ++ template ::type = 0> ++ static _CCCL_DEVICE _CCCL_FORCEINLINE bool discard_temp_storage(typename AgentT::TempStorage& temp_storage) ++ { ++ // Ensure all threads finished using temporary storage ++ CTA_SYNC(); ++ ++ const std::size_t linear_tid = threadIdx.x; ++ const std::size_t block_stride = line_size * blockDim.x; ++ ++ char* ptr = reinterpret_cast(&temp_storage); ++ auto ptr_end = ptr + vsmem_per_block; ++ ++ // 128 byte-aligned virtual shared memory discard ++ for (auto thread_ptr = ptr + (linear_tid * line_size); thread_ptr < ptr_end; thread_ptr += block_stride) ++ { ++ cuda::discard_memory(thread_ptr, line_size); ++ } ++ return true; ++ } ++# endif // _CCCL_CUDA_COMPILER ++}; ++ ++template ++constexpr bool use_fallback_agent() ++{ ++ return (sizeof(typename DefaultAgentT::TempStorage) > max_smem_per_block) ++ && (sizeof(typename FallbackAgentT::TempStorage) <= max_smem_per_block); ++} ++ ++/** ++ * @brief Class template that helps to prevent exceeding the available shared memory per thread block with two measures: ++ * (1) If an agent's `TempStorage` declaration exceeds the maximum amount of shared memory per thread block, we check ++ * whether using a fallback policy, e.g., with a smaller tile size, would fit into shared memory. ++ * (2) If the fallback still doesn't fit into shared memory, we make use of virtual shared memory that is backed by ++ * global memory. ++ * ++ * @tparam DefaultAgentPolicyT The default tuning policy that is used if the default agent's shared memory requirements ++ * fall within the bounds of `max_smem_per_block` or when virtual shared memory is needed ++ * @tparam DefaultAgentT The default agent, instantiated with the given default tuning policy ++ * @tparam FallbackAgentPolicyT A fallback tuning policy that may exhibit lower shared memory requirements, e.g., by ++ * using a smaller tile size, than the default. This fallback policy is used if and only if the shared memory ++ * requirements of the default agent exceed `max_smem_per_block`, yet the shared memory requirements of the fallback ++ * agent falls within the bounds of `max_smem_per_block`. ++ * @tparam FallbackAgentT The fallback agent, instantiated with the given fallback tuning policy ++ */ ++template ()> ++struct vsmem_helper_with_fallback_impl : public vsmem_helper_impl ++{ ++ using agent_t = DefaultAgentT; ++ using agent_policy_t = DefaultAgentPolicyT; ++}; ++template ++struct vsmem_helper_with_fallback_impl ++ : public vsmem_helper_impl ++{ ++ using agent_t = FallbackAgentT; ++ using agent_policy_t = FallbackAgentPolicyT; ++}; ++ ++/** ++ * @brief Alias template for the `vsmem_helper_with_fallback_impl` that instantiates the given AgentT template with the ++ * respective policy as first template parameter, followed by the parameters captured by the `AgentParamsT` template ++ * parameter pack. ++ */ ++template class AgentT, typename... AgentParamsT> ++using vsmem_helper_fallback_policy_t = ++ vsmem_helper_with_fallback_impl, ++ FallbackPolicyT, ++ AgentT>; ++ ++/** ++ * @brief Alias template for the `vsmem_helper_t` by using a simple fallback policy that uses `DefaultPolicyT` as basis, ++ * overwriting `64` threads per block and `1` item per thread. ++ */ ++template class AgentT, typename... AgentParamsT> ++using vsmem_helper_default_fallback_policy_t = ++ vsmem_helper_fallback_policy_t, AgentT, AgentParamsT...>; ++ ++} // namespace detail ++ ++#endif // DOXYGEN_SHOULD_SKIP_THIS ++ ++CUB_NAMESPACE_END +diff --git a/cub/test/catch2_test_helper.h b/cub/test/catch2_test_helper.h +index 7c0a0d253..f2fe781a1 100644 +--- a/cub/test/catch2_test_helper.h ++++ b/cub/test/catch2_test_helper.h +@@ -33,7 +33,7 @@ + #include + #include + +-#include "cuda/std/detail/libcxx/include/__cccl/diagnostic.h" ++#include "cuda/std/__cccl/diagnostic.h" + #include "test_util_vec.h" + #include + +diff --git a/cub/test/catch2_test_vsmem.cu b/cub/test/catch2_test_vsmem.cu +index 1eab3d31a..b8d3f7e37 100644 +--- a/cub/test/catch2_test_vsmem.cu ++++ b/cub/test/catch2_test_vsmem.cu +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + + #include "catch2/catch.hpp" + #include "catch2_test_helper.h" +diff --git a/libcudacxx/include/cuda/__cccl_config b/libcudacxx/include/cuda/__cccl_config +index 2715d766e..c77dcfbc8 100644 +--- a/libcudacxx/include/cuda/__cccl_config ++++ b/libcudacxx/include/cuda/__cccl_config +@@ -4,13 +4,21 @@ + // 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) 2023 NVIDIA CORPORATION & AFFILIATES. ++// SPDX-FileCopyrightText: Copyright (c) 2023-24 NVIDIA CORPORATION & AFFILIATES. + // + //===----------------------------------------------------------------------===// + + #ifndef _CUDA__CCCL_CONFIG + #define _CUDA__CCCL_CONFIG + +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + #endif // _CUDA__CCCL_CONFIG +diff --git a/libcudacxx/include/cuda/__memory_resource/cuda_managed_memory_resource.h b/libcudacxx/include/cuda/__memory_resource/cuda_managed_memory_resource.h +index 57c195bc4..cd7517eac 100644 +--- a/libcudacxx/include/cuda/__memory_resource/cuda_managed_memory_resource.h ++++ b/libcudacxx/include/cuda/__memory_resource/cuda_managed_memory_resource.h +@@ -32,7 +32,7 @@ + # include + # include + # include +-# include ++# include + + # if _CCCL_STD_VER >= 2014 + +diff --git a/libcudacxx/include/cuda/__memory_resource/cuda_memory_resource.h b/libcudacxx/include/cuda/__memory_resource/cuda_memory_resource.h +index a21670ee1..2b308432c 100644 +--- a/libcudacxx/include/cuda/__memory_resource/cuda_memory_resource.h ++++ b/libcudacxx/include/cuda/__memory_resource/cuda_memory_resource.h +@@ -32,7 +32,7 @@ + # include + # include + # include +-# include ++# include + + # if _CCCL_STD_VER >= 2014 + +diff --git a/libcudacxx/include/cuda/__memory_resource/cuda_pinned_memory_resource.h b/libcudacxx/include/cuda/__memory_resource/cuda_pinned_memory_resource.h +index 2ef1c614b..f5b54a4ec 100644 +--- a/libcudacxx/include/cuda/__memory_resource/cuda_pinned_memory_resource.h ++++ b/libcudacxx/include/cuda/__memory_resource/cuda_pinned_memory_resource.h +@@ -24,6 +24,7 @@ + #if !defined(_CCCL_COMPILER_MSVC_2017) + + # if !defined(_CCCL_CUDA_COMPILER_NVCC) && !defined(_CCCL_CUDA_COMPILER_NVHPC) ++# include + # include + # endif // !_CCCL_CUDA_COMPILER_NVCC && !_CCCL_CUDA_COMPILER_NVHPC + +@@ -32,7 +33,7 @@ + # include + # include + # include +-# include ++# include + + # if _CCCL_STD_VER >= 2014 + +diff --git a/libcudacxx/include/cuda/__memory_resource/get_property.h b/libcudacxx/include/cuda/__memory_resource/get_property.h +index 7e60a8c79..50480d2fd 100644 +--- a/libcudacxx/include/cuda/__memory_resource/get_property.h ++++ b/libcudacxx/include/cuda/__memory_resource/get_property.h +@@ -23,10 +23,10 @@ + + #if !defined(_CCCL_COMPILER_MSVC_2017) + +-# include +-# include +-# include +-# include ++# include ++# include ++# include ++# include + + # if _CCCL_STD_VER >= 2014 + +diff --git a/libcudacxx/include/cuda/__memory_resource/resource.h b/libcudacxx/include/cuda/__memory_resource/resource.h +index 4df00329e..725fb1be5 100644 +--- a/libcudacxx/include/cuda/__memory_resource/resource.h ++++ b/libcudacxx/include/cuda/__memory_resource/resource.h +@@ -24,10 +24,10 @@ + #if !defined(_CCCL_COMPILER_MSVC_2017) + + # include +-# include +-# include +-# include +-# include ++# include ++# include ++# include ++# include + # include + + # if _CCCL_STD_VER >= 2014 +diff --git a/libcudacxx/include/cuda/__memory_resource/resource_ref.h b/libcudacxx/include/cuda/__memory_resource/resource_ref.h +index 0bc6ed764..7e065b799 100644 +--- a/libcudacxx/include/cuda/__memory_resource/resource_ref.h ++++ b/libcudacxx/include/cuda/__memory_resource/resource_ref.h +@@ -25,11 +25,11 @@ + + # include + # include ++# include ++# include ++# include ++# include + # include +-# include +-# include +-# include +-# include + # include + + # if _CCCL_STD_VER >= 2014 +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/barrier_cluster.h b/libcudacxx/include/cuda/__ptx/instructions/barrier_cluster.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/barrier_cluster.h +rename to libcudacxx/include/cuda/__ptx/instructions/barrier_cluster.h +index 2fe3edde1..bc7d88efd 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/barrier_cluster.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/barrier_cluster.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_async_bulk.h b/libcudacxx/include/cuda/__ptx/instructions/cp_async_bulk.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_async_bulk.h +rename to libcudacxx/include/cuda/__ptx/instructions/cp_async_bulk.h +index 369348818..3ce19982a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_async_bulk.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/cp_async_bulk.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_async_bulk_commit_group.h b/libcudacxx/include/cuda/__ptx/instructions/cp_async_bulk_commit_group.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_async_bulk_commit_group.h +rename to libcudacxx/include/cuda/__ptx/instructions/cp_async_bulk_commit_group.h +index 75e32a4ac..f00281053 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_async_bulk_commit_group.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/cp_async_bulk_commit_group.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_async_bulk_tensor.h b/libcudacxx/include/cuda/__ptx/instructions/cp_async_bulk_tensor.h +similarity index 99% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_async_bulk_tensor.h +rename to libcudacxx/include/cuda/__ptx/instructions/cp_async_bulk_tensor.h +index d0106ff65..6e2b68090 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_async_bulk_tensor.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/cp_async_bulk_tensor.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_async_bulk_wait_group.h b/libcudacxx/include/cuda/__ptx/instructions/cp_async_bulk_wait_group.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_async_bulk_wait_group.h +rename to libcudacxx/include/cuda/__ptx/instructions/cp_async_bulk_wait_group.h +index ffa72ecc2..4e22c0a07 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_async_bulk_wait_group.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/cp_async_bulk_wait_group.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_reduce_async_bulk.h b/libcudacxx/include/cuda/__ptx/instructions/cp_reduce_async_bulk.h +similarity index 99% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_reduce_async_bulk.h +rename to libcudacxx/include/cuda/__ptx/instructions/cp_reduce_async_bulk.h +index 8931e9f87..ee89e33c1 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_reduce_async_bulk.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/cp_reduce_async_bulk.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_reduce_async_bulk_tensor.h b/libcudacxx/include/cuda/__ptx/instructions/cp_reduce_async_bulk_tensor.h +similarity index 99% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_reduce_async_bulk_tensor.h +rename to libcudacxx/include/cuda/__ptx/instructions/cp_reduce_async_bulk_tensor.h +index 0103cad97..4ecb108a7 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/cp_reduce_async_bulk_tensor.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/cp_reduce_async_bulk_tensor.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/fence.h b/libcudacxx/include/cuda/__ptx/instructions/fence.h +similarity index 98% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/fence.h +rename to libcudacxx/include/cuda/__ptx/instructions/fence.h +index b0418adf7..7d11aeb97 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/fence.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/fence.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/get_sreg.h b/libcudacxx/include/cuda/__ptx/instructions/get_sreg.h +similarity index 99% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/get_sreg.h +rename to libcudacxx/include/cuda/__ptx/instructions/get_sreg.h +index b239263f3..898298488 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/get_sreg.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/get_sreg.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/getctarank.h b/libcudacxx/include/cuda/__ptx/instructions/getctarank.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/getctarank.h +rename to libcudacxx/include/cuda/__ptx/instructions/getctarank.h +index 7b6313082..f1a2bbbd0 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/getctarank.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/getctarank.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/mbarrier_arrive.h b/libcudacxx/include/cuda/__ptx/instructions/mbarrier_arrive.h +similarity index 98% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/mbarrier_arrive.h +rename to libcudacxx/include/cuda/__ptx/instructions/mbarrier_arrive.h +index 2510c8323..5b423990f 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/mbarrier_arrive.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/mbarrier_arrive.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/mbarrier_init.h b/libcudacxx/include/cuda/__ptx/instructions/mbarrier_init.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/mbarrier_init.h +rename to libcudacxx/include/cuda/__ptx/instructions/mbarrier_init.h +index 26cd5a164..366b1b67e 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/mbarrier_init.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/mbarrier_init.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/mbarrier_wait.h b/libcudacxx/include/cuda/__ptx/instructions/mbarrier_wait.h +similarity index 99% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/mbarrier_wait.h +rename to libcudacxx/include/cuda/__ptx/instructions/mbarrier_wait.h +index 73e4b61ef..837fec44b 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/mbarrier_wait.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/mbarrier_wait.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/red_async.h b/libcudacxx/include/cuda/__ptx/instructions/red_async.h +similarity index 99% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/red_async.h +rename to libcudacxx/include/cuda/__ptx/instructions/red_async.h +index d32f8fecf..777628c67 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/red_async.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/red_async.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/st_async.h b/libcudacxx/include/cuda/__ptx/instructions/st_async.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/st_async.h +rename to libcudacxx/include/cuda/__ptx/instructions/st_async.h +index a73b2e593..e67740878 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/st_async.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/st_async.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/tensormap_cp_fenceproxy.h b/libcudacxx/include/cuda/__ptx/instructions/tensormap_cp_fenceproxy.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/tensormap_cp_fenceproxy.h +rename to libcudacxx/include/cuda/__ptx/instructions/tensormap_cp_fenceproxy.h +index ac0d3b351..cbb4fdb63 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/tensormap_cp_fenceproxy.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/tensormap_cp_fenceproxy.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/tensormap_replace.h b/libcudacxx/include/cuda/__ptx/instructions/tensormap_replace.h +similarity index 99% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/tensormap_replace.h +rename to libcudacxx/include/cuda/__ptx/instructions/tensormap_replace.h +index 6cd24d965..847adb447 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/instructions/tensormap_replace.h ++++ b/libcudacxx/include/cuda/__ptx/instructions/tensormap_replace.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + #include // __CUDA_MINIMUM_ARCH__ and friends + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/parallel_synchronization_and_communication_instructions_mbarrier.h b/libcudacxx/include/cuda/__ptx/parallel_synchronization_and_communication_instructions_mbarrier.h +similarity index 99% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/parallel_synchronization_and_communication_instructions_mbarrier.h +rename to libcudacxx/include/cuda/__ptx/parallel_synchronization_and_communication_instructions_mbarrier.h +index 50fac5ead..65d2ad3bf 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/parallel_synchronization_and_communication_instructions_mbarrier.h ++++ b/libcudacxx/include/cuda/__ptx/parallel_synchronization_and_communication_instructions_mbarrier.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_CUDA_PTX + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/ptx_dot_variants.h b/libcudacxx/include/cuda/__ptx/ptx_dot_variants.h +similarity index 98% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/ptx_dot_variants.h +rename to libcudacxx/include/cuda/__ptx/ptx_dot_variants.h +index 3a14bde19..6609833ad 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/ptx_dot_variants.h ++++ b/libcudacxx/include/cuda/__ptx/ptx_dot_variants.h +@@ -12,7 +12,7 @@ + #ifndef _CUDA_PTX_DOT_VARIANTS_H_ + #define _CUDA_PTX_DOT_VARIANTS_H_ + +-#include // std::integral_constant ++#include // std::integral_constant + + #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) + # pragma GCC system_header +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/ptx_helper_functions.h b/libcudacxx/include/cuda/__ptx/ptx_helper_functions.h +similarity index 98% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/ptx_helper_functions.h +rename to libcudacxx/include/cuda/__ptx/ptx_helper_functions.h +index 14d5ffb42..64881c1c2 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx/ptx_helper_functions.h ++++ b/libcudacxx/include/cuda/__ptx/ptx_helper_functions.h +@@ -12,9 +12,9 @@ + #ifndef _CUDA_PTX_HELPER_FUNCTIONS_H_ + #define _CUDA_PTX_HELPER_FUNCTIONS_H_ + ++#include + #include // size_t + #include // uint32_t +-#include + + #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) + # pragma GCC system_header +diff --git a/libcudacxx/include/cuda/discard_memory b/libcudacxx/include/cuda/discard_memory +index 5893bf610..cc4963874 100644 +--- a/libcudacxx/include/cuda/discard_memory ++++ b/libcudacxx/include/cuda/discard_memory +@@ -22,7 +22,6 @@ + #endif // no system header + + #include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_CUDA + +diff --git a/libcudacxx/include/cuda/functional b/libcudacxx/include/cuda/functional +index 955631e23..7820c8352 100644 +--- a/libcudacxx/include/cuda/functional ++++ b/libcudacxx/include/cuda/functional +@@ -68,6 +68,8 @@ + #include + #include + #include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_CUDA + namespace __detail +diff --git a/libcudacxx/include/cuda/ptx b/libcudacxx/include/cuda/ptx +index acb6aa3cc..44edb20c9 100644 +--- a/libcudacxx/include/cuda/ptx ++++ b/libcudacxx/include/cuda/ptx +@@ -14,10 +14,77 @@ + + #include + +-#include ++#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 ++/* ++ * The cuda::ptx namespace intends to provide PTX wrappers for new hardware ++ * features and new PTX instructions so that they can be experimented with ++ * before higher-level C++ APIs are designed and developed. ++ * ++ * The wrappers have the following responsibilities: ++ * ++ * - They must prevent any PTX assembler errors, that is: ++ * - They are defined only for versions of the CUDA Toolkit in which nvcc/ptxas ++ * actually recognizes the instruction. ++ * - Sizes and types of parameters are correct. ++ * - They must convert state spaces correctly. ++ * - They adhere to the libcu++ coding standards of using: ++ * - Reserved identifiers for all parameters, variables. E.g. `__meow` or `_Woof` ++ * - _CUDA_VSTD:: namespace for types ++ * ++ * The wrappers should not do the following: ++ * ++ * - Use any non-native types. For example, an mbarrier instruction wrapper ++ * takes the barrier address as a uint64_t pointer. ++ * ++ * This header is intended for: ++ * ++ * - internal consumption by higher-level APIs such as cuda::barrier, ++ * - outside developers who want to experiment with the latest features of the ++ * hardware. ++ * ++ * Stability: ++ * ++ * - These headers are intended to present a stable API (not ABI) within one ++ * major version of the CTK. This means that: ++ * - All functions are marked inline ++ * - The type of a function parameter can be changed to be more generic if ++ * that means that code that called the original version can still be ++ * compiled. ++ * ++ * - Good exposure of the PTX should be high priority. If, at a new major ++ * version, we face a difficult choice between breaking backward-compatibility ++ * and an improvement of the PTX exposure, we will tend to the latter option ++ * more easily than in other parts of libcu++. ++ * ++ * Code organization: ++ * ++ * - Each instruction is in a separate file and is included below. ++ * - Some helper function and types can be found in ptx/ptx_helper_functions.h and ptx/ptx_dot_variants.h. ++ */ + +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + #endif // _CUDA_PTX +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/adjacent_find.h b/libcudacxx/include/cuda/std/__algorithm/adjacent_find.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/adjacent_find.h +rename to libcudacxx/include/cuda/std/__algorithm/adjacent_find.h +index f5684a4de..8edf58d19 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/adjacent_find.h ++++ b/libcudacxx/include/cuda/std/__algorithm/adjacent_find.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/all_of.h b/libcudacxx/include/cuda/std/__algorithm/all_of.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/all_of.h +rename to libcudacxx/include/cuda/std/__algorithm/all_of.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/any_of.h b/libcudacxx/include/cuda/std/__algorithm/any_of.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/any_of.h +rename to libcudacxx/include/cuda/std/__algorithm/any_of.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/binary_search.h b/libcudacxx/include/cuda/std/__algorithm/binary_search.h +similarity index 86% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/binary_search.h +rename to libcudacxx/include/cuda/std/__algorithm/binary_search.h +index d10eeca12..ac486743a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/binary_search.h ++++ b/libcudacxx/include/cuda/std/__algorithm/binary_search.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/clamp.h b/libcudacxx/include/cuda/std/__algorithm/clamp.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/clamp.h +rename to libcudacxx/include/cuda/std/__algorithm/clamp.h +index 8178b0590..d2c6540e1 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/clamp.h ++++ b/libcudacxx/include/cuda/std/__algorithm/clamp.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/comp.h b/libcudacxx/include/cuda/std/__algorithm/comp.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/comp.h +rename to libcudacxx/include/cuda/std/__algorithm/comp.h +index c233b6c5e..5427fc7e1 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/comp.h ++++ b/libcudacxx/include/cuda/std/__algorithm/comp.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + #if defined(_LIBCUDACXX_HAS_STRING) +-# include ++# include + #endif // _LIBCUDACXX_HAS_STRING + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/comp_ref_type.h b/libcudacxx/include/cuda/std/__algorithm/comp_ref_type.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/comp_ref_type.h +rename to libcudacxx/include/cuda/std/__algorithm/comp_ref_type.h +index e365988de..3b6fd7db6 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/comp_ref_type.h ++++ b/libcudacxx/include/cuda/std/__algorithm/comp_ref_type.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + ++#include + #include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/copy.h b/libcudacxx/include/cuda/std/__algorithm/copy.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/copy.h +rename to libcudacxx/include/cuda/std/__algorithm/copy.h +index 0ac928d77..bd359ced8 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/copy.h ++++ b/libcudacxx/include/cuda/std/__algorithm/copy.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/copy_backward.h b/libcudacxx/include/cuda/std/__algorithm/copy_backward.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/copy_backward.h +rename to libcudacxx/include/cuda/std/__algorithm/copy_backward.h +index dda0346f3..fb48013e4 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/copy_backward.h ++++ b/libcudacxx/include/cuda/std/__algorithm/copy_backward.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/copy_if.h b/libcudacxx/include/cuda/std/__algorithm/copy_if.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/copy_if.h +rename to libcudacxx/include/cuda/std/__algorithm/copy_if.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/copy_n.h b/libcudacxx/include/cuda/std/__algorithm/copy_n.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/copy_n.h +rename to libcudacxx/include/cuda/std/__algorithm/copy_n.h +index 813160e61..a6c62e920 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/copy_n.h ++++ b/libcudacxx/include/cuda/std/__algorithm/copy_n.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/count.h b/libcudacxx/include/cuda/std/__algorithm/count.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/count.h +rename to libcudacxx/include/cuda/std/__algorithm/count.h +index ec66abacb..d9fe88bee 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/count.h ++++ b/libcudacxx/include/cuda/std/__algorithm/count.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/count_if.h b/libcudacxx/include/cuda/std/__algorithm/count_if.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/count_if.h +rename to libcudacxx/include/cuda/std/__algorithm/count_if.h +index 2fdac2cf7..0821cdbe3 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/count_if.h ++++ b/libcudacxx/include/cuda/std/__algorithm/count_if.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/equal.h b/libcudacxx/include/cuda/std/__algorithm/equal.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/equal.h +rename to libcudacxx/include/cuda/std/__algorithm/equal.h +index e95fed56d..261141412 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/equal.h ++++ b/libcudacxx/include/cuda/std/__algorithm/equal.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/equal_range.h b/libcudacxx/include/cuda/std/__algorithm/equal_range.h +similarity index 74% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/equal_range.h +rename to libcudacxx/include/cuda/std/__algorithm/equal_range.h +index 0cc7944aa..826680edc 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/equal_range.h ++++ b/libcudacxx/include/cuda/std/__algorithm/equal_range.h +@@ -20,22 +20,22 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/fill.h b/libcudacxx/include/cuda/std/__algorithm/fill.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/fill.h +rename to libcudacxx/include/cuda/std/__algorithm/fill.h +index 9402cc828..a4f020233 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/fill.h ++++ b/libcudacxx/include/cuda/std/__algorithm/fill.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/fill_n.h b/libcudacxx/include/cuda/std/__algorithm/fill_n.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/fill_n.h +rename to libcudacxx/include/cuda/std/__algorithm/fill_n.h +index ce072c256..56f7a5a39 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/fill_n.h ++++ b/libcudacxx/include/cuda/std/__algorithm/fill_n.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/find.h b/libcudacxx/include/cuda/std/__algorithm/find.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/find.h +rename to libcudacxx/include/cuda/std/__algorithm/find.h +index d673246f7..b23856ea3 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/find.h ++++ b/libcudacxx/include/cuda/std/__algorithm/find.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/find_end.h b/libcudacxx/include/cuda/std/__algorithm/find_end.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/find_end.h +rename to libcudacxx/include/cuda/std/__algorithm/find_end.h +index 2cad31055..760e5dc33 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/find_end.h ++++ b/libcudacxx/include/cuda/std/__algorithm/find_end.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/find_first_of.h b/libcudacxx/include/cuda/std/__algorithm/find_first_of.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/find_first_of.h +rename to libcudacxx/include/cuda/std/__algorithm/find_first_of.h +index 3b792125e..856982376 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/find_first_of.h ++++ b/libcudacxx/include/cuda/std/__algorithm/find_first_of.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/find_if.h b/libcudacxx/include/cuda/std/__algorithm/find_if.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/find_if.h +rename to libcudacxx/include/cuda/std/__algorithm/find_if.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/find_if_not.h b/libcudacxx/include/cuda/std/__algorithm/find_if_not.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/find_if_not.h +rename to libcudacxx/include/cuda/std/__algorithm/find_if_not.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/for_each.h b/libcudacxx/include/cuda/std/__algorithm/for_each.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/for_each.h +rename to libcudacxx/include/cuda/std/__algorithm/for_each.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/for_each_n.h b/libcudacxx/include/cuda/std/__algorithm/for_each_n.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/for_each_n.h +rename to libcudacxx/include/cuda/std/__algorithm/for_each_n.h +index 96b272290..95110d00e 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/for_each_n.h ++++ b/libcudacxx/include/cuda/std/__algorithm/for_each_n.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/generate.h b/libcudacxx/include/cuda/std/__algorithm/generate.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/generate.h +rename to libcudacxx/include/cuda/std/__algorithm/generate.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/generate_n.h b/libcudacxx/include/cuda/std/__algorithm/generate_n.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/generate_n.h +rename to libcudacxx/include/cuda/std/__algorithm/generate_n.h +index 04b2c79ca..c4ecf5aa1 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/generate_n.h ++++ b/libcudacxx/include/cuda/std/__algorithm/generate_n.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/half_positive.h b/libcudacxx/include/cuda/std/__algorithm/half_positive.h +similarity index 87% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/half_positive.h +rename to libcudacxx/include/cuda/std/__algorithm/half_positive.h +index ad45acc2c..4942304fc 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/half_positive.h ++++ b/libcudacxx/include/cuda/std/__algorithm/half_positive.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/includes.h b/libcudacxx/include/cuda/std/__algorithm/includes.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/includes.h +rename to libcudacxx/include/cuda/std/__algorithm/includes.h +index 4ed0a86da..40058aede 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/includes.h ++++ b/libcudacxx/include/cuda/std/__algorithm/includes.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_heap.h b/libcudacxx/include/cuda/std/__algorithm/is_heap.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_heap.h +rename to libcudacxx/include/cuda/std/__algorithm/is_heap.h +index 89ff1cd18..8e82c768d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_heap.h ++++ b/libcudacxx/include/cuda/std/__algorithm/is_heap.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_heap_until.h b/libcudacxx/include/cuda/std/__algorithm/is_heap_until.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_heap_until.h +rename to libcudacxx/include/cuda/std/__algorithm/is_heap_until.h +index 615e6f541..4548d6c38 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_heap_until.h ++++ b/libcudacxx/include/cuda/std/__algorithm/is_heap_until.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_partitioned.h b/libcudacxx/include/cuda/std/__algorithm/is_partitioned.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_partitioned.h +rename to libcudacxx/include/cuda/std/__algorithm/is_partitioned.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_permutation.h b/libcudacxx/include/cuda/std/__algorithm/is_permutation.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_permutation.h +rename to libcudacxx/include/cuda/std/__algorithm/is_permutation.h +index 4ca910e9a..dc023cce1 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_permutation.h ++++ b/libcudacxx/include/cuda/std/__algorithm/is_permutation.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_sorted.h b/libcudacxx/include/cuda/std/__algorithm/is_sorted.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_sorted.h +rename to libcudacxx/include/cuda/std/__algorithm/is_sorted.h +index 51223de21..51b9877ee 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_sorted.h ++++ b/libcudacxx/include/cuda/std/__algorithm/is_sorted.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_sorted_until.h b/libcudacxx/include/cuda/std/__algorithm/is_sorted_until.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_sorted_until.h +rename to libcudacxx/include/cuda/std/__algorithm/is_sorted_until.h +index a315ba59f..149f2d8a8 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/is_sorted_until.h ++++ b/libcudacxx/include/cuda/std/__algorithm/is_sorted_until.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/iter_swap.h b/libcudacxx/include/cuda/std/__algorithm/iter_swap.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/iter_swap.h +rename to libcudacxx/include/cuda/std/__algorithm/iter_swap.h +index a8deb9dd9..64a20465b 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/iter_swap.h ++++ b/libcudacxx/include/cuda/std/__algorithm/iter_swap.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/iterator_operations.h b/libcudacxx/include/cuda/std/__algorithm/iterator_operations.h +similarity index 82% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/iterator_operations.h +rename to libcudacxx/include/cuda/std/__algorithm/iterator_operations.h +index b66f04837..b33969732 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/iterator_operations.h ++++ b/libcudacxx/include/cuda/std/__algorithm/iterator_operations.h +@@ -20,24 +20,24 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/lexicographical_compare.h b/libcudacxx/include/cuda/std/__algorithm/lexicographical_compare.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/lexicographical_compare.h +rename to libcudacxx/include/cuda/std/__algorithm/lexicographical_compare.h +index 757fe66ac..93f102d86 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/lexicographical_compare.h ++++ b/libcudacxx/include/cuda/std/__algorithm/lexicographical_compare.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/lower_bound.h b/libcudacxx/include/cuda/std/__algorithm/lower_bound.h +similarity index 78% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/lower_bound.h +rename to libcudacxx/include/cuda/std/__algorithm/lower_bound.h +index a335c5dbf..a36be9043 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/lower_bound.h ++++ b/libcudacxx/include/cuda/std/__algorithm/lower_bound.h +@@ -20,16 +20,16 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/make_heap.h b/libcudacxx/include/cuda/std/__algorithm/make_heap.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/make_heap.h +rename to libcudacxx/include/cuda/std/__algorithm/make_heap.h +index 5dbc3ab50..a7c6b40b8 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/make_heap.h ++++ b/libcudacxx/include/cuda/std/__algorithm/make_heap.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/make_projected.h b/libcudacxx/include/cuda/std/__algorithm/make_projected.h +similarity index 82% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/make_projected.h +rename to libcudacxx/include/cuda/std/__algorithm/make_projected.h +index 95c7ca7d8..53c8946f1 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/make_projected.h ++++ b/libcudacxx/include/cuda/std/__algorithm/make_projected.h +@@ -20,16 +20,16 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/max.h b/libcudacxx/include/cuda/std/__algorithm/max.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/max.h +rename to libcudacxx/include/cuda/std/__algorithm/max.h +index 5d09cf011..e14ba2f0d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/max.h ++++ b/libcudacxx/include/cuda/std/__algorithm/max.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + #include + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/max_element.h b/libcudacxx/include/cuda/std/__algorithm/max_element.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/max_element.h +rename to libcudacxx/include/cuda/std/__algorithm/max_element.h +index 3f004a8fe..e5eed1a9a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/max_element.h ++++ b/libcudacxx/include/cuda/std/__algorithm/max_element.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/merge.h b/libcudacxx/include/cuda/std/__algorithm/merge.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/merge.h +rename to libcudacxx/include/cuda/std/__algorithm/merge.h +index 0ac253c91..e3336253d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/merge.h ++++ b/libcudacxx/include/cuda/std/__algorithm/merge.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/min.h b/libcudacxx/include/cuda/std/__algorithm/min.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/min.h +rename to libcudacxx/include/cuda/std/__algorithm/min.h +index 06f8c57c7..62401fe70 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/min.h ++++ b/libcudacxx/include/cuda/std/__algorithm/min.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + #include + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/min_element.h b/libcudacxx/include/cuda/std/__algorithm/min_element.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/min_element.h +rename to libcudacxx/include/cuda/std/__algorithm/min_element.h +index 75960cedf..60a3e00b1 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/min_element.h ++++ b/libcudacxx/include/cuda/std/__algorithm/min_element.h +@@ -20,14 +20,14 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/minmax.h b/libcudacxx/include/cuda/std/__algorithm/minmax.h +similarity index 87% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/minmax.h +rename to libcudacxx/include/cuda/std/__algorithm/minmax.h +index 0eaaa9e2a..f6560bd03 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/minmax.h ++++ b/libcudacxx/include/cuda/std/__algorithm/minmax.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/minmax_element.h b/libcudacxx/include/cuda/std/__algorithm/minmax_element.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/minmax_element.h +rename to libcudacxx/include/cuda/std/__algorithm/minmax_element.h +index c818fd891..c848e410a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/minmax_element.h ++++ b/libcudacxx/include/cuda/std/__algorithm/minmax_element.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/mismatch.h b/libcudacxx/include/cuda/std/__algorithm/mismatch.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/mismatch.h +rename to libcudacxx/include/cuda/std/__algorithm/mismatch.h +index bea0c3947..0e0c938d7 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/mismatch.h ++++ b/libcudacxx/include/cuda/std/__algorithm/mismatch.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/move.h b/libcudacxx/include/cuda/std/__algorithm/move.h +similarity index 82% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/move.h +rename to libcudacxx/include/cuda/std/__algorithm/move.h +index 7c77ef3c7..b20f9b992 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/move.h ++++ b/libcudacxx/include/cuda/std/__algorithm/move.h +@@ -20,14 +20,14 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/move_backward.h b/libcudacxx/include/cuda/std/__algorithm/move_backward.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/move_backward.h +rename to libcudacxx/include/cuda/std/__algorithm/move_backward.h +index f25bc0ad4..935bb7748 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/move_backward.h ++++ b/libcudacxx/include/cuda/std/__algorithm/move_backward.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/next_permutation.h b/libcudacxx/include/cuda/std/__algorithm/next_permutation.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/next_permutation.h +rename to libcudacxx/include/cuda/std/__algorithm/next_permutation.h +index 6c182a7b5..471735f6a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/next_permutation.h ++++ b/libcudacxx/include/cuda/std/__algorithm/next_permutation.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/none_of.h b/libcudacxx/include/cuda/std/__algorithm/none_of.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/none_of.h +rename to libcudacxx/include/cuda/std/__algorithm/none_of.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partial_sort.h b/libcudacxx/include/cuda/std/__algorithm/partial_sort.h +similarity index 82% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partial_sort.h +rename to libcudacxx/include/cuda/std/__algorithm/partial_sort.h +index b24187685..12d256d56 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partial_sort.h ++++ b/libcudacxx/include/cuda/std/__algorithm/partial_sort.h +@@ -20,16 +20,16 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partial_sort_copy.h b/libcudacxx/include/cuda/std/__algorithm/partial_sort_copy.h +similarity index 80% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partial_sort_copy.h +rename to libcudacxx/include/cuda/std/__algorithm/partial_sort_copy.h +index 4bdf998e9..d552e4517 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partial_sort_copy.h ++++ b/libcudacxx/include/cuda/std/__algorithm/partial_sort_copy.h +@@ -20,19 +20,19 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partition.h b/libcudacxx/include/cuda/std/__algorithm/partition.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partition.h +rename to libcudacxx/include/cuda/std/__algorithm/partition.h +index c5efdc9c4..a56b17155 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partition.h ++++ b/libcudacxx/include/cuda/std/__algorithm/partition.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partition_copy.h b/libcudacxx/include/cuda/std/__algorithm/partition_copy.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partition_copy.h +rename to libcudacxx/include/cuda/std/__algorithm/partition_copy.h +index 57ab1b7df..d8dfce885 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partition_copy.h ++++ b/libcudacxx/include/cuda/std/__algorithm/partition_copy.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partition_point.h b/libcudacxx/include/cuda/std/__algorithm/partition_point.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partition_point.h +rename to libcudacxx/include/cuda/std/__algorithm/partition_point.h +index a7f170577..31bb5d7cb 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/partition_point.h ++++ b/libcudacxx/include/cuda/std/__algorithm/partition_point.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/pop_heap.h b/libcudacxx/include/cuda/std/__algorithm/pop_heap.h +similarity index 83% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/pop_heap.h +rename to libcudacxx/include/cuda/std/__algorithm/pop_heap.h +index 2f62bf47d..5173e616c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/pop_heap.h ++++ b/libcudacxx/include/cuda/std/__algorithm/pop_heap.h +@@ -20,16 +20,16 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/prev_permutation.h b/libcudacxx/include/cuda/std/__algorithm/prev_permutation.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/prev_permutation.h +rename to libcudacxx/include/cuda/std/__algorithm/prev_permutation.h +index 7e3c66d8b..b177c4c12 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/prev_permutation.h ++++ b/libcudacxx/include/cuda/std/__algorithm/prev_permutation.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/push_heap.h b/libcudacxx/include/cuda/std/__algorithm/push_heap.h +similarity index 86% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/push_heap.h +rename to libcudacxx/include/cuda/std/__algorithm/push_heap.h +index 6c1bb29b7..a9fbe3f15 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/push_heap.h ++++ b/libcudacxx/include/cuda/std/__algorithm/push_heap.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/ranges_iterator_concept.h b/libcudacxx/include/cuda/std/__algorithm/ranges_iterator_concept.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/ranges_iterator_concept.h +rename to libcudacxx/include/cuda/std/__algorithm/ranges_iterator_concept.h +index 4af020bf8..cc6d6866c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/ranges_iterator_concept.h ++++ b/libcudacxx/include/cuda/std/__algorithm/ranges_iterator_concept.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + #if _CCCL_STD_VER >= 2017 && !defined(_CCCL_COMPILER_MSVC_2017) + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/remove.h b/libcudacxx/include/cuda/std/__algorithm/remove.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/remove.h +rename to libcudacxx/include/cuda/std/__algorithm/remove.h +index ca2c2bfbc..64cc12d66 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/remove.h ++++ b/libcudacxx/include/cuda/std/__algorithm/remove.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/remove_copy.h b/libcudacxx/include/cuda/std/__algorithm/remove_copy.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/remove_copy.h +rename to libcudacxx/include/cuda/std/__algorithm/remove_copy.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/remove_copy_if.h b/libcudacxx/include/cuda/std/__algorithm/remove_copy_if.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/remove_copy_if.h +rename to libcudacxx/include/cuda/std/__algorithm/remove_copy_if.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/remove_if.h b/libcudacxx/include/cuda/std/__algorithm/remove_if.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/remove_if.h +rename to libcudacxx/include/cuda/std/__algorithm/remove_if.h +index 7dcf16ce2..9e9cfec24 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/remove_if.h ++++ b/libcudacxx/include/cuda/std/__algorithm/remove_if.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/replace.h b/libcudacxx/include/cuda/std/__algorithm/replace.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/replace.h +rename to libcudacxx/include/cuda/std/__algorithm/replace.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/replace_copy.h b/libcudacxx/include/cuda/std/__algorithm/replace_copy.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/replace_copy.h +rename to libcudacxx/include/cuda/std/__algorithm/replace_copy.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/replace_copy_if.h b/libcudacxx/include/cuda/std/__algorithm/replace_copy_if.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/replace_copy_if.h +rename to libcudacxx/include/cuda/std/__algorithm/replace_copy_if.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/replace_if.h b/libcudacxx/include/cuda/std/__algorithm/replace_if.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/replace_if.h +rename to libcudacxx/include/cuda/std/__algorithm/replace_if.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/reverse.h b/libcudacxx/include/cuda/std/__algorithm/reverse.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/reverse.h +rename to libcudacxx/include/cuda/std/__algorithm/reverse.h +index 99a11443d..fd2a61419 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/reverse.h ++++ b/libcudacxx/include/cuda/std/__algorithm/reverse.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/reverse_copy.h b/libcudacxx/include/cuda/std/__algorithm/reverse_copy.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/reverse_copy.h +rename to libcudacxx/include/cuda/std/__algorithm/reverse_copy.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/rotate.h b/libcudacxx/include/cuda/std/__algorithm/rotate.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/rotate.h +rename to libcudacxx/include/cuda/std/__algorithm/rotate.h +index 6a1ff0a56..1c26c5fd6 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/rotate.h ++++ b/libcudacxx/include/cuda/std/__algorithm/rotate.h +@@ -20,14 +20,14 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/rotate_copy.h b/libcudacxx/include/cuda/std/__algorithm/rotate_copy.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/rotate_copy.h +rename to libcudacxx/include/cuda/std/__algorithm/rotate_copy.h +index 005e69413..04f09748c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/rotate_copy.h ++++ b/libcudacxx/include/cuda/std/__algorithm/rotate_copy.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/search.h b/libcudacxx/include/cuda/std/__algorithm/search.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/search.h +rename to libcudacxx/include/cuda/std/__algorithm/search.h +index b16412ec1..0aaccb4b1 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/search.h ++++ b/libcudacxx/include/cuda/std/__algorithm/search.h +@@ -20,15 +20,15 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/search_n.h b/libcudacxx/include/cuda/std/__algorithm/search_n.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/search_n.h +rename to libcudacxx/include/cuda/std/__algorithm/search_n.h +index 88833e5a7..257b9b089 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/search_n.h ++++ b/libcudacxx/include/cuda/std/__algorithm/search_n.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/set_difference.h b/libcudacxx/include/cuda/std/__algorithm/set_difference.h +similarity index 80% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/set_difference.h +rename to libcudacxx/include/cuda/std/__algorithm/set_difference.h +index 717acee8d..f4a65c35a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/set_difference.h ++++ b/libcudacxx/include/cuda/std/__algorithm/set_difference.h +@@ -20,16 +20,16 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/set_intersection.h b/libcudacxx/include/cuda/std/__algorithm/set_intersection.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/set_intersection.h +rename to libcudacxx/include/cuda/std/__algorithm/set_intersection.h +index 5a95f2a14..b0a395f09 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/set_intersection.h ++++ b/libcudacxx/include/cuda/std/__algorithm/set_intersection.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/set_symmetric_difference.h b/libcudacxx/include/cuda/std/__algorithm/set_symmetric_difference.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/set_symmetric_difference.h +rename to libcudacxx/include/cuda/std/__algorithm/set_symmetric_difference.h +index dd7c48e7f..cce8d35c4 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/set_symmetric_difference.h ++++ b/libcudacxx/include/cuda/std/__algorithm/set_symmetric_difference.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/set_union.h b/libcudacxx/include/cuda/std/__algorithm/set_union.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/set_union.h +rename to libcudacxx/include/cuda/std/__algorithm/set_union.h +index 95df4b819..c053eb60e 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/set_union.h ++++ b/libcudacxx/include/cuda/std/__algorithm/set_union.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/shift_left.h b/libcudacxx/include/cuda/std/__algorithm/shift_left.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/shift_left.h +rename to libcudacxx/include/cuda/std/__algorithm/shift_left.h +index 1ddeb422a..39a41948f 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/shift_left.h ++++ b/libcudacxx/include/cuda/std/__algorithm/shift_left.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/shift_right.h b/libcudacxx/include/cuda/std/__algorithm/shift_right.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/shift_right.h +rename to libcudacxx/include/cuda/std/__algorithm/shift_right.h +index b017bed91..a8548b7be 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/shift_right.h ++++ b/libcudacxx/include/cuda/std/__algorithm/shift_right.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/sift_down.h b/libcudacxx/include/cuda/std/__algorithm/sift_down.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/sift_down.h +rename to libcudacxx/include/cuda/std/__algorithm/sift_down.h +index adeb37328..448f63ae6 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/sift_down.h ++++ b/libcudacxx/include/cuda/std/__algorithm/sift_down.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include ++#include ++#include ++#include + #include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/sort_heap.h b/libcudacxx/include/cuda/std/__algorithm/sort_heap.h +similarity index 80% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/sort_heap.h +rename to libcudacxx/include/cuda/std/__algorithm/sort_heap.h +index c8bc753af..f46be19e6 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/sort_heap.h ++++ b/libcudacxx/include/cuda/std/__algorithm/sort_heap.h +@@ -20,14 +20,14 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/swap_ranges.h b/libcudacxx/include/cuda/std/__algorithm/swap_ranges.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/swap_ranges.h +rename to libcudacxx/include/cuda/std/__algorithm/swap_ranges.h +index d45f3e798..a021e506d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/swap_ranges.h ++++ b/libcudacxx/include/cuda/std/__algorithm/swap_ranges.h +@@ -21,9 +21,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/transform.h b/libcudacxx/include/cuda/std/__algorithm/transform.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/transform.h +rename to libcudacxx/include/cuda/std/__algorithm/transform.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/unique.h b/libcudacxx/include/cuda/std/__algorithm/unique.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/unique.h +rename to libcudacxx/include/cuda/std/__algorithm/unique.h +index fe2ff0f4a..d6deedf13 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/unique.h ++++ b/libcudacxx/include/cuda/std/__algorithm/unique.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/unique_copy.h b/libcudacxx/include/cuda/std/__algorithm/unique_copy.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/unique_copy.h +rename to libcudacxx/include/cuda/std/__algorithm/unique_copy.h +index a33ae920a..385f9778e 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/unique_copy.h ++++ b/libcudacxx/include/cuda/std/__algorithm/unique_copy.h +@@ -20,14 +20,14 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/unwrap_iter.h b/libcudacxx/include/cuda/std/__algorithm/unwrap_iter.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/unwrap_iter.h +rename to libcudacxx/include/cuda/std/__algorithm/unwrap_iter.h +index d3567a529..03e74c80d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/unwrap_iter.h ++++ b/libcudacxx/include/cuda/std/__algorithm/unwrap_iter.h +@@ -21,12 +21,12 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/upper_bound.h b/libcudacxx/include/cuda/std/__algorithm/upper_bound.h +similarity index 78% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/upper_bound.h +rename to libcudacxx/include/cuda/std/__algorithm/upper_bound.h +index 5c917bc8a..809eb5d31 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__algorithm/upper_bound.h ++++ b/libcudacxx/include/cuda/std/__algorithm/upper_bound.h +@@ -20,16 +20,16 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/__algorithm b/libcudacxx/include/cuda/std/__algorithm_ +similarity index 100% +rename from libcudacxx/include/cuda/std/__algorithm +rename to libcudacxx/include/cuda/std/__algorithm_ +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/attributes.h b/libcudacxx/include/cuda/std/__cccl/attributes.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/attributes.h +rename to libcudacxx/include/cuda/std/__cccl/attributes.h +index 926e18cee..dc00e67f3 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/attributes.h ++++ b/libcudacxx/include/cuda/std/__cccl/attributes.h +@@ -11,9 +11,9 @@ + #ifndef __CCCL_ATTRIBUTES_H + #define __CCCL_ATTRIBUTES_H + +-#include +-#include +-#include ++#include ++#include ++#include + + #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) + # pragma GCC system_header +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/compiler.h b/libcudacxx/include/cuda/std/__cccl/compiler.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/compiler.h +rename to libcudacxx/include/cuda/std/__cccl/compiler.h +index f950e1d9e..80c20a9bc 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/compiler.h ++++ b/libcudacxx/include/cuda/std/__cccl/compiler.h +@@ -56,7 +56,14 @@ + # define _CCCL_CUDA_COMPILER + #endif // cuda compiler available + +-#if defined(__CUDACC__) || defined(_CCCL_CUDA_COMPILER_NVHPC) ++// clang-cuda does not define __CUDACC_VER_MAJOR__ and friends ++#if defined(_CCCL_CUDA_COMPILER_CLANG) ++# define _CCCL_CUDACC ++# define _CCCL_CUDACC_VER_MAJOR CUDA_VERSION / 1000 ++# define _CCCL_CUDACC_VER_MINOR (CUDA_VERSION % 1000) / 10 ++# define _CCCL_CUDACC_VER_BUILD 0 ++# define _CCCL_CUDACC_VER CUDA_VERSION * 100 ++#elif defined(_CCCL_CUDA_COMPILER) + # define _CCCL_CUDACC + # define _CCCL_CUDACC_VER_MAJOR __CUDACC_VER_MAJOR__ + # define _CCCL_CUDACC_VER_MINOR __CUDACC_VER_MINOR__ +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/diagnostic.h b/libcudacxx/include/cuda/std/__cccl/diagnostic.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/diagnostic.h +rename to libcudacxx/include/cuda/std/__cccl/diagnostic.h +index 3230f7c40..0e5373ad5 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/diagnostic.h ++++ b/libcudacxx/include/cuda/std/__cccl/diagnostic.h +@@ -11,8 +11,8 @@ + #ifndef __CCCL_DIAGNOSTIC_H + #define __CCCL_DIAGNOSTIC_H + +-#include +-#include ++#include ++#include + + #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) + # pragma GCC system_header +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/dialect.h b/libcudacxx/include/cuda/std/__cccl/dialect.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/dialect.h +rename to libcudacxx/include/cuda/std/__cccl/dialect.h +index a73e00fd0..8956c6f52 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/dialect.h ++++ b/libcudacxx/include/cuda/std/__cccl/dialect.h +@@ -11,8 +11,8 @@ + #ifndef __CCCL_DIALECT_H + #define __CCCL_DIALECT_H + +-#include +-#include ++#include ++#include + + #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) + # pragma GCC system_header +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/execution_space.h b/libcudacxx/include/cuda/std/__cccl/execution_space.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/execution_space.h +rename to libcudacxx/include/cuda/std/__cccl/execution_space.h +index 3f4c0a0e3..499f48071 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/execution_space.h ++++ b/libcudacxx/include/cuda/std/__cccl/execution_space.h +@@ -11,8 +11,8 @@ + #ifndef __CCCL_EXECUTION_SPACE_H + #define __CCCL_EXECUTION_SPACE_H + +-#include +-#include ++#include ++#include + + #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) + # pragma GCC system_header +@@ -27,12 +27,12 @@ + # define _CCCL_DEVICE __device__ + # define _CCCL_HOST_DEVICE __host__ __device__ + # define _CCCL_FORCEINLINE __forceinline__ +-#else // ^^^ __CUDACC__ || _NVHPC_CUDA ^^^ / vvv !__CUDACC__ && !_NVHPC_CUDA ++#else // ^^^ _CCCL_CUDA_COMPILER ^^^ / vvv !_CCCL_CUDA_COMPILER + # define _CCCL_HOST + # define _CCCL_DEVICE + # define _CCCL_HOST_DEVICE +-# define _CCCL_FORCEINLINE +-#endif // !__CUDACC__ && !_NVHPC_CUDA ++# define _CCCL_FORCEINLINE inline ++#endif // !_CCCL_CUDA_COMPILER + + #if !defined(_CCCL_EXEC_CHECK_DISABLE) + # if defined(_CCCL_CUDA_COMPILER_NVCC) +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/ptx_isa.h b/libcudacxx/include/cuda/std/__cccl/ptx_isa.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/ptx_isa.h +rename to libcudacxx/include/cuda/std/__cccl/ptx_isa.h +index 7ca67b4cb..300ea2d04 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/ptx_isa.h ++++ b/libcudacxx/include/cuda/std/__cccl/ptx_isa.h +@@ -11,8 +11,8 @@ + #ifndef __CCCL_PTX_ISA_H_ + #define __CCCL_PTX_ISA_H_ + +-#include +-#include ++#include ++#include + + #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) + # pragma GCC system_header +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/system_header.h b/libcudacxx/include/cuda/std/__cccl/system_header.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/system_header.h +rename to libcudacxx/include/cuda/std/__cccl/system_header.h +index 11e14d727..9fa79762c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/system_header.h ++++ b/libcudacxx/include/cuda/std/__cccl/system_header.h +@@ -11,7 +11,7 @@ + #ifndef __CCCL_SYSTEM_HEADER_H + #define __CCCL_SYSTEM_HEADER_H + +-#include ++#include + + // Enforce that cccl headers are treated as system headers + #if defined(_CCCL_COMPILER_GCC) || defined(_CCCL_COMPILER_NVHPC) || defined(_CCCL_COMPILER_ICC) \ +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/version.h b/libcudacxx/include/cuda/std/__cccl/version.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/version.h +rename to libcudacxx/include/cuda/std/__cccl/version.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/visibility.h b/libcudacxx/include/cuda/std/__cccl/visibility.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/visibility.h +rename to libcudacxx/include/cuda/std/__cccl/visibility.h +index f08de2526..6b39b383d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl/visibility.h ++++ b/libcudacxx/include/cuda/std/__cccl/visibility.h +@@ -11,12 +11,12 @@ + #ifndef __CCCL_VISIBILITY_H + #define __CCCL_VISIBILITY_H + +-#ifndef __CCCL_CONFIG ++#ifndef _CUDA__CCCL_CONFIG + # error "<__cccl/visibility.h> should only be included in from " +-#endif // __CCCL_CONFIG ++#endif // _CUDA__CCCL_CONFIG + +-#include +-#include ++#include ++#include + + // We want to ensure that all warning emmiting from this header are supressed + #if defined(_CCCL_FORCE_SYSTEM_HEADER_GCC) +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__complex/nvbf16.h b/libcudacxx/include/cuda/std/__complex/nvbf16.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__complex/nvbf16.h +rename to libcudacxx/include/cuda/std/__complex/nvbf16.h +index 24b91e37f..3e7f469d5 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__complex/nvbf16.h ++++ b/libcudacxx/include/cuda/std/__complex/nvbf16.h +@@ -28,13 +28,13 @@ _CCCL_DIAG_SUPPRESS_CLANG("-Wunused-function") + # include + _CCCL_DIAG_POP + ++# include ++# include ++# include ++# include ++# include + # include + # include +-# include +-# include +-# include +-# include +-# include + + # if !defined(_CCCL_COMPILER_NVRTC) + # include // for std::basic_ostringstream +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__complex/nvfp16.h b/libcudacxx/include/cuda/std/__complex/nvfp16.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__complex/nvfp16.h +rename to libcudacxx/include/cuda/std/__complex/nvfp16.h +index c3bfb2110..55da3ca84 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__complex/nvfp16.h ++++ b/libcudacxx/include/cuda/std/__complex/nvfp16.h +@@ -25,13 +25,13 @@ + + # include + ++# include ++# include ++# include ++# include ++# include + # include + # include +-# include +-# include +-# include +-# include +-# include + + # if !defined(_CCCL_COMPILER_NVRTC) + # include // for std::basic_ostringstream +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__complex/vector_support.h b/libcudacxx/include/cuda/std/__complex/vector_support.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__complex/vector_support.h +rename to libcudacxx/include/cuda/std/__complex/vector_support.h +index 8153905da..72a76a05c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__complex/vector_support.h ++++ b/libcudacxx/include/cuda/std/__complex/vector_support.h +@@ -21,13 +21,13 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/_One_of.h b/libcudacxx/include/cuda/std/__concepts/_One_of.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/_One_of.h +rename to libcudacxx/include/cuda/std/__concepts/_One_of.h +index 3f808c408..662a9fc83 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/_One_of.h ++++ b/libcudacxx/include/cuda/std/__concepts/_One_of.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/__concept_macros.h b/libcudacxx/include/cuda/std/__concepts/__concept_macros.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/__concept_macros.h +rename to libcudacxx/include/cuda/std/__concepts/__concept_macros.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/all_of.h b/libcudacxx/include/cuda/std/__concepts/all_of.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/all_of.h +rename to libcudacxx/include/cuda/std/__concepts/all_of.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/arithmetic.h b/libcudacxx/include/cuda/std/__concepts/arithmetic.h +similarity index 75% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/arithmetic.h +rename to libcudacxx/include/cuda/std/__concepts/arithmetic.h +index ecc52c6d5..947763b44 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/arithmetic.h ++++ b/libcudacxx/include/cuda/std/__concepts/arithmetic.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/assignable.h b/libcudacxx/include/cuda/std/__concepts/assignable.h +similarity index 81% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/assignable.h +rename to libcudacxx/include/cuda/std/__concepts/assignable.h +index 3a8e98566..b894522a0 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/assignable.h ++++ b/libcudacxx/include/cuda/std/__concepts/assignable.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/boolean_testable.h b/libcudacxx/include/cuda/std/__concepts/boolean_testable.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/boolean_testable.h +rename to libcudacxx/include/cuda/std/__concepts/boolean_testable.h +index 088125003..c0f21db78 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/boolean_testable.h ++++ b/libcudacxx/include/cuda/std/__concepts/boolean_testable.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/class_or_enum.h b/libcudacxx/include/cuda/std/__concepts/class_or_enum.h +similarity index 81% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/class_or_enum.h +rename to libcudacxx/include/cuda/std/__concepts/class_or_enum.h +index a0ff8cd12..61c861b86 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/class_or_enum.h ++++ b/libcudacxx/include/cuda/std/__concepts/class_or_enum.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/common_reference_with.h b/libcudacxx/include/cuda/std/__concepts/common_reference_with.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/common_reference_with.h +rename to libcudacxx/include/cuda/std/__concepts/common_reference_with.h +index 2b20f43c1..da9881172 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/common_reference_with.h ++++ b/libcudacxx/include/cuda/std/__concepts/common_reference_with.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/common_with.h b/libcudacxx/include/cuda/std/__concepts/common_with.h +similarity index 87% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/common_with.h +rename to libcudacxx/include/cuda/std/__concepts/common_with.h +index 23b5a1f5e..739bdc0ab 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/common_with.h ++++ b/libcudacxx/include/cuda/std/__concepts/common_with.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/constructible.h b/libcudacxx/include/cuda/std/__concepts/constructible.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/constructible.h +rename to libcudacxx/include/cuda/std/__concepts/constructible.h +index 32e664909..e49e2ae7d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/constructible.h ++++ b/libcudacxx/include/cuda/std/__concepts/constructible.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/convertible_to.h b/libcudacxx/include/cuda/std/__concepts/convertible_to.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/convertible_to.h +rename to libcudacxx/include/cuda/std/__concepts/convertible_to.h +index a7a5f9137..11f066fd1 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/convertible_to.h ++++ b/libcudacxx/include/cuda/std/__concepts/convertible_to.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/copyable.h b/libcudacxx/include/cuda/std/__concepts/copyable.h +similarity index 86% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/copyable.h +rename to libcudacxx/include/cuda/std/__concepts/copyable.h +index c028f538e..fa88c825a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/copyable.h ++++ b/libcudacxx/include/cuda/std/__concepts/copyable.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/derived_from.h b/libcudacxx/include/cuda/std/__concepts/derived_from.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/derived_from.h +rename to libcudacxx/include/cuda/std/__concepts/derived_from.h +index 45c397d96..0f33bc5d8 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/derived_from.h ++++ b/libcudacxx/include/cuda/std/__concepts/derived_from.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/destructible.h b/libcudacxx/include/cuda/std/__concepts/destructible.h +similarity index 83% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/destructible.h +rename to libcudacxx/include/cuda/std/__concepts/destructible.h +index b6b542a30..cf2f8399f 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/destructible.h ++++ b/libcudacxx/include/cuda/std/__concepts/destructible.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/different_from.h b/libcudacxx/include/cuda/std/__concepts/different_from.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/different_from.h +rename to libcudacxx/include/cuda/std/__concepts/different_from.h +index 0a24073cf..f205b6709 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/different_from.h ++++ b/libcudacxx/include/cuda/std/__concepts/different_from.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/equality_comparable.h b/libcudacxx/include/cuda/std/__concepts/equality_comparable.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/equality_comparable.h +rename to libcudacxx/include/cuda/std/__concepts/equality_comparable.h +index 723260830..13b51907f 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/equality_comparable.h ++++ b/libcudacxx/include/cuda/std/__concepts/equality_comparable.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/invocable.h b/libcudacxx/include/cuda/std/__concepts/invocable.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/invocable.h +rename to libcudacxx/include/cuda/std/__concepts/invocable.h +index 2a5628f7e..78cca003d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/invocable.h ++++ b/libcudacxx/include/cuda/std/__concepts/invocable.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/movable.h b/libcudacxx/include/cuda/std/__concepts/movable.h +similarity index 81% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/movable.h +rename to libcudacxx/include/cuda/std/__concepts/movable.h +index d42195377..4b244b70e 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/movable.h ++++ b/libcudacxx/include/cuda/std/__concepts/movable.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/predicate.h b/libcudacxx/include/cuda/std/__concepts/predicate.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/predicate.h +rename to libcudacxx/include/cuda/std/__concepts/predicate.h +index f6c77abea..7903d354a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/predicate.h ++++ b/libcudacxx/include/cuda/std/__concepts/predicate.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/regular.h b/libcudacxx/include/cuda/std/__concepts/regular.h +similarity index 86% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/regular.h +rename to libcudacxx/include/cuda/std/__concepts/regular.h +index f476857d0..d70f1b0b1 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/regular.h ++++ b/libcudacxx/include/cuda/std/__concepts/regular.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/relation.h b/libcudacxx/include/cuda/std/__concepts/relation.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/relation.h +rename to libcudacxx/include/cuda/std/__concepts/relation.h +index 13da5a49a..793b8d5fd 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/relation.h ++++ b/libcudacxx/include/cuda/std/__concepts/relation.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/same_as.h b/libcudacxx/include/cuda/std/__concepts/same_as.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/same_as.h +rename to libcudacxx/include/cuda/std/__concepts/same_as.h +index bb4f69701..bdae0c40b 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/same_as.h ++++ b/libcudacxx/include/cuda/std/__concepts/same_as.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/semiregular.h b/libcudacxx/include/cuda/std/__concepts/semiregular.h +similarity index 87% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/semiregular.h +rename to libcudacxx/include/cuda/std/__concepts/semiregular.h +index 3ed905889..ee259bfb6 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/semiregular.h ++++ b/libcudacxx/include/cuda/std/__concepts/semiregular.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/swappable.h b/libcudacxx/include/cuda/std/__concepts/swappable.h +similarity index 87% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/swappable.h +rename to libcudacxx/include/cuda/std/__concepts/swappable.h +index 94b3c0a5a..7eb8ad46d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/swappable.h ++++ b/libcudacxx/include/cuda/std/__concepts/swappable.h +@@ -20,22 +20,22 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + #if defined(_LIBCUDACXX_COMPILER_MSVC) + _CCCL_NV_DIAG_SUPPRESS(461) // nonstandard cast to array type ignored +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/totally_ordered.h b/libcudacxx/include/cuda/std/__concepts/totally_ordered.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/totally_ordered.h +rename to libcudacxx/include/cuda/std/__concepts/totally_ordered.h +index 852d5ad57..844380a21 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__concepts/totally_ordered.h ++++ b/libcudacxx/include/cuda/std/__concepts/totally_ordered.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/__cuda/api_wrapper.h b/libcudacxx/include/cuda/std/__cuda/api_wrapper.h +index 8b9cc4b16..b5cbddc0d 100644 +--- a/libcudacxx/include/cuda/std/__cuda/api_wrapper.h ++++ b/libcudacxx/include/cuda/std/__cuda/api_wrapper.h +@@ -25,7 +25,7 @@ + # include + #endif // !_CCCL_CUDA_COMPILER_NVCC && !_CCCL_CUDA_COMPILER_NVHPC + +-#include ++#include + + #define _CCCL_TRY_CUDA_API(_NAME, _MSG, ...) \ + { \ +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/atomic.h b/libcudacxx/include/cuda/std/__cuda/atomic.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/atomic.h +rename to libcudacxx/include/cuda/std/__cuda/atomic.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/atomic_prelude.h b/libcudacxx/include/cuda/std/__cuda/atomic_prelude.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/atomic_prelude.h +rename to libcudacxx/include/cuda/std/__cuda/atomic_prelude.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/barrier.h b/libcudacxx/include/cuda/std/__cuda/barrier.h +similarity index 99% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/barrier.h +rename to libcudacxx/include/cuda/std/__cuda/barrier.h +index 9a1b95682..f78f2d4fe 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/barrier.h ++++ b/libcudacxx/include/cuda/std/__cuda/barrier.h +@@ -25,11 +25,11 @@ + # pragma system_header + #endif // no system header + +-#include // _CUDA_VSTD::__void_t ++#include // _CUDA_VSTD::__void_t + #include // _LIBCUDACXX_UNREACHABLE + + #if defined(_CCCL_CUDA_COMPILER) +-# include // cuda::ptx::* ++# include // cuda::ptx::* + #endif // _CCCL_CUDA_COMPILER + + #if defined(_CCCL_COMPILER_NVRTC) +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/chrono.h b/libcudacxx/include/cuda/std/__cuda/chrono.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/chrono.h +rename to libcudacxx/include/cuda/std/__cuda/chrono.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/climits_prelude.h b/libcudacxx/include/cuda/std/__cuda/climits_prelude.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/climits_prelude.h +rename to libcudacxx/include/cuda/std/__cuda/climits_prelude.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/cmath_nvbf16.h b/libcudacxx/include/cuda/std/__cuda/cmath_nvbf16.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/cmath_nvbf16.h +rename to libcudacxx/include/cuda/std/__cuda/cmath_nvbf16.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/cmath_nvfp16.h b/libcudacxx/include/cuda/std/__cuda/cmath_nvfp16.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/cmath_nvfp16.h +rename to libcudacxx/include/cuda/std/__cuda/cmath_nvfp16.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/cstddef_prelude.h b/libcudacxx/include/cuda/std/__cuda/cstddef_prelude.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/cstddef_prelude.h +rename to libcudacxx/include/cuda/std/__cuda/cstddef_prelude.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/cstdint_prelude.h b/libcudacxx/include/cuda/std/__cuda/cstdint_prelude.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/cstdint_prelude.h +rename to libcudacxx/include/cuda/std/__cuda/cstdint_prelude.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/latch.h b/libcudacxx/include/cuda/std/__cuda/latch.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/latch.h +rename to libcudacxx/include/cuda/std/__cuda/latch.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/semaphore.h b/libcudacxx/include/cuda/std/__cuda/semaphore.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/semaphore.h +rename to libcudacxx/include/cuda/std/__cuda/semaphore.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__exception/cuda_error.h b/libcudacxx/include/cuda/std/__exception/cuda_error.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__exception/cuda_error.h +rename to libcudacxx/include/cuda/std/__exception/cuda_error.h +index 3ea92e2fb..6461101f7 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__exception/cuda_error.h ++++ b/libcudacxx/include/cuda/std/__exception/cuda_error.h +@@ -26,7 +26,7 @@ + # include + #endif // !_CCCL_CUDA_COMPILER_NVCC && !_CCCL_CUDA_COMPILER_NVHPC + +-#include ++#include + #include + + #include +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__exception/exception.h b/libcudacxx/include/cuda/std/__exception/exception.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__exception/exception.h +rename to libcudacxx/include/cuda/std/__exception/exception.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__exception/terminate.h b/libcudacxx/include/cuda/std/__exception/terminate.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__exception/terminate.h +rename to libcudacxx/include/cuda/std/__exception/terminate.h +diff --git a/libcudacxx/include/cuda/std/__exception b/libcudacxx/include/cuda/std/__exception_ +similarity index 100% +rename from libcudacxx/include/cuda/std/__exception +rename to libcudacxx/include/cuda/std/__exception_ +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__expected/bad_expected_access.h b/libcudacxx/include/cuda/std/__expected/bad_expected_access.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__expected/bad_expected_access.h +rename to libcudacxx/include/cuda/std/__expected/bad_expected_access.h +index 8a1be7302..96051d820 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__expected/bad_expected_access.h ++++ b/libcudacxx/include/cuda/std/__expected/bad_expected_access.h +@@ -19,10 +19,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__expected/expected.h b/libcudacxx/include/cuda/std/__expected/expected.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__expected/expected.h +rename to libcudacxx/include/cuda/std/__expected/expected.h +index c7858714c..2b94a6f68 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__expected/expected.h ++++ b/libcudacxx/include/cuda/std/__expected/expected.h +@@ -19,47 +19,47 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + #include + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__expected/expected_base.h b/libcudacxx/include/cuda/std/__expected/expected_base.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__expected/expected_base.h +rename to libcudacxx/include/cuda/std/__expected/expected_base.h +index b2f52ea37..0b7e1dd87 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__expected/expected_base.h ++++ b/libcudacxx/include/cuda/std/__expected/expected_base.h +@@ -19,37 +19,37 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + #if _CCCL_STD_VER > 2011 + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__expected/unexpect.h b/libcudacxx/include/cuda/std/__expected/unexpect.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__expected/unexpect.h +rename to libcudacxx/include/cuda/std/__expected/unexpect.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__expected/unexpected.h b/libcudacxx/include/cuda/std/__expected/unexpected.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__expected/unexpected.h +rename to libcudacxx/include/cuda/std/__expected/unexpected.h +index 4a98d79ac..14c93653f 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__expected/unexpected.h ++++ b/libcudacxx/include/cuda/std/__expected/unexpected.h +@@ -20,20 +20,20 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/binary_function.h b/libcudacxx/include/cuda/std/__functional/binary_function.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/binary_function.h +rename to libcudacxx/include/cuda/std/__functional/binary_function.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/binary_negate.h b/libcudacxx/include/cuda/std/__functional/binary_negate.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/binary_negate.h +rename to libcudacxx/include/cuda/std/__functional/binary_negate.h +index f65455dfb..21b234ace 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/binary_negate.h ++++ b/libcudacxx/include/cuda/std/__functional/binary_negate.h +@@ -21,7 +21,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/bind.h b/libcudacxx/include/cuda/std/__functional/bind.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/bind.h +rename to libcudacxx/include/cuda/std/__functional/bind.h +index a4ad0af4a..59b9280c7 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/bind.h ++++ b/libcudacxx/include/cuda/std/__functional/bind.h +@@ -25,25 +25,25 @@ + # pragma system_header + # endif // no system header + ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include + # include +-# include +-# include +-# include +-# include +-# include +-# include +-# include +-# include +-# include +-# include +-# include +-# include +-# include +-# include +-# include +-# include +-# include +-# include + # include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/bind_back.h b/libcudacxx/include/cuda/std/__functional/bind_back.h +similarity index 83% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/bind_back.h +rename to libcudacxx/include/cuda/std/__functional/bind_back.h +index effe15e4f..cadf9d22a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/bind_back.h ++++ b/libcudacxx/include/cuda/std/__functional/bind_back.h +@@ -21,16 +21,16 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/bind_front.h b/libcudacxx/include/cuda/std/__functional/bind_front.h +similarity index 80% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/bind_front.h +rename to libcudacxx/include/cuda/std/__functional/bind_front.h +index d7ba1fb14..dc2f643e3 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/bind_front.h ++++ b/libcudacxx/include/cuda/std/__functional/bind_front.h +@@ -21,15 +21,15 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/binder1st.h b/libcudacxx/include/cuda/std/__functional/binder1st.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/binder1st.h +rename to libcudacxx/include/cuda/std/__functional/binder1st.h +index 546a2db57..4d639806b 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/binder1st.h ++++ b/libcudacxx/include/cuda/std/__functional/binder1st.h +@@ -21,7 +21,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/binder2nd.h b/libcudacxx/include/cuda/std/__functional/binder2nd.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/binder2nd.h +rename to libcudacxx/include/cuda/std/__functional/binder2nd.h +index 894897888..adc3ede88 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/binder2nd.h ++++ b/libcudacxx/include/cuda/std/__functional/binder2nd.h +@@ -21,7 +21,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/compose.h b/libcudacxx/include/cuda/std/__functional/compose.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/compose.h +rename to libcudacxx/include/cuda/std/__functional/compose.h +index 437b2c9fb..eff9679e3 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/compose.h ++++ b/libcudacxx/include/cuda/std/__functional/compose.h +@@ -21,10 +21,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/default_searcher.h b/libcudacxx/include/cuda/std/__functional/default_searcher.h +similarity index 86% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/default_searcher.h +rename to libcudacxx/include/cuda/std/__functional/default_searcher.h +index 026c06338..a5d2817b3 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/default_searcher.h ++++ b/libcudacxx/include/cuda/std/__functional/default_searcher.h +@@ -21,11 +21,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/function.h b/libcudacxx/include/cuda/std/__functional/function.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/function.h +rename to libcudacxx/include/cuda/std/__functional/function.h +index eca6912de..ef1dfdd91 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/function.h ++++ b/libcudacxx/include/cuda/std/__functional/function.h +@@ -21,27 +21,27 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include +-#include +-#include +-#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + #include + #include + #include +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/hash.h b/libcudacxx/include/cuda/std/__functional/hash.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/hash.h +rename to libcudacxx/include/cuda/std/__functional/hash.h +index e5fe38ff8..96a817063 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/hash.h ++++ b/libcudacxx/include/cuda/std/__functional/hash.h +@@ -20,21 +20,21 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + #include + + #ifndef __cuda_std__ +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/identity.h b/libcudacxx/include/cuda/std/__functional/identity.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/identity.h +rename to libcudacxx/include/cuda/std/__functional/identity.h +index 1e50b2828..0c7dead6b 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/identity.h ++++ b/libcudacxx/include/cuda/std/__functional/identity.h +@@ -21,9 +21,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/invoke.h b/libcudacxx/include/cuda/std/__functional/invoke.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/invoke.h +rename to libcudacxx/include/cuda/std/__functional/invoke.h +index e7df7e721..2dee9324e 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/invoke.h ++++ b/libcudacxx/include/cuda/std/__functional/invoke.h +@@ -21,23 +21,23 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + // TODO: Disentangle the type traits and _CUDA_VSTD::invoke properly + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/is_transparent.h b/libcudacxx/include/cuda/std/__functional/is_transparent.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/is_transparent.h +rename to libcudacxx/include/cuda/std/__functional/is_transparent.h +index 77dfcdb79..852cf89ad 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/is_transparent.h ++++ b/libcudacxx/include/cuda/std/__functional/is_transparent.h +@@ -21,8 +21,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/mem_fn.h b/libcudacxx/include/cuda/std/__functional/mem_fn.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/mem_fn.h +rename to libcudacxx/include/cuda/std/__functional/mem_fn.h +index 9412586f4..b3e4a5088 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/mem_fn.h ++++ b/libcudacxx/include/cuda/std/__functional/mem_fn.h +@@ -21,10 +21,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/mem_fun_ref.h b/libcudacxx/include/cuda/std/__functional/mem_fun_ref.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/mem_fun_ref.h +rename to libcudacxx/include/cuda/std/__functional/mem_fun_ref.h +index 431edcdd6..4bc68368c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/mem_fun_ref.h ++++ b/libcudacxx/include/cuda/std/__functional/mem_fun_ref.h +@@ -21,8 +21,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/not_fn.h b/libcudacxx/include/cuda/std/__functional/not_fn.h +similarity index 82% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/not_fn.h +rename to libcudacxx/include/cuda/std/__functional/not_fn.h +index 12a29610e..511091c55 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/not_fn.h ++++ b/libcudacxx/include/cuda/std/__functional/not_fn.h +@@ -21,13 +21,13 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/operations.h b/libcudacxx/include/cuda/std/__functional/operations.h +similarity index 98% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/operations.h +rename to libcudacxx/include/cuda/std/__functional/operations.h +index d7ac6eb38..ed90b0a33 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/operations.h ++++ b/libcudacxx/include/cuda/std/__functional/operations.h +@@ -21,9 +21,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/perfect_forward.h b/libcudacxx/include/cuda/std/__functional/perfect_forward.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/perfect_forward.h +rename to libcudacxx/include/cuda/std/__functional/perfect_forward.h +index d413dcb91..526fafe7f 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/perfect_forward.h ++++ b/libcudacxx/include/cuda/std/__functional/perfect_forward.h +@@ -21,15 +21,15 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/pointer_to_binary_function.h b/libcudacxx/include/cuda/std/__functional/pointer_to_binary_function.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/pointer_to_binary_function.h +rename to libcudacxx/include/cuda/std/__functional/pointer_to_binary_function.h +index 84a209c70..f15f01932 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/pointer_to_binary_function.h ++++ b/libcudacxx/include/cuda/std/__functional/pointer_to_binary_function.h +@@ -21,7 +21,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/pointer_to_unary_function.h b/libcudacxx/include/cuda/std/__functional/pointer_to_unary_function.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/pointer_to_unary_function.h +rename to libcudacxx/include/cuda/std/__functional/pointer_to_unary_function.h +index 81fb9e19e..65709c10f 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/pointer_to_unary_function.h ++++ b/libcudacxx/include/cuda/std/__functional/pointer_to_unary_function.h +@@ -21,7 +21,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/ranges_operations.h b/libcudacxx/include/cuda/std/__functional/ranges_operations.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/ranges_operations.h +rename to libcudacxx/include/cuda/std/__functional/ranges_operations.h +index 9f3ba7102..38f7b3338 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/ranges_operations.h ++++ b/libcudacxx/include/cuda/std/__functional/ranges_operations.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + #if _CCCL_STD_VER > 2014 + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/reference_wrapper.h b/libcudacxx/include/cuda/std/__functional/reference_wrapper.h +similarity index 87% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/reference_wrapper.h +rename to libcudacxx/include/cuda/std/__functional/reference_wrapper.h +index cb2bbf5dc..c55e6e7be 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/reference_wrapper.h ++++ b/libcudacxx/include/cuda/std/__functional/reference_wrapper.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/unary_function.h b/libcudacxx/include/cuda/std/__functional/unary_function.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/unary_function.h +rename to libcudacxx/include/cuda/std/__functional/unary_function.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/unary_negate.h b/libcudacxx/include/cuda/std/__functional/unary_negate.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/unary_negate.h +rename to libcudacxx/include/cuda/std/__functional/unary_negate.h +index cdc917322..563ebf015 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/unary_negate.h ++++ b/libcudacxx/include/cuda/std/__functional/unary_negate.h +@@ -21,7 +21,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/unwrap_ref.h b/libcudacxx/include/cuda/std/__functional/unwrap_ref.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/unwrap_ref.h +rename to libcudacxx/include/cuda/std/__functional/unwrap_ref.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/weak_result_type.h b/libcudacxx/include/cuda/std/__functional/weak_result_type.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__functional/weak_result_type.h +rename to libcudacxx/include/cuda/std/__functional/weak_result_type.h +index 24bd477a3..3781bbcaf 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional/weak_result_type.h ++++ b/libcudacxx/include/cuda/std/__functional/weak_result_type.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/array.h b/libcudacxx/include/cuda/std/__fwd/array.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/array.h +rename to libcudacxx/include/cuda/std/__fwd/array.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/get.h b/libcudacxx/include/cuda/std/__fwd/get.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/get.h +rename to libcudacxx/include/cuda/std/__fwd/get.h +index 696d6ec45..7ff813333 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/get.h ++++ b/libcudacxx/include/cuda/std/__fwd/get.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/hash.h b/libcudacxx/include/cuda/std/__fwd/hash.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/hash.h +rename to libcudacxx/include/cuda/std/__fwd/hash.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/memory_resource.h b/libcudacxx/include/cuda/std/__fwd/memory_resource.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/memory_resource.h +rename to libcudacxx/include/cuda/std/__fwd/memory_resource.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/pair.h b/libcudacxx/include/cuda/std/__fwd/pair.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/pair.h +rename to libcudacxx/include/cuda/std/__fwd/pair.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/span.h b/libcudacxx/include/cuda/std/__fwd/span.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/span.h +rename to libcudacxx/include/cuda/std/__fwd/span.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/string.h b/libcudacxx/include/cuda/std/__fwd/string.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/string.h +rename to libcudacxx/include/cuda/std/__fwd/string.h +index 63df26d4e..de439fa18 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/string.h ++++ b/libcudacxx/include/cuda/std/__fwd/string.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/string_view.h b/libcudacxx/include/cuda/std/__fwd/string_view.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/string_view.h +rename to libcudacxx/include/cuda/std/__fwd/string_view.h +index 395005284..319a8af9c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/string_view.h ++++ b/libcudacxx/include/cuda/std/__fwd/string_view.h +@@ -21,7 +21,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/subrange.h b/libcudacxx/include/cuda/std/__fwd/subrange.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/subrange.h +rename to libcudacxx/include/cuda/std/__fwd/subrange.h +index 3ccff7eff..4a6fab09f 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/subrange.h ++++ b/libcudacxx/include/cuda/std/__fwd/subrange.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + #if _CCCL_STD_VER >= 2017 && !defined(_CCCL_COMPILER_MSVC_2017) + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/tuple.h b/libcudacxx/include/cuda/std/__fwd/tuple.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__fwd/tuple.h +rename to libcudacxx/include/cuda/std/__fwd/tuple.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/access.h b/libcudacxx/include/cuda/std/__iterator/access.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/access.h +rename to libcudacxx/include/cuda/std/__iterator/access.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/advance.h b/libcudacxx/include/cuda/std/__iterator/advance.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/advance.h +rename to libcudacxx/include/cuda/std/__iterator/advance.h +index b95cd6ac6..7e5368156 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/advance.h ++++ b/libcudacxx/include/cuda/std/__iterator/advance.h +@@ -21,14 +21,14 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/back_insert_iterator.h b/libcudacxx/include/cuda/std/__iterator/back_insert_iterator.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/back_insert_iterator.h +rename to libcudacxx/include/cuda/std/__iterator/back_insert_iterator.h +index f893c5521..22138f517 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/back_insert_iterator.h ++++ b/libcudacxx/include/cuda/std/__iterator/back_insert_iterator.h +@@ -21,11 +21,11 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/bounded_iter.h b/libcudacxx/include/cuda/std/__iterator/bounded_iter.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/bounded_iter.h +rename to libcudacxx/include/cuda/std/__iterator/bounded_iter.h +index bc65ec858..9d9034ff9 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/bounded_iter.h ++++ b/libcudacxx/include/cuda/std/__iterator/bounded_iter.h +@@ -21,12 +21,12 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/concepts.h b/libcudacxx/include/cuda/std/__iterator/concepts.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/concepts.h +rename to libcudacxx/include/cuda/std/__iterator/concepts.h +index 1a90befdf..b0e26070f 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/concepts.h ++++ b/libcudacxx/include/cuda/std/__iterator/concepts.h +@@ -21,35 +21,35 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/data.h b/libcudacxx/include/cuda/std/__iterator/data.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/data.h +rename to libcudacxx/include/cuda/std/__iterator/data.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/default_sentinel.h b/libcudacxx/include/cuda/std/__iterator/default_sentinel.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/default_sentinel.h +rename to libcudacxx/include/cuda/std/__iterator/default_sentinel.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/distance.h b/libcudacxx/include/cuda/std/__iterator/distance.h +similarity index 87% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/distance.h +rename to libcudacxx/include/cuda/std/__iterator/distance.h +index ff9862cf0..9b31aaa44 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/distance.h ++++ b/libcudacxx/include/cuda/std/__iterator/distance.h +@@ -21,14 +21,14 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/empty.h b/libcudacxx/include/cuda/std/__iterator/empty.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/empty.h +rename to libcudacxx/include/cuda/std/__iterator/empty.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/erase_if_container.h b/libcudacxx/include/cuda/std/__iterator/erase_if_container.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/erase_if_container.h +rename to libcudacxx/include/cuda/std/__iterator/erase_if_container.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/front_insert_iterator.h b/libcudacxx/include/cuda/std/__iterator/front_insert_iterator.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/front_insert_iterator.h +rename to libcudacxx/include/cuda/std/__iterator/front_insert_iterator.h +index ad54cae57..ba131efa0 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/front_insert_iterator.h ++++ b/libcudacxx/include/cuda/std/__iterator/front_insert_iterator.h +@@ -21,11 +21,11 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/incrementable_traits.h b/libcudacxx/include/cuda/std/__iterator/incrementable_traits.h +similarity index 86% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/incrementable_traits.h +rename to libcudacxx/include/cuda/std/__iterator/incrementable_traits.h +index 0440eac04..622a21709 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/incrementable_traits.h ++++ b/libcudacxx/include/cuda/std/__iterator/incrementable_traits.h +@@ -21,19 +21,19 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/indirectly_comparable.h b/libcudacxx/include/cuda/std/__iterator/indirectly_comparable.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/indirectly_comparable.h +rename to libcudacxx/include/cuda/std/__iterator/indirectly_comparable.h +index 97e369c7b..c7d754f12 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/indirectly_comparable.h ++++ b/libcudacxx/include/cuda/std/__iterator/indirectly_comparable.h +@@ -21,9 +21,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/insert_iterator.h b/libcudacxx/include/cuda/std/__iterator/insert_iterator.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/insert_iterator.h +rename to libcudacxx/include/cuda/std/__iterator/insert_iterator.h +index 78b20d144..8ad57e971 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/insert_iterator.h ++++ b/libcudacxx/include/cuda/std/__iterator/insert_iterator.h +@@ -21,11 +21,11 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/istream_iterator.h b/libcudacxx/include/cuda/std/__iterator/istream_iterator.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/istream_iterator.h +rename to libcudacxx/include/cuda/std/__iterator/istream_iterator.h +index a9f031356..0193d2cd2 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/istream_iterator.h ++++ b/libcudacxx/include/cuda/std/__iterator/istream_iterator.h +@@ -21,11 +21,11 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/istreambuf_iterator.h b/libcudacxx/include/cuda/std/__iterator/istreambuf_iterator.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/istreambuf_iterator.h +rename to libcudacxx/include/cuda/std/__iterator/istreambuf_iterator.h +index e85ee7407..930101da6 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/istreambuf_iterator.h ++++ b/libcudacxx/include/cuda/std/__iterator/istreambuf_iterator.h +@@ -21,9 +21,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/iter_move.h b/libcudacxx/include/cuda/std/__iterator/iter_move.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/iter_move.h +rename to libcudacxx/include/cuda/std/__iterator/iter_move.h +index 515c5ac11..0a6609c22 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/iter_move.h ++++ b/libcudacxx/include/cuda/std/__iterator/iter_move.h +@@ -21,14 +21,14 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _CCCL_DIAG_PUSH + _CCCL_DIAG_SUPPRESS_CLANG("-Wvoid-ptr-dereference") +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/iter_swap.h b/libcudacxx/include/cuda/std/__iterator/iter_swap.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/iter_swap.h +rename to libcudacxx/include/cuda/std/__iterator/iter_swap.h +index 382d163d7..c4f67b8ca 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/iter_swap.h ++++ b/libcudacxx/include/cuda/std/__iterator/iter_swap.h +@@ -20,15 +20,15 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + #if _CCCL_STD_VER > 2014 + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/iterator.h b/libcudacxx/include/cuda/std/__iterator/iterator.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/iterator.h +rename to libcudacxx/include/cuda/std/__iterator/iterator.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/iterator_traits.h b/libcudacxx/include/cuda/std/__iterator/iterator_traits.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/iterator_traits.h +rename to libcudacxx/include/cuda/std/__iterator/iterator_traits.h +index 38a2bbb41..d68cf8f4c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/iterator_traits.h ++++ b/libcudacxx/include/cuda/std/__iterator/iterator_traits.h +@@ -21,23 +21,23 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + #if !defined(_CCCL_COMPILER_NVRTC) && defined(__cuda_std__) + # if defined(_CCCL_COMPILER_MSVC) +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/mergeable.h b/libcudacxx/include/cuda/std/__iterator/mergeable.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/mergeable.h +rename to libcudacxx/include/cuda/std/__iterator/mergeable.h +index 5e31a9b5c..4729ccc0c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/mergeable.h ++++ b/libcudacxx/include/cuda/std/__iterator/mergeable.h +@@ -21,10 +21,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/move_iterator.h b/libcudacxx/include/cuda/std/__iterator/move_iterator.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/move_iterator.h +rename to libcudacxx/include/cuda/std/__iterator/move_iterator.h +index 24abfadeb..22b1bb2a2 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/move_iterator.h ++++ b/libcudacxx/include/cuda/std/__iterator/move_iterator.h +@@ -23,24 +23,24 @@ + #endif // no system header + + #ifndef _LIBCUDACXX_HAS_NO_SPACESHIP_OPERATOR +-# include +-# include ++# include ++# include + #endif // _LIBCUDACXX_HAS_NO_SPACESHIP_OPERATOR +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/move_sentinel.h b/libcudacxx/include/cuda/std/__iterator/move_sentinel.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/move_sentinel.h +rename to libcudacxx/include/cuda/std/__iterator/move_sentinel.h +index 9559f2110..eedcdad4b 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/move_sentinel.h ++++ b/libcudacxx/include/cuda/std/__iterator/move_sentinel.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + #if _CCCL_STD_VER > 2014 + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/next.h b/libcudacxx/include/cuda/std/__iterator/next.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/next.h +rename to libcudacxx/include/cuda/std/__iterator/next.h +index d830bbaef..4feb69623 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/next.h ++++ b/libcudacxx/include/cuda/std/__iterator/next.h +@@ -21,12 +21,12 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/ostream_iterator.h b/libcudacxx/include/cuda/std/__iterator/ostream_iterator.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/ostream_iterator.h +rename to libcudacxx/include/cuda/std/__iterator/ostream_iterator.h +index 14905dffd..ff0c3ae1d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/ostream_iterator.h ++++ b/libcudacxx/include/cuda/std/__iterator/ostream_iterator.h +@@ -21,10 +21,10 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include + #include +-#include +-#include +-#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/ostreambuf_iterator.h b/libcudacxx/include/cuda/std/__iterator/ostreambuf_iterator.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/ostreambuf_iterator.h +rename to libcudacxx/include/cuda/std/__iterator/ostreambuf_iterator.h +index 13358dccc..58517c105 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/ostreambuf_iterator.h ++++ b/libcudacxx/include/cuda/std/__iterator/ostreambuf_iterator.h +@@ -21,9 +21,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/permutable.h b/libcudacxx/include/cuda/std/__iterator/permutable.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/permutable.h +rename to libcudacxx/include/cuda/std/__iterator/permutable.h +index 489f95932..35e257d54 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/permutable.h ++++ b/libcudacxx/include/cuda/std/__iterator/permutable.h +@@ -21,8 +21,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/prev.h b/libcudacxx/include/cuda/std/__iterator/prev.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/prev.h +rename to libcudacxx/include/cuda/std/__iterator/prev.h +index 7120a234e..2935caa81 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/prev.h ++++ b/libcudacxx/include/cuda/std/__iterator/prev.h +@@ -21,12 +21,12 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/projected.h b/libcudacxx/include/cuda/std/__iterator/projected.h +similarity index 86% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/projected.h +rename to libcudacxx/include/cuda/std/__iterator/projected.h +index 01b67cfe7..b0316545d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/projected.h ++++ b/libcudacxx/include/cuda/std/__iterator/projected.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/readable_traits.h b/libcudacxx/include/cuda/std/__iterator/readable_traits.h +similarity index 87% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/readable_traits.h +rename to libcudacxx/include/cuda/std/__iterator/readable_traits.h +index 9ed2ce0dc..400e2077d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/readable_traits.h ++++ b/libcudacxx/include/cuda/std/__iterator/readable_traits.h +@@ -21,18 +21,18 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/reverse_access.h b/libcudacxx/include/cuda/std/__iterator/reverse_access.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/reverse_access.h +rename to libcudacxx/include/cuda/std/__iterator/reverse_access.h +index ee0f10dad..dcc901806 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/reverse_access.h ++++ b/libcudacxx/include/cuda/std/__iterator/reverse_access.h +@@ -21,8 +21,8 @@ + # pragma system_header + #endif // no system header + ++#include + #include +-#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/reverse_iterator.h b/libcudacxx/include/cuda/std/__iterator/reverse_iterator.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/reverse_iterator.h +rename to libcudacxx/include/cuda/std/__iterator/reverse_iterator.h +index dd6c2b5c8..e88b183cf 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/reverse_iterator.h ++++ b/libcudacxx/include/cuda/std/__iterator/reverse_iterator.h +@@ -21,36 +21,36 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + #ifndef _LIBCUDACXX_HAS_NO_SPACESHIP_OPERATOR +-# include +-# include ++# include ++# include + #endif // _LIBCUDACXX_HAS_NO_SPACESHIP_OPERATOR +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #ifdef _LIBCUDACXX_HAS_RANGES +-# include +-# include +-# include ++# include ++# include ++# include + #endif // _LIBCUDACXX_HAS_RANGES +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/size.h b/libcudacxx/include/cuda/std/__iterator/size.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/size.h +rename to libcudacxx/include/cuda/std/__iterator/size.h +index 73ca395ef..46e371de9 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/size.h ++++ b/libcudacxx/include/cuda/std/__iterator/size.h +@@ -21,9 +21,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/sortable.h b/libcudacxx/include/cuda/std/__iterator/sortable.h +similarity index 82% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/sortable.h +rename to libcudacxx/include/cuda/std/__iterator/sortable.h +index 0985d6995..49dee4906 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/sortable.h ++++ b/libcudacxx/include/cuda/std/__iterator/sortable.h +@@ -21,11 +21,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/unreachable_sentinel.h b/libcudacxx/include/cuda/std/__iterator/unreachable_sentinel.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/unreachable_sentinel.h +rename to libcudacxx/include/cuda/std/__iterator/unreachable_sentinel.h +index 2972e69a2..0543e33ad 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/unreachable_sentinel.h ++++ b/libcudacxx/include/cuda/std/__iterator/unreachable_sentinel.h +@@ -22,7 +22,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + #if _CCCL_STD_VER > 2014 + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/wrap_iter.h b/libcudacxx/include/cuda/std/__iterator/wrap_iter.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/wrap_iter.h +rename to libcudacxx/include/cuda/std/__iterator/wrap_iter.h +index 38ba52bb0..90dfc4134 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__iterator/wrap_iter.h ++++ b/libcudacxx/include/cuda/std/__iterator/wrap_iter.h +@@ -21,13 +21,13 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include + + #ifndef _LIBCUDACXX_CONSTEXPR_IF_NODEBUG + # if defined(_LIBCUDACXX_DEBUG) +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/compressed_pair.h b/libcudacxx/include/cuda/std/__mdspan/compressed_pair.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/compressed_pair.h +rename to libcudacxx/include/cuda/std/__mdspan/compressed_pair.h +index 8738270ab..128211cce 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/compressed_pair.h ++++ b/libcudacxx/include/cuda/std/__mdspan/compressed_pair.h +@@ -54,12 +54,12 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + #ifdef _CCCL_HAS_NO_ATTRIBUTE_NO_UNIQUE_ADDRESS +-# include ++# include + #endif // _CCCL_HAS_NO_ATTRIBUTE_NO_UNIQUE_ADDRESS +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/config.h b/libcudacxx/include/cuda/std/__mdspan/config.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/config.h +rename to libcudacxx/include/cuda/std/__mdspan/config.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/default_accessor.h b/libcudacxx/include/cuda/std/__mdspan/default_accessor.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/default_accessor.h +rename to libcudacxx/include/cuda/std/__mdspan/default_accessor.h +index d1f3c9480..01dd0ae35 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/default_accessor.h ++++ b/libcudacxx/include/cuda/std/__mdspan/default_accessor.h +@@ -54,9 +54,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/dynamic_extent.h b/libcudacxx/include/cuda/std/__mdspan/dynamic_extent.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/dynamic_extent.h +rename to libcudacxx/include/cuda/std/__mdspan/dynamic_extent.h +index a82fcce61..ba6d64417 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/dynamic_extent.h ++++ b/libcudacxx/include/cuda/std/__mdspan/dynamic_extent.h +@@ -54,9 +54,9 @@ + # pragma system_header + #endif // no system header + ++#include // dynamic_extent ++#include + #include +-#include // dynamic_extent +-#include + #include // numeric_limits + + #ifdef _LIBCUDACXX_IMPLICIT_SYSTEM_HEADER +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/extents.h b/libcudacxx/include/cuda/std/__mdspan/extents.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/extents.h +rename to libcudacxx/include/cuda/std/__mdspan/extents.h +index 5fe5b696f..4a9579801 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/extents.h ++++ b/libcudacxx/include/cuda/std/__mdspan/extents.h +@@ -54,20 +54,20 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + #ifdef _CCCL_HAS_NO_ATTRIBUTE_NO_UNIQUE_ADDRESS +-# include ++# include + #endif // _CCCL_HAS_NO_ATTRIBUTE_NO_UNIQUE_ADDRESS ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + #include + + #if defined(_LIBCUDACXX_PUSH_MACROS) +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/full_extent_t.h b/libcudacxx/include/cuda/std/__mdspan/full_extent_t.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/full_extent_t.h +rename to libcudacxx/include/cuda/std/__mdspan/full_extent_t.h +index b7a350c66..72164676e 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/full_extent_t.h ++++ b/libcudacxx/include/cuda/std/__mdspan/full_extent_t.h +@@ -54,7 +54,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/layout_left.h b/libcudacxx/include/cuda/std/__mdspan/layout_left.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/layout_left.h +rename to libcudacxx/include/cuda/std/__mdspan/layout_left.h +index c80f4dc18..a78c9a4d7 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/layout_left.h ++++ b/libcudacxx/include/cuda/std/__mdspan/layout_left.h +@@ -54,15 +54,15 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/layout_right.h b/libcudacxx/include/cuda/std/__mdspan/layout_right.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/layout_right.h +rename to libcudacxx/include/cuda/std/__mdspan/layout_right.h +index 85526d5ef..f2f1e0729 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/layout_right.h ++++ b/libcudacxx/include/cuda/std/__mdspan/layout_right.h +@@ -54,15 +54,15 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/layout_stride.h b/libcudacxx/include/cuda/std/__mdspan/layout_stride.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/layout_stride.h +rename to libcudacxx/include/cuda/std/__mdspan/layout_stride.h +index f9ceccbaa..4b560e9bb 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/layout_stride.h ++++ b/libcudacxx/include/cuda/std/__mdspan/layout_stride.h +@@ -54,21 +54,21 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + #ifdef _CCCL_HAS_NO_ATTRIBUTE_NO_UNIQUE_ADDRESS +-# include ++# include + #endif // _CCCL_HAS_NO_ATTRIBUTE_NO_UNIQUE_ADDRESS ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + #include + #if __MDSPAN_USE_CONCEPTS && __MDSPAN_HAS_CXX_20 + # include +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/macros.h b/libcudacxx/include/cuda/std/__mdspan/macros.h +similarity index 99% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/macros.h +rename to libcudacxx/include/cuda/std/__mdspan/macros.h +index 121663968..9846e0ac8 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/macros.h ++++ b/libcudacxx/include/cuda/std/__mdspan/macros.h +@@ -54,11 +54,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + #if _CCCL_STD_VER > 2011 + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/maybe_static_value.h b/libcudacxx/include/cuda/std/__mdspan/maybe_static_value.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/maybe_static_value.h +rename to libcudacxx/include/cuda/std/__mdspan/maybe_static_value.h +index 5c239c5ff..52e6ef810 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/maybe_static_value.h ++++ b/libcudacxx/include/cuda/std/__mdspan/maybe_static_value.h +@@ -54,10 +54,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + #ifdef _CCCL_HAS_NO_ATTRIBUTE_NO_UNIQUE_ADDRESS +-# include ++# include + #endif // _CCCL_HAS_NO_ATTRIBUTE_NO_UNIQUE_ADDRESS + + // This is only needed for the non-standard-layout version of partially +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/mdspan.h b/libcudacxx/include/cuda/std/__mdspan/mdspan.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/mdspan.h +rename to libcudacxx/include/cuda/std/__mdspan/mdspan.h +index 3065b7439..113210f9c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/mdspan.h ++++ b/libcudacxx/include/cuda/std/__mdspan/mdspan.h +@@ -54,24 +54,24 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/no_unique_address.h b/libcudacxx/include/cuda/std/__mdspan/no_unique_address.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/no_unique_address.h +rename to libcudacxx/include/cuda/std/__mdspan/no_unique_address.h +index a6c3a479a..58bf811aa 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/no_unique_address.h ++++ b/libcudacxx/include/cuda/std/__mdspan/no_unique_address.h +@@ -54,11 +54,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/standard_layout_static_array.h b/libcudacxx/include/cuda/std/__mdspan/standard_layout_static_array.h +similarity index 98% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/standard_layout_static_array.h +rename to libcudacxx/include/cuda/std/__mdspan/standard_layout_static_array.h +index 8d9b5cda9..f8179a79d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/standard_layout_static_array.h ++++ b/libcudacxx/include/cuda/std/__mdspan/standard_layout_static_array.h +@@ -54,16 +54,16 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + #ifdef _CCCL_HAS_NO_ATTRIBUTE_NO_UNIQUE_ADDRESS +-# include ++# include + #endif // _CCCL_HAS_NO_ATTRIBUTE_NO_UNIQUE_ADDRESS ++#include ++#include + #include + #include +-#include +-#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/static_array.h b/libcudacxx/include/cuda/std/__mdspan/static_array.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/static_array.h +rename to libcudacxx/include/cuda/std/__mdspan/static_array.h +index 0097b6e63..c99dc4964 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/static_array.h ++++ b/libcudacxx/include/cuda/std/__mdspan/static_array.h +@@ -54,15 +54,15 @@ + # pragma system_header + #endif // no system header + ++#include // dynamic_extent ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include +-#include // dynamic_extent +-#include +-#include +-#include +-#include +-#include +-#include + + #if !__MDSPAN_PRESERVE_STANDARD_LAYOUT + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/submdspan.h b/libcudacxx/include/cuda/std/__mdspan/submdspan.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/submdspan.h +rename to libcudacxx/include/cuda/std/__mdspan/submdspan.h +index dbb1f4628..5e3398f0f 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/submdspan.h ++++ b/libcudacxx/include/cuda/std/__mdspan/submdspan.h +@@ -54,22 +54,22 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/type_list.h b/libcudacxx/include/cuda/std/__mdspan/type_list.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/type_list.h +rename to libcudacxx/include/cuda/std/__mdspan/type_list.h +index ff8b9446c..c39b84a24 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__mdspan/type_list.h ++++ b/libcudacxx/include/cuda/std/__mdspan/type_list.h +@@ -54,8 +54,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/addressof.h b/libcudacxx/include/cuda/std/__memory/addressof.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__memory/addressof.h +rename to libcudacxx/include/cuda/std/__memory/addressof.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/align.h b/libcudacxx/include/cuda/std/__memory/align.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__memory/align.h +rename to libcudacxx/include/cuda/std/__memory/align.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocate_at_least.h b/libcudacxx/include/cuda/std/__memory/allocate_at_least.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocate_at_least.h +rename to libcudacxx/include/cuda/std/__memory/allocate_at_least.h +index 4985524a0..392322fa8 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocate_at_least.h ++++ b/libcudacxx/include/cuda/std/__memory/allocate_at_least.h +@@ -22,8 +22,8 @@ + # pragma system_header + #endif // no system header + ++#include + #include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocation_guard.h b/libcudacxx/include/cuda/std/__memory/allocation_guard.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocation_guard.h +rename to libcudacxx/include/cuda/std/__memory/allocation_guard.h +index 3d65c2ce8..209d92297 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocation_guard.h ++++ b/libcudacxx/include/cuda/std/__memory/allocation_guard.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocator.h b/libcudacxx/include/cuda/std/__memory/allocator.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocator.h +rename to libcudacxx/include/cuda/std/__memory/allocator.h +index f027ebe3c..9b704d32f 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocator.h ++++ b/libcudacxx/include/cuda/std/__memory/allocator.h +@@ -22,15 +22,15 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + #include + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocator_arg_t.h b/libcudacxx/include/cuda/std/__memory/allocator_arg_t.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocator_arg_t.h +rename to libcudacxx/include/cuda/std/__memory/allocator_arg_t.h +index 277ab32ea..bba91a6d6 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocator_arg_t.h ++++ b/libcudacxx/include/cuda/std/__memory/allocator_arg_t.h +@@ -22,11 +22,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocator_destructor.h b/libcudacxx/include/cuda/std/__memory/allocator_destructor.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocator_destructor.h +rename to libcudacxx/include/cuda/std/__memory/allocator_destructor.h +index dfd3bc874..a3b9f9f73 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocator_destructor.h ++++ b/libcudacxx/include/cuda/std/__memory/allocator_destructor.h +@@ -22,7 +22,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocator_traits.h b/libcudacxx/include/cuda/std/__memory/allocator_traits.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocator_traits.h +rename to libcudacxx/include/cuda/std/__memory/allocator_traits.h +index 6f0224551..a54a80bdc 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/allocator_traits.h ++++ b/libcudacxx/include/cuda/std/__memory/allocator_traits.h +@@ -22,18 +22,18 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + #include + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/construct_at.h b/libcudacxx/include/cuda/std/__memory/construct_at.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__memory/construct_at.h +rename to libcudacxx/include/cuda/std/__memory/construct_at.h +index be5ab6614..96571f562 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/construct_at.h ++++ b/libcudacxx/include/cuda/std/__memory/construct_at.h +@@ -21,22 +21,22 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + #ifdef _CCCL_CUDA_COMPILER_CLANG + # include +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/pointer_traits.h b/libcudacxx/include/cuda/std/__memory/pointer_traits.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__memory/pointer_traits.h +rename to libcudacxx/include/cuda/std/__memory/pointer_traits.h +index d199ee40b..7216aaf20 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/pointer_traits.h ++++ b/libcudacxx/include/cuda/std/__memory/pointer_traits.h +@@ -20,18 +20,18 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/uses_allocator.h b/libcudacxx/include/cuda/std/__memory/uses_allocator.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__memory/uses_allocator.h +rename to libcudacxx/include/cuda/std/__memory/uses_allocator.h +index 1e0444f86..b5bfce9a2 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/uses_allocator.h ++++ b/libcudacxx/include/cuda/std/__memory/uses_allocator.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/voidify.h b/libcudacxx/include/cuda/std/__memory/voidify.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__memory/voidify.h +rename to libcudacxx/include/cuda/std/__memory/voidify.h +index 25d0a366a..3da310b9b 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__memory/voidify.h ++++ b/libcudacxx/include/cuda/std/__memory/voidify.h +@@ -21,7 +21,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/__memory b/libcudacxx/include/cuda/std/__memory_ +similarity index 100% +rename from libcudacxx/include/cuda/std/__memory +rename to libcudacxx/include/cuda/std/__memory_ +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__new/allocate.h b/libcudacxx/include/cuda/std/__new/allocate.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__new/allocate.h +rename to libcudacxx/include/cuda/std/__new/allocate.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__new/bad_alloc.h b/libcudacxx/include/cuda/std/__new/bad_alloc.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__new/bad_alloc.h +rename to libcudacxx/include/cuda/std/__new/bad_alloc.h +index fb5799587..8ed20a2cc 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__new/bad_alloc.h ++++ b/libcudacxx/include/cuda/std/__new/bad_alloc.h +@@ -22,8 +22,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD_NOVERSION // purposefully not using versioning namespace + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__new/launder.h b/libcudacxx/include/cuda/std/__new/launder.h +similarity index 87% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__new/launder.h +rename to libcudacxx/include/cuda/std/__new/launder.h +index e4d180102..21f8b8645 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__new/launder.h ++++ b/libcudacxx/include/cuda/std/__new/launder.h +@@ -22,9 +22,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/__new b/libcudacxx/include/cuda/std/__new_ +similarity index 100% +rename from libcudacxx/include/cuda/std/__new +rename to libcudacxx/include/cuda/std/__new_ +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/access.h b/libcudacxx/include/cuda/std/__ranges/access.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/access.h +rename to libcudacxx/include/cuda/std/__ranges/access.h +index 3226488c9..ce10640f5 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/access.h ++++ b/libcudacxx/include/cuda/std/__ranges/access.h +@@ -20,16 +20,16 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_RANGES + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/concepts.h b/libcudacxx/include/cuda/std/__ranges/concepts.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/concepts.h +rename to libcudacxx/include/cuda/std/__ranges/concepts.h +index 6d2de4033..6a254ad6b 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/concepts.h ++++ b/libcudacxx/include/cuda/std/__ranges/concepts.h +@@ -20,25 +20,25 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_RANGES +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/dangling.h b/libcudacxx/include/cuda/std/__ranges/dangling.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/dangling.h +rename to libcudacxx/include/cuda/std/__ranges/dangling.h +index 34ab4fc24..cd3189f0a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/dangling.h ++++ b/libcudacxx/include/cuda/std/__ranges/dangling.h +@@ -21,9 +21,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_RANGES + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/data.h b/libcudacxx/include/cuda/std/__ranges/data.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/data.h +rename to libcudacxx/include/cuda/std/__ranges/data.h +index 00472a2df..7944d0285 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/data.h ++++ b/libcudacxx/include/cuda/std/__ranges/data.h +@@ -20,17 +20,17 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_RANGES + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/empty.h b/libcudacxx/include/cuda/std/__ranges/empty.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/empty.h +rename to libcudacxx/include/cuda/std/__ranges/empty.h +index e4af876a6..12d6d44fe 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/empty.h ++++ b/libcudacxx/include/cuda/std/__ranges/empty.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_RANGES + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/enable_borrowed_range.h b/libcudacxx/include/cuda/std/__ranges/enable_borrowed_range.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/enable_borrowed_range.h +rename to libcudacxx/include/cuda/std/__ranges/enable_borrowed_range.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/enable_view.h b/libcudacxx/include/cuda/std/__ranges/enable_view.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/enable_view.h +rename to libcudacxx/include/cuda/std/__ranges/enable_view.h +index 825066a83..a8ae77971 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/enable_view.h ++++ b/libcudacxx/include/cuda/std/__ranges/enable_view.h +@@ -21,12 +21,12 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_RANGES + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/rbegin.h b/libcudacxx/include/cuda/std/__ranges/rbegin.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/rbegin.h +rename to libcudacxx/include/cuda/std/__ranges/rbegin.h +index 143d8b8cb..53ee75796 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/rbegin.h ++++ b/libcudacxx/include/cuda/std/__ranges/rbegin.h +@@ -20,16 +20,16 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_RANGES + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/rend.h b/libcudacxx/include/cuda/std/__ranges/rend.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/rend.h +rename to libcudacxx/include/cuda/std/__ranges/rend.h +index 95c46ba15..4c2a16a72 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/rend.h ++++ b/libcudacxx/include/cuda/std/__ranges/rend.h +@@ -20,17 +20,17 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_RANGES + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/size.h b/libcudacxx/include/cuda/std/__ranges/size.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/size.h +rename to libcudacxx/include/cuda/std/__ranges/size.h +index 5d41bd30f..ffafd459c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/size.h ++++ b/libcudacxx/include/cuda/std/__ranges/size.h +@@ -20,19 +20,19 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_RANGES +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/subrange.h b/libcudacxx/include/cuda/std/__ranges/subrange.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/subrange.h +rename to libcudacxx/include/cuda/std/__ranges/subrange.h +index 085765dd2..580d3f943 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/subrange.h ++++ b/libcudacxx/include/cuda/std/__ranges/subrange.h +@@ -20,37 +20,37 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + #include + + #if _CCCL_STD_VER >= 2017 && !defined(_CCCL_COMPILER_MSVC_2017) +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/view_interface.h b/libcudacxx/include/cuda/std/__ranges/view_interface.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/view_interface.h +rename to libcudacxx/include/cuda/std/__ranges/view_interface.h +index b0ebaaa7c..9cd3a222c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/view_interface.h ++++ b/libcudacxx/include/cuda/std/__ranges/view_interface.h +@@ -20,20 +20,20 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_RANGES + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/views.h b/libcudacxx/include/cuda/std/__ranges/views.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__ranges/views.h +rename to libcudacxx/include/cuda/std/__ranges/views.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/apply_cv.h b/libcudacxx/include/cuda/std/__tuple_dir/apply_cv.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/apply_cv.h +rename to libcudacxx/include/cuda/std/__tuple_dir/apply_cv.h +index 3d56e7d46..674f0ca29 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/apply_cv.h ++++ b/libcudacxx/include/cuda/std/__tuple_dir/apply_cv.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/make_tuple_types.h b/libcudacxx/include/cuda/std/__tuple_dir/make_tuple_types.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/make_tuple_types.h +rename to libcudacxx/include/cuda/std/__tuple_dir/make_tuple_types.h +index 443d1e819..3bea27eba 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/make_tuple_types.h ++++ b/libcudacxx/include/cuda/std/__tuple_dir/make_tuple_types.h +@@ -20,16 +20,16 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/sfinae_helpers.h b/libcudacxx/include/cuda/std/__tuple_dir/sfinae_helpers.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/sfinae_helpers.h +rename to libcudacxx/include/cuda/std/__tuple_dir/sfinae_helpers.h +index d70b0c52a..5110c4637 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/sfinae_helpers.h ++++ b/libcudacxx/include/cuda/std/__tuple_dir/sfinae_helpers.h +@@ -20,21 +20,21 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/structured_bindings.h b/libcudacxx/include/cuda/std/__tuple_dir/structured_bindings.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/structured_bindings.h +rename to libcudacxx/include/cuda/std/__tuple_dir/structured_bindings.h +index 4333f03e1..e7e03ae31 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/structured_bindings.h ++++ b/libcudacxx/include/cuda/std/__tuple_dir/structured_bindings.h +@@ -32,13 +32,13 @@ _CCCL_DIAG_SUPPRESS_CLANG("-Wmismatched-tags") + # include + # endif + +-# include +-# include +-# include +-# include +-# include +-# include +-# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include + + // This is a workaround for the fact that structured bindings require that the specializations of + // `tuple_size` and `tuple_element` reside in namespace std (https://eel.is/c++draft/dcl.struct.bind#4). +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_element.h b/libcudacxx/include/cuda/std/__tuple_dir/tuple_element.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_element.h +rename to libcudacxx/include/cuda/std/__tuple_dir/tuple_element.h +index 512a0550e..657cb5bc7 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_element.h ++++ b/libcudacxx/include/cuda/std/__tuple_dir/tuple_element.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_indices.h b/libcudacxx/include/cuda/std/__tuple_dir/tuple_indices.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_indices.h +rename to libcudacxx/include/cuda/std/__tuple_dir/tuple_indices.h +index 166f7885c..fd4877d48 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_indices.h ++++ b/libcudacxx/include/cuda/std/__tuple_dir/tuple_indices.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + ++#include + #include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_like.h b/libcudacxx/include/cuda/std/__tuple_dir/tuple_like.h +similarity index 83% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_like.h +rename to libcudacxx/include/cuda/std/__tuple_dir/tuple_like.h +index 1e55f3d93..b1f2273b0 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_like.h ++++ b/libcudacxx/include/cuda/std/__tuple_dir/tuple_like.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_like_ext.h b/libcudacxx/include/cuda/std/__tuple_dir/tuple_like_ext.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_like_ext.h +rename to libcudacxx/include/cuda/std/__tuple_dir/tuple_like_ext.h +index 55ee487c8..064a3b278 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_like_ext.h ++++ b/libcudacxx/include/cuda/std/__tuple_dir/tuple_like_ext.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_size.h b/libcudacxx/include/cuda/std/__tuple_dir/tuple_size.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_size.h +rename to libcudacxx/include/cuda/std/__tuple_dir/tuple_size.h +index 4a5f5f3e0..5ecfe68a2 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_size.h ++++ b/libcudacxx/include/cuda/std/__tuple_dir/tuple_size.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_types.h b/libcudacxx/include/cuda/std/__tuple_dir/tuple_types.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/tuple_types.h +rename to libcudacxx/include/cuda/std/__tuple_dir/tuple_types.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/vector_types.h b/libcudacxx/include/cuda/std/__tuple_dir/vector_types.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/vector_types.h +rename to libcudacxx/include/cuda/std/__tuple_dir/vector_types.h +index b5d415d1f..cab61b742 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__tuple_dir/vector_types.h ++++ b/libcudacxx/include/cuda/std/__tuple_dir/vector_types.h +@@ -25,14 +25,14 @@ + _CCCL_DIAG_PUSH + _CCCL_DIAG_SUPPRESS_CLANG("-Wmismatched-tags") + +-# include +-# include +-# include +-# include +-# include +-# include +-# include +-# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include + + # define _LIBCUDACXX_SPECIALIZE_TUPLE_INTERFACE(__name, __type, __size) \ + template <> \ +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_const.h b/libcudacxx/include/cuda/std/__type_traits/add_const.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_const.h +rename to libcudacxx/include/cuda/std/__type_traits/add_const.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_cv.h b/libcudacxx/include/cuda/std/__type_traits/add_cv.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_cv.h +rename to libcudacxx/include/cuda/std/__type_traits/add_cv.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_lvalue_reference.h b/libcudacxx/include/cuda/std/__type_traits/add_lvalue_reference.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_lvalue_reference.h +rename to libcudacxx/include/cuda/std/__type_traits/add_lvalue_reference.h +index e1cdcc76d..c7fe3b3c3 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_lvalue_reference.h ++++ b/libcudacxx/include/cuda/std/__type_traits/add_lvalue_reference.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_pointer.h b/libcudacxx/include/cuda/std/__type_traits/add_pointer.h +similarity index 83% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_pointer.h +rename to libcudacxx/include/cuda/std/__type_traits/add_pointer.h +index 0ff205ba2..856c48bee 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_pointer.h ++++ b/libcudacxx/include/cuda/std/__type_traits/add_pointer.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_rvalue_reference.h b/libcudacxx/include/cuda/std/__type_traits/add_rvalue_reference.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_rvalue_reference.h +rename to libcudacxx/include/cuda/std/__type_traits/add_rvalue_reference.h +index 42edaaacd..8e3f79e85 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_rvalue_reference.h ++++ b/libcudacxx/include/cuda/std/__type_traits/add_rvalue_reference.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_volatile.h b/libcudacxx/include/cuda/std/__type_traits/add_volatile.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/add_volatile.h +rename to libcudacxx/include/cuda/std/__type_traits/add_volatile.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/aligned_storage.h b/libcudacxx/include/cuda/std/__type_traits/aligned_storage.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/aligned_storage.h +rename to libcudacxx/include/cuda/std/__type_traits/aligned_storage.h +index 4107efbba..08fbe35dd 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/aligned_storage.h ++++ b/libcudacxx/include/cuda/std/__type_traits/aligned_storage.h +@@ -19,11 +19,11 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/aligned_union.h b/libcudacxx/include/cuda/std/__type_traits/aligned_union.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/aligned_union.h +rename to libcudacxx/include/cuda/std/__type_traits/aligned_union.h +index 25eb19ad4..909756345 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/aligned_union.h ++++ b/libcudacxx/include/cuda/std/__type_traits/aligned_union.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/alignment_of.h b/libcudacxx/include/cuda/std/__type_traits/alignment_of.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/alignment_of.h +rename to libcudacxx/include/cuda/std/__type_traits/alignment_of.h +index 4f25cf6ab..523758795 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/alignment_of.h ++++ b/libcudacxx/include/cuda/std/__type_traits/alignment_of.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + ++#include + #include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/apply_cv.h b/libcudacxx/include/cuda/std/__type_traits/apply_cv.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/apply_cv.h +rename to libcudacxx/include/cuda/std/__type_traits/apply_cv.h +index 8a076f434..37699ad0c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/apply_cv.h ++++ b/libcudacxx/include/cuda/std/__type_traits/apply_cv.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include + #include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/can_extract_key.h b/libcudacxx/include/cuda/std/__type_traits/can_extract_key.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/can_extract_key.h +rename to libcudacxx/include/cuda/std/__type_traits/can_extract_key.h +index cc673370f..b6c6d539a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/can_extract_key.h ++++ b/libcudacxx/include/cuda/std/__type_traits/can_extract_key.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/common_reference.h b/libcudacxx/include/cuda/std/__type_traits/common_reference.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/common_reference.h +rename to libcudacxx/include/cuda/std/__type_traits/common_reference.h +index 6994e8aef..bddf7d028 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/common_reference.h ++++ b/libcudacxx/include/cuda/std/__type_traits/common_reference.h +@@ -21,21 +21,21 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/common_type.h b/libcudacxx/include/cuda/std/__type_traits/common_type.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/common_type.h +rename to libcudacxx/include/cuda/std/__type_traits/common_type.h +index 59ebf84fb..e77e10fb1 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/common_type.h ++++ b/libcudacxx/include/cuda/std/__type_traits/common_type.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/conditional.h b/libcudacxx/include/cuda/std/__type_traits/conditional.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/conditional.h +rename to libcudacxx/include/cuda/std/__type_traits/conditional.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/conjunction.h b/libcudacxx/include/cuda/std/__type_traits/conjunction.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/conjunction.h +rename to libcudacxx/include/cuda/std/__type_traits/conjunction.h +index db3952f35..6e5144d56 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/conjunction.h ++++ b/libcudacxx/include/cuda/std/__type_traits/conjunction.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/copy_cv.h b/libcudacxx/include/cuda/std/__type_traits/copy_cv.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/copy_cv.h +rename to libcudacxx/include/cuda/std/__type_traits/copy_cv.h +index 77c2dbc54..bdc58a121 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/copy_cv.h ++++ b/libcudacxx/include/cuda/std/__type_traits/copy_cv.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/copy_cvref.h b/libcudacxx/include/cuda/std/__type_traits/copy_cvref.h +similarity index 86% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/copy_cvref.h +rename to libcudacxx/include/cuda/std/__type_traits/copy_cvref.h +index 0847abdef..8fd291879 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/copy_cvref.h ++++ b/libcudacxx/include/cuda/std/__type_traits/copy_cvref.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/decay.h b/libcudacxx/include/cuda/std/__type_traits/decay.h +similarity index 78% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/decay.h +rename to libcudacxx/include/cuda/std/__type_traits/decay.h +index a2d20bb90..172a85baf 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/decay.h ++++ b/libcudacxx/include/cuda/std/__type_traits/decay.h +@@ -20,14 +20,14 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/dependent_type.h b/libcudacxx/include/cuda/std/__type_traits/dependent_type.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/dependent_type.h +rename to libcudacxx/include/cuda/std/__type_traits/dependent_type.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/disjunction.h b/libcudacxx/include/cuda/std/__type_traits/disjunction.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/disjunction.h +rename to libcudacxx/include/cuda/std/__type_traits/disjunction.h +index 1f6b85ee0..0fc412b9a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/disjunction.h ++++ b/libcudacxx/include/cuda/std/__type_traits/disjunction.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/enable_if.h b/libcudacxx/include/cuda/std/__type_traits/enable_if.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/enable_if.h +rename to libcudacxx/include/cuda/std/__type_traits/enable_if.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/extent.h b/libcudacxx/include/cuda/std/__type_traits/extent.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/extent.h +rename to libcudacxx/include/cuda/std/__type_traits/extent.h +index 09c7b77b0..82a90815c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/extent.h ++++ b/libcudacxx/include/cuda/std/__type_traits/extent.h +@@ -21,8 +21,8 @@ + # pragma system_header + #endif // no system header + ++#include + #include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/has_unique_object_representation.h b/libcudacxx/include/cuda/std/__type_traits/has_unique_object_representation.h +similarity index 87% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/has_unique_object_representation.h +rename to libcudacxx/include/cuda/std/__type_traits/has_unique_object_representation.h +index 85f22b182..ac1aed012 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/has_unique_object_representation.h ++++ b/libcudacxx/include/cuda/std/__type_traits/has_unique_object_representation.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/has_virtual_destructor.h b/libcudacxx/include/cuda/std/__type_traits/has_virtual_destructor.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/has_virtual_destructor.h +rename to libcudacxx/include/cuda/std/__type_traits/has_virtual_destructor.h +index 57e5cf507..3e9bb2aa2 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/has_virtual_destructor.h ++++ b/libcudacxx/include/cuda/std/__type_traits/has_virtual_destructor.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/integral_constant.h b/libcudacxx/include/cuda/std/__type_traits/integral_constant.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/integral_constant.h +rename to libcudacxx/include/cuda/std/__type_traits/integral_constant.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_abstract.h b/libcudacxx/include/cuda/std/__type_traits/is_abstract.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_abstract.h +rename to libcudacxx/include/cuda/std/__type_traits/is_abstract.h +index 2933e8003..ce5338c07 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_abstract.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_abstract.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_aggregate.h b/libcudacxx/include/cuda/std/__type_traits/is_aggregate.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_aggregate.h +rename to libcudacxx/include/cuda/std/__type_traits/is_aggregate.h +index d10b2b670..7059839e9 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_aggregate.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_aggregate.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_allocator.h b/libcudacxx/include/cuda/std/__type_traits/is_allocator.h +similarity index 86% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_allocator.h +rename to libcudacxx/include/cuda/std/__type_traits/is_allocator.h +index b72d07cf1..5f364ba9e 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_allocator.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_allocator.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include + #include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_arithmetic.h b/libcudacxx/include/cuda/std/__type_traits/is_arithmetic.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_arithmetic.h +rename to libcudacxx/include/cuda/std/__type_traits/is_arithmetic.h +index 048f8f983..8849609d2 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_arithmetic.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_arithmetic.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_array.h b/libcudacxx/include/cuda/std/__type_traits/is_array.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_array.h +rename to libcudacxx/include/cuda/std/__type_traits/is_array.h +index ee2a559a4..c5e8ded87 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_array.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_array.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + ++#include + #include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_assignable.h b/libcudacxx/include/cuda/std/__type_traits/is_assignable.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_assignable.h +rename to libcudacxx/include/cuda/std/__type_traits/is_assignable.h +index 18adff4a2..e64b1e0e6 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_assignable.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_assignable.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_base_of.h b/libcudacxx/include/cuda/std/__type_traits/is_base_of.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_base_of.h +rename to libcudacxx/include/cuda/std/__type_traits/is_base_of.h +index 867893c04..9a6866631 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_base_of.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_base_of.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_bounded_array.h b/libcudacxx/include/cuda/std/__type_traits/is_bounded_array.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_bounded_array.h +rename to libcudacxx/include/cuda/std/__type_traits/is_bounded_array.h +index d6fab2b2a..15332cd4a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_bounded_array.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_bounded_array.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + ++#include + #include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_callable.h b/libcudacxx/include/cuda/std/__type_traits/is_callable.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_callable.h +rename to libcudacxx/include/cuda/std/__type_traits/is_callable.h +index 814fb6b3b..1a0d17b0d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_callable.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_callable.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_char_like_type.h b/libcudacxx/include/cuda/std/__type_traits/is_char_like_type.h +similarity index 83% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_char_like_type.h +rename to libcudacxx/include/cuda/std/__type_traits/is_char_like_type.h +index fa3cb9893..d298178cf 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_char_like_type.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_char_like_type.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_class.h b/libcudacxx/include/cuda/std/__type_traits/is_class.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_class.h +rename to libcudacxx/include/cuda/std/__type_traits/is_class.h +index 13d911a82..c3abe7a49 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_class.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_class.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_compound.h b/libcudacxx/include/cuda/std/__type_traits/is_compound.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_compound.h +rename to libcudacxx/include/cuda/std/__type_traits/is_compound.h +index 3b3678d78..0c41b904d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_compound.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_compound.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_const.h b/libcudacxx/include/cuda/std/__type_traits/is_const.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_const.h +rename to libcudacxx/include/cuda/std/__type_traits/is_const.h +index 4eb70e24d..14dd21457 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_const.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_const.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_constant_evaluated.h b/libcudacxx/include/cuda/std/__type_traits/is_constant_evaluated.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_constant_evaluated.h +rename to libcudacxx/include/cuda/std/__type_traits/is_constant_evaluated.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_constructible.h b/libcudacxx/include/cuda/std/__type_traits/is_constructible.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_constructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_constructible.h +index fd258eef3..830d2c163 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_constructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_constructible.h +@@ -20,17 +20,17 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_convertible.h b/libcudacxx/include/cuda/std/__type_traits/is_convertible.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_convertible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_convertible.h +index b655123f9..af74ba59c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_convertible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_convertible.h +@@ -21,13 +21,13 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_copy_assignable.h b/libcudacxx/include/cuda/std/__type_traits/is_copy_assignable.h +similarity index 86% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_copy_assignable.h +rename to libcudacxx/include/cuda/std/__type_traits/is_copy_assignable.h +index 4ca0c6b8d..8cb97ccb4 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_copy_assignable.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_copy_assignable.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_copy_constructible.h b/libcudacxx/include/cuda/std/__type_traits/is_copy_constructible.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_copy_constructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_copy_constructible.h +index f17a4d497..de9fbd10e 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_copy_constructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_copy_constructible.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_core_convertible.h b/libcudacxx/include/cuda/std/__type_traits/is_core_convertible.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_core_convertible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_core_convertible.h +index 6828b3088..e8f5b1436 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_core_convertible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_core_convertible.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_default_constructible.h b/libcudacxx/include/cuda/std/__type_traits/is_default_constructible.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_default_constructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_default_constructible.h +index 0eb719188..5488d90d0 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_default_constructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_default_constructible.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_destructible.h b/libcudacxx/include/cuda/std/__type_traits/is_destructible.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_destructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_destructible.h +index b0d03dbfc..891cb0f1e 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_destructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_destructible.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_empty.h b/libcudacxx/include/cuda/std/__type_traits/is_empty.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_empty.h +rename to libcudacxx/include/cuda/std/__type_traits/is_empty.h +index f1384fbb3..eabe0c1fd 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_empty.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_empty.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_enum.h b/libcudacxx/include/cuda/std/__type_traits/is_enum.h +similarity index 72% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_enum.h +rename to libcudacxx/include/cuda/std/__type_traits/is_enum.h +index f48195807..d22053d8e 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_enum.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_enum.h +@@ -20,17 +20,17 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_final.h b/libcudacxx/include/cuda/std/__type_traits/is_final.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_final.h +rename to libcudacxx/include/cuda/std/__type_traits/is_final.h +index 65242e297..a299c21fd 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_final.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_final.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_floating_point.h b/libcudacxx/include/cuda/std/__type_traits/is_floating_point.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_floating_point.h +rename to libcudacxx/include/cuda/std/__type_traits/is_floating_point.h +index 2f9fdb4d2..b045e0173 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_floating_point.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_floating_point.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_function.h b/libcudacxx/include/cuda/std/__type_traits/is_function.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_function.h +rename to libcudacxx/include/cuda/std/__type_traits/is_function.h +index 5cf46fa45..f497f0d26 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_function.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_function.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_fundamental.h b/libcudacxx/include/cuda/std/__type_traits/is_fundamental.h +similarity index 86% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_fundamental.h +rename to libcudacxx/include/cuda/std/__type_traits/is_fundamental.h +index 41763f80a..87ed97984 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_fundamental.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_fundamental.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_implicitly_default_constructible.h b/libcudacxx/include/cuda/std/__type_traits/is_implicitly_default_constructible.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_implicitly_default_constructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_implicitly_default_constructible.h +index 4156c4251..bba18b0f5 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_implicitly_default_constructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_implicitly_default_constructible.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_integral.h b/libcudacxx/include/cuda/std/__type_traits/is_integral.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_integral.h +rename to libcudacxx/include/cuda/std/__type_traits/is_integral.h +index 1fa79cb41..709c64277 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_integral.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_integral.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_literal_type.h b/libcudacxx/include/cuda/std/__type_traits/is_literal_type.h +similarity index 87% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_literal_type.h +rename to libcudacxx/include/cuda/std/__type_traits/is_literal_type.h +index 0b1973126..d15ec9613 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_literal_type.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_literal_type.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_member_function_pointer.h b/libcudacxx/include/cuda/std/__type_traits/is_member_function_pointer.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_member_function_pointer.h +rename to libcudacxx/include/cuda/std/__type_traits/is_member_function_pointer.h +index 6d907dff8..fd9ccbbe0 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_member_function_pointer.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_member_function_pointer.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include + #include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_member_object_pointer.h b/libcudacxx/include/cuda/std/__type_traits/is_member_object_pointer.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_member_object_pointer.h +rename to libcudacxx/include/cuda/std/__type_traits/is_member_object_pointer.h +index d1fcb94f3..474c6dbc5 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_member_object_pointer.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_member_object_pointer.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_member_pointer.h b/libcudacxx/include/cuda/std/__type_traits/is_member_pointer.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_member_pointer.h +rename to libcudacxx/include/cuda/std/__type_traits/is_member_pointer.h +index 77ce29e9b..45ad0d243 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_member_pointer.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_member_pointer.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_move_assignable.h b/libcudacxx/include/cuda/std/__type_traits/is_move_assignable.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_move_assignable.h +rename to libcudacxx/include/cuda/std/__type_traits/is_move_assignable.h +index 29442a0c7..6d65be3f2 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_move_assignable.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_move_assignable.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_move_constructible.h b/libcudacxx/include/cuda/std/__type_traits/is_move_constructible.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_move_constructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_move_constructible.h +index c65488187..270f8e16e 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_move_constructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_move_constructible.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_assignable.h b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_assignable.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_assignable.h +rename to libcudacxx/include/cuda/std/__type_traits/is_nothrow_assignable.h +index e94cc0383..2aaeec3d7 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_assignable.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_assignable.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_constructible.h b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_constructible.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_constructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_nothrow_constructible.h +index e2c26e5de..cc92db9ce 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_constructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_constructible.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_convertible.h b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_convertible.h +similarity index 79% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_convertible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_nothrow_convertible.h +index c054b6ce6..6908486c7 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_convertible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_convertible.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_copy_assignable.h b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_copy_assignable.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_copy_assignable.h +rename to libcudacxx/include/cuda/std/__type_traits/is_nothrow_copy_assignable.h +index 3b966f111..e9fc6a0eb 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_copy_assignable.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_copy_assignable.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_copy_constructible.h b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_copy_constructible.h +similarity index 86% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_copy_constructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_nothrow_copy_constructible.h +index d65a6c851..ccb322717 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_copy_constructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_copy_constructible.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_default_constructible.h b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_default_constructible.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_default_constructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_nothrow_default_constructible.h +index e58592a90..eef51dfca 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_default_constructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_default_constructible.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_destructible.h b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_destructible.h +similarity index 86% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_destructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_nothrow_destructible.h +index 709d9bd1c..bb9431edc 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_destructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_destructible.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_move_assignable.h b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_move_assignable.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_move_assignable.h +rename to libcudacxx/include/cuda/std/__type_traits/is_nothrow_move_assignable.h +index 822346ce7..6db0868cf 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_move_assignable.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_move_assignable.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_move_constructible.h b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_move_constructible.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_move_constructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_nothrow_move_constructible.h +index c319f79d5..fd31f9313 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_nothrow_move_constructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_nothrow_move_constructible.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_null_pointer.h b/libcudacxx/include/cuda/std/__type_traits/is_null_pointer.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_null_pointer.h +rename to libcudacxx/include/cuda/std/__type_traits/is_null_pointer.h +index 2ecef1543..9b9ed837d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_null_pointer.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_null_pointer.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_object.h b/libcudacxx/include/cuda/std/__type_traits/is_object.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_object.h +rename to libcudacxx/include/cuda/std/__type_traits/is_object.h +index c3252b85c..95afe8bbe 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_object.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_object.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_pod.h b/libcudacxx/include/cuda/std/__type_traits/is_pod.h +similarity index 81% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_pod.h +rename to libcudacxx/include/cuda/std/__type_traits/is_pod.h +index a8a89f70b..5562c318c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_pod.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_pod.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_pointer.h b/libcudacxx/include/cuda/std/__type_traits/is_pointer.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_pointer.h +rename to libcudacxx/include/cuda/std/__type_traits/is_pointer.h +index 264e34f50..fc500c540 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_pointer.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_pointer.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_polymorphic.h b/libcudacxx/include/cuda/std/__type_traits/is_polymorphic.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_polymorphic.h +rename to libcudacxx/include/cuda/std/__type_traits/is_polymorphic.h +index ffff74c17..d419db381 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_polymorphic.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_polymorphic.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include // __two +-#include ++#include ++#include ++#include // __two ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_primary_template.h b/libcudacxx/include/cuda/std/__type_traits/is_primary_template.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_primary_template.h +rename to libcudacxx/include/cuda/std/__type_traits/is_primary_template.h +index bc0b84a93..243bdef73 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_primary_template.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_primary_template.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_reference.h b/libcudacxx/include/cuda/std/__type_traits/is_reference.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_reference.h +rename to libcudacxx/include/cuda/std/__type_traits/is_reference.h +index 6faa9ca7b..6e24bf2cd 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_reference.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_reference.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_reference_wrapper.h b/libcudacxx/include/cuda/std/__type_traits/is_reference_wrapper.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_reference_wrapper.h +rename to libcudacxx/include/cuda/std/__type_traits/is_reference_wrapper.h +index 329edbe13..bf6a49027 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_reference_wrapper.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_reference_wrapper.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_referenceable.h b/libcudacxx/include/cuda/std/__type_traits/is_referenceable.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_referenceable.h +rename to libcudacxx/include/cuda/std/__type_traits/is_referenceable.h +index b43411a25..5d6e30533 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_referenceable.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_referenceable.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_same.h b/libcudacxx/include/cuda/std/__type_traits/is_same.h +similarity index 97% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_same.h +rename to libcudacxx/include/cuda/std/__type_traits/is_same.h +index 5a28bb1a4..665bd1068 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_same.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_same.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_scalar.h b/libcudacxx/include/cuda/std/__type_traits/is_scalar.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_scalar.h +rename to libcudacxx/include/cuda/std/__type_traits/is_scalar.h +index cdef650c3..c4d0faf2f 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_scalar.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_scalar.h +@@ -20,13 +20,13 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_scoped_enum.h b/libcudacxx/include/cuda/std/__type_traits/is_scoped_enum.h +similarity index 83% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_scoped_enum.h +rename to libcudacxx/include/cuda/std/__type_traits/is_scoped_enum.h +index a9bec8e2f..390c5750b 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_scoped_enum.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_scoped_enum.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_signed.h b/libcudacxx/include/cuda/std/__type_traits/is_signed.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_signed.h +rename to libcudacxx/include/cuda/std/__type_traits/is_signed.h +index 5bd29d80c..6c8f71151 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_signed.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_signed.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_signed_integer.h b/libcudacxx/include/cuda/std/__type_traits/is_signed_integer.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_signed_integer.h +rename to libcudacxx/include/cuda/std/__type_traits/is_signed_integer.h +index ac9c190e4..69ce3aa8a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_signed_integer.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_signed_integer.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_standard_layout.h b/libcudacxx/include/cuda/std/__type_traits/is_standard_layout.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_standard_layout.h +rename to libcudacxx/include/cuda/std/__type_traits/is_standard_layout.h +index 738dd2229..40a959881 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_standard_layout.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_standard_layout.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_swappable.h b/libcudacxx/include/cuda/std/__type_traits/is_swappable.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_swappable.h +rename to libcudacxx/include/cuda/std/__type_traits/is_swappable.h +index f78340761..0764139cd 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_swappable.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_swappable.h +@@ -20,19 +20,19 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivial.h b/libcudacxx/include/cuda/std/__type_traits/is_trivial.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivial.h +rename to libcudacxx/include/cuda/std/__type_traits/is_trivial.h +index 008c2ce5a..4f9d3acc5 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivial.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_trivial.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_assignable.h b/libcudacxx/include/cuda/std/__type_traits/is_trivially_assignable.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_assignable.h +rename to libcudacxx/include/cuda/std/__type_traits/is_trivially_assignable.h +index 774a00af0..5a33ba03f 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_assignable.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_trivially_assignable.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_constructible.h b/libcudacxx/include/cuda/std/__type_traits/is_trivially_constructible.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_constructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_trivially_constructible.h +index 190a35e29..76d75a7c6 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_constructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_trivially_constructible.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_copy_assignable.h b/libcudacxx/include/cuda/std/__type_traits/is_trivially_copy_assignable.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_copy_assignable.h +rename to libcudacxx/include/cuda/std/__type_traits/is_trivially_copy_assignable.h +index 678fb3ca2..04843f558 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_copy_assignable.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_trivially_copy_assignable.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_copy_constructible.h b/libcudacxx/include/cuda/std/__type_traits/is_trivially_copy_constructible.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_copy_constructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_trivially_copy_constructible.h +index f13f80fed..b182d4244 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_copy_constructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_trivially_copy_constructible.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_copyable.h b/libcudacxx/include/cuda/std/__type_traits/is_trivially_copyable.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_copyable.h +rename to libcudacxx/include/cuda/std/__type_traits/is_trivially_copyable.h +index e7c415503..62fc4e1ad 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_copyable.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_trivially_copyable.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_default_constructible.h b/libcudacxx/include/cuda/std/__type_traits/is_trivially_default_constructible.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_default_constructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_trivially_default_constructible.h +index 5c595ab17..1cb841511 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_default_constructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_trivially_default_constructible.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_destructible.h b/libcudacxx/include/cuda/std/__type_traits/is_trivially_destructible.h +similarity index 86% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_destructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_trivially_destructible.h +index d7a8af1d4..caa93e14b 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_destructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_trivially_destructible.h +@@ -20,11 +20,11 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_move_assignable.h b/libcudacxx/include/cuda/std/__type_traits/is_trivially_move_assignable.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_move_assignable.h +rename to libcudacxx/include/cuda/std/__type_traits/is_trivially_move_assignable.h +index 2da1884ff..845ff53f8 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_move_assignable.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_trivially_move_assignable.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_move_constructible.h b/libcudacxx/include/cuda/std/__type_traits/is_trivially_move_constructible.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_move_constructible.h +rename to libcudacxx/include/cuda/std/__type_traits/is_trivially_move_constructible.h +index 087d8f6c8..cae986bde 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_trivially_move_constructible.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_trivially_move_constructible.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_unbounded_array.h b/libcudacxx/include/cuda/std/__type_traits/is_unbounded_array.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_unbounded_array.h +rename to libcudacxx/include/cuda/std/__type_traits/is_unbounded_array.h +index ba5b48dc0..49a0c3db1 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_unbounded_array.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_unbounded_array.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_union.h b/libcudacxx/include/cuda/std/__type_traits/is_union.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_union.h +rename to libcudacxx/include/cuda/std/__type_traits/is_union.h +index 1e86c5586..3f60c20ea 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_union.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_union.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_unsigned.h b/libcudacxx/include/cuda/std/__type_traits/is_unsigned.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_unsigned.h +rename to libcudacxx/include/cuda/std/__type_traits/is_unsigned.h +index f672c5976..45412d75c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_unsigned.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_unsigned.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_unsigned_integer.h b/libcudacxx/include/cuda/std/__type_traits/is_unsigned_integer.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_unsigned_integer.h +rename to libcudacxx/include/cuda/std/__type_traits/is_unsigned_integer.h +index 36f7f0986..888020032 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_unsigned_integer.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_unsigned_integer.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_valid_expansion.h b/libcudacxx/include/cuda/std/__type_traits/is_valid_expansion.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_valid_expansion.h +rename to libcudacxx/include/cuda/std/__type_traits/is_valid_expansion.h +index d396b124f..9b2702b5a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_valid_expansion.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_valid_expansion.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_void.h b/libcudacxx/include/cuda/std/__type_traits/is_void.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_void.h +rename to libcudacxx/include/cuda/std/__type_traits/is_void.h +index 5d95a385e..a5f611989 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_void.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_void.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_volatile.h b/libcudacxx/include/cuda/std/__type_traits/is_volatile.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_volatile.h +rename to libcudacxx/include/cuda/std/__type_traits/is_volatile.h +index 11ed7e83e..431a880ae 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/is_volatile.h ++++ b/libcudacxx/include/cuda/std/__type_traits/is_volatile.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/lazy.h b/libcudacxx/include/cuda/std/__type_traits/lazy.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/lazy.h +rename to libcudacxx/include/cuda/std/__type_traits/lazy.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/make_32_64_or_128_bit.h b/libcudacxx/include/cuda/std/__type_traits/make_32_64_or_128_bit.h +similarity index 85% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/make_32_64_or_128_bit.h +rename to libcudacxx/include/cuda/std/__type_traits/make_32_64_or_128_bit.h +index 0247a0fcf..64dd1c312 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/make_32_64_or_128_bit.h ++++ b/libcudacxx/include/cuda/std/__type_traits/make_32_64_or_128_bit.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/make_const_lvalue_ref.h b/libcudacxx/include/cuda/std/__type_traits/make_const_lvalue_ref.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/make_const_lvalue_ref.h +rename to libcudacxx/include/cuda/std/__type_traits/make_const_lvalue_ref.h +index 1e35acbe3..effb29ff6 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/make_const_lvalue_ref.h ++++ b/libcudacxx/include/cuda/std/__type_traits/make_const_lvalue_ref.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/make_signed.h b/libcudacxx/include/cuda/std/__type_traits/make_signed.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/make_signed.h +rename to libcudacxx/include/cuda/std/__type_traits/make_signed.h +index 3797b9b06..9a8dd7cde 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/make_signed.h ++++ b/libcudacxx/include/cuda/std/__type_traits/make_signed.h +@@ -20,12 +20,12 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/make_unsigned.h b/libcudacxx/include/cuda/std/__type_traits/make_unsigned.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/make_unsigned.h +rename to libcudacxx/include/cuda/std/__type_traits/make_unsigned.h +index d648918a4..a67396996 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/make_unsigned.h ++++ b/libcudacxx/include/cuda/std/__type_traits/make_unsigned.h +@@ -20,15 +20,15 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/maybe_const.h b/libcudacxx/include/cuda/std/__type_traits/maybe_const.h +similarity index 93% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/maybe_const.h +rename to libcudacxx/include/cuda/std/__type_traits/maybe_const.h +index 0ffd39307..7728e894b 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/maybe_const.h ++++ b/libcudacxx/include/cuda/std/__type_traits/maybe_const.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/nat.h b/libcudacxx/include/cuda/std/__type_traits/nat.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/nat.h +rename to libcudacxx/include/cuda/std/__type_traits/nat.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/negation.h b/libcudacxx/include/cuda/std/__type_traits/negation.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/negation.h +rename to libcudacxx/include/cuda/std/__type_traits/negation.h +index 2eebf3b5d..e398a2e86 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/negation.h ++++ b/libcudacxx/include/cuda/std/__type_traits/negation.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/promote.h b/libcudacxx/include/cuda/std/__type_traits/promote.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/promote.h +rename to libcudacxx/include/cuda/std/__type_traits/promote.h +index b5c6bd23e..874385d80 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/promote.h ++++ b/libcudacxx/include/cuda/std/__type_traits/promote.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include + #include +-#include +-#include +-#include + + #ifdef _LIBCUDACXX_HAS_NVFP16 + # include +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/rank.h b/libcudacxx/include/cuda/std/__type_traits/rank.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/rank.h +rename to libcudacxx/include/cuda/std/__type_traits/rank.h +index cdf82dcaf..ea8a8dcee 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/rank.h ++++ b/libcudacxx/include/cuda/std/__type_traits/rank.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + ++#include + #include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_all_extents.h b/libcudacxx/include/cuda/std/__type_traits/remove_all_extents.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_all_extents.h +rename to libcudacxx/include/cuda/std/__type_traits/remove_all_extents.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_const.h b/libcudacxx/include/cuda/std/__type_traits/remove_const.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_const.h +rename to libcudacxx/include/cuda/std/__type_traits/remove_const.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_const_ref.h b/libcudacxx/include/cuda/std/__type_traits/remove_const_ref.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_const_ref.h +rename to libcudacxx/include/cuda/std/__type_traits/remove_const_ref.h +index 20709242f..7606f565b 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_const_ref.h ++++ b/libcudacxx/include/cuda/std/__type_traits/remove_const_ref.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_cv.h b/libcudacxx/include/cuda/std/__type_traits/remove_cv.h +similarity index 91% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_cv.h +rename to libcudacxx/include/cuda/std/__type_traits/remove_cv.h +index e0f41f8c0..3bdc0b041 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_cv.h ++++ b/libcudacxx/include/cuda/std/__type_traits/remove_cv.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_cvref.h b/libcudacxx/include/cuda/std/__type_traits/remove_cvref.h +similarity index 89% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_cvref.h +rename to libcudacxx/include/cuda/std/__type_traits/remove_cvref.h +index e2eb92104..9b0547779 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_cvref.h ++++ b/libcudacxx/include/cuda/std/__type_traits/remove_cvref.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_extent.h b/libcudacxx/include/cuda/std/__type_traits/remove_extent.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_extent.h +rename to libcudacxx/include/cuda/std/__type_traits/remove_extent.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_pointer.h b/libcudacxx/include/cuda/std/__type_traits/remove_pointer.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_pointer.h +rename to libcudacxx/include/cuda/std/__type_traits/remove_pointer.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_reference.h b/libcudacxx/include/cuda/std/__type_traits/remove_reference.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_reference.h +rename to libcudacxx/include/cuda/std/__type_traits/remove_reference.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_volatile.h b/libcudacxx/include/cuda/std/__type_traits/remove_volatile.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/remove_volatile.h +rename to libcudacxx/include/cuda/std/__type_traits/remove_volatile.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/result_of.h b/libcudacxx/include/cuda/std/__type_traits/result_of.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/result_of.h +rename to libcudacxx/include/cuda/std/__type_traits/result_of.h +index 534dbe1f9..3131aff1b 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/result_of.h ++++ b/libcudacxx/include/cuda/std/__type_traits/result_of.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/type_identity.h b/libcudacxx/include/cuda/std/__type_traits/type_identity.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/type_identity.h +rename to libcudacxx/include/cuda/std/__type_traits/type_identity.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/type_list.h b/libcudacxx/include/cuda/std/__type_traits/type_list.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/type_list.h +rename to libcudacxx/include/cuda/std/__type_traits/type_list.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/underlying_type.h b/libcudacxx/include/cuda/std/__type_traits/underlying_type.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/underlying_type.h +rename to libcudacxx/include/cuda/std/__type_traits/underlying_type.h +index 896290cac..2e8691d94 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/underlying_type.h ++++ b/libcudacxx/include/cuda/std/__type_traits/underlying_type.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/void_t.h b/libcudacxx/include/cuda/std/__type_traits/void_t.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__type_traits/void_t.h +rename to libcudacxx/include/cuda/std/__type_traits/void_t.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/as_const.h b/libcudacxx/include/cuda/std/__utility/as_const.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/as_const.h +rename to libcudacxx/include/cuda/std/__utility/as_const.h +index 7123bba9d..cad555e94 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/as_const.h ++++ b/libcudacxx/include/cuda/std/__utility/as_const.h +@@ -20,7 +20,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/auto_cast.h b/libcudacxx/include/cuda/std/__utility/auto_cast.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/auto_cast.h +rename to libcudacxx/include/cuda/std/__utility/auto_cast.h +index 6afe1fee7..ad4107ab1 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/auto_cast.h ++++ b/libcudacxx/include/cuda/std/__utility/auto_cast.h +@@ -21,7 +21,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + #if _CCCL_STD_VER < 2020 && defined(_CCCL_COMPILER_MSVC) + # define _LIBCUDACXX_AUTO_CAST(expr) (_CUDA_VSTD::decay_t) (expr) +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/cmp.h b/libcudacxx/include/cuda/std/__utility/cmp.h +similarity index 88% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/cmp.h +rename to libcudacxx/include/cuda/std/__utility/cmp.h +index 1ebebf711..fe876404b 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/cmp.h ++++ b/libcudacxx/include/cuda/std/__utility/cmp.h +@@ -20,14 +20,14 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/convert_to_integral.h b/libcudacxx/include/cuda/std/__utility/convert_to_integral.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/convert_to_integral.h +rename to libcudacxx/include/cuda/std/__utility/convert_to_integral.h +index f500125ca..4862208df 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/convert_to_integral.h ++++ b/libcudacxx/include/cuda/std/__utility/convert_to_integral.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/declval.h b/libcudacxx/include/cuda/std/__utility/declval.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/declval.h +rename to libcudacxx/include/cuda/std/__utility/declval.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/exception_guard.h b/libcudacxx/include/cuda/std/__utility/exception_guard.h +similarity index 96% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/exception_guard.h +rename to libcudacxx/include/cuda/std/__utility/exception_guard.h +index af82c700d..bba712213 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/exception_guard.h ++++ b/libcudacxx/include/cuda/std/__utility/exception_guard.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include + #include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/exchange.h b/libcudacxx/include/cuda/std/__utility/exchange.h +similarity index 82% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/exchange.h +rename to libcudacxx/include/cuda/std/__utility/exchange.h +index 370a03ff6..0de9531b2 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/exchange.h ++++ b/libcudacxx/include/cuda/std/__utility/exchange.h +@@ -20,10 +20,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/forward.h b/libcudacxx/include/cuda/std/__utility/forward.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/forward.h +rename to libcudacxx/include/cuda/std/__utility/forward.h +index 71d3e3c45..85f2f7c17 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/forward.h ++++ b/libcudacxx/include/cuda/std/__utility/forward.h +@@ -21,9 +21,9 @@ + # pragma system_header + #endif // no system header + ++#include ++#include + #include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/forward_like.h b/libcudacxx/include/cuda/std/__utility/forward_like.h +similarity index 84% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/forward_like.h +rename to libcudacxx/include/cuda/std/__utility/forward_like.h +index f75cd76bb..cfa772b3d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/forward_like.h ++++ b/libcudacxx/include/cuda/std/__utility/forward_like.h +@@ -21,10 +21,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/in_place.h b/libcudacxx/include/cuda/std/__utility/in_place.h +similarity index 90% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/in_place.h +rename to libcudacxx/include/cuda/std/__utility/in_place.h +index eb2908574..9bbd07a42 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/in_place.h ++++ b/libcudacxx/include/cuda/std/__utility/in_place.h +@@ -20,9 +20,9 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/integer_sequence.h b/libcudacxx/include/cuda/std/__utility/integer_sequence.h +similarity index 98% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/integer_sequence.h +rename to libcudacxx/include/cuda/std/__utility/integer_sequence.h +index ad9c7c239..601c2938d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/integer_sequence.h ++++ b/libcudacxx/include/cuda/std/__utility/integer_sequence.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + ++#include + #include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/move.h b/libcudacxx/include/cuda/std/__utility/move.h +similarity index 83% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/move.h +rename to libcudacxx/include/cuda/std/__utility/move.h +index 7c52a395b..62b7edb4d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/move.h ++++ b/libcudacxx/include/cuda/std/__utility/move.h +@@ -21,10 +21,10 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/pair.h b/libcudacxx/include/cuda/std/__utility/pair.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/pair.h +rename to libcudacxx/include/cuda/std/__utility/pair.h +index cc645e411..9269a09c7 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/pair.h ++++ b/libcudacxx/include/cuda/std/__utility/pair.h +@@ -21,45 +21,45 @@ + #endif // no system header + + #ifndef _LIBCUDACXX_HAS_NO_SPACESHIP_OPERATOR +-# include +-# include ++# include ++# include + #endif // _LIBCUDACXX_HAS_NO_SPACESHIP_OPERATOR + ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + // Provide compatability between `std::pair` and `cuda::std::pair` + #if defined(__cuda_std__) && !defined(__CUDACC_RTC__) +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/piecewise_construct.h b/libcudacxx/include/cuda/std/__utility/piecewise_construct.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/piecewise_construct.h +rename to libcudacxx/include/cuda/std/__utility/piecewise_construct.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/priority_tag.h b/libcudacxx/include/cuda/std/__utility/priority_tag.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/priority_tag.h +rename to libcudacxx/include/cuda/std/__utility/priority_tag.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/rel_ops.h b/libcudacxx/include/cuda/std/__utility/rel_ops.h +similarity index 92% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/rel_ops.h +rename to libcudacxx/include/cuda/std/__utility/rel_ops.h +index 519360813..3012e0df6 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/rel_ops.h ++++ b/libcudacxx/include/cuda/std/__utility/rel_ops.h +@@ -20,8 +20,8 @@ + # pragma system_header + #endif // no system header + +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/swap.h b/libcudacxx/include/cuda/std/__utility/swap.h +similarity index 75% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/swap.h +rename to libcudacxx/include/cuda/std/__utility/swap.h +index c33502e58..fbf5a7593 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/swap.h ++++ b/libcudacxx/include/cuda/std/__utility/swap.h +@@ -20,14 +20,14 @@ + # pragma system_header + #endif // no system header + ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/to_underlying.h b/libcudacxx/include/cuda/std/__utility/to_underlying.h +similarity index 94% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/to_underlying.h +rename to libcudacxx/include/cuda/std/__utility/to_underlying.h +index 64ec00afc..c4c15d9b9 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/to_underlying.h ++++ b/libcudacxx/include/cuda/std/__utility/to_underlying.h +@@ -21,7 +21,7 @@ + # pragma system_header + #endif // no system header + +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__utility/unreachable.h b/libcudacxx/include/cuda/std/__utility/unreachable.h +similarity index 100% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__utility/unreachable.h +rename to libcudacxx/include/cuda/std/__utility/unreachable.h +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__variant/monostate.h b/libcudacxx/include/cuda/std/__variant/monostate.h +similarity index 95% +rename from libcudacxx/include/cuda/std/detail/libcxx/include/__variant/monostate.h +rename to libcudacxx/include/cuda/std/__variant/monostate.h +index e27bcbfb0..2453e8ae0 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__variant/monostate.h ++++ b/libcudacxx/include/cuda/std/__variant/monostate.h +@@ -21,10 +21,10 @@ + #endif // no system header + + #ifndef _LIBCUDACXX_HAS_NO_SPACESHIP_OPERATOR +-# include ++# include + #endif // _LIBCUDACXX_HAS_NO_SPACESHIP_OPERATOR ++#include + #include +-#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/__config b/libcudacxx/include/cuda/std/detail/__config +index 61cbe0e66..f4fba1f24 100644 +--- a/libcudacxx/include/cuda/std/detail/__config ++++ b/libcudacxx/include/cuda/std/detail/__config +@@ -11,7 +11,7 @@ + #ifndef __cuda_std__ + #define __cuda_std__ + +-#include ++#include + + #define _LIBCUDACXX_CUDA_API_VERSION CCCL_VERSION + #define _LIBCUDACXX_CUDA_API_VERSION_MAJOR CCCL_MAJOR_VERSION +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl_config b/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl_config +deleted file mode 100644 +index 598240a42..000000000 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cccl_config ++++ /dev/null +@@ -1,24 +0,0 @@ +-//===----------------------------------------------------------------------===// +-// +-// Part of libcu++, the C++ Standard Library for your entire system, +-// 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) 2023-24 NVIDIA CORPORATION & AFFILIATES. +-// +-//===----------------------------------------------------------------------===// +- +-#ifndef __CCCL_CONFIG +-#define __CCCL_CONFIG +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#endif // __CCCL_CONFIG +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__config b/libcudacxx/include/cuda/std/detail/libcxx/include/__config +index 55bf58a5b..b7e8bcc31 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__config ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/__config +@@ -1,16 +1,17 @@ +-// -*- C++ -*- +-//===--------------------------- __config ---------------------------------===// ++//===----------------------------------------------------------------------===// + // +-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. ++// Part of libcu++, the C++ Standard Library for your entire system, ++// 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) 2024 NVIDIA CORPORATION & AFFILIATES. + // + //===----------------------------------------------------------------------===// + + #ifndef _LIBCUDACXX_CONFIG + #define _LIBCUDACXX_CONFIG + +-#include ++#include + + #if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC) + # pragma GCC system_header +@@ -1891,12 +1892,14 @@ extern "C" _LIBCUDACXX_FUNC_VIS void __sanitizer_annotate_contiguous_container( + // We need `is_constant_evaluated` for clang and gcc. MSVC also needs extensive rework + #if !defined(_LIBCUDACXX_IS_CONSTANT_EVALUATED) + #define _LIBCUDACXX_HAS_NO_CONSTEXPR_COMPLEX_OPERATIONS +-#elif defined(__CUDACC_RTC__) ++#elif defined(_CCCL_COMPILER_NVRTC) + #define _LIBCUDACXX_HAS_NO_CONSTEXPR_COMPLEX_OPERATIONS +-#elif defined(_MSC_VER) ++#elif defined(_CCCL_COMPILER_MSVC) + #define _LIBCUDACXX_HAS_NO_CONSTEXPR_COMPLEX_OPERATIONS + #elif defined(_CCCL_CUDACC_BELOW_11_8) + #define _LIBCUDACXX_HAS_NO_CONSTEXPR_COMPLEX_OPERATIONS ++#elif defined(_CCCL_CUDA_COMPILER_CLANG) ++#define _LIBCUDACXX_HAS_NO_CONSTEXPR_COMPLEX_OPERATIONS + #endif + + // FIXME: Correct this macro when either (A) a feature test macro for the +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx.h b/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx.h +deleted file mode 100644 +index 9923dd181..000000000 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__cuda/ptx.h ++++ /dev/null +@@ -1,90 +0,0 @@ +-// -*- C++ -*- +-//===----------------------------------------------------------------------===// +-// +-// Part of libcu++, the C++ Standard Library for your entire system, +-// 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) 2023 NVIDIA CORPORATION & AFFILIATES. +-// +-//===----------------------------------------------------------------------===// +- +-#ifndef _LIBCUDACXX___CUDA_PTX_H +-#define _LIBCUDACXX___CUDA_PTX_H +- +-#include +- +-#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 +- +-/* +- * The cuda::ptx namespace intends to provide PTX wrappers for new hardware +- * features and new PTX instructions so that they can be experimented with +- * before higher-level C++ APIs are designed and developed. +- * +- * The wrappers have the following responsibilities: +- * +- * - They must prevent any PTX assembler errors, that is: +- * - They are defined only for versions of the CUDA Toolkit in which nvcc/ptxas +- * actually recognizes the instruction. +- * - Sizes and types of parameters are correct. +- * - They must convert state spaces correctly. +- * - They adhere to the libcu++ coding standards of using: +- * - Reserved identifiers for all parameters, variables. E.g. `__meow` or `_Woof` +- * - _CUDA_VSTD:: namespace for types +- * +- * The wrappers should not do the following: +- * +- * - Use any non-native types. For example, an mbarrier instruction wrapper +- * takes the barrier address as a uint64_t pointer. +- * +- * This header is intended for: +- * +- * - internal consumption by higher-level APIs such as cuda::barrier, +- * - outside developers who want to experiment with the latest features of the +- * hardware. +- * +- * Stability: +- * +- * - These headers are intended to present a stable API (not ABI) within one +- * major version of the CTK. This means that: +- * - All functions are marked inline +- * - The type of a function parameter can be changed to be more generic if +- * that means that code that called the original version can still be +- * compiled. +- * +- * - Good exposure of the PTX should be high priority. If, at a new major +- * version, we face a difficult choice between breaking backward-compatibility +- * and an improvement of the PTX exposure, we will tend to the latter option +- * more easily than in other parts of libcu++. +- * +- * Code organization: +- * +- * - Each instruction is in a separate file and is included below. +- * - Some helper function and types can be found in ptx/ptx_helper_functions.h and ptx/ptx_dot_variants.h. +- */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#endif // _LIBCUDACXX___CUDA_PTX_H +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__debug b/libcudacxx/include/cuda/std/detail/libcxx/include/__debug +index 4802ed644..8e207184c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__debug ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/__debug +@@ -22,7 +22,7 @@ + #endif // no system header + + #include +-#include ++#include + #include + + #if defined(_LIBCUDACXX_ENABLE_DEBUG_MODE) && !defined(_LIBCUDACXX_DEBUG_RANDOMIZE_UNSPECIFIED_STABILITY) +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base b/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base +index 2de26d2ec..042b7f21c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/__functional_base +@@ -20,18 +20,18 @@ + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__threading_support b/libcudacxx/include/cuda/std/detail/libcxx/include/__threading_support +index a48206831..18bafb86a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/__threading_support ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/__threading_support +@@ -21,8 +21,8 @@ + #endif // no system header + + #include // all public C++ headers provide the assertion handler +-#include +-#include ++#include ++#include + #include + #include + #include +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/algorithm b/libcudacxx/include/cuda/std/detail/libcxx/include/algorithm +index 3407fc89d..bc48a7321 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/algorithm ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/algorithm +@@ -644,110 +644,110 @@ template + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include // all public C++ headers provide the assertion handler + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include + #include +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/array b/libcudacxx/include/cuda/std/detail/libcxx/include/array +index ae95ad2d2..5e1a0429d 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/array ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/array +@@ -119,26 +119,26 @@ template const T&& get(const array&&) noexce + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + #include // all public C++ headers provide the assertion handler +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include + +@@ -149,11 +149,11 @@ template const T&& get(const array&&) noexce + #include + + // [iterator.range] +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + // [array.syn] + #ifndef _LIBCUDACXX_HAS_NO_SPACESHIP_OPERATOR +@@ -162,8 +162,8 @@ template const T&& get(const array&&) noexce + #include + + // [tuple.helper] +-#include +-#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/atomic b/libcudacxx/include/cuda/std/detail/libcxx/include/atomic +index 37deb05d6..298b69726 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/atomic ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/atomic +@@ -559,15 +559,15 @@ void atomic_signal_fence(memory_order m) noexcept; + #include // all public C++ headers provide the assertion handler + #include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include + #include +@@ -2831,7 +2831,7 @@ typedef atomic atomic_unsigned_lock_free; + + _LIBCUDACXX_END_NAMESPACE_STD + +-#include ++#include + #include + + #endif // _LIBCUDACXX_ATOMIC +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/barrier b/libcudacxx/include/cuda/std/detail/libcxx/include/barrier +index 0a46adfcf..4127fe752 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/barrier ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/barrier +@@ -467,7 +467,7 @@ public: + + _LIBCUDACXX_END_NAMESPACE_STD + +-#include ++#include + #include + + #endif //_LIBCUDACXX_BARRIER +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/chrono b/libcudacxx/include/cuda/std/detail/libcxx/include/chrono +index 623a8534a..43b22135e 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/chrono ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/chrono +@@ -840,11 +840,11 @@ constexpr chrono::year operator ""y(unsigned lo + #endif // __cuda_std__ + + #include // all public C++ headers provide the assertion handler +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + #include + #include + #include +@@ -3350,7 +3350,7 @@ _LIBCUDACXX_END_NAMESPACE_FILESYSTEM + + _CCCL_NV_DIAG_DEFAULT(cuda_demote_unsupported_floating_point) + +-#include ++#include + #include + + #endif // _LIBCUDACXX_CHRONO +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/climits b/libcudacxx/include/cuda/std/detail/libcxx/include/climits +index d3cbb940f..330c54a02 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/climits ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/climits +@@ -47,7 +47,7 @@ Macros: + # pragma system_header + #endif // no system header + +-#include ++#include + #include + + #if defined(_CCCL_COMPILER_MSVC) +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/cmath b/libcudacxx/include/cuda/std/detail/libcxx/include/cmath +index 5e9efc264..4ef9fbcc7 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/cmath ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/cmath +@@ -310,7 +310,7 @@ long double truncl(long double x); + # pragma system_header + #endif // no system header + +-#if !defined(__CUDACC_RTC__) || !defined(__cuda_std__) ++#if !defined(_CCCL_COMPILER_NVRTC) || !defined(__cuda_std__) + #include + #endif + +@@ -323,11 +323,11 @@ long double truncl(long double x); + #include + + #ifdef _LIBCUDACXX_HAS_NVFP16 +-#include ++#include + #endif // _LIBCUDACXX_HAS_NVFP16 + + #ifdef _LIBCUDACXX_HAS_NVBF16 +-#include ++#include + #endif // _LIBCUDACXX_HAS_NVBF16 + + #include +@@ -685,7 +685,7 @@ __constexpr_isfinite(_A1 __lcpp_x) noexcept + return isfinite(__lcpp_x); + } + +-#if defined(_MSC_VER) || defined(__CUDACC_RTC__) || defined(_CCCL_CUDA_COMPILER_CLANG) ++#if defined(_CCCL_COMPILER_MSVC) || defined(_CCCL_COMPILER_NVRTC) + template + _LIBCUDACXX_INLINE_VISIBILITY + _A1 __constexpr_copysign(_A1 __x, _A1 __y) noexcept +@@ -717,9 +717,9 @@ _CCCL_CONSTEXPR_CXX14 __enable_if_t::value && is_arithmetic<_ + static_assert((!(_IsSame<_A1, __result_type>::value && _IsSame<_A2, __result_type>::value)), ""); + return __builtin_copysign((__result_type)__x, (__result_type)__y); + } +-#endif // !_MSC_VER ++#endif // !_CCCL_COMPILER_MSVC + +-#if defined(_MSC_VER) || defined(__CUDACC_RTC__) || defined(_CCCL_CUDA_COMPILER_CLANG) ++#if defined(_CCCL_COMPILER_MSVC) || defined(_CCCL_COMPILER_NVRTC) + template + _LIBCUDACXX_INLINE_VISIBILITY + _A1 __constexpr_fabs(_A1 __x) noexcept +@@ -747,9 +747,9 @@ inline _LIBCUDACXX_HIDE_FROM_ABI _LIBCUDACXX_INLINE_VISIBILITY + _CCCL_CONSTEXPR_CXX14 double __constexpr_fabs(_Tp __x) noexcept { + return __builtin_fabs(static_cast(__x)); + } +-#endif // !_MSC_VER ++#endif // !_CCCL_COMPILER_MSVC + +-#if defined(_MSC_VER) || defined(__CUDACC_RTC__) || defined(_CCCL_CUDA_COMPILER_CLANG) ++#if defined(_CCCL_COMPILER_MSVC) || defined(_CCCL_COMPILER_NVRTC) + template + _LIBCUDACXX_INLINE_VISIBILITY + _A1 __constexpr_fmax(_A1 __x, _A1 __y) noexcept +@@ -806,9 +806,9 @@ __constexpr_fmax(_Tp __x, _Up __y) noexcept { + using __result_type = __promote_t<_Tp, _Up>; + return _CUDA_VSTD::__constexpr_fmax(static_cast<__result_type>(__x), static_cast<__result_type>(__y)); + } +-#endif // !_MSC_VER ++#endif // !_CCCL_COMPILER_MSVC + +-#if defined(_MSC_VER) || defined(__CUDACC_RTC__) || defined(_CCCL_CUDA_COMPILER_CLANG) ++#if defined(_CCCL_COMPILER_MSVC) || defined(_CCCL_COMPILER_NVRTC) || defined(_CCCL_CUDA_COMPILER_CLANG) + template + _LIBCUDACXX_INLINE_VISIBILITY + _A1 __constexpr_logb(_A1 __x) +@@ -845,7 +845,7 @@ _CCCL_CONSTEXPR_CXX14_COMPLEX _Tp __constexpr_logb(_Tp __x) { + } + #endif // !_MSVC + +-#if defined(_MSC_VER) || defined(__CUDACC_RTC__) || defined(_CCCL_CUDA_COMPILER_CLANG) ++#if defined(_CCCL_COMPILER_MSVC) || defined(_CCCL_COMPILER_NVRTC) || defined(_CCCL_CUDA_COMPILER_CLANG) + template + inline _LIBCUDACXX_INLINE_VISIBILITY + _Tp __constexpr_scalbn(_Tp __x, int __i) { +@@ -913,7 +913,7 @@ _CCCL_CONSTEXPR_CXX14_COMPLEX _Tp __constexpr_scalbn(_Tp __x, int __exp) { + #endif // defined(_LIBCUDACXX_IS_CONSTANT_EVALUATED) + return __builtin_scalbn(__x, __exp); + } +-#endif // !_MSC_VER ++#endif // !_CCCL_COMPILER_MSVC + + #if _CCCL_STD_VER > 2017 + template +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/complex b/libcudacxx/include/cuda/std/detail/libcxx/include/complex +index fb60cedf6..bd6b167ca 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/complex ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/complex +@@ -243,13 +243,13 @@ template complex tanh (const complex&); + #endif // no system header + + #include // all public C++ headers provide the assertion handler +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include + #include +@@ -1514,11 +1514,11 @@ _CCCL_DIAG_POP + _LIBCUDACXX_END_NAMESPACE_STD + + #ifdef _LIBCUDACXX_HAS_NVFP16 +-# include ++# include + #endif // _LIBCUDACXX_HAS_NVFP16 + + #ifdef _LIBCUDACXX_HAS_NVBF16 +-# include ++# include + #endif // _LIBCUDACXX_HAS_NVBF16 + + #undef _LIBCUDACXX_ACCESS_STD_COMPLEX_REAL +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/concepts b/libcudacxx/include/cuda/std/detail/libcxx/include/concepts +index e7c1e6a69..15f041190 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/concepts ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/concepts +@@ -141,31 +141,31 @@ namespace std { + #endif // no system header + + #include // all public C++ headers provide the assertion handler +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef b/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef +index 62e90687a..c4de4ba13 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/cstddef +@@ -44,9 +44,9 @@ Types: + #endif // no system header + + #include // all public C++ headers provide the assertion handler +-#include +-#include +-#include ++#include ++#include ++#include + #include + + #include +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/cstdint b/libcudacxx/include/cuda/std/detail/libcxx/include/cstdint +index 8b33f4fd1..b403ce564 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/cstdint ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/cstdint +@@ -150,7 +150,7 @@ Types: + # pragma system_header + #endif // no system header + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/exception b/libcudacxx/include/cuda/std/detail/libcxx/include/exception +index 834490b2f..5c7054df3 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/exception ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/exception +@@ -89,9 +89,9 @@ template void rethrow_if_nested(const E& e); + #endif // no system header + + #include // all public C++ headers provide the assertion handler +-#include +-#include +-#include ++#include ++#include ++#include + + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/expected b/libcudacxx/include/cuda/std/detail/libcxx/include/expected +index 6a9feb17c..e1697de1a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/expected ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/expected +@@ -29,10 +29,10 @@ namespace std { + # pragma system_header + #endif // no system header + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/functional b/libcudacxx/include/cuda/std/detail/libcxx/include/functional +index d78667acf..d5b019278 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/functional ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/functional +@@ -514,33 +514,33 @@ POLICY: For non-variadic implementations, the number of arguments is limited + #endif // __cuda_std__ + + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + #include // for forward declarations of vector and string. + #include +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd b/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd +index 61447115a..8acf2e2e1 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/iosfwd +@@ -102,7 +102,7 @@ typedef fpos::state_type> wstreampos; + #endif // no system header + + #include // all public C++ headers provide the assertion handler +-#include ++#include + #include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/iterator b/libcudacxx/include/cuda/std/detail/libcxx/include/iterator +index 542ebbef3..5f1f42cb5 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/iterator ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/iterator +@@ -686,45 +686,45 @@ template constexpr const E* data(initializer_list il) noexcept; + #endif // no system header + + #include // all public C++ headers provide the assertion handler +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include + #include // for forward declarations of vector and string. +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/latch b/libcudacxx/include/cuda/std/detail/libcxx/include/latch +index 781f06f0e..2dcac0588 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/latch ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/latch +@@ -122,7 +122,7 @@ using latch = __latch_base<>; + + _LIBCUDACXX_END_NAMESPACE_STD + +-#include ++#include + #include + + #endif //_LIBCUDACXX_LATCH +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/mdspan b/libcudacxx/include/cuda/std/detail/libcxx/include/mdspan +index 30eee7567..dd469e6b8 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/mdspan ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/mdspan +@@ -47,17 +47,17 @@ + #include + + #include // all public C++ headers provide the assertion handler +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/memory b/libcudacxx/include/cuda/std/detail/libcxx/include/memory +index b2414bc0c..9a863a60a 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/memory ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/memory +@@ -658,44 +658,44 @@ void* align(size_t alignment, size_t size, void*& ptr, size_t& space); + + #include // all public C++ headers provide the assertion handler + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include + #include +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/new b/libcudacxx/include/cuda/std/detail/libcxx/include/new +index 0b2007ef1..7615bb0d3 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/new ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/new +@@ -51,9 +51,9 @@ template constexpr T* launder(T* p) noexcept; // C++17 + #endif // no system header + + #include // all public C++ headers provide the assertion handler +-#include +-#include +-#include ++#include ++#include ++#include + + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/numeric b/libcudacxx/include/cuda/std/detail/libcxx/include/numeric +index a9334194a..76d49c5a2 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/numeric ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/numeric +@@ -156,8 +156,8 @@ floating_point midpoint(floating_point a, floating_point b); // C++20 + #endif // no system header + + #include // all public C++ headers provide the assertion handler +-#include +-#include ++#include ++#include + #include // for isnormal + #include + #include // for numeric_limits +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/optional b/libcudacxx/include/cuda/std/detail/libcxx/include/optional +index ba8b02c46..a21d5592f 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/optional ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/optional +@@ -171,31 +171,31 @@ template + + #include // all public C++ headers provide the assertion handler + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include + #include +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/ranges b/libcudacxx/include/cuda/std/detail/libcxx/include/ranges +index d932dc351..a7c26c7f6 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/ranges ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/ranges +@@ -321,19 +321,19 @@ _CCCL_DIAG_PUSH + _CCCL_DIAG_SUPPRESS_MSVC(4848) + + #include // all public C++ headers provide the assertion handler +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + + // standard-mandated includes + #include +@@ -346,8 +346,8 @@ _CCCL_DIAG_SUPPRESS_MSVC(4848) + #include + + // [tuple.helper] +-#include +-#include ++#include ++#include + + _CCCL_DIAG_POP + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/ratio b/libcudacxx/include/cuda/std/detail/libcxx/include/ratio +index 4bab1de78..edf8d224c 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/ratio ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/ratio +@@ -88,7 +88,7 @@ typedef ratio<1000000000000000000000000, 1> yotta; // not supported + #endif // no system header + + #include // all public C++ headers provide the assertion handler +-#include ++#include + #include + #include + #include +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/semaphore b/libcudacxx/include/cuda/std/detail/libcxx/include/semaphore +index 9a71621bf..f038532e7 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/semaphore ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/semaphore +@@ -56,7 +56,7 @@ using binary_semaphore = counting_semaphore<1>; + #endif // no system header + + #include // all public C++ headers provide the assertion handler +-#include ++#include + #include + #include + +@@ -442,7 +442,7 @@ using binary_semaphore = counting_semaphore<1>; + + _LIBCUDACXX_END_NAMESPACE_STD + +-#include ++#include + #include + + #endif //_LIBCUDACXX_SEMAPHORE +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/span b/libcudacxx/include/cuda/std/detail/libcxx/include/span +index 9a345617c..7e1e7a417 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/span ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/span +@@ -139,32 +139,32 @@ template + #endif // no system header + + #include // all public C++ headers provide the assertion handler +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include // for ptrdiff_t + #include +@@ -172,11 +172,11 @@ template + // standard-mandated includes + + // [iterator.range] +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/stdexcept b/libcudacxx/include/cuda/std/detail/libcxx/include/stdexcept +index 5b6c2c388..743bc7057 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/stdexcept ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/stdexcept +@@ -54,8 +54,8 @@ public: + #endif // no system header + + #include // all public C++ headers provide the assertion handler +-#include +-#include ++#include ++#include + #include + #include + +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/tuple b/libcudacxx/include/cuda/std/detail/libcxx/include/tuple +index ff643207a..4b0bed399 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/tuple ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/tuple +@@ -156,26 +156,26 @@ template + #endif // no system header + + #include // all public C++ headers provide the assertion handler +-#include ++#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include + #include +@@ -194,10 +194,6 @@ template + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + +-template +-struct __is_tuple_of_iterator_references : false_type +-{}; +- + // __tuple_leaf + struct __tuple_leaf_default_constructor_tag {}; + +@@ -852,15 +848,6 @@ public: + _Tp...>::template __tuple_like_constraints<_Tuple>, + __invalid_tuple_constraints>; + +- // Horrible hack to make tuple_of_iterator_references work +- template ::value, int> = 0, +- __enable_if_t<(tuple_size<_TupleOfIteratorReferences>::value == sizeof...(_Tp)), int> = 0> +- _LIBCUDACXX_INLINE_VISIBILITY _CCCL_CONSTEXPR_CXX14 tuple(_TupleOfIteratorReferences&& __t) +- : tuple(_CUDA_VSTD::forward<_TupleOfIteratorReferences>(__t).template __to_tuple<_Tp...>( +- __make_tuple_indices_t())) +- {} +- + template < + class _Tuple, class _Constraints = __tuple_like_constraints<_Tuple>, + __enable_if_t::value, int> = 0, +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits b/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits +index 82c390887..fbdb58864 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/type_traits +@@ -424,143 +424,143 @@ namespace std + # pragma system_header + #endif // no system header + +-#include ++#include + #include // all public C++ headers provide the assertion handler +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include + #include +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/utility b/libcudacxx/include/cuda/std/detail/libcxx/include/utility +index d309b1d01..7b36b2d39 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/utility ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/utility +@@ -249,36 +249,36 @@ template + + #include // all public C++ headers provide the assertion handler + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include + + #include + #include +@@ -295,7 +295,7 @@ template + #include + + // [tuple.helper] +-#include +-#include ++#include ++#include + + #endif // _LIBCUDACXX_UTILITY +diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/variant b/libcudacxx/include/cuda/std/detail/libcxx/include/variant +index ca6965d1d..25fb4bc44 100644 +--- a/libcudacxx/include/cuda/std/detail/libcxx/include/variant ++++ b/libcudacxx/include/cuda/std/detail/libcxx/include/variant +@@ -218,45 +218,45 @@ C++20 + #include // all public C++ headers provide the assertion handler + #include + #ifndef _LIBCUDACXX_HAS_NO_SPACESHIP_OPERATOR +-# include +-# include +-# include ++# include ++# include ++# include + #endif // _LIBCUDACXX_HAS_NO_SPACESHIP_OPERATOR +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include + #include + #include + #include +diff --git a/libcudacxx/include/cuda/stream_ref b/libcudacxx/include/cuda/stream_ref +index 20927f7e3..5c2ef3c3d 100644 +--- a/libcudacxx/include/cuda/stream_ref ++++ b/libcudacxx/include/cuda/stream_ref +@@ -52,7 +52,7 @@ private: + + #include + #include +-#include ++#include + + _LIBCUDACXX_BEGIN_NAMESPACE_CUDA + +diff --git a/libcudacxx/test/internal_headers/CMakeLists.txt b/libcudacxx/test/internal_headers/CMakeLists.txt +index d5a41a437..08cdb4935 100644 +--- a/libcudacxx/test/internal_headers/CMakeLists.txt ++++ b/libcudacxx/test/internal_headers/CMakeLists.txt +@@ -8,9 +8,10 @@ find_package(CUDAToolkit) + + # Grep all internal headers + file(GLOB_RECURSE internal_headers +- RELATIVE "${libcudacxx_SOURCE_DIR}/include/cuda/std/detail/libcxx/include" ++ RELATIVE "${libcudacxx_SOURCE_DIR}/include/cuda/" + CONFIGURE_DEPENDS +- ${libcudacxx_SOURCE_DIR}/include/cuda/std/detail/libcxx/include/__*/*.h ++ ${libcudacxx_SOURCE_DIR}/include/cuda/__*/*.h ++ ${libcudacxx_SOURCE_DIR}/include/cuda/std/__*/*.h + ) + + # headers in `__cuda` are meant to come after the related "cuda" headers so they do not compile on their own +@@ -27,7 +28,13 @@ function(libcudacxx_create_internal_header_test header_name, headertest_src, fal + endif() + + set(headertest_${header_name} verify_${header_name}) +- add_library(headertest_${header_name} SHARED "${headertest_src}.cu" "${headertest_src}.cpp") ++ # cuda internal headers should not be tested against a host compiler ++ if(header_name MATCHES "__ptx.*") ++ add_library(headertest_${header_name} SHARED "${headertest_src}.cu") ++ else() ++ add_library(headertest_${header_name} SHARED "${headertest_src}.cu" "${headertest_src}.cpp") ++ endif() ++ + target_include_directories(headertest_${header_name} PRIVATE "${libcudacxx_SOURCE_DIR}/include") + target_compile_options(headertest_${header_name} + PRIVATE +@@ -63,7 +70,7 @@ function(libcudacxx_add_internal_header_test header) + endif() + + # Seach the file for a fallback definition +- file(READ ${libcudacxx_SOURCE_DIR}/include/cuda/std/detail/libcxx/include/${header} header_file) ++ file(READ ${libcudacxx_SOURCE_DIR}/include/cuda/${header} header_file) + string(REGEX MATCH "_LIBCUDACXX_[A-Z_]*_FALLBACK" fallback "${header_file}") + if(fallback) + libcudacxx_create_internal_header_test(${header_name}, ${headertest_src}, ${fallback}) +diff --git a/libcudacxx/test/internal_headers/header_test.cpp.in b/libcudacxx/test/internal_headers/header_test.cpp.in +index 379a3ec9a..4234f46e1 100644 +--- a/libcudacxx/test/internal_headers/header_test.cpp.in ++++ b/libcudacxx/test/internal_headers/header_test.cpp.in +@@ -19,4 +19,4 @@ + _CCCL_SUPPRESS_DEPRECATED_PUSH + + // This file tests that the respective header is includable on its own with a cuda compiler +-#include ++#include +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy.pass.cpp +index 21de18395..045811f7f 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy.pass.cpp +@@ -12,7 +12,7 @@ + // constexpr OutIter // constexpr after C++17 + // copy(InIter first, InIter last, OutIter result); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_backward.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_backward.pass.cpp +index eb8bdd166..1c37f0544 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_backward.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_backward.pass.cpp +@@ -13,7 +13,7 @@ + // constexpr OutIter // constexpr after C++17 + // copy_backward(InIter first, InIter last, OutIter result); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_if.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_if.pass.cpp +index 7fb5e9c01..b980ebfa5 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_if.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_if.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr OutIter // constexpr after C++17 + // copy_if(InIter first, InIter last, OutIter result, Pred pred); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_n.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_n.pass.cpp +index 563559ca9..462813719 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_n.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.copy/copy_n.pass.cpp +@@ -12,7 +12,7 @@ + // constexpr OutIter // constexpr after C++17 + // copy_n(InIter first, InIter::difference_type n, OutIter result); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.fill/fill.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.fill/fill.pass.cpp +index ca5a1cab4..c3740ec0b 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.fill/fill.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.fill/fill.pass.cpp +@@ -13,7 +13,7 @@ + // constexpr void // constexpr after C++17 + // fill(Iter first, Iter last, const T& value); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.fill/fill_n.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.fill/fill_n.pass.cpp +index 7f751a605..9f3820ca4 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.fill/fill_n.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.fill/fill_n.pass.cpp +@@ -13,7 +13,7 @@ + // constexpr OutputIterator // constexpr after C++17 + // fill_n(Iter first, Size n, const T& value); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.generate/generate.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.generate/generate.pass.cpp +index bd0c76f02..ca8ced358 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.generate/generate.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.generate/generate.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr void // constexpr after c++17 + // generate(Iter first, Iter last, Generator gen); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.generate/generate_n.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.generate/generate_n.pass.cpp +index 0b3d5d42b..6b61d968d 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.generate/generate_n.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.generate/generate_n.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr void // constexpr after c++17 + // generate_n(Iter first, Size n, Generator gen); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.move/move.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.move/move.pass.cpp +index c709398e3..8f1d3c9ab 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.move/move.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.move/move.pass.cpp +@@ -13,7 +13,7 @@ + // OutIter + // move(InIter first, InIter last, OutIter result); + +-#include ++#include + #include + #if defined(_LIBCUDACXX_HAS_MEMORY) + # include +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.move/move_backward.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.move/move_backward.pass.cpp +index 2c46b5793..7cffbfffd 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.move/move_backward.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.move/move_backward.pass.cpp +@@ -13,7 +13,7 @@ + // OutIter + // move_backward(InIter first, InIter last, OutIter result); + +-#include ++#include + #include + #if defined(_LIBCUDACXX_HAS_MEMORY) + # include +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/is_partitioned.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/is_partitioned.pass.cpp +index b8e9ff7eb..b859b1646 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/is_partitioned.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/is_partitioned.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr bool // constexpr after C++17 + // is_partitioned(InputIterator first, InputIterator last, Predicate pred); + +-#include ++#include + #include + #include + #include +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/partition.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/partition.pass.cpp +index 6406c1f61..74000a652 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/partition.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/partition.pass.cpp +@@ -16,7 +16,7 @@ + // constexpr Iter // constexpr in C++20 + // partition(Iter first, Iter last, Pred pred); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/partition_copy.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/partition_copy.pass.cpp +index 574cf976d..679b2a43b 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/partition_copy.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/partition_copy.pass.cpp +@@ -17,7 +17,7 @@ + // OutputIterator1 out_true, OutputIterator2 out_false, + // Predicate pred); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/partition_point.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/partition_point.pass.cpp +index dd75396c6..3cd6249e6 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/partition_point.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.partitions/partition_point.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr ForwardIterator // constexpr after C++17 + // partition_point(ForwardIterator first, ForwardIterator last, Predicate pred); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove.pass.cpp +index 7ec1152b5..605707846 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr Iter // constexpr after C++17 + // remove(Iter first, Iter last, const T& value); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove_copy.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove_copy.pass.cpp +index c70a68c14..3c6111575 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove_copy.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove_copy.pass.cpp +@@ -13,7 +13,7 @@ + // constexpr OutIter // constexpr after C++17 + // remove_copy(InIter first, InIter last, OutIter result, const T& value); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove_copy_if.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove_copy_if.pass.cpp +index 5b6974b6d..5130eecef 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove_copy_if.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove_copy_if.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr OutIter // constexpr after C++17 + // remove_copy_if(InIter first, InIter last, OutIter result, Pred pred); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove_if.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove_if.pass.cpp +index c81ef36cf..29f73e2b3 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove_if.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.remove/remove_if.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr Iter // constexpr after C++17 + // remove_if(Iter first, Iter last, Pred pred); + +-#include ++#include + #include + + #include "counting_predicates.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace.pass.cpp +index f1975e0ef..89ab3c409 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr void // constexpr after C++17 + // replace(Iter first, Iter last, const T& old_value, const T& new_value); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace_copy.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace_copy.pass.cpp +index 5abc9a1e8..66991737b 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace_copy.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace_copy.pass.cpp +@@ -16,7 +16,7 @@ + // replace_copy(InIter first, InIter last, OutIter result, const T& old_value, + // const T& new_value); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace_copy_if.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace_copy_if.pass.cpp +index e13199243..33b70ce0f 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace_copy_if.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace_copy_if.pass.cpp +@@ -16,7 +16,7 @@ + // constexpr OutIter // constexpr after C++17 + // replace_copy_if(InIter first, InIter last, OutIter result, Pred pred, const T& new_value); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace_if.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace_if.pass.cpp +index dff6880a3..e3be813b1 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace_if.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.replace/replace_if.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr void // constexpr after C++17 + // replace_if(Iter first, Iter last, Pred pred, const T& new_value); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.reverse/reverse.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.reverse/reverse.pass.cpp +index 5ccc9265e..0d411dd4a 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.reverse/reverse.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.reverse/reverse.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr void // constexpr in C++20 + // reverse(Iter first, Iter last); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.reverse/reverse_copy.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.reverse/reverse_copy.pass.cpp +index 1f05cc432..0e9cbf955 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.reverse/reverse_copy.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.reverse/reverse_copy.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr OutIter // constexpr after C++17 + // reverse_copy(InIter first, InIter last, OutIter result); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.rotate/rotate.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.rotate/rotate.pass.cpp +index 4aa937670..0e312120a 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.rotate/rotate.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.rotate/rotate.pass.cpp +@@ -14,7 +14,7 @@ + // Iter + // rotate(Iter first, Iter middle, Iter last); + +-#include ++#include + #include + + #include "MoveOnly.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.rotate/rotate_copy.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.rotate/rotate_copy.pass.cpp +index ba87d065a..22a6154d4 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.rotate/rotate_copy.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.rotate/rotate_copy.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr OutIter // constexpr after C++17 + // rotate_copy(InIter first, InIter middle, InIter last, OutIter result); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.shift/shift_left.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.shift/shift_left.pass.cpp +index de0ac3fc7..302538a86 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.shift/shift_left.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.shift/shift_left.pass.cpp +@@ -15,7 +15,7 @@ + // shift_left(ForwardIterator first, ForwardIterator last, + // typename iterator_traits::difference_type n); + +-#include ++#include + #include + + #include "MoveOnly.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.shift/shift_right.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.shift/shift_right.pass.cpp +index a2b9e5eec..fe233d509 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.shift/shift_right.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.shift/shift_right.pass.cpp +@@ -15,7 +15,7 @@ + // shift_right(ForwardIterator first, ForwardIterator last, + // typename iterator_traits::difference_type n); + +-#include ++#include + #include + + #include "MoveOnly.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.swap/iter_swap.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.swap/iter_swap.pass.cpp +index 92c0a9db9..f776a30ee 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.swap/iter_swap.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.swap/iter_swap.pass.cpp +@@ -15,7 +15,7 @@ + // void + // iter_swap(Iter1 a, Iter2 b); + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.swap/swap_ranges.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.swap/swap_ranges.pass.cpp +index f92bd4b49..4a022f7f9 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.swap/swap_ranges.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.swap/swap_ranges.pass.cpp +@@ -15,7 +15,7 @@ + // Iter2 + // swap_ranges(Iter1 first1, Iter1 last1, Iter2 first2); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.transform/binary_transform.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.transform/binary_transform.pass.cpp +index 38e77c1ae..8f871f92f 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.transform/binary_transform.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.transform/binary_transform.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr OutIter // constexpr after C++17 + // transform(InIter1 first1, InIter1 last1, InIter2 first2, OutIter result, BinaryOp binary_op); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.transform/unary_transform.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.transform/unary_transform.pass.cpp +index 8c4749e3c..7082f653e 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.transform/unary_transform.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.transform/unary_transform.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr OutIter // constexpr after C++17 + // transform(InIter first, InIter last, OutIter result, Op op); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique.pass.cpp +index b191b5434..9da8192b7 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique.pass.cpp +@@ -16,7 +16,7 @@ + // constexpr Iter // constexpr after C++17 + // unique(Iter first, Iter last); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique_copy.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique_copy.pass.cpp +index 6794f77e8..31317f785 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique_copy.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique_copy.pass.cpp +@@ -18,7 +18,7 @@ + // constexpr OutIter // constexpr after C++17 + // unique_copy(InIter first, InIter last, OutIter result); + +-#include ++#include + #include + + #include "MoveOnly.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique_copy_pred.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique_copy_pred.pass.cpp +index 53d35a95f..fe73d2839 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique_copy_pred.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique_copy_pred.pass.cpp +@@ -19,7 +19,7 @@ + // constexpr OutIter // constexpr after C++17 + // unique_copy(InIter first, InIter last, OutIter result, Pred pred); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique_pred.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique_pred.pass.cpp +index 85c63bd6b..2ea3a4598 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique_pred.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.modifying/alg.unique/unique_pred.pass.cpp +@@ -16,7 +16,7 @@ + // constexpr Iter // constexpr after C++17 + // unique(Iter first, Iter last, Pred pred); + +-#include ++#include + #include + + #include "MoveOnly.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find.pass.cpp +index ecd2a4da8..0ec12f769 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find.pass.cpp +@@ -13,7 +13,7 @@ + // constexpr Iter // constexpr after C++17 + // adjacent_find(Iter first, Iter last); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find_pred.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find_pred.pass.cpp +index 46bde8ba5..46b404a15 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find_pred.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.adjacent.find/adjacent_find_pred.pass.cpp +@@ -13,7 +13,7 @@ + // constexpr Iter // constexpr after C++17 + // adjacent_find(Iter first, Iter last, Pred pred); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.all_of/all_of.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.all_of/all_of.pass.cpp +index 3db68fa9b..5725f3a39 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.all_of/all_of.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.all_of/all_of.pass.cpp +@@ -13,7 +13,7 @@ + // constexpr bool // constexpr after C++17 + // all_of(InputIterator first, InputIterator last, Predicate pred); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.any_of/any_of.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.any_of/any_of.pass.cpp +index aec500de5..0e6184307 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.any_of/any_of.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.any_of/any_of.pass.cpp +@@ -13,7 +13,7 @@ + // constexpr bool // constexpr after C++17 + // any_of(InputIterator first, InputIterator last, Predicate pred); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp +index 130e5a363..6a0aa1f5d 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp +@@ -13,7 +13,7 @@ + // constexpr Iter::difference_type // constexpr after C++17 + // count(Iter first, Iter last, const T& value); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.count/count_if.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.count/count_if.pass.cpp +index 5ac120ef1..f9e5d7056 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.count/count_if.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.count/count_if.pass.cpp +@@ -13,7 +13,7 @@ + // constexpr Iter::difference_type // constexpr after C++17 + // count_if(Iter first, Iter last, Pred pred); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp +index 565da3001..c51bb61e1 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp +@@ -18,7 +18,7 @@ + // constexpr bool // constexpr after c++17 + // equal(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.equal/equal_pred.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.equal/equal_pred.pass.cpp +index 7be2b032b..460402191 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.equal/equal_pred.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.equal/equal_pred.pass.cpp +@@ -21,7 +21,7 @@ + // constexpr bool // constexpr after c++17 + // equal(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2, Pred pred); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.end/find_end.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.end/find_end.pass.cpp +index 9a5f4e768..9d8a3e44f 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.end/find_end.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.end/find_end.pass.cpp +@@ -13,7 +13,7 @@ + // constexpr Iter1 // constexpr after C++17 + // find_end(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.end/find_end_pred.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.end/find_end_pred.pass.cpp +index 9880b0492..4b3e0e0c7 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.end/find_end_pred.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.end/find_end_pred.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr Iter1 // constexpr after C++17 + // find_end(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2, Pred pred); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of.pass.cpp +index f4edb167f..c31b5ad6c 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of.pass.cpp +@@ -13,7 +13,7 @@ + // constexpr Iter1 // constexpr after C++17 + // find_first_of(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of_pred.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of_pred.pass.cpp +index a8e2161a2..1ffb2a0d0 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of_pred.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find.first.of/find_first_of_pred.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr Iter1 // constexpr after C++17 + // find_first_of(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2, Pred pred); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp +index b0aa0316d..b78b2eb14 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr Iter // constexpr after C++17 + // find(Iter first, Iter last, const T& value); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find/find_if.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find/find_if.pass.cpp +index 0c5a11579..2e7bf3320 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find/find_if.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find/find_if.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr Iter // constexpr after C++17 + // find_if(Iter first, Iter last, const T& value); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find/find_if_not.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find/find_if_not.pass.cpp +index 3ff036efb..a1aa322b9 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find/find_if_not.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.find/find_if_not.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr Iter // constexpr after C++17 + // find_if_not(Iter first, Iter last, const T& value); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.for_each/for_each.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.for_each/for_each.pass.cpp +index 5c166fcf5..8bc98e4bc 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.for_each/for_each.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.for_each/for_each.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr Function // constexpr after C++17 + // for_each(Iter first, Iter last, Function f); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.for_each/for_each_n.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.for_each/for_each_n.pass.cpp +index 71cbaf92a..3d5d768a0 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.for_each/for_each_n.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.for_each/for_each_n.pass.cpp +@@ -13,7 +13,7 @@ + // constexpr InputIterator // constexpr after C++17 + // for_each_n(InputIterator first, Size n, Function f); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation.pass.cpp +index 01f20c5c7..378dc931a 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation.pass.cpp +@@ -13,7 +13,7 @@ + // is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, + // ForwardIterator2 first2); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation_pred.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation_pred.pass.cpp +index 7ba1f2391..72b39ab35 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation_pred.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation_pred.pass.cpp +@@ -13,7 +13,7 @@ + // is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, + // ForwardIterator2 first2, BinaryPredicate pred); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.mismatch/mismatch.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.mismatch/mismatch.pass.cpp +index 78f098d40..0fce7c866 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.mismatch/mismatch.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.mismatch/mismatch.pass.cpp +@@ -17,7 +17,7 @@ + // constexpr pair // constexpr after c++17 + // mismatch(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2); // C++14 + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.mismatch/mismatch_pred.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.mismatch/mismatch_pred.pass.cpp +index f9971fb0d..9725cf6eb 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.mismatch/mismatch_pred.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.mismatch/mismatch_pred.pass.cpp +@@ -18,7 +18,7 @@ + // constexpr pair // constexpr after c++17 + // mismatch(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2, Pred pred); // C++14 + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.none_of/none_of.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.none_of/none_of.pass.cpp +index b2591a66f..109dda5c6 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.none_of/none_of.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.none_of/none_of.pass.cpp +@@ -13,7 +13,7 @@ + // bool + // none_of(InputIterator first, InputIterator last, Predicate pred); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search.pass.cpp +index 7dfb1ade9..7ccf5e252 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search.pass.cpp +@@ -17,7 +17,7 @@ + // ForwardIterator search(ForwardIterator first, ForwardIterator last, + // const Searcher& searcher); // C++17 + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp +index db857716e..1a66a834e 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp +@@ -13,7 +13,7 @@ + // search_n(ForwardIterator first, ForwardIterator last, Size count, + // const T& value); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search_n_pred.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search_n_pred.pass.cpp +index eae930085..f7f7fb3fc 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search_n_pred.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search_n_pred.pass.cpp +@@ -13,7 +13,7 @@ + // search_n(ForwardIterator first, ForwardIterator last, Size count, + // const T& value, BinaryPredicate pred); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search_pred.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search_pred.pass.cpp +index 0d386fc26..58582413b 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search_pred.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.nonmodifying/alg.search/search_pred.pass.cpp +@@ -13,7 +13,7 @@ + // constexpr Iter1 // constexpr after C++17 + // search(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search.pass.cpp +index 2ded9d6fd..9e581415f 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr bool // constexpr after C++17 + // binary_search(Iter first, Iter last, const T& value); + +-#include ++#include + #include + #include + #include +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search_comp.pass.cpp +index 47da8d0ae..1398a3eee 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search_comp.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr bool // constexpr after C++17 + // binary_search(Iter first, Iter last, const T& value, Compare comp); + +-#include ++#include + #include + #include + #include +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/equal.range/equal_range.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/equal.range/equal_range.pass.cpp +index 0d8f5405f..00eff10b7 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/equal.range/equal_range.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/equal.range/equal_range.pass.cpp +@@ -16,7 +16,7 @@ + // constexpr pair // constexpr after c++17 + // equal_range(Iter first, Iter last, const T& value); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/equal.range/equal_range_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/equal.range/equal_range_comp.pass.cpp +index 3d68adfa4..4a2f68c95 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/equal.range/equal_range_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/equal.range/equal_range_comp.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr pair // constexpr after c++17 + // equal_range(Iter first, Iter last, const T& value, Compare comp); + +-#include ++#include + #include + #include + #include +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/lower.bound/lower_bound.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/lower.bound/lower_bound.pass.cpp +index 29b8273a1..1938f9247 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/lower.bound/lower_bound.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/lower.bound/lower_bound.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr Iter // constexpr after c++17 + // lower_bound(Iter first, Iter last, const T& value); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/lower.bound/lower_bound_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/lower.bound/lower_bound_comp.pass.cpp +index 152677f85..f8baba96c 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/lower.bound/lower_bound_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/lower.bound/lower_bound_comp.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr Iter // constexpr after c++17 + // lower_bound(Iter first, Iter last, const T& value, Compare comp); + +-#include ++#include + #include + #include + #include +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/upper.bound/upper_bound.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/upper.bound/upper_bound.pass.cpp +index b6c3fe6af..681bf398e 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/upper.bound/upper_bound.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/upper.bound/upper_bound.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr Iter // constexpr after c++17 + // upper_bound(Iter first, Iter last, const T& value); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/upper.bound/upper_bound_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/upper.bound/upper_bound_comp.pass.cpp +index 1240dfc4a..38533d679 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/upper.bound/upper_bound_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.binary.search/upper.bound/upper_bound_comp.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr Iter // constexpr after c++17 + // upper_bound(Iter first, Iter last, const T& value, Compare comp); + +-#include ++#include + #include + #include + #include +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.clamp/clamp.comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.clamp/clamp.comp.pass.cpp +index 5eb854081..27dd3eefc 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.clamp/clamp.comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.clamp/clamp.comp.pass.cpp +@@ -14,7 +14,7 @@ + // const T& + // clamp(const T& v, const T& lo, const T& hi, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.clamp/clamp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.clamp/clamp.pass.cpp +index 9bfb1b746..0b7db31fd 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.clamp/clamp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.clamp/clamp.pass.cpp +@@ -14,7 +14,7 @@ + // const T& + // clamp(const T& v, const T& lo, const T& hi); + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap.pass.cpp +index c9ba2b159..146739f9a 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr bool // constexpr after C++17 + // is_heap(Iter first, Iter last); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap_comp.pass.cpp +index 6559e38b7..7bda82729 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap_comp.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr bool // constexpr after C++17 + // is_heap(Iter first, Iter last); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap_until.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap_until.pass.cpp +index a6362a3ad..8224c1fe8 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap_until.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap_until.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr bool // constexpr after C++17 + // is_heap_until(Iter first, Iter last); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap_until_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap_until_comp.pass.cpp +index ab3c61d2d..aa51255f7 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap_until_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/is.heap/is_heap_until_comp.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr bool // constexpr after C++17 + // is_heap_until(Iter first, Iter last, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap.pass.cpp +index 3a8713054..8e2318598 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr void // constexpr in C++20 + // make_heap(Iter first, Iter last); + +-#include ++#include + #include + + #include "MoveOnly.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap_comp.pass.cpp +index 44a84e198..319cc3f79 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap_comp.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr void // constexpr in C++20 + // make_heap(Iter first, Iter last, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/pop_heap.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/pop_heap.pass.cpp +index b956503b6..b142edd00 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/pop_heap.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/pop_heap.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr void // constexpr in C++20 + // pop_heap(Iter first, Iter last); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/pop_heap_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/pop_heap_comp.pass.cpp +index 8e8f5ca0e..5e207d3f9 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/pop_heap_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/pop_heap_comp.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr void // constexpr in C++20 + // pop_heap(Iter first, Iter last, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/push.heap/push_heap.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/push.heap/push_heap.pass.cpp +index 3f25a10d1..482d6dac7 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/push.heap/push_heap.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/push.heap/push_heap.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr void // constexpr in C++20 + // push_heap(Iter first, Iter last); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/push.heap/push_heap_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/push.heap/push_heap_comp.pass.cpp +index 47909bc34..7f43ec862 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/push.heap/push_heap_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/push.heap/push_heap_comp.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr void // constexpr in C++20 + // push_heap(Iter first, Iter last); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/sort_heap.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/sort_heap.pass.cpp +index 5b25ebe31..b32f33aba 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/sort_heap.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/sort_heap.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr void // constexpr in C++20 + // sort_heap(Iter first, Iter last); + +-#include ++#include + #include + + #include "MoveOnly.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/sort_heap_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/sort_heap_comp.pass.cpp +index 96a3b19ad..ea05f5425 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/sort_heap_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.heap.operations/sort.heap/sort_heap_comp.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr void // constexpr in C++20 + // sort_heap(Iter first, Iter last, Compare comp); + +-#include ++#include + #include + + #include "MoveOnly.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.lex.comparison/lexicographical_compare.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.lex.comparison/lexicographical_compare.pass.cpp +index 4e2f41394..2d24bac86 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.lex.comparison/lexicographical_compare.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.lex.comparison/lexicographical_compare.pass.cpp +@@ -14,7 +14,7 @@ + // constexpr bool // constexpr after C++17 + // lexicographical_compare(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.lex.comparison/lexicographical_compare_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.lex.comparison/lexicographical_compare_comp.pass.cpp +index 331308bd3..6a8ad25bd 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.lex.comparison/lexicographical_compare_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.lex.comparison/lexicographical_compare_comp.pass.cpp +@@ -15,7 +15,7 @@ + // lexicographical_compare(Iter1 first1, Iter1 last1, + // Iter2 first2, Iter2 last2, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.merge/merge.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.merge/merge.pass.cpp +index b9d6eff97..9688d080a 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.merge/merge.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.merge/merge.pass.cpp +@@ -19,7 +19,7 @@ + // merge(InIter1 first1, InIter1 last1, InIter2 first2, InIter2 last2, + // OutIter result); + +-#include ++#include + #include + + #include "../sortable_helpers.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp +index 3cc7b3a93..d7a13d810 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp +@@ -20,7 +20,7 @@ + // merge(InIter1 first1, InIter1 last1, InIter2 first2, InIter2 last2, + // OutIter result, Compare comp); + +-#include ++#include + #include + + #include "../sortable_helpers.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max.pass.cpp +index 6abbd1095..15631df84 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max.pass.cpp +@@ -14,7 +14,7 @@ + // const T& + // max(const T& a, const T& b); + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_comp.pass.cpp +index 56351661c..d24b1ffe3 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_comp.pass.cpp +@@ -15,7 +15,7 @@ + // const T& + // max(const T& a, const T& b, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_element.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_element.pass.cpp +index cbe649e46..d0c305313 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_element.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_element.pass.cpp +@@ -15,7 +15,7 @@ + // Iter + // max_element(Iter first, Iter last); + +-#include ++#include + #include + + #include "cases.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_element_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_element_comp.pass.cpp +index 2c4b662e1..300c9fafb 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_element_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_element_comp.pass.cpp +@@ -15,7 +15,7 @@ + // Iter + // max_element(Iter first, Iter last, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_init_list.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_init_list.pass.cpp +index c3fbe43a8..15acf887d 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_init_list.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_init_list.pass.cpp +@@ -16,7 +16,7 @@ + // T + // max(initializer_list t); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_init_list_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_init_list_comp.pass.cpp +index c774ff421..57000ce40 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_init_list_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/max_init_list_comp.pass.cpp +@@ -14,7 +14,7 @@ + // T + // max(initializer_list t, Compare comp); + +-#include ++#include + #include + #include + #include +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min.pass.cpp +index 97a9fe714..9f66fc546 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min.pass.cpp +@@ -14,7 +14,7 @@ + // const T& + // min(const T& a, const T& b); + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_comp.pass.cpp +index 9f8dbe575..aac001f74 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_comp.pass.cpp +@@ -15,7 +15,7 @@ + // const T& + // min(const T& a, const T& b, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_element.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_element.pass.cpp +index f8f69551f..13216ce94 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_element.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_element.pass.cpp +@@ -15,7 +15,7 @@ + // Iter + // min_element(Iter first, Iter last); + +-#include ++#include + #include + + #include "cases.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_element_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_element_comp.pass.cpp +index ad6e641e4..4da1400b6 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_element_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_element_comp.pass.cpp +@@ -15,7 +15,7 @@ + // Iter + // min_element(Iter first, Iter last, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_init_list.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_init_list.pass.cpp +index 8922cab1d..d749223df 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_init_list.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_init_list.pass.cpp +@@ -16,7 +16,7 @@ + // T + // min(initializer_list t); + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_init_list_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_init_list_comp.pass.cpp +index 9fc19ebd6..b91599212 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_init_list_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/min_init_list_comp.pass.cpp +@@ -16,7 +16,7 @@ + // T + // min(initializer_list t, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax.pass.cpp +index 5c7e613b9..fc0db419e 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax.pass.cpp +@@ -14,7 +14,7 @@ + // pair + // minmax(const T& a, const T& b); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_comp.pass.cpp +index 0b9b0898a..7273ba7ad 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_comp.pass.cpp +@@ -15,7 +15,7 @@ + // pair + // minmax(const T& a, const T& b, Compare comp); + +-#include ++#include + #include + #include + #include +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_element.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_element.pass.cpp +index 56dcd033e..deeb44a40 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_element.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_element.pass.cpp +@@ -15,7 +15,7 @@ + // pair + // minmax_element(Iter first, Iter last); + +-#include ++#include + #include + + #include "cases.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_element_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_element_comp.pass.cpp +index e83e14215..297c9097d 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_element_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_element_comp.pass.cpp +@@ -15,7 +15,7 @@ + // pair + // minmax_element(Iter first, Iter last, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_init_list.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_init_list.pass.cpp +index 10d1efcfc..e1c63f4b7 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_init_list.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_init_list.pass.cpp +@@ -16,7 +16,7 @@ + // pair + // minmax(initializer_list t); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp +index c3b5bc410..fa552d064 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp +@@ -18,7 +18,7 @@ + // + // Complexity: At most (3/2) * t.size() applications of the corresponding predicate. + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/requires_forward_iterator.verify.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/requires_forward_iterator.verify.cpp +index b39cdc8b2..182942a6f 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/requires_forward_iterator.verify.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.min.max/requires_forward_iterator.verify.cpp +@@ -13,7 +13,7 @@ + // template + // max_element(Iter first, Iter last); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/next_permutation.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/next_permutation.pass.cpp +index 9b9b5a12f..27992b6ff 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/next_permutation.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/next_permutation.pass.cpp +@@ -16,7 +16,7 @@ + // constexpr bool // constexpr in C++20 + // next_permutation(Iter first, Iter last); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/next_permutation_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/next_permutation_comp.pass.cpp +index ca37d255f..faf872a1e 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/next_permutation_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/next_permutation_comp.pass.cpp +@@ -16,7 +16,7 @@ + // constexpr bool // constexpr in C++20 + // next_permutation(Iter first, Iter last, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/prev_permutation.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/prev_permutation.pass.cpp +index a31548580..7e78a92bb 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/prev_permutation.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/prev_permutation.pass.cpp +@@ -16,7 +16,7 @@ + // constexpr bool // constexpr in C++20 + // prev_permutation(Iter first, Iter last); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/prev_permutation_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/prev_permutation_comp.pass.cpp +index 8d99fb282..b3ab8dc2b 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/prev_permutation_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.permutation.generators/prev_permutation_comp.pass.cpp +@@ -16,7 +16,7 @@ + // constexpr bool // constexpr in C++20 + // prev_permutation(Iter first, Iter last, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/includes/includes.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/includes/includes.pass.cpp +index 4e2041a28..73e58f6d0 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/includes/includes.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/includes/includes.pass.cpp +@@ -16,7 +16,7 @@ + // constexpr bool // constexpr after C++17 + // includes(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/includes/includes_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/includes/includes_comp.pass.cpp +index 298ac9998..6522548b8 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/includes/includes_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/includes/includes_comp.pass.cpp +@@ -16,7 +16,7 @@ + // constexpr bool // constexpr after C++17 + // includes(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.difference/set_difference.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.difference/set_difference.pass.cpp +index b72e1deaf..f8afb3b37 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.difference/set_difference.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.difference/set_difference.pass.cpp +@@ -19,7 +19,7 @@ + // set_difference(InIter1 first1, InIter1 last1, InIter2 first2, InIter2 last2, + // OutIter result); + +-#include ++#include + #include + + #include "../../sortable_helpers.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.difference/set_difference_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.difference/set_difference_comp.pass.cpp +index 4731b261b..0c6622559 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.difference/set_difference_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.difference/set_difference_comp.pass.cpp +@@ -20,7 +20,7 @@ + // set_difference(InIter1 first1, InIter1 last1, InIter2 first2, InIter2 last2, + // OutIter result, Compare comp); + +-#include ++#include + #include + + #include "../../sortable_helpers.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.intersection/set_intersection.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.intersection/set_intersection.pass.cpp +index ffadd654f..70668eed6 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.intersection/set_intersection.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.intersection/set_intersection.pass.cpp +@@ -19,7 +19,7 @@ + // set_intersection(InIter1 first1, InIter1 last1, InIter2 first2, InIter2 last2, + // OutIter result); + +-#include ++#include + #include + + #include "../../sortable_helpers.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.intersection/set_intersection_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.intersection/set_intersection_comp.pass.cpp +index f0f864393..08e0b5366 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.intersection/set_intersection_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.intersection/set_intersection_comp.pass.cpp +@@ -20,7 +20,7 @@ + // set_intersection(InIter1 first1, InIter1 last1, InIter2 first2, InIter2 last2, + // OutIter result, Compare comp); + +-#include ++#include + #include + + #include "../../sortable_helpers.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.symmetric.difference/set_symmetric_difference.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.symmetric.difference/set_symmetric_difference.pass.cpp +index 587fc2e54..9b6b9a1fd 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.symmetric.difference/set_symmetric_difference.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.symmetric.difference/set_symmetric_difference.pass.cpp +@@ -19,7 +19,7 @@ + // set_symmetric_difference(InIter1 first1, InIter1 last1, InIter2 first2, InIter2 last2, + // OutIter result); + +-#include ++#include + #include + + #include "../../sortable_helpers.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.symmetric.difference/set_symmetric_difference_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.symmetric.difference/set_symmetric_difference_comp.pass.cpp +index e67adc886..ea29c0c6b 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.symmetric.difference/set_symmetric_difference_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.symmetric.difference/set_symmetric_difference_comp.pass.cpp +@@ -20,7 +20,7 @@ + // set_symmetric_difference(InIter1 first1, InIter1 last1, InIter2 first2, InIter2 last2, + // OutIter result, Compare comp); + +-#include ++#include + #include + + #include "../../sortable_helpers.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union.pass.cpp +index 1196a6189..2a9af1435 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union.pass.cpp +@@ -19,7 +19,7 @@ + // set_union(InIter1 first1, InIter1 last1, InIter2 first2, InIter2 last2, + // OutIter result); + +-#include ++#include + #include + + #include "../../sortable_helpers.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union_comp.pass.cpp +index 6f9ac706d..35c10e8b1 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union_comp.pass.cpp +@@ -20,7 +20,7 @@ + // set_union(InIter1 first1, InIter1 last1, InIter2 first2, InIter2 last2, + // OutIter result, Compare comp); + +-#include ++#include + #include + + #include "../../sortable_helpers.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union_move.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union_move.pass.cpp +index 000d6d206..dfe89075c 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union_move.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union_move.pass.cpp +@@ -20,7 +20,7 @@ + // set_union(InIter1 first1, InIter1 last1, InIter2 first2, InIter2 last2, + // OutIter result, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted.pass.cpp +index b4faa50e7..81a692953 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted.pass.cpp +@@ -15,7 +15,7 @@ + // bool + // is_sorted(Iter first, Iter last); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted_comp.pass.cpp +index f5c332a91..dfa5db08c 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted_comp.pass.cpp +@@ -15,7 +15,7 @@ + // bool + // is_sorted(Iter first, Iter last, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted_until.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted_until.pass.cpp +index 106b96774..90c53ba0e 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted_until.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted_until.pass.cpp +@@ -15,7 +15,7 @@ + // Iter + // is_sorted_until(Iter first, Iter last); + +-#include ++#include + #include + + #include "test_iterators.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted_until_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted_until_comp.pass.cpp +index 784484cf3..50e9df38c 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted_until_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/is.sorted/is_sorted_until_comp.pass.cpp +@@ -15,7 +15,7 @@ + // Iter + // is_sorted_until(Iter first, Iter last, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort.copy/partial_sort_copy.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort.copy/partial_sort_copy.pass.cpp +index d938a75c5..f67f57009 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort.copy/partial_sort_copy.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort.copy/partial_sort_copy.pass.cpp +@@ -18,7 +18,7 @@ + // constexpr RAIter // constexpr in C++20 + // partial_sort_copy(InIter first, InIter last, RAIter result_first, RAIter result_last); + +-#include ++#include + #include + + #include "MoveOnly.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort.copy/partial_sort_copy_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort.copy/partial_sort_copy_comp.pass.cpp +index 9b3aa609a..5cda73bb4 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort.copy/partial_sort_copy_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort.copy/partial_sort_copy_comp.pass.cpp +@@ -20,7 +20,7 @@ + // partial_sort_copy(InIter first, InIter last, + // RAIter result_first, RAIter result_last, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort.pass.cpp +index 97da6fa40..b7a1493d8 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort.pass.cpp +@@ -15,7 +15,7 @@ + // constexpr void // constexpr in C++20 + // partial_sort(Iter first, Iter middle, Iter last); + +-#include ++#include + #include + + #include "MoveOnly.h" +diff --git a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort_comp.pass.cpp b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort_comp.pass.cpp +index fdf933408..e4ef61f56 100644 +--- a/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort_comp.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort_comp.pass.cpp +@@ -16,7 +16,7 @@ + // constexpr void // constexpr in C++20 + // partial_sort(Iter first, Iter middle, Iter last, Compare comp); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/alloc.errors/bad.alloc/bad_alloc.pass.cpp b/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/alloc.errors/bad.alloc/bad_alloc.pass.cpp +index 1cd3c312d..e1d80d125 100644 +--- a/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/alloc.errors/bad.alloc/bad_alloc.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/alloc.errors/bad.alloc/bad_alloc.pass.cpp +@@ -9,7 +9,7 @@ + + // test bad_alloc + +-#include // #include ++#include // #include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/alloc.errors/new.badlength/bad_array_new_length.pass.cpp b/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/alloc.errors/new.badlength/bad_array_new_length.pass.cpp +index 2e670ba92..49f451a12 100644 +--- a/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/alloc.errors/new.badlength/bad_array_new_length.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/alloc.errors/new.badlength/bad_array_new_length.pass.cpp +@@ -9,7 +9,7 @@ + + // test bad_array_new_length + +-#include // #include ++#include // #include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/ptr.launder/launder.nodiscard.verify.cpp b/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/ptr.launder/launder.nodiscard.verify.cpp +index 35c5ae535..b3bb5dcb6 100644 +--- a/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/ptr.launder/launder.nodiscard.verify.cpp ++++ b/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/ptr.launder/launder.nodiscard.verify.cpp +@@ -10,7 +10,7 @@ + + // template constexpr T* launder(T* p) noexcept; + +-#include ++#include + + __host__ __device__ void f() + { +diff --git a/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/ptr.launder/launder.pass.cpp b/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/ptr.launder/launder.pass.cpp +index 775e153b7..fc3775302 100644 +--- a/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/ptr.launder/launder.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/ptr.launder/launder.pass.cpp +@@ -12,7 +12,7 @@ + + // template constexpr T* launder(T* p) noexcept; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/ptr.launder/launder.types.verify.cpp b/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/ptr.launder/launder.types.verify.cpp +index 235a02c8f..4a79e1ccd 100644 +--- a/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/ptr.launder/launder.types.verify.cpp ++++ b/libcudacxx/test/libcudacxx/std/language.support/support.dynamic/ptr.launder/launder.types.verify.cpp +@@ -11,7 +11,7 @@ + // template constexpr T* launder(T* p) noexcept; + // The program is ill-formed if T is a function type or cv void. + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/language.support/support.exception/bad.exception/bad_exception.pass.cpp b/libcudacxx/test/libcudacxx/std/language.support/support.exception/bad.exception/bad_exception.pass.cpp +index dafcb8a38..51f86aa7f 100644 +--- a/libcudacxx/test/libcudacxx/std/language.support/support.exception/bad.exception/bad_exception.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/language.support/support.exception/bad.exception/bad_exception.pass.cpp +@@ -9,7 +9,7 @@ + + // test bad_exception + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/set.terminate/get_terminate.pass.cpp b/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/set.terminate/get_terminate.pass.cpp +index f0f429a43..6ad8f2b49 100644 +--- a/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/set.terminate/get_terminate.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/set.terminate/get_terminate.pass.cpp +@@ -11,7 +11,7 @@ + + // test get_terminate + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/set.terminate/set_terminate.pass.cpp b/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/set.terminate/set_terminate.pass.cpp +index c0704c233..1a81470b2 100644 +--- a/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/set.terminate/set_terminate.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/set.terminate/set_terminate.pass.cpp +@@ -11,7 +11,7 @@ + + // test set_terminate + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/terminate.handler/terminate_handler.pass.cpp b/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/terminate.handler/terminate_handler.pass.cpp +index 3acedead0..f05949a75 100644 +--- a/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/terminate.handler/terminate_handler.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/terminate.handler/terminate_handler.pass.cpp +@@ -11,7 +11,7 @@ + + // test terminate_handler + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/terminate/terminate.pass.cpp b/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/terminate/terminate.pass.cpp +index c68b3e658..4cf7c91cd 100644 +--- a/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/terminate/terminate.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception.terminate/terminate/terminate.pass.cpp +@@ -10,7 +10,7 @@ + // test terminate + // UNSUPPORTED: nvrtc + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception/exception.pass.cpp b/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception/exception.pass.cpp +index 7ebdc7add..1ba188baa 100644 +--- a/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception/exception.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/language.support/support.exception/exception/exception.pass.cpp +@@ -9,7 +9,7 @@ + + // test exception + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.tag/allocator_arg.fail.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.tag/allocator_arg.fail.cpp +index 5a019b6de..951cd5a9a 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.tag/allocator_arg.fail.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.tag/allocator_arg.fail.cpp +@@ -21,7 +21,7 @@ + + // This test checks for LWG 2510. + +-#include ++#include + + cuda::std::allocator_arg_t f() + { +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.tag/allocator_arg.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.tag/allocator_arg.pass.cpp +index caa22431e..88f41eee5 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.tag/allocator_arg.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.tag/allocator_arg.pass.cpp +@@ -13,7 +13,7 @@ + // struct allocator_arg_t { explicit allocator_arg_t() = default; }; + // const allocator_arg_t allocator_arg = allocator_arg_t(); + +-#include ++#include + + #include "test_macros.h" + +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocate_at_least.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocate_at_least.pass.cpp +index 305f61dc2..20675a86e 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocate_at_least.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocate_at_least.pass.cpp +@@ -15,7 +15,7 @@ + // [[nodiscard]] constexpr allocation_result::pointer> + // allocate_at_least(Allocator& a, size_t n); + +-#include ++#include + #include + #include + #include +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/allocate.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/allocate.pass.cpp +index 4813be37c..74b70d142 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/allocate.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/allocate.pass.cpp +@@ -16,7 +16,7 @@ + // ... + // }; + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/allocate.verify.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/allocate.verify.cpp +index 1192f1047..ab95311bd 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/allocate.verify.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/allocate.verify.cpp +@@ -18,7 +18,7 @@ + + // UNSUPPORTED: c++03, c++11, c++14, c++17 + +-#include ++#include + #include + + template +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/allocate_hint.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/allocate_hint.pass.cpp +index 00b5f6bac..64c9bf861 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/allocate_hint.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/allocate_hint.pass.cpp +@@ -16,7 +16,7 @@ + // ... + // }; + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/construct.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/construct.pass.cpp +index 3a352b5ee..700263a4c 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/construct.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/construct.pass.cpp +@@ -17,8 +17,8 @@ + // ... + // }; + +-#include +-#include ++#include ++#include + #include + #include + #include +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/deallocate.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/deallocate.pass.cpp +index 89b4a7078..860c37888 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/deallocate.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/deallocate.pass.cpp +@@ -16,7 +16,7 @@ + // ... + // }; + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/destroy.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/destroy.pass.cpp +index 26fd3cf1a..941705399 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/destroy.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/destroy.pass.cpp +@@ -19,7 +19,7 @@ + + // Currently no suppport for std::allocator + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/max_size.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/max_size.pass.cpp +index 5bfa21f77..33acdad2f 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/max_size.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/max_size.pass.cpp +@@ -16,7 +16,7 @@ + // ... + // }; + +-#include ++#include + #include + #include + #include +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/select_on_container_copy_construction.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/select_on_container_copy_construction.pass.cpp +index 3c89366a7..c994c0fd4 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/select_on_container_copy_construction.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.members/select_on_container_copy_construction.pass.cpp +@@ -17,7 +17,7 @@ + // ... + // }; + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/const_pointer.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/const_pointer.pass.cpp +index 27a63e680..febba80e5 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/const_pointer.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/const_pointer.pass.cpp +@@ -17,7 +17,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/const_void_pointer.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/const_void_pointer.pass.cpp +index 9a668f774..e2993412e 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/const_void_pointer.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/const_void_pointer.pass.cpp +@@ -18,7 +18,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/difference_type.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/difference_type.pass.cpp +index ed278b610..1c6abb16c 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/difference_type.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/difference_type.pass.cpp +@@ -17,7 +17,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/is_always_equal.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/is_always_equal.pass.cpp +index e614ab17f..06ef78e6f 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/is_always_equal.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/is_always_equal.pass.cpp +@@ -17,7 +17,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/pointer.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/pointer.pass.cpp +index d41f5574b..e18a8379c 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/pointer.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/pointer.pass.cpp +@@ -16,7 +16,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_copy_assignment.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_copy_assignment.pass.cpp +index b9361a8fe..187e1a44d 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_copy_assignment.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_copy_assignment.pass.cpp +@@ -17,7 +17,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_move_assignment.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_move_assignment.pass.cpp +index c91b2f6c6..785814ff4 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_move_assignment.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_move_assignment.pass.cpp +@@ -17,7 +17,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_swap.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_swap.pass.cpp +index 872662ddb..cb9ac45c5 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_swap.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_swap.pass.cpp +@@ -17,7 +17,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/rebind_alloc.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/rebind_alloc.pass.cpp +index 47f4c17a1..e09035801 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/rebind_alloc.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/rebind_alloc.pass.cpp +@@ -16,7 +16,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/size_type.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/size_type.pass.cpp +index 8828e4269..963e53340 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/size_type.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/size_type.pass.cpp +@@ -16,7 +16,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/void_pointer.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/void_pointer.pass.cpp +index ed12e38d5..c1a3610ce 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/void_pointer.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator.traits.types/void_pointer.pass.cpp +@@ -18,7 +18,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator_type.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator_type.pass.cpp +index b6b8ed322..a9a47b8c6 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator_type.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/allocator_type.pass.cpp +@@ -16,7 +16,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/rebind_traits.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/rebind_traits.pass.cpp +index 73e5edb8d..7c73e412b 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/rebind_traits.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/rebind_traits.pass.cpp +@@ -16,7 +16,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/value_type.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/value_type.pass.cpp +index 9bcc9a385..0a29e890b 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/value_type.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.traits/value_type.pass.cpp +@@ -16,7 +16,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.uses/allocator.uses.trait/uses_allocator.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.uses/allocator.uses.trait/uses_allocator.pass.cpp +index 13962ec2b..2763dae39 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.uses/allocator.uses.trait/uses_allocator.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/allocator.uses/allocator.uses.trait/uses_allocator.pass.cpp +@@ -11,7 +11,7 @@ + + // template struct uses_allocator; + +-#include ++#include + #if defined(_LIBCUDACXX_HAS_VECTOR) + # include + #endif // _LIBCUDACXX_HAS_VECTOR +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/PR50299.compile.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/PR50299.compile.pass.cpp +index a28206a87..1f213cfd5 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/PR50299.compile.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/PR50299.compile.pass.cpp +@@ -17,7 +17,7 @@ + // + // See https://llvm.org/PR50299. + +-#include ++#include + + #include "test_macros.h" + +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.ctor.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.ctor.pass.cpp +index 142775780..8a98775d6 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.ctor.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.ctor.pass.cpp +@@ -20,7 +20,7 @@ + // ... + // }; + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.dtor.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.dtor.pass.cpp +index 6619f3287..d4e576720 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.dtor.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.dtor.pass.cpp +@@ -13,7 +13,7 @@ + // template + // constexpr allocator::~allocator(); + +-#include ++#include + + #include "test_macros.h" + +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.globals/eq.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.globals/eq.pass.cpp +index 87a220398..eff7b06ef 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.globals/eq.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.globals/eq.pass.cpp +@@ -20,7 +20,7 @@ + // constexpr bool + // operator!=(const allocator&, const allocator&) throw(); + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.constexpr.size.verify.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.constexpr.size.verify.cpp +index d63bf7978..2e21e4b6b 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.constexpr.size.verify.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.constexpr.size.verify.cpp +@@ -15,7 +15,7 @@ + + // UNSUPPORTED: c++03, c++11, c++14, c++17 + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.pass.cpp +index 651edf46b..bef89c738 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.pass.cpp +@@ -15,7 +15,7 @@ + + #define _LIBCUDACXX_DISABLE_DEPRECATION_WARNINGS + +-#include ++#include + #include + #include // for cuda::std::max_align_t + +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.size.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.size.pass.cpp +index 94ee545a7..ef83607b0 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.size.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.size.pass.cpp +@@ -16,7 +16,7 @@ + + #define _LIBCUDACXX_DISABLE_DEPRECATION_WARNINGS + +-#include ++#include + #include + + #include "test_macros.h" +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.verify.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.verify.cpp +index 766fe6334..fad54ecfa 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.verify.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate.verify.cpp +@@ -16,7 +16,7 @@ + // allocator: + // T* allocate(size_t n); + +-#include ++#include + + __host__ __device__ void f() + { +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate_at_least.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate_at_least.pass.cpp +index 68fb6712a..9fba42e9d 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate_at_least.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator.members/allocate_at_least.pass.cpp +@@ -14,7 +14,7 @@ + + // allocation_result allocate_at_least(size_t n) + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_pointers.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_pointers.pass.cpp +index 04cb34af8..b9b435977 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_pointers.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_pointers.pass.cpp +@@ -10,7 +10,7 @@ + + // UNSUPPORTED: c++03 + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.deprecated_in_cxx17.verify.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.deprecated_in_cxx17.verify.cpp +index 575043fc2..c1265e8ed 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.deprecated_in_cxx17.verify.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.deprecated_in_cxx17.verify.cpp +@@ -27,7 +27,7 @@ + + // REQUIRES: c++17 + +-#include ++#include + + __host__ __device__ void f() + { +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.pass.cpp +index 67ac0ccd9..30ffade29 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.pass.cpp +@@ -33,7 +33,7 @@ + + // ADDITIONAL_COMPILE_FLAGS: -D_LIBCUDACXX_DISABLE_DEPRECATION_WARNINGS + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.removed_in_cxx20.verify.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.removed_in_cxx20.verify.cpp +index 69124c539..749e32018 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.removed_in_cxx20.verify.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.removed_in_cxx20.verify.cpp +@@ -27,7 +27,7 @@ + + // UNSUPPORTED: c++03, c++11, c++14, c++17 + +-#include ++#include + + template + __host__ __device__ void check() +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.void.compile.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.void.compile.pass.cpp +index 9c04594cb..1e7c784bd 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.void.compile.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/default.allocator/allocator_types.void.compile.pass.cpp +@@ -27,7 +27,7 @@ + + // ADDITIONAL_COMPILE_FLAGS: -D_LIBCUDACXX_DISABLE_DEPRECATION_WARNINGS + +-#include ++#include + #include + + static_assert((cuda::std::is_same::pointer, void*>::value), ""); +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/ptr.align/align.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/ptr.align/align.pass.cpp +index da0c7fe52..657956cd5 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/ptr.align/align.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/ptr.align/align.pass.cpp +@@ -11,7 +11,7 @@ + + // void* align(size_t alignment, size_t size, void*& ptr, size_t& space); + +-#include ++#include + #include + #include + +diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/sanity.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/sanity.pass.cpp +index 52933a995..a8c11f98c 100644 +--- a/libcudacxx/test/libcudacxx/std/utilities/memory/sanity.pass.cpp ++++ b/libcudacxx/test/libcudacxx/std/utilities/memory/sanity.pass.cpp +@@ -12,7 +12,7 @@ + + // template T* addressof(T& r); + +-#include ++#include + + int main(int, char**) + { +diff --git a/libcudacxx/test/maintenance/all-internal-headers b/libcudacxx/test/maintenance/all-internal-headers +index 5a6a7bd7e..2709f5f14 100644 +--- a/libcudacxx/test/maintenance/all-internal-headers ++++ b/libcudacxx/test/maintenance/all-internal-headers +@@ -4,7 +4,7 @@ + + set -e + +-internal_headers=$(find ../../include -path "*cuda/std/detail/libcxx/include/__*/*" -not -path "*/__cuda/*") ++internal_headers=$(find ../../include -path "*cuda/std/__*/*" -not -path "*/__cuda/*") + + cd ../../test/libcxx/selftest/internal_headers + +diff --git a/libcudacxx/test/support/min_allocator.h b/libcudacxx/test/support/min_allocator.h +index b233417ae..0f5d1d60f 100644 +--- a/libcudacxx/test/support/min_allocator.h ++++ b/libcudacxx/test/support/min_allocator.h +@@ -9,7 +9,7 @@ + #ifndef MIN_ALLOCATOR_H + #define MIN_ALLOCATOR_H + +-#include ++#include + #include + #include + #include +diff --git a/thrust/testing/pair.cu b/thrust/testing/pair.cu +index 1f1ddcf4d..cab025444 100644 +--- a/thrust/testing/pair.cu ++++ b/thrust/testing/pair.cu +@@ -322,4 +322,16 @@ void TestPairStructuredBindings(void) + ASSERT_EQUAL(b, b2); + } + DECLARE_UNITTEST(TestPairStructuredBindings); +-#endif ++ ++void TestPairCTAD(void) ++{ ++ const int a = 42; ++ const int b = 1337; ++ thrust::pair p(a, b); ++ ++ auto [a2, b2] = p; ++ ASSERT_EQUAL(a, a2); ++ ASSERT_EQUAL(b, b2); ++} ++DECLARE_UNITTEST(TestPairCTAD); ++#endif // _CCCL_STD_VER >= 2017 +diff --git a/thrust/testing/tuple.cu b/thrust/testing/tuple.cu +index c3cb1b23b..879d920a0 100644 +--- a/thrust/testing/tuple.cu ++++ b/thrust/testing/tuple.cu +@@ -511,7 +511,21 @@ void TestTupleStructuredBindings(void) + ASSERT_EQUAL(c, c2); + } + DECLARE_UNITTEST(TestTupleStructuredBindings); +-#endif ++ ++void TestTupleCTAD(void) ++{ ++ const int a = 0; ++ const char b = 42; ++ const short c = 1337; ++ thrust::tuple t(a, b, c); ++ ++ auto [a2, b2, c2] = t; ++ ASSERT_EQUAL(a, a2); ++ ASSERT_EQUAL(b, b2); ++ ASSERT_EQUAL(c, c2); ++} ++DECLARE_UNITTEST(TestTupleCTAD); ++#endif // _CCCL_STD_VER >= 2017 + + // Ensure that we are backwards compatible with the old thrust::tuple implementation + static_assert( +diff --git a/thrust/thrust/iterator/detail/tuple_of_iterator_references.h b/thrust/thrust/iterator/detail/tuple_of_iterator_references.h +index 574715e4a..bb43c9d1c 100644 +--- a/thrust/thrust/iterator/detail/tuple_of_iterator_references.h ++++ b/thrust/thrust/iterator/detail/tuple_of_iterator_references.h +@@ -67,9 +67,7 @@ public: + using super_t = thrust::tuple; + using super_t::super_t; + +- inline _CCCL_HOST_DEVICE tuple_of_iterator_references() +- : super_t() +- {} ++ tuple_of_iterator_references() = default; + + // allow implicit construction from tuple + inline _CCCL_HOST_DEVICE tuple_of_iterator_references(const super_t& other) +@@ -138,15 +136,15 @@ public: + + } // namespace detail + +-THRUST_NAMESPACE_END +- +-_LIBCUDACXX_BEGIN_NAMESPACE_STD +- + template + struct __is_tuple_of_iterator_references> +- : integral_constant ++ : _CUDA_VSTD::true_type + {}; + ++THRUST_NAMESPACE_END ++ ++_LIBCUDACXX_BEGIN_NAMESPACE_STD ++ + // define tuple_size, tuple_element, etc. + template + struct tuple_size> +diff --git a/thrust/thrust/optional.h b/thrust/thrust/optional.h +index be186a9d7..3f09e63df 100644 +--- a/thrust/thrust/optional.h ++++ b/thrust/thrust/optional.h +@@ -838,7 +838,7 @@ struct nullopt_t + /// void foo (thrust::optional); + /// foo(thrust::nullopt); //pass an empty optional + /// ``` +-static constexpr nullopt_t nullopt{nullopt_t::do_not_use{}, nullopt_t::do_not_use{}}; ++_LIBCUDACXX_CPO_ACCESSIBILITY nullopt_t nullopt{nullopt_t::do_not_use{}, nullopt_t::do_not_use{}}; + + class bad_optional_access : public std::exception + { +diff --git a/thrust/thrust/pair.h b/thrust/thrust/pair.h +index 4fd2e8f83..a2edc3cfb 100644 +--- a/thrust/thrust/pair.h ++++ b/thrust/thrust/pair.h +@@ -50,7 +50,7 @@ THRUST_NAMESPACE_BEGIN + * \tparam T A \c pair type of interest. + */ + template +-using tuple_element = ::cuda::std::tuple_element; ++using tuple_element = _CUDA_VSTD::tuple_element; + + /*! This convenience metafunction is included for compatibility with + * \p tuple. It returns \c 2, the number of elements of a \p pair, +@@ -59,7 +59,7 @@ using tuple_element = ::cuda::std::tuple_element; + * \tparam Pair A \c pair type of interest. + */ + template +-using tuple_size = ::cuda::std::tuple_size; ++using tuple_size = _CUDA_VSTD::tuple_size; + + /*! \p pair is a generic data structure encapsulating a heterogeneous + * pair of values. +@@ -73,10 +73,36 @@ using tuple_size = ::cuda::std::tuple_size; + * provided by pair::second_type. + */ + template +-using pair = ::cuda::std::pair; +- +-using ::cuda::std::get; +-using ::cuda::std::make_pair; ++struct pair : public _CUDA_VSTD::pair ++{ ++ using super_t = _CUDA_VSTD::pair; ++ using super_t::super_t; ++}; ++ ++#if _CCCL_STD_VER >= 2017 ++template ++_CCCL_HOST_DEVICE pair(_T1, _T2) -> pair<_T1, _T2>; ++#endif // _CCCL_STD_VER >= 2017 ++ ++template ++inline _CCCL_HOST_DEVICE ++ _CUDA_VSTD::__enable_if_t<_CUDA_VSTD::__is_swappable::value && _CUDA_VSTD::__is_swappable::value, void> ++ swap(pair& lhs, pair& rhs) noexcept( ++ (_CUDA_VSTD::__is_nothrow_swappable::value && _CUDA_VSTD::__is_nothrow_swappable::value)) ++{ ++ lhs.swap(rhs); ++} ++ ++template ++inline _CCCL_HOST_DEVICE ++ pair::type, typename _CUDA_VSTD::__unwrap_ref_decay::type> ++ make_pair(T1&& t1, T2&& t2) ++{ ++ return pair::type, typename _CUDA_VSTD::__unwrap_ref_decay::type>( ++ _CUDA_VSTD::forward(t1), _CUDA_VSTD::forward(t2)); ++} ++ ++using _CUDA_VSTD::get; + + /*! \endcond + */ +@@ -88,3 +114,38 @@ using ::cuda::std::make_pair; + */ + + THRUST_NAMESPACE_END ++ ++_LIBCUDACXX_BEGIN_NAMESPACE_STD ++ ++template ++struct tuple_size> : tuple_size> ++{}; ++ ++template ++struct tuple_element> : tuple_element> ++{}; ++ ++template ++struct __tuple_like_ext> : true_type ++{}; ++ ++_LIBCUDACXX_END_NAMESPACE_STD ++ ++// This is a workaround for the fact that structured bindings require that the specializations of ++// `tuple_size` and `tuple_element` reside in namespace std (https://eel.is/c++draft/dcl.struct.bind#4). ++// See https://github.com/NVIDIA/libcudacxx/issues/316 for a short discussion ++#if _CCCL_STD_VER >= 2017 ++ ++# include ++ ++namespace std ++{ ++template ++struct tuple_size> : tuple_size> ++{}; ++ ++template ++struct tuple_element> : tuple_element> ++{}; ++} // namespace std ++#endif // _CCCL_STD_VER >= 2017 +diff --git a/thrust/thrust/system/cuda/detail/copy_if.h b/thrust/thrust/system/cuda/detail/copy_if.h +index b36285b2f..7706a6ac2 100644 +--- a/thrust/thrust/system/cuda/detail/copy_if.h ++++ b/thrust/thrust/system/cuda/detail/copy_if.h +@@ -45,6 +45,7 @@ + # include + # include + ++# include + # include + # include + # include +@@ -95,10 +96,9 @@ struct DispatchCopyIf + size_t& temp_storage_bytes, + InputIt first, + StencilIt stencil, +- OutputIt output, ++ OutputIt& output, + Predicate predicate, +- OffsetT num_items, +- OutputIt& output_end) ++ OffsetT num_items) + { + using num_selected_out_it_t = OffsetT*; + using equality_op_t = cub::NullType; +@@ -147,7 +147,6 @@ struct DispatchCopyIf + // Return for empty problems + if (num_items == 0) + { +- output_end = output; + return status; + } + +@@ -180,8 +179,7 @@ struct DispatchCopyIf + status = cuda_cub::synchronize(policy); + CUDA_CUB_RET_IF_FAIL(status); + OffsetT num_selected = get_value(policy, d_num_selected_out); +- +- output_end = output + num_selected; ++ thrust::advance(output, num_selected); + return status; + } + }; +@@ -197,8 +195,7 @@ THRUST_RUNTIME_FUNCTION OutputIt copy_if( + { + using size_type = typename iterator_traits::difference_type; + +- size_type num_items = static_cast(thrust::distance(first, last)); +- OutputIt output_end{}; ++ size_type num_items = static_cast(thrust::distance(first, last)); + cudaError_t status = cudaSuccess; + size_t temp_storage_bytes = 0; + +@@ -214,7 +211,7 @@ THRUST_RUNTIME_FUNCTION OutputIt copy_if( + dispatch32_t::dispatch, + dispatch64_t::dispatch, + num_items, +- (policy, nullptr, temp_storage_bytes, first, stencil, output, predicate, num_items_fixed, output_end)); ++ (policy, nullptr, temp_storage_bytes, first, stencil, output, predicate, num_items_fixed)); + cuda_cub::throw_on_error(status, "copy_if failed on 1st step"); + + // Allocate temporary storage. +@@ -227,10 +224,10 @@ THRUST_RUNTIME_FUNCTION OutputIt copy_if( + dispatch32_t::dispatch, + dispatch64_t::dispatch, + num_items, +- (policy, temp_storage, temp_storage_bytes, first, stencil, output, predicate, num_items_fixed, output_end)); ++ (policy, temp_storage, temp_storage_bytes, first, stencil, output, predicate, num_items_fixed)); + cuda_cub::throw_on_error(status, "copy_if failed on 2nd step"); + +- return output_end; ++ return output; + } + + } // namespace detail +diff --git a/thrust/thrust/tuple.h b/thrust/thrust/tuple.h +index 5fa1d7f2f..773ffb161 100644 +--- a/thrust/thrust/tuple.h ++++ b/thrust/thrust/tuple.h +@@ -94,28 +94,32 @@ _CCCL_HOST_DEVICE inline bool operator>(const null_type&, const null_type&) + * \tparam N This parameter selects the element of interest. + * \tparam T A \c tuple type of interest. + * +- * \see pair ++ * \see tuple + * \see tuple + */ + template +-using tuple_element = ::cuda::std::tuple_element; ++using tuple_element = _CUDA_VSTD::tuple_element; + + /*! This metafunction returns the number of elements + * of a \p tuple type of interest. + * + * \tparam T A \c tuple type of interest. + * +- * \see pair ++ * \see tuple + * \see tuple + */ + template +-using tuple_size = ::cuda::std::tuple_size; ++using tuple_size = _CUDA_VSTD::tuple_size; ++ ++template ++struct __is_tuple_of_iterator_references : _CUDA_VSTD::false_type ++{}; + + /*! \brief \p tuple is a class template that can be instantiated with up to ten +- * arguments. Each template argument specifies the type of element in the \p ++ * otheruments. Each template otherument specifies the type of element in the \p + * tuple. Consequently, tuples are heterogeneous, fixed-size collections of +- * values. An instantiation of \p tuple with two arguments is similar to an +- * instantiation of \p pair with the same two arguments. Individual elements ++ * values. An instantiation of \p tuple with two otheruments is similar to an ++ * instantiation of \p tuple with the same two otheruments. Individual elements + * of a \p tuple may be accessed with the \p get function. + * + * \tparam TN The type of the N \c tuple element. Thrust's \p tuple +@@ -143,19 +147,72 @@ using tuple_size = ::cuda::std::tuple_size; + * } + * \endcode + * +- * \see pair ++ * \see tuple + * \see get + * \see make_tuple + * \see tuple_element + * \see tuple_size + * \see tie + */ +-template +-using tuple = ::cuda::std::tuple; ++template ++struct tuple : public _CUDA_VSTD::tuple ++{ ++ using super_t = _CUDA_VSTD::tuple; ++ using super_t::super_t; ++ ++ tuple() = default; ++ ++ template ::value, int> = 0, ++ _CUDA_VSTD::__enable_if_t<(tuple_size<_TupleOfIteratorReferences>::value == sizeof...(Ts)), int> = 0> ++ _CCCL_HOST_DEVICE tuple(_TupleOfIteratorReferences&& __t) ++ : tuple(_CUDA_VSTD::forward<_TupleOfIteratorReferences>(__t).template __to_tuple( ++ _CUDA_VSTD::__make_tuple_indices_t())) ++ {} ++ ++ _CCCL_EXEC_CHECK_DISABLE ++ template ::value, int> = 0> ++ _CCCL_HOST_DEVICE tuple& operator=(TupleLike&& other) ++ { ++ super_t::operator=(_CUDA_VSTD::forward(other)); ++ return *this; ++ } ++}; ++ ++#if _CCCL_STD_VER >= 2017 ++template ++_CCCL_HOST_DEVICE tuple(Ts...) -> tuple; ++ ++template ++struct pair; ++ ++template ++_CCCL_HOST_DEVICE tuple(pair) -> tuple; ++#endif // _CCCL_STD_VER >= 2017 ++ ++template ++inline _CCCL_HOST_DEVICE ++ _CUDA_VSTD::__enable_if_t<_CUDA_VSTD::__all<_CUDA_VSTD::__is_swappable::value...>::value, void> ++ swap(tuple& __x, ++ tuple& __y) noexcept((_CUDA_VSTD::__all<_CUDA_VSTD::__is_nothrow_swappable::value...>::value)) ++{ ++ __x.swap(__y); ++} ++ ++template ++inline _CCCL_HOST_DEVICE tuple::type...> make_tuple(Ts&&... __t) ++{ ++ return tuple::type...>(_CUDA_VSTD::forward(__t)...); ++} + +-using ::cuda::std::get; +-using ::cuda::std::make_tuple; +-using ::cuda::std::tie; ++template ++inline _CCCL_HOST_DEVICE tuple tie(Ts&... ts) noexcept ++{ ++ return tuple(ts...); ++} ++ ++using _CUDA_VSTD::get; + + /*! \endcond + */ +@@ -170,6 +227,18 @@ THRUST_NAMESPACE_END + + _LIBCUDACXX_BEGIN_NAMESPACE_STD + ++template ++struct tuple_size> : tuple_size> ++{}; ++ ++template ++struct tuple_element> : tuple_element> ++{}; ++ ++template ++struct __tuple_like_ext> : true_type ++{}; ++ + template <> + struct tuple_size= 2017 ++namespace std ++{ ++template ++struct tuple_size> : tuple_size> ++{}; ++ ++template ++struct tuple_element> : tuple_element> ++{}; ++} // namespace std ++#endif // _CCCL_STD_VER >= 2017 diff --git a/rapids-cmake/cpm/versions.json b/rapids-cmake/cpm/versions.json index 563b1978..2b7866e9 100644 --- a/rapids-cmake/cpm/versions.json +++ b/rapids-cmake/cpm/versions.json @@ -44,6 +44,11 @@ "file" : "cccl/unwrap_nested_tuple_of_iterators.diff", "issue" : "Unwrap nested thrust::tuple_of_iterator_references. [https://github.com/NVIDIA/cccl/pull/1469]", "fixed_in" : "2.4" + }, + { + "file": "cccl/pr_1643.diff", + "issue": "Apply changes from PR 1643 [https://github.com/NVIDIA/cccl/pull/1643]", + "fixed_in": "2.5" } ] },