From 62384193de83d3453c9f1b67ff2304b12937509f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Augonnet?= <158148890+caugonnet@users.noreply.github.com> Date: Wed, 8 Jan 2025 15:16:03 +0100 Subject: [PATCH 01/24] [STF] Corruption of the capture list of an extended lambda with a parallel_for construct on a host execution place (#3270) * Add a test to reproduce a bug observed with parallel_for on a host place * clang-format * use _CCCL_ASSERT * Attempt to debug * do not create a tuple with a universal reference that is out of scope when we use it, use an lvalue instead * fix lambda expression * clang-format --- .../__stf/internal/parallel_for_scope.cuh | 4 +-- cudax/test/stf/CMakeLists.txt | 1 + .../stf/parallel_for/parallel_for_host.cu | 27 +++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 cudax/test/stf/parallel_for/parallel_for_host.cu diff --git a/cudax/include/cuda/experimental/__stf/internal/parallel_for_scope.cuh b/cudax/include/cuda/experimental/__stf/internal/parallel_for_scope.cuh index 21e5ac7fb0f..06f1f7f689b 100644 --- a/cudax/include/cuda/experimental/__stf/internal/parallel_for_scope.cuh +++ b/cudax/include/cuda/experimental/__stf/internal/parallel_for_scope.cuh @@ -916,7 +916,7 @@ public: const size_t n = shape.size(); // Tuple , size_t , fun, shape> - using args_t = ::std::tuple; + using args_t = ::std::tuple; // Create a tuple with all instances (eg. tuple, slice>) deps_tup_t instances = ::std::apply( @@ -940,7 +940,7 @@ public: auto& data = ::std::get<0>(*p); const size_t n = ::std::get<1>(*p); - Fun&& f = mv(::std::get<2>(*p)); + Fun& f = ::std::get<2>(*p); const sub_shape_t& shape = ::std::get<3>(*p); // deps_ops_t are pairs of data instance type, and a reduction operator, diff --git a/cudax/test/stf/CMakeLists.txt b/cudax/test/stf/CMakeLists.txt index 5472de687c2..941b8a3fbe8 100644 --- a/cudax/test/stf/CMakeLists.txt +++ b/cudax/test/stf/CMakeLists.txt @@ -122,6 +122,7 @@ set(stf_test_codegen_sources parallel_for/test2_parallel_for_context.cu parallel_for/test_parallel_for.cu parallel_for/tiled_loops.cu + parallel_for/parallel_for_host.cu places/cuda_stream_place.cu places/managed_from_shape.cu reductions/reduce_sum.cu diff --git a/cudax/test/stf/parallel_for/parallel_for_host.cu b/cudax/test/stf/parallel_for/parallel_for_host.cu new file mode 100644 index 00000000000..5befff67517 --- /dev/null +++ b/cudax/test/stf/parallel_for/parallel_for_host.cu @@ -0,0 +1,27 @@ +//===----------------------------------------------------------------------===// +// +// Part of CUDASTF in CUDA C++ Core Libraries, +// under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// SPDX-FileCopyrightText: Copyright (c) 2022-2024 NVIDIA CORPORATION & AFFILIATES. +// +//===----------------------------------------------------------------------===// + +#include + +using namespace cuda::experimental::stf; + +int main() +{ + context ctx; + + int nqpoints = 3; + auto ltoken = ctx.logical_token(); + + ctx.parallel_for(exec_place::host, box(5), ltoken.read())->*[nqpoints] __host__ __device__(size_t, void_interface) { + _CCCL_ASSERT(nqpoints == 3, "invalid value"); + }; + + ctx.finalize(); +} From 390081ea1b36be73420d11421941968358bdfbd4 Mon Sep 17 00:00:00 2001 From: Bernhard Manfred Gruber Date: Wed, 8 Jan 2025 17:05:37 +0100 Subject: [PATCH 02/24] Enable thrust::identity test for non-MSVC (#3281) This seems to be an oversight when the test was added Co-authored-by: Michael Schellenberger Costa --- thrust/testing/functional.cu | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/thrust/testing/functional.cu b/thrust/testing/functional.cu index 7757ed47bed..750a0f76ace 100644 --- a/thrust/testing/functional.cu +++ b/thrust/testing/functional.cu @@ -212,7 +212,7 @@ THRUST_DISABLE_BROKEN_GCC_VECTORIZER void TestIdentityFunctional() // value categories when casting to different type static_assert(::cuda::std::is_same{}(3.14)), int&&>::value, ""); // unfortunately, old versions of MSVC pick the `const int&` overload instead of `int&&` -#if _CCCL_COMPILER(MSVC, >=, 19, 29) +#if !_CCCL_COMPILER(MSVC, <, 19, 29) static_assert(::cuda::std::is_same{}(d)), int&&>::value, ""); static_assert(::cuda::std::is_same{}(as_const(d))), int&&>::value, ""); #endif From 7ffdaac34dffba95277681ced216ecacc6abf4e3 Mon Sep 17 00:00:00 2001 From: Bernhard Manfred Gruber Date: Wed, 8 Jan 2025 17:40:13 +0100 Subject: [PATCH 03/24] Enable PDL in triple chevron launch (#3282) It seems PDL was disabled by accident when _THRUST_HAS_PDL was renamed to _CCCL_HAS_PDL during the review introducing the feature. --- thrust/thrust/system/cuda/detail/core/triple_chevron_launch.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/thrust/thrust/system/cuda/detail/core/triple_chevron_launch.h b/thrust/thrust/system/cuda/detail/core/triple_chevron_launch.h index 80bbc2bc650..cdff339b91f 100644 --- a/thrust/thrust/system/cuda/detail/core/triple_chevron_launch.h +++ b/thrust/thrust/system/cuda/detail/core/triple_chevron_launch.h @@ -70,7 +70,7 @@ struct _CCCL_VISIBILITY_HIDDEN triple_chevron template cudaError_t _CCCL_HOST doit_host(K k, Args const&... args) const { -#if _THRUST_HAS_PDL +#if _CCCL_HAS_PDL if (dependent_launch) { cudaLaunchAttribute attribute[1]; @@ -87,7 +87,7 @@ struct _CCCL_VISIBILITY_HIDDEN triple_chevron cudaLaunchKernelEx(&config, k, args...); } else -#endif // _THRUST_HAS_PDL +#endif // _CCCL_HAS_PDL { k<<>>(args...); } From 95629882411385c25b60bab69ecca7bb96a382d7 Mon Sep 17 00:00:00 2001 From: Wesley Maxey <71408887+wmaxey@users.noreply.github.com> Date: Wed, 8 Jan 2025 10:35:42 -0800 Subject: [PATCH 04/24] Disambiguate line continuations and macro continuations in (#3244) --- libcudacxx/include/nv/detail/__preprocessor | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/libcudacxx/include/nv/detail/__preprocessor b/libcudacxx/include/nv/detail/__preprocessor index 15fe84eabd7..d6181383095 100644 --- a/libcudacxx/include/nv/detail/__preprocessor +++ b/libcudacxx/include/nv/detail/__preprocessor @@ -89,15 +89,17 @@ # define _NV_TRIGGER_PARENTHESIS_(...) , -# define _NV_ISEMPTY(...) \ - _NV_ISEMPTY0(/* test if there is just one argument, eventually an empty \ - one */ \ - _NV_EVAL(_NV_HAS_COMMA(__VA_ARGS__)), /* test if _TRIGGER_PARENTHESIS_ together with the argument \ - adds a comma */ \ - _NV_EVAL(_NV_HAS_COMMA(_NV_TRIGGER_PARENTHESIS_ __VA_ARGS__)), /* test if the argument together with \ - a parenthesis adds a comma */ \ - _NV_EVAL(_NV_HAS_COMMA(__VA_ARGS__(/*empty*/))), /* test if placing it between _TRIGGER_PARENTHESIS_ \ - and the parenthesis adds a comma */ \ +/* +This tests a variety of conditions for determining what the incoming statement is. +1. test if there is just one argument +2. test if _TRIGGER_PARENTHESIS_ together with the argument adds a comma +3. test if the argument together with a parenthesis adds a comma +4. test if placing it between _TRIGGER_PARENTHESIS_ and the parenthesis adds a comma +*/ +# define _NV_ISEMPTY(...) \ + _NV_ISEMPTY0(_NV_EVAL(_NV_HAS_COMMA(__VA_ARGS__)), \ + _NV_EVAL(_NV_HAS_COMMA(_NV_TRIGGER_PARENTHESIS_ __VA_ARGS__)), \ + _NV_EVAL(_NV_HAS_COMMA(__VA_ARGS__(/*empty*/))), \ _NV_EVAL(_NV_HAS_COMMA(_NV_TRIGGER_PARENTHESIS_ __VA_ARGS__(/*empty*/)))) # define _NV_PASTE5(_0, _1, _2, _3, _4) _0##_1##_2##_3##_4 From 4b9b6a40087d0a9cf75157da39b87b358211b965 Mon Sep 17 00:00:00 2001 From: Bernhard Manfred Gruber Date: Wed, 8 Jan 2025 20:25:34 +0100 Subject: [PATCH 05/24] Drop VS 2017 from CI (#3287) Fixes: #3286 --- ci/matrix.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ci/matrix.yaml b/ci/matrix.yaml index 201fa4229a3..4452f040e54 100644 --- a/ci/matrix.yaml +++ b/ci/matrix.yaml @@ -11,7 +11,7 @@ workflows: pull_request: # Old CTK - - {jobs: ['build'], std: 'minmax', ctk: '11.1', cxx: ['gcc7', 'gcc9', 'clang9', 'msvc2017']} + - {jobs: ['build'], std: 'minmax', ctk: '11.1', cxx: ['gcc7', 'gcc9', 'clang9']} # Current CTK build-only - {jobs: ['build'], std: [11, 14], cxx: ['gcc7', 'clang9']} - {jobs: ['build'], std: 'max', cxx: ['gcc8', 'gcc9', 'gcc10', 'gcc11', 'gcc12']} @@ -65,7 +65,7 @@ workflows: - {jobs: ['test_gpu'], project: 'thrust', cmake_options: '-DTHRUST_DISPATCH_TYPE=Force32bit'} - {jobs: ['test_gpu'], project: 'thrust', cmake_options: '-DTHRUST_DISPATCH_TYPE=Force64bit'} # Old CTK - - {jobs: ['build'], std: 'all', ctk: '11.1', cxx: ['gcc7', 'gcc8', 'gcc9', 'clang9', 'msvc2017']} + - {jobs: ['build'], std: 'all', ctk: '11.1', cxx: ['gcc7', 'gcc8', 'gcc9', 'clang9']} - {jobs: ['build'], std: 'all', ctk: '11.8', cxx: ['gcc11'], sm: '60;70;80;90'} # Current CTK build-only - {jobs: ['build'], std: 'all', cxx: ['gcc7', 'gcc8', 'gcc9', 'gcc10', 'gcc11', 'gcc12']} @@ -115,7 +115,7 @@ workflows: # Any generated jobs that match the entries in `exclude` will be removed from the final matrix for all workflows. exclude: # GPU runners are not available on Windows. - - {jobs: ['test', 'test_gpu', 'test_nolid', 'test_lid0', 'test_lid1', 'test_lid2'], cxx: ['msvc2017', 'msvc2019', 'msvc14.36', 'msvc2022']} + - {jobs: ['test', 'test_gpu', 'test_nolid', 'test_lid0', 'test_lid1', 'test_lid2'], cxx: ['msvc2019', 'msvc14.36', 'msvc2022']} # Ubuntu 18.04 is EOL and we only use it to get access to CTK 11.1 containers for CUDA testing. # Disable non-CUDA tests on this platform. - {jobs: ['test_cpu'], ctk: '11.1'} @@ -178,7 +178,6 @@ host_compilers: container_tag: 'cl' exe: cl versions: - 14.16: { stds: [ 14, ], aka: '2017' } 14.29: { stds: [ 14, 17, ], aka: '2019' } 14.36: { stds: [ 14, 17, 20] } 14.39: { stds: [ 14, 17, 20], aka: '2022' } From b9c21e424101deafb984714ec54f85cff022d4e5 Mon Sep 17 00:00:00 2001 From: Bernhard Manfred Gruber Date: Wed, 8 Jan 2025 21:02:21 +0100 Subject: [PATCH 06/24] Drop ICC support in code (#3279) * Drop ICC from code Fixes: #3278 Co-authored-by: Michael Schellenberger Costa --- CMakePresets.json | 1 - cmake/CCCLBuildCompilerTargets.cmake | 15 ----- cub/cub/detail/fast_modulo_division.cuh | 3 - cub/cub/util_macro.cuh | 6 -- cub/cub/util_type.cuh | 4 +- .../catch2_test_device_for_each_in_extents.cu | 4 +- .../cuda/experimental/__detail/config.cuh | 12 +--- docs/repo.toml | 3 - libcudacxx/cmake/DetermineGCCCompatible.cmake | 2 - libcudacxx/include/cuda/std/__cccl/assert.h | 12 +--- libcudacxx/include/cuda/std/__cccl/compiler.h | 9 ++- .../include/cuda/std/__cccl/diagnostic.h | 29 ++------- libcudacxx/include/cuda/std/__cccl/rtti.h | 9 --- .../include/cuda/std/__cccl/system_header.h | 4 +- .../include/cuda/std/__cccl/visibility.h | 8 +-- .../include/cuda/std/__mdspan/submdspan.h | 64 ++++++++----------- .../cuda/std/detail/libcxx/include/__config | 4 +- .../cuda/std/detail/libcxx/include/climits | 8 +-- .../cuda/std/detail/libcxx/include/cmath | 12 ---- .../test/internal_headers/CMakeLists.txt | 3 - libcudacxx/test/libcudacxx/CMakeLists.txt | 8 --- .../test/libcudacxx/cuda/type_list.pass.cpp | 2 +- .../atomics/libcpp-has-no-threads.fail.cpp | 4 +- ...atomic_flag_test_and_set_explicit.pass.cpp | 4 -- .../atomics.flag/test_and_set.pass.cpp | 4 -- .../sequences/array/iterators.pass.cpp | 16 ++--- .../iterator.cust.move/iter_move.pass.cpp | 12 +--- .../move.iter.nonmember/iter_move.pass.cpp | 4 -- .../move.iter.nonmember/iter_swap.pass.cpp | 12 ++-- .../difference_type.pass.cpp | 2 - .../difference_type.pass.cpp | 4 -- .../reverse.iter.nonmember/iter_move.pass.cpp | 4 -- .../reverse.iter.nonmember/iter_swap.pass.cpp | 6 -- .../std/ranges/range.access/begin.pass.cpp | 4 -- .../std/ranges/range.access/empty.pass.cpp | 2 +- .../std/ranges/range.access/end.pass.cpp | 4 -- .../std/ranges/range.access/rbegin.pass.cpp | 8 --- .../std/ranges/range.access/rend.pass.cpp | 8 --- .../range.subrange/lwg3470.pass.cpp | 1 - .../view.interface/view.interface.pass.cpp | 2 +- .../assign/assign.U.pass.cpp | 2 - .../assign/assign.copy.pass.cpp | 2 - .../assign/assign.move.pass.cpp | 4 -- .../assign/assign.unexpected.copy.pass.cpp | 2 - .../assign/assign.unexpected.move.pass.cpp | 2 - .../assign/emplace.intializer_list.pass.cpp | 4 -- .../expected.expected/assign/emplace.pass.cpp | 2 - .../expected.expected/ctor/ctor.move.pass.cpp | 2 - .../expected.expected/swap/free.swap.pass.cpp | 4 -- .../swap/member.swap.pass.cpp | 4 -- .../swap/swap.free.pass.cpp | 2 - .../swap/swap.member.pass.cpp | 2 - .../expected.void/assign/assign.move.pass.cpp | 2 - .../assign/assign.unexpected.move.pass.cpp | 2 - .../expected.void/ctor/ctor.move.pass.cpp | 2 - .../expected.void/swap/free.swap.pass.cpp | 2 - .../expected.void/swap/member.swap.pass.cpp | 2 - .../func.bind_front/bind_front.pass.cpp | 22 +++---- .../func.not_fn/not_fn.pass.cpp | 6 +- .../make_unique.sizezero.pass.cpp | 1 - .../meta.rel/is_nothrow_invocable.pass.cpp | 8 --- .../is_nothrow_swappable.pass.cpp | 2 - .../is_nothrow_swappable_with.pass.cpp | 4 -- .../is_trivially_copyable_volatile.pass.cpp | 1 - .../optional.object.assign/move.pass.cpp | 2 - .../optional.object.ctor/default.pass.cpp | 2 - .../optional.object.ctor/in_place_t.pass.cpp | 2 - .../optional.object.ctor/move.pass.cpp | 2 - .../optional.object.ctor/nullopt_t.pass.cpp | 2 - .../optional.object.observe/value.pass.cpp | 2 - .../value_const.pass.cpp | 2 - .../value_const_rvalue.pass.cpp | 2 - .../value_rvalue.pass.cpp | 2 - .../optional.object.swap/swap.pass.cpp | 10 --- .../optional.object/special_members.pass.cpp | 2 - .../optional.object/triviality.pass.cpp | 2 - .../optional/optional.specalg/swap.pass.cpp | 10 --- .../bitset.cons/char_ptr_ctor.pass.cpp | 12 ---- .../bitset.cons/default.pass.cpp | 3 - .../bitset.cons/ull_ctor.pass.cpp | 3 - .../bitset.members/count.pass.cpp | 3 - .../bitset.members/flip_all.pass.cpp | 3 - .../bitset.members/left_shift_eq.pass.cpp | 3 - .../bitset.members/not_all.pass.cpp | 3 - .../bitset.members/op_and_eq.pass.cpp | 3 - .../bitset.members/op_or_eq.pass.cpp | 3 - .../bitset.members/op_xor_eq.pass.cpp | 3 - .../bitset.members/reset_all.pass.cpp | 3 - .../bitset.members/right_shift_eq.pass.cpp | 3 - .../bitset.members/set_all.pass.cpp | 3 - .../decrement.pass.cpp | 2 - .../plus_minus_equal.pass.cpp | 2 - .../minus.pass.cpp | 2 - .../utility/exchange/exchange.pass.cpp | 2 - .../variant/variant.get/get_index.pass.cpp | 18 ++---- .../variant/variant.get/get_type.pass.cpp | 18 ++---- .../variant.variant/variant.assign/T.pass.cpp | 2 - .../variant.assign/copy.pass.cpp | 6 +- .../variant.assign/move.pass.cpp | 2 - .../variant.variant/variant.ctor/T.pass.cpp | 2 - .../variant.ctor/default.pass.cpp | 2 - .../variant.ctor/move.pass.cpp | 2 - .../variant.swap/swap.pass.cpp | 6 -- libcudacxx/test/public_headers/CMakeLists.txt | 3 - .../public_headers_host_only/CMakeLists.txt | 3 - libcudacxx/test/support/test_macros.h | 8 +-- libcudacxx/test/utils/libcudacxx/compiler.py | 5 -- .../test/utils/libcudacxx/dumpversion.cpp | 5 -- .../test/utils/libcudacxx/test/config.py | 4 -- thrust/testing/async_copy.cu | 5 -- thrust/testing/scan.cu | 12 ---- thrust/thrust/complex.h | 12 +--- thrust/thrust/detail/config/compiler.h | 3 - thrust/thrust/detail/preprocessor.h | 3 +- thrust/thrust/system/cuda/detail/future.inl | 1 - 115 files changed, 95 insertions(+), 534 deletions(-) diff --git a/CMakePresets.json b/CMakePresets.json index 2519ca09adf..089f9b81798 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -22,7 +22,6 @@ "CCCL_ENABLE_TESTING": false, "CCCL_ENABLE_EXAMPLES": false, "CCCL_ENABLE_C": false, - "CCCL_SUPPRESS_ICC_DEPRECATION_WARNING": true, "CCCL_SUPPRESS_MSVC2017_DEPRECATION_WARNING": true, "libcudacxx_ENABLE_INSTALL_RULES": true, "CUB_ENABLE_INSTALL_RULES": true, diff --git a/cmake/CCCLBuildCompilerTargets.cmake b/cmake/CCCLBuildCompilerTargets.cmake index 906e287e439..98644b69779 100644 --- a/cmake/CCCLBuildCompilerTargets.cmake +++ b/cmake/CCCLBuildCompilerTargets.cmake @@ -23,7 +23,6 @@ set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT Embedded) option(CCCL_ENABLE_EXCEPTIONS "Enable exceptions within CCCL libraries." ON) option(CCCL_ENABLE_RTTI "Enable RTTI within CCCL libraries." ON) option(CCCL_ENABLE_WERROR "Treat warnings as errors for CCCL targets." ON) -option(CCCL_SUPPRESS_ICC_DEPRECATION_WARNING "Suppress Intel Compiler deprecation warnings" OFF) option(CCCL_SUPPRESS_MSVC2017_DEPRECATION_WARNING "Suppress Visual Studio 2017 deprecation warnings" OFF) function(cccl_build_compiler_interface interface_target cuda_compile_options cxx_compile_options compile_defs) @@ -69,10 +68,6 @@ function(cccl_build_compiler_targets) list(APPEND cxx_compile_definitions "CCCL_DISABLE_RTTI") endif() - if (CCCL_SUPPRESS_ICC_DEPRECATION_WARNING) - list(APPEND cxx_compile_definitions "CCCL_SUPPRESS_ICC_DEPRECATION_WARNING") - endif() - if (CCCL_SUPPRESS_MSVC2017_DEPRECATION_WARNING) list(APPEND cxx_compile_definitions "CCCL_SUPPRESS_MSVC2017_DEPRECATION_WARNING") endif() @@ -160,16 +155,6 @@ function(cccl_build_compiler_targets) endif() endif() - if ("Intel" STREQUAL "${CMAKE_CXX_COMPILER_ID}") - # Do not flush denormal floats to zero - append_option_if_available("-no-ftz" cxx_compile_options) - # Disable warning that inlining is inhibited by compiler thresholds. - append_option_if_available("-diag-disable=11074" cxx_compile_options) - append_option_if_available("-diag-disable=11076" cxx_compile_options) - # Disable warning about deprecated classic compiler - append_option_if_available("-diag-disable=10441" cxx_compile_options) - endif() - cccl_build_compiler_interface(cccl.compiler_interface "${cuda_compile_options}" "${cxx_compile_options}" diff --git a/cub/cub/detail/fast_modulo_division.cuh b/cub/cub/detail/fast_modulo_division.cuh index 2ae65400e71..4a5f2048e32 100644 --- a/cub/cub/detail/fast_modulo_division.cuh +++ b/cub/cub/detail/fast_modulo_division.cuh @@ -109,8 +109,6 @@ multiply_extract_higher_bits(T value, R multiplier) { static_assert(supported_integral::value, "unsupported type"); static_assert(supported_integral::value, "unsupported type"); - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) // pointless comparison of unsigned integer with zero _CCCL_IF_CONSTEXPR (_CCCL_TRAIT(::cuda::std::is_signed, T)) { _CCCL_ASSERT(value >= 0, "value must be non-negative"); @@ -119,7 +117,6 @@ multiply_extract_higher_bits(T value, R multiplier) { _CCCL_ASSERT(multiplier >= 0, "multiplier must be non-negative"); } - _CCCL_DIAG_POP static constexpr int NumBits = sizeof(DivisorType) * CHAR_BIT; using unsigned_t = unsigned_implicit_prom_t; using larger_t = larger_unsigned_type_t; diff --git a/cub/cub/util_macro.cuh b/cub/cub/util_macro.cuh index ae42e5fe875..c58d90682e1 100644 --- a/cub/cub/util_macro.cuh +++ b/cub/cub/util_macro.cuh @@ -112,12 +112,6 @@ _CCCL_DIAG_SUPPRESS_CLANG("-Wattributes") # if !_CCCL_CUDA_COMPILER(NVHPC) _CCCL_DIAG_SUPPRESS_NVHPC(attribute_requires_external_linkage) # endif // !_CCCL_CUDA_COMPILER(NVHPC) -# if _CCCL_COMPILER(ICC) -# pragma nv_diag_suppress 1407 // the "__visibility__" attribute can only appear on functions and - // variables with external linkage' -# pragma warning(disable : 1890) // the "__visibility__" attribute can only appear on functions and - // variables with external linkage' -# endif // _CCCL_COMPILER(ICC) #endif // !CUB_DISABLE_KERNEL_VISIBILITY_WARNING_SUPPRESSION #ifndef CUB_DEFINE_KERNEL_GETTER diff --git a/cub/cub/util_type.cuh b/cub/cub/util_type.cuh index c6be2a5209f..4d1db99a821 100644 --- a/cub/cub/util_type.cuh +++ b/cub/cub/util_type.cuh @@ -82,9 +82,9 @@ CUB_NAMESPACE_BEGIN # endif // !defined(__CUDACC_RTC_INT128__) # else // !defined(__CUDACC_RTC__) # if _CCCL_CUDACC_AT_LEAST(11, 5) -# if _CCCL_COMPILER(GCC) || _CCCL_COMPILER(CLANG) || _CCCL_COMPILER(ICC) || _CCCL_COMPILER(NVHPC) +# if _CCCL_COMPILER(GCC) || _CCCL_COMPILER(CLANG) || _CCCL_COMPILER(NVHPC) # define CUB_IS_INT128_ENABLED 1 -# endif // GCC || CLANG || ICC || NVHPC +# endif // GCC || CLANG || NVHPC # endif // _CCCL_CUDACC_AT_LEAST(11, 5) # endif // !defined(__CUDACC_RTC__) #endif // !defined(CUB_IS_INT128_ENABLED) diff --git a/cub/test/catch2_test_device_for_each_in_extents.cu b/cub/test/catch2_test_device_for_each_in_extents.cu index 6f11810101c..8ad75a1d0cb 100644 --- a/cub/test/catch2_test_device_for_each_in_extents.cu +++ b/cub/test/catch2_test_device_for_each_in_extents.cu @@ -55,7 +55,7 @@ static auto fill_linear_impl(c2h::host_vector& vector, const ExtentType&, siz _CCCL_TRAILING_REQUIRES(void)((Rank == ExtentType::rank())) { vector[pos++] = {indices...}; - return void(); // Intel and nvc++ require a return statement + return void(); // nvc++ requires a return statement } template @@ -67,7 +67,7 @@ static auto fill_linear_impl(c2h::host_vector& vector, const ExtentType& ext, { fill_linear_impl(vector, ext, pos, indices..., i); } - return void(); // Intel and nvc++ require a return statement + return void(); // nvc++ requires a return statement } template diff --git a/cudax/include/cuda/experimental/__detail/config.cuh b/cudax/include/cuda/experimental/__detail/config.cuh index 632e689f564..2ac25eb0a3b 100644 --- a/cudax/include/cuda/experimental/__detail/config.cuh +++ b/cudax/include/cuda/experimental/__detail/config.cuh @@ -35,15 +35,9 @@ // two attributes: // - `_CUDAX_API` declares the function host/device and hides the symbol from the ABI // - `_CUDAX_TRIVIAL_API` does the same while also forcing inlining and hiding the function from debuggers -#if _CCCL_COMPILER(ICC) // ICC has issues with visibility attributes on symbols with internal linkage -# define _CUDAX_API _CCCL_HOST_DEVICE -# define _CUDAX_HOST_API _CCCL_HOST -# define _CUDAX_DEVICE_API _CCCL_DEVICE -#else // ^^^ _CCCL_COMPILER(ICC) ^^^ / vvv !_CCCL_COMPILER(ICC) vvv -# define _CUDAX_API _CCCL_HOST_DEVICE _CCCL_VISIBILITY_HIDDEN _CCCL_EXCLUDE_FROM_EXPLICIT_INSTANTIATION -# define _CUDAX_HOST_API _CCCL_HOST _CCCL_VISIBILITY_HIDDEN _CCCL_EXCLUDE_FROM_EXPLICIT_INSTANTIATION -# define _CUDAX_DEVICE_API _CCCL_DEVICE _CCCL_VISIBILITY_HIDDEN _CCCL_EXCLUDE_FROM_EXPLICIT_INSTANTIATION -#endif // !_CCCL_COMPILER(ICC) +#define _CUDAX_API _CCCL_HOST_DEVICE _CCCL_VISIBILITY_HIDDEN _CCCL_EXCLUDE_FROM_EXPLICIT_INSTANTIATION +#define _CUDAX_HOST_API _CCCL_HOST _CCCL_VISIBILITY_HIDDEN _CCCL_EXCLUDE_FROM_EXPLICIT_INSTANTIATION +#define _CUDAX_DEVICE_API _CCCL_DEVICE _CCCL_VISIBILITY_HIDDEN _CCCL_EXCLUDE_FROM_EXPLICIT_INSTANTIATION // _CUDAX_TRIVIAL_API force-inlines a function, marks its visibility as hidden, and causes debuggers to skip it. // This is useful for trivial internal functions that do dispatching or other plumbing work. It is particularly diff --git a/docs/repo.toml b/docs/repo.toml index 87655b3c65d..f7a1198d766 100644 --- a/docs/repo.toml +++ b/docs/repo.toml @@ -157,7 +157,6 @@ doxygen_predefined = [ "_CCCL_DIAG_POP=", "_CCCL_DIAG_SUPPRESS_CLANG(x)=", "_CCCL_DIAG_SUPPRESS_GCC(x)=", - "_CCCL_DIAG_SUPPRESS_ICC(x)=", "_CCCL_DIAG_SUPPRESS_MSVC(x)=", "_CCCL_DIAG_SUPPRESS_NVHPC(x)=", "_CCCL_DOXYGEN_INVOKED", @@ -270,7 +269,6 @@ doxygen_predefined = [ "_CCCL_DIAG_POP=", "_CCCL_DIAG_SUPPRESS_CLANG(x)=", "_CCCL_DIAG_SUPPRESS_GCC(x)=", - "_CCCL_DIAG_SUPPRESS_ICC(x)=", "_CCCL_DIAG_SUPPRESS_MSVC(x)=", "_CCCL_DIAG_SUPPRESS_NVHPC(x)=", "CUDASTF_HOST=", @@ -435,7 +433,6 @@ doxygen_predefined = [ "_CCCL_DIAG_POP=", "_CCCL_DIAG_SUPPRESS_CLANG(x)=", "_CCCL_DIAG_SUPPRESS_GCC(x)=", - "_CCCL_DIAG_SUPPRESS_ICC(x)=", "_CCCL_DIAG_SUPPRESS_MSVC(x)=", "_CCCL_DIAG_SUPPRESS_NVHPC(x)=", "_CCCL_REQUIRES(x)= ::cuda::std::enable_if_t = 0>", diff --git a/libcudacxx/cmake/DetermineGCCCompatible.cmake b/libcudacxx/cmake/DetermineGCCCompatible.cmake index 1369ebe9d0e..1bf15fcba72 100644 --- a/libcudacxx/cmake/DetermineGCCCompatible.cmake +++ b/libcudacxx/cmake/DetermineGCCCompatible.cmake @@ -7,7 +7,5 @@ if(NOT DEFINED LLVM_COMPILER_IS_GCC_COMPATIBLE) set(LLVM_COMPILER_IS_GCC_COMPATIBLE OFF) elseif( "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" ) set(LLVM_COMPILER_IS_GCC_COMPATIBLE ON) - elseif( "${CMAKE_CXX_COMPILER_ID}" MATCHES "Intel" ) - set(LLVM_COMPILER_IS_GCC_COMPATIBLE ON) endif() endif() diff --git a/libcudacxx/include/cuda/std/__cccl/assert.h b/libcudacxx/include/cuda/std/__cccl/assert.h index 35b4fb6d2f7..5ef9314f310 100644 --- a/libcudacxx/include/cuda/std/__cccl/assert.h +++ b/libcudacxx/include/cuda/std/__cccl/assert.h @@ -79,15 +79,9 @@ _CCCL_HOST_DEVICE __attribute__((__noreturn__)); } # endif // NDEBUG -// ICC cannot deal with `__builtin_expect` in the constexpr evaluator, so just drop it -# if _CCCL_COMPILER(ICC) -# define _CCCL_ASSERT_IMPL_HOST(expression, message) \ - static_cast(expression) ? (void) 0 : __assert_fail(message, __FILE__, __LINE__, __func__); -# else // ^^^ _CCCL_COMPILER(ICC) ^^^ / vvv !_CCCL_COMPILER(ICC) vvv -# define _CCCL_ASSERT_IMPL_HOST(expression, message) \ - _CCCL_BUILTIN_EXPECT(static_cast(expression), 1) \ - ? (void) 0 : __assert_fail(message, __FILE__, __LINE__, __func__) -# endif // !_CCCL_COMPILER(ICC) +# define _CCCL_ASSERT_IMPL_HOST(expression, message) \ + _CCCL_BUILTIN_EXPECT(static_cast(expression), 1) \ + ? (void) 0 : __assert_fail(message, __FILE__, __LINE__, __func__) #endif // !MSVC STL //! Use custom implementations with nvcc on device and the host ones with clang-cuda and nvhpc diff --git a/libcudacxx/include/cuda/std/__cccl/compiler.h b/libcudacxx/include/cuda/std/__cccl/compiler.h index ed0ab5af3ac..166450fd84e 100644 --- a/libcudacxx/include/cuda/std/__cccl/compiler.h +++ b/libcudacxx/include/cuda/std/__cccl/compiler.h @@ -42,11 +42,10 @@ // Determine the host compiler and its version #if defined(__INTEL_COMPILER) -# define _CCCL_COMPILER_ICC 1 -# ifndef CCCL_SUPPRESS_ICC_DEPRECATION_WARNING +# ifndef CCCL_IGNORE_DEPRECATED_COMPILER # warning \ - "Support for the Intel C++ Compiler Classic is deprecated and will eventually be removed. Define CCCL_SUPPRESS_ICC_DEPRECATION_WARNING to suppress this warning" -# endif // CCCL_SUPPRESS_ICC_DEPRECATION_WARNING + "The Intel C++ Compiler Classic (icc/icpc) is not supported by CCCL. Define CCCL_IGNORE_DEPRECATED_COMPILER to suppress this message." +# endif // !CCCL_IGNORE_DEPRECATED_COMPILER #elif defined(__NVCOMPILER) # define _CCCL_COMPILER_NVHPC _CCCL_COMPILER_MAKE_VERSION(__NVCOMPILER_MAJOR__, __NVCOMPILER_MINOR__) #elif defined(__clang__) @@ -59,7 +58,7 @@ # if _CCCL_COMPILER_MSVC2017 && !defined(CCCL_SUPPRESS_MSVC2017_DEPRECATION_WARNING) # pragma message( \ "Support for the Visual Studio 2017 (MSC_VER < 1920) is deprecated and will eventually be removed. Define CCCL_SUPPRESS_MSVC2017_DEPRECATION_WARNING to suppress this warning") -# endif // CCCL_SUPPRESS_ICC_DEPRECATION_WARNING +# endif # define _CCCL_COMPILER_MSVC2019 \ (_CCCL_COMPILER_MSVC >= _CCCL_COMPILER_MAKE_VERSION(19, 20) \ && _CCCL_COMPILER_MSVC < _CCCL_COMPILER_MAKE_VERSION(19, 30)) diff --git a/libcudacxx/include/cuda/std/__cccl/diagnostic.h b/libcudacxx/include/cuda/std/__cccl/diagnostic.h index f1c1ec8c0fb..acb9064493c 100644 --- a/libcudacxx/include/cuda/std/__cccl/diagnostic.h +++ b/libcudacxx/include/cuda/std/__cccl/diagnostic.h @@ -30,7 +30,6 @@ # define _CCCL_DIAG_SUPPRESS_GCC(str) # define _CCCL_DIAG_SUPPRESS_NVHPC(str) # define _CCCL_DIAG_SUPPRESS_MSVC(str) -# define _CCCL_DIAG_SUPPRESS_ICC(str) #elif _CCCL_COMPILER(GCC) # define _CCCL_DIAG_PUSH _CCCL_PRAGMA(GCC diagnostic push) # define _CCCL_DIAG_POP _CCCL_PRAGMA(GCC diagnostic pop) @@ -38,15 +37,6 @@ # define _CCCL_DIAG_SUPPRESS_GCC(str) _CCCL_PRAGMA(GCC diagnostic ignored str) # define _CCCL_DIAG_SUPPRESS_NVHPC(str) # define _CCCL_DIAG_SUPPRESS_MSVC(str) -# define _CCCL_DIAG_SUPPRESS_ICC(str) -#elif _CCCL_COMPILER(ICC) -# define _CCCL_DIAG_PUSH _CCCL_PRAGMA(GCC diagnostic push) -# define _CCCL_DIAG_POP _CCCL_PRAGMA(GCC diagnostic pop) -# define _CCCL_DIAG_SUPPRESS_CLANG(str) -# define _CCCL_DIAG_SUPPRESS_GCC(str) _CCCL_PRAGMA(GCC diagnostic ignored str) -# define _CCCL_DIAG_SUPPRESS_NVHPC(str) -# define _CCCL_DIAG_SUPPRESS_MSVC(str) -# define _CCCL_DIAG_SUPPRESS_ICC(str) _CCCL_PRAGMA(warning disable str) #elif _CCCL_COMPILER(NVHPC) # define _CCCL_DIAG_PUSH _CCCL_PRAGMA(diagnostic push) # define _CCCL_DIAG_POP _CCCL_PRAGMA(diagnostic pop) @@ -54,7 +44,6 @@ # define _CCCL_DIAG_SUPPRESS_GCC(str) # define _CCCL_DIAG_SUPPRESS_NVHPC(str) _CCCL_PRAGMA(diag_suppress str) # define _CCCL_DIAG_SUPPRESS_MSVC(str) -# define _CCCL_DIAG_SUPPRESS_ICC(str) #elif _CCCL_COMPILER(MSVC) # define _CCCL_DIAG_PUSH _CCCL_PRAGMA(warning(push)) # define _CCCL_DIAG_POP _CCCL_PRAGMA(warning(pop)) @@ -62,7 +51,6 @@ # define _CCCL_DIAG_SUPPRESS_GCC(str) # define _CCCL_DIAG_SUPPRESS_NVHPC(str) # define _CCCL_DIAG_SUPPRESS_MSVC(str) _CCCL_PRAGMA(warning(disable : str)) -# define _CCCL_DIAG_SUPPRESS_ICC(str) #else # define _CCCL_DIAG_PUSH # define _CCCL_DIAG_POP @@ -70,7 +58,6 @@ # define _CCCL_DIAG_SUPPRESS_GCC(str) # define _CCCL_DIAG_SUPPRESS_NVHPC(str) # define _CCCL_DIAG_SUPPRESS_MSVC(str) -# define _CCCL_DIAG_SUPPRESS_ICC(str) #endif // Convenient shortcuts to silence common warnings @@ -80,12 +67,6 @@ _CCCL_DIAG_SUPPRESS_CLANG("-Wdeprecated") \ _CCCL_DIAG_SUPPRESS_CLANG("-Wdeprecated-declarations") # define _CCCL_SUPPRESS_DEPRECATED_POP _CCCL_DIAG_POP -#elif _CCCL_COMPILER(ICC) -# define _CCCL_SUPPRESS_DEPRECATED_PUSH \ - _CCCL_DIAG_PUSH \ - _CCCL_DIAG_SUPPRESS_ICC(1478) \ - _CCCL_DIAG_SUPPRESS_ICC(1786) -# define _CCCL_SUPPRESS_DEPRECATED_POP _CCCL_DIAG_POP #elif _CCCL_COMPILER(GCC) # define _CCCL_SUPPRESS_DEPRECATED_PUSH \ _CCCL_DIAG_PUSH \ @@ -103,23 +84,21 @@ _CCCL_DIAG_PUSH \ _CCCL_DIAG_SUPPRESS_MSVC(4996) # define _CCCL_SUPPRESS_DEPRECATED_POP _CCCL_DIAG_POP -#else // !_CCCL_COMPILER(CLANG) && !_CCCL_COMPILER(ICC) && && !_CCCL_COMPILER(GCC) && !_CCCL_COMPILER(NVHPC) && - // !_CCCL_COMPILER(MSVC) +#else // !_CCCL_COMPILER(CLANG) && !_CCCL_COMPILER(GCC) && !_CCCL_COMPILER(NVHPC) && !_CCCL_COMPILER(MSVC) # define _CCCL_SUPPRESS_DEPRECATED_PUSH # define _CCCL_SUPPRESS_DEPRECATED_POP -#endif // !_CCCL_COMPILER(CLANG) && !_CCCL_COMPILER(ICC) && && !_CCCL_COMPILER(GCC) && !_CCCL_COMPILER(NVHPC) && - // !_CCCL_COMPILER(MSVC) +#endif // !_CCCL_COMPILER(CLANG) && !_CCCL_COMPILER(GCC) && !_CCCL_COMPILER(NVHPC) && !_CCCL_COMPILER(MSVC) // Enable us to selectively silence cuda compiler warnings #if _CCCL_HAS_CUDA_COMPILER # if _CCCL_CUDA_COMPILER(CLANG) # define _CCCL_NV_DIAG_SUPPRESS(_WARNING) # define _CCCL_NV_DIAG_DEFAULT(_WARNING) -# elif defined(__NVCC_DIAG_PRAGMA_SUPPORT__) || _CCCL_COMPILER(ICC) +# elif defined(__NVCC_DIAG_PRAGMA_SUPPORT__) # if _CCCL_COMPILER(MSVC) # define _CCCL_NV_DIAG_SUPPRESS(_WARNING) _CCCL_PRAGMA(nv_diag_suppress _WARNING) # define _CCCL_NV_DIAG_DEFAULT(_WARNING) _CCCL_PRAGMA(nv_diag_default _WARNING) -# else // ^^^ _CCCL_COMPILER_{MSVC,ICC}^^^ / vvv !_CCCL_COMPILER_{MSVC,ICC} vvv +# else // ^^^ _CCCL_COMPILER_{MSVC}^^^ / vvv !_CCCL_COMPILER_{MSVC} vvv # define _CCCL_NV_DIAG_SUPPRESS(_WARNING) _CCCL_PRAGMA(nv_diagnostic push) _CCCL_PRAGMA(nv_diag_suppress _WARNING) # define _CCCL_NV_DIAG_DEFAULT(_WARNING) _CCCL_PRAGMA(nv_diagnostic pop) # endif // !_CCCL_COMPILER(MSVC) diff --git a/libcudacxx/include/cuda/std/__cccl/rtti.h b/libcudacxx/include/cuda/std/__cccl/rtti.h index 174b6313d87..14ce5dc5c6f 100644 --- a/libcudacxx/include/cuda/std/__cccl/rtti.h +++ b/libcudacxx/include/cuda/std/__cccl/rtti.h @@ -32,10 +32,6 @@ # define _CCCL_NO_RTTI # elif defined(__CUDA_ARCH__) # define _CCCL_NO_RTTI // No RTTI in CUDA device code -# elif _CCCL_COMPILER(ICC) -# if __RTTI == 0 && __INTEL_RTTI__ == 0 && __GXX_RTTI == 0 && _CPPRTTI == 0 -# define _CCCL_NO_RTTI -# endif # elif _CCCL_COMPILER(NVRTC) # define _CCCL_NO_RTTI # elif _CCCL_COMPILER(MSVC) @@ -58,11 +54,6 @@ # define _CCCL_NO_TYPEID # elif defined(__CUDA_ARCH__) # define _CCCL_NO_TYPEID // No typeid in CUDA device code -# elif _CCCL_COMPILER(ICC) -// when emulating MSVC, typeid is available even when RTTI is disabled -# if !defined(_MSC_VER) && __RTTI == 0 && __INTEL_RTTI__ == 0 && __GXX_RTTI == 0 && _CPPRTTI == 0 -# define _CCCL_NO_TYPEID -# endif # elif _CCCL_COMPILER(NVRTC) # define _CCCL_NO_TYPEID # elif _CCCL_COMPILER(MSVC) diff --git a/libcudacxx/include/cuda/std/__cccl/system_header.h b/libcudacxx/include/cuda/std/__cccl/system_header.h index d557dc88682..3d2d1ac6a78 100644 --- a/libcudacxx/include/cuda/std/__cccl/system_header.h +++ b/libcudacxx/include/cuda/std/__cccl/system_header.h @@ -15,7 +15,7 @@ #include // IWYU pragma: export // Enforce that cccl headers are treated as system headers -#if _CCCL_COMPILER(GCC) || _CCCL_COMPILER(NVHPC) || _CCCL_COMPILER(ICC) +#if _CCCL_COMPILER(GCC) || _CCCL_COMPILER(NVHPC) # define _CCCL_FORCE_SYSTEM_HEADER_GCC #elif _CCCL_COMPILER(CLANG) # define _CCCL_FORCE_SYSTEM_HEADER_CLANG @@ -26,7 +26,7 @@ // Potentially enable that cccl headers are treated as system headers #if !defined(_CCCL_NO_SYSTEM_HEADER) && !(_CCCL_COMPILER(MSVC) && defined(_LIBCUDACXX_DISABLE_PRAGMA_MSVC_WARNING)) \ && !_CCCL_COMPILER(NVRTC) && !defined(_LIBCUDACXX_DISABLE_PRAGMA_GCC_SYSTEM_HEADER) -# if _CCCL_COMPILER(GCC) || _CCCL_COMPILER(NVHPC) || _CCCL_COMPILER(ICC) +# if _CCCL_COMPILER(GCC) || _CCCL_COMPILER(NVHPC) # define _CCCL_IMPLICIT_SYSTEM_HEADER_GCC # elif _CCCL_COMPILER(CLANG) # define _CCCL_IMPLICIT_SYSTEM_HEADER_CLANG diff --git a/libcudacxx/include/cuda/std/__cccl/visibility.h b/libcudacxx/include/cuda/std/__cccl/visibility.h index af3eb9ec6ef..e994b7f1c2e 100644 --- a/libcudacxx/include/cuda/std/__cccl/visibility.h +++ b/libcudacxx/include/cuda/std/__cccl/visibility.h @@ -72,13 +72,11 @@ # define _CCCL_EXCLUDE_FROM_EXPLICIT_INSTANTIATION #endif // !exclude_from_explicit_instantiation -#if _CCCL_COMPILER(ICC) // ICC has issues with visibility attributes on symbols with internal linkage +#if _CCCL_COMPILER(NVHPC) // NVHPC has issues with visibility attributes on symbols with internal linkage # define _CCCL_HIDE_FROM_ABI inline -#elif _CCCL_COMPILER(NVHPC) // NVHPC has issues with visibility attributes on symbols with internal linkage -# define _CCCL_HIDE_FROM_ABI inline -#else // ^^^ _CCCL_COMPILER(ICC) ^^^ / vvv !_CCCL_COMPILER(ICC) vvv +#else // ^^^ _CCCL_COMPILER(NVHPC) ^^^ / vvv !_CCCL_COMPILER(NVHPC) vvv # define _CCCL_HIDE_FROM_ABI _CCCL_VISIBILITY_HIDDEN _CCCL_EXCLUDE_FROM_EXPLICIT_INSTANTIATION inline -#endif // !_CCCL_COMPILER(ICC) +#endif // !_CCCL_COMPILER(NVHPC) //! Defined here to suppress any warnings from the definition #define _LIBCUDACXX_HIDE_FROM_ABI _CCCL_HIDE_FROM_ABI _CCCL_HOST_DEVICE diff --git a/libcudacxx/include/cuda/std/__mdspan/submdspan.h b/libcudacxx/include/cuda/std/__mdspan/submdspan.h index aac6f43c85d..74bf1f79943 100644 --- a/libcudacxx/include/cuda/std/__mdspan/submdspan.h +++ b/libcudacxx/include/cuda/std/__mdspan/submdspan.h @@ -287,12 +287,11 @@ struct __assign_op_slice_handler< __MDSPAN_FORCE_INLINE_FUNCTION // NOLINT (misc-unconventional-assign-operator) constexpr auto operator=(__slice_wrap<_OldStaticExtent, _OldStaticStride, size_t>&& __slice) noexcept - -> __assign_op_slice_handler< - _IndexT, - typename _PreserveLayoutAnalysis::encounter_scalar, - __partially_static_sizes<_IndexT, size_t, _Offsets..., dynamic_extent>, - __partially_static_sizes<_IndexT, size_t, _Exts...>, - __partially_static_sizes<_IndexT, size_t, _Strides...> /* intentional space here to work around ICC bug*/> + -> __assign_op_slice_handler<_IndexT, + typename _PreserveLayoutAnalysis::encounter_scalar, + __partially_static_sizes<_IndexT, size_t, _Offsets..., dynamic_extent>, + __partially_static_sizes<_IndexT, size_t, _Exts...>, + __partially_static_sizes<_IndexT, size_t, _Strides...>> { return {__partially_static_sizes<_IndexT, size_t, _Offsets..., dynamic_extent>( __construct_psa_from_all_exts_values_tag, __offsets.template __get_n<_OffsetIdxs>()..., __slice.slice), @@ -307,12 +306,11 @@ struct __assign_op_slice_handler< __MDSPAN_FORCE_INLINE_FUNCTION // NOLINT (misc-unconventional-assign-operator) constexpr auto operator=(__slice_wrap<_OldStaticExtent, _OldStaticStride, integral_constant<_IntegerType, _Value0>>&&) noexcept - -> __assign_op_slice_handler< - _IndexT, - typename _PreserveLayoutAnalysis::encounter_scalar, - __partially_static_sizes<_IndexT, size_t, _Offsets..., _Value0>, - __partially_static_sizes<_IndexT, size_t, _Exts...>, - __partially_static_sizes<_IndexT, size_t, _Strides...> /* intentional space here to work around ICC bug*/> + -> __assign_op_slice_handler<_IndexT, + typename _PreserveLayoutAnalysis::encounter_scalar, + __partially_static_sizes<_IndexT, size_t, _Offsets..., _Value0>, + __partially_static_sizes<_IndexT, size_t, _Exts...>, + __partially_static_sizes<_IndexT, size_t, _Strides...>> { # if __MDSPAN_HAS_CXX_17 if constexpr (_CUDA_VSTD::is_signed_v<_IntegerType>) @@ -331,15 +329,11 @@ struct __assign_op_slice_handler< __MDSPAN_FORCE_INLINE_FUNCTION // NOLINT (misc-unconventional-assign-operator) constexpr auto operator=(__slice_wrap<_OldStaticExtent, _OldStaticStride, full_extent_t>&& __slice) noexcept - -> __assign_op_slice_handler< - _IndexT, - typename _PreserveLayoutAnalysis::encounter_all, - __partially_static_sizes<_IndexT, size_t, _Offsets..., 0>, - __partially_static_sizes<_IndexT, size_t, _Exts..., _OldStaticExtent>, - __partially_static_sizes<_IndexT, - size_t, - _Strides..., - _OldStaticStride> /* intentional space here to work around ICC bug*/> + -> __assign_op_slice_handler<_IndexT, + typename _PreserveLayoutAnalysis::encounter_all, + __partially_static_sizes<_IndexT, size_t, _Offsets..., 0>, + __partially_static_sizes<_IndexT, size_t, _Exts..., _OldStaticExtent>, + __partially_static_sizes<_IndexT, size_t, _Strides..., _OldStaticStride>> { return { __partially_static_sizes<_IndexT, size_t, _Offsets..., 0>( @@ -355,15 +349,11 @@ struct __assign_op_slice_handler< __MDSPAN_FORCE_INLINE_FUNCTION // NOLINT (misc-unconventional-assign-operator) constexpr auto operator=(__slice_wrap<_OldStaticExtent, _OldStaticStride, tuple>&& __slice) noexcept - -> __assign_op_slice_handler< - _IndexT, - typename _PreserveLayoutAnalysis::encounter_pair, - __partially_static_sizes<_IndexT, size_t, _Offsets..., dynamic_extent>, - __partially_static_sizes<_IndexT, size_t, _Exts..., dynamic_extent>, - __partially_static_sizes<_IndexT, - size_t, - _Strides..., - _OldStaticStride> /* intentional space here to work around ICC bug*/> + -> __assign_op_slice_handler<_IndexT, + typename _PreserveLayoutAnalysis::encounter_pair, + __partially_static_sizes<_IndexT, size_t, _Offsets..., dynamic_extent>, + __partially_static_sizes<_IndexT, size_t, _Exts..., dynamic_extent>, + __partially_static_sizes<_IndexT, size_t, _Strides..., _OldStaticStride>> { return { __partially_static_sizes<_IndexT, size_t, _Offsets..., dynamic_extent>( @@ -393,15 +383,11 @@ struct __assign_op_slice_handler< _OldStaticStride, tuple, integral_constant<_IntegerType1, _Value1>>>&& __slice) noexcept - -> __assign_op_slice_handler< - _IndexT, - typename _PreserveLayoutAnalysis::encounter_pair, - __partially_static_sizes<_IndexT, size_t, _Offsets..., size_t(_Value0)>, - __partially_static_sizes<_IndexT, size_t, _Exts..., size_t(_Value1 - _Value0)>, - __partially_static_sizes<_IndexT, - size_t, - _Strides..., - _OldStaticStride> /* intentional space here to work around ICC bug*/> + -> __assign_op_slice_handler<_IndexT, + typename _PreserveLayoutAnalysis::encounter_pair, + __partially_static_sizes<_IndexT, size_t, _Offsets..., size_t(_Value0)>, + __partially_static_sizes<_IndexT, size_t, _Exts..., size_t(_Value1 - _Value0)>, + __partially_static_sizes<_IndexT, size_t, _Strides..., _OldStaticStride>> { static_assert(_Value1 >= _Value0, "Invalid slice specifier"); return { diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/__config b/libcudacxx/include/cuda/std/detail/libcxx/include/__config index 91569efb6ae..1706bd2937c 100644 --- a/libcudacxx/include/cuda/std/detail/libcxx/include/__config +++ b/libcudacxx/include/cuda/std/detail/libcxx/include/__config @@ -258,9 +258,7 @@ typedef unsigned int char32_t; // TODO: Support C11 Atomics? // #if _CCCL_HAS_FEATURE(cxx_atomic) || __has_extension(c_atomic) || _CCCL_HAS_KEYWORD(_Atomic) // # define _LIBCUDACXX_HAS_C_ATOMIC_IMP -# if _CCCL_COMPILER(ICC) -# define _LIBCUDACXX_HAS_GCC_ATOMIC_IMP -# elif _CCCL_COMPILER(CLANG) +# if _CCCL_COMPILER(CLANG) # define _LIBCUDACXX_HAS_GCC_ATOMIC_IMP # elif _CCCL_COMPILER(GCC) # define _LIBCUDACXX_HAS_GCC_ATOMIC_IMP diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/climits b/libcudacxx/include/cuda/std/detail/libcxx/include/climits index 985ce4b718c..a80cd27db50 100644 --- a/libcudacxx/include/cuda/std/detail/libcxx/include/climits +++ b/libcudacxx/include/cuda/std/detail/libcxx/include/climits @@ -55,13 +55,9 @@ _CCCL_PUSH_MACROS # include #endif // _CCCL_COMPILER(MSVC) -// ICC defines __CHAR_BIT__ by default -// accept that, but assert it is what we expect -#ifdef __CHAR_BIT__ -static_assert(__CHAR_BIT__ == 8, ""); -#else +#ifndef __CHAR_BIT__ # define __CHAR_BIT__ 8 -#endif +#endif // !__CHAR_BIT__ _CCCL_POP_MACROS diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/cmath b/libcudacxx/include/cuda/std/detail/libcxx/include/cmath index a258dc31710..a3ef375cb10 100644 --- a/libcudacxx/include/cuda/std/detail/libcxx/include/cmath +++ b/libcudacxx/include/cuda/std/detail/libcxx/include/cmath @@ -654,11 +654,7 @@ _LIBCUDACXX_HIDE_FROM_ABI _A1 __constexpr_fmax(_A1 __x, _A1 __y) noexcept _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX14_COMPLEX float __constexpr_fmax(float __x, float __y) noexcept { # if defined(_CCCL_BUILTIN_IS_CONSTANT_EVALUATED) && !defined(_LIBCUDACXX_HAS_NO_CONSTEXPR_COMPLEX_OPERATIONS) -# if _CCCL_COMPILER(ICC) && _NV_ISEMPTY(_CCCL_CONSTEXPR_CXX14_COMPLEX) - if (false) -# else // _CCCL_COMPILER(ICC) && _NV_ISEMPTY(_CCCL_CONSTEXPR_CXX14_COMPLEX) if (_CCCL_BUILTIN_IS_CONSTANT_EVALUATED()) -# endif // _CCCL_COMPILER(ICC) && _NV_ISEMPTY(_CCCL_CONSTEXPR_CXX14_COMPLEX) { if (_CUDA_VSTD::isnan(__x)) { @@ -677,11 +673,7 @@ _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX14_COMPLEX float __constexpr_fmax(f _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX14_COMPLEX double __constexpr_fmax(double __x, double __y) noexcept { # if defined(_CCCL_BUILTIN_IS_CONSTANT_EVALUATED) && !defined(_LIBCUDACXX_HAS_NO_CONSTEXPR_COMPLEX_OPERATIONS) -# if _CCCL_COMPILER(ICC) && _NV_ISEMPTY(_CCCL_CONSTEXPR_CXX14_COMPLEX) - if (false) -# else // _CCCL_COMPILER(ICC) && _NV_ISEMPTY(_CCCL_CONSTEXPR_CXX14_COMPLEX) if (_CCCL_BUILTIN_IS_CONSTANT_EVALUATED()) -# endif // _CCCL_COMPILER(ICC) && _NV_ISEMPTY(_CCCL_CONSTEXPR_CXX14_COMPLEX) { if (_CUDA_VSTD::isnan(__x)) { @@ -702,11 +694,7 @@ _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX14_COMPLEX long double __constexpr_fmax(long double __x, long double __y) noexcept { # if defined(_CCCL_BUILTIN_IS_CONSTANT_EVALUATED) && !defined(_LIBCUDACXX_HAS_NO_CONSTEXPR_COMPLEX_OPERATIONS) -# if _CCCL_COMPILER(ICC) && _NV_ISEMPTY(_CCCL_CONSTEXPR_CXX14_COMPLEX) - if (false) -# else // _CCCL_COMPILER(ICC) && _NV_ISEMPTY(_CCCL_CONSTEXPR_CXX14_COMPLEX) if (_CCCL_BUILTIN_IS_CONSTANT_EVALUATED()) -# endif // _CCCL_COMPILER(ICC) && _NV_ISEMPTY(_CCCL_CONSTEXPR_CXX14_COMPLEX) { if (_CUDA_VSTD::isnan(__x)) { diff --git a/libcudacxx/test/internal_headers/CMakeLists.txt b/libcudacxx/test/internal_headers/CMakeLists.txt index cca23ef3575..cbb4ccce057 100644 --- a/libcudacxx/test/internal_headers/CMakeLists.txt +++ b/libcudacxx/test/internal_headers/CMakeLists.txt @@ -58,9 +58,6 @@ function(libcudacxx_create_internal_header_test header_name, headertest_src, fal target_compile_definitions(headertest_${header_name} PRIVATE "-D${fallback}") endif() target_compile_definitions(headertest_${header_name} PRIVATE "-DLIBCUDACXX_ENABLE_EXPERIMENTAL_MEMORY_RESOURCE") - if (CCCL_SUPPRESS_ICC_DEPRECATION_WARNING) - target_compile_definitions(headertest_${header_name} PRIVATE CCCL_SUPPRESS_ICC_DEPRECATION_WARNING) - endif() if (CCCL_SUPPRESS_MSVC2017_DEPRECATION_WARNING) target_compile_definitions(headertest_${header_name} PRIVATE CCCL_SUPPRESS_MSVC2017_DEPRECATION_WARNING) endif() diff --git a/libcudacxx/test/libcudacxx/CMakeLists.txt b/libcudacxx/test/libcudacxx/CMakeLists.txt index 47a3bbd4458..e6d1754d2ef 100644 --- a/libcudacxx/test/libcudacxx/CMakeLists.txt +++ b/libcudacxx/test/libcudacxx/CMakeLists.txt @@ -54,14 +54,6 @@ if (MSVC) set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT Embedded) endif() -# Intel OneAPI compiler has fast math enabled by default which breaks almost all floating point tests -if (${CMAKE_CXX_COMPILER_ID} STREQUAL "IntelLLVM" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel") - string(APPEND LIBCUDACXX_TEST_COMPILER_FLAGS " --compiler-options=-fno-fast-math") -endif() - -if (CCCL_SUPPRESS_ICC_DEPRECATION_WARNING) - string(APPEND LIBCUDACXX_TEST_COMPILER_FLAGS " -DCCCL_SUPPRESS_ICC_DEPRECATION_WARNING") -endif() if (CCCL_SUPPRESS_MSVC2017_DEPRECATION_WARNING) string(APPEND LIBCUDACXX_TEST_COMPILER_FLAGS " -DCCCL_SUPPRESS_MSVC2017_DEPRECATION_WARNING") endif() diff --git a/libcudacxx/test/libcudacxx/cuda/type_list.pass.cpp b/libcudacxx/test/libcudacxx/cuda/type_list.pass.cpp index 4b94926e72e..5c5d99755be 100644 --- a/libcudacxx/test/libcudacxx/cuda/type_list.pass.cpp +++ b/libcudacxx/test/libcudacxx/cuda/type_list.pass.cpp @@ -16,7 +16,7 @@ #include #include -#if _CCCL_COMPILER(ICC) || _CCCL_CUDA_COMPILER(NVCC) || _CCCL_COMPILER(NVRTC) || _CCCL_CUDA_COMPILER(CLANG) +#if _CCCL_CUDA_COMPILER(NVCC) || _CCCL_COMPILER(NVRTC) || _CCCL_CUDA_COMPILER(CLANG) // These compilers have trouble making substitution failures during // alias template instantiation non-fatal. # define SKIP_SFINAE_TESTS diff --git a/libcudacxx/test/libcudacxx/libcxx/atomics/libcpp-has-no-threads.fail.cpp b/libcudacxx/test/libcudacxx/libcxx/atomics/libcpp-has-no-threads.fail.cpp index 0ece946d920..1f4c01e3747 100644 --- a/libcudacxx/test/libcudacxx/libcxx/atomics/libcpp-has-no-threads.fail.cpp +++ b/libcudacxx/test/libcudacxx/libcxx/atomics/libcpp-has-no-threads.fail.cpp @@ -14,8 +14,8 @@ // .fail. expects compilation to fail, but this would only fail at runtime with NVRTC // UNSUPPORTED: nvrtc -// nvcc doesn't propagate nvhpc's or icc's preprocessor failures -// UNSUPPORTED: nvhpc, icc +// nvcc doesn't propagate nvhpc's preprocessor failures +// UNSUPPORTED: nvhpc // MODULES_DEFINES: _LIBCUDACXX_HAS_NO_THREADS #ifndef _LIBCUDACXX_HAS_NO_THREADS diff --git a/libcudacxx/test/libcudacxx/std/atomics/atomics.flag/atomic_flag_test_and_set_explicit.pass.cpp b/libcudacxx/test/libcudacxx/std/atomics/atomics.flag/atomic_flag_test_and_set_explicit.pass.cpp index 401e6cff1b3..d9849291883 100644 --- a/libcudacxx/test/libcudacxx/std/atomics/atomics.flag/atomic_flag_test_and_set_explicit.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/atomics/atomics.flag/atomic_flag_test_and_set_explicit.pass.cpp @@ -32,7 +32,6 @@ __host__ __device__ void test() assert(atomic_flag_test_and_set_explicit(&f, cuda::std::memory_order_relaxed) == 0); assert(f.test_and_set() == 1); } -#ifndef TEST_COMPILER_ICC { Selector sel; cuda::std::atomic_flag& f = *sel.construct(); @@ -40,7 +39,6 @@ __host__ __device__ void test() assert(atomic_flag_test_and_set_explicit(&f, cuda::std::memory_order_consume) == 0); assert(f.test_and_set() == 1); } -#endif { Selector sel; cuda::std::atomic_flag& f = *sel.construct(); @@ -76,7 +74,6 @@ __host__ __device__ void test() assert(atomic_flag_test_and_set_explicit(&f, cuda::std::memory_order_relaxed) == 0); assert(f.test_and_set() == 1); } -#ifndef TEST_COMPILER_ICC { Selector sel; volatile cuda::std::atomic_flag& f = *sel.construct(); @@ -84,7 +81,6 @@ __host__ __device__ void test() assert(atomic_flag_test_and_set_explicit(&f, cuda::std::memory_order_consume) == 0); assert(f.test_and_set() == 1); } -#endif { Selector sel; volatile cuda::std::atomic_flag& f = *sel.construct(); diff --git a/libcudacxx/test/libcudacxx/std/atomics/atomics.flag/test_and_set.pass.cpp b/libcudacxx/test/libcudacxx/std/atomics/atomics.flag/test_and_set.pass.cpp index c62a8ec3090..d8375d960a7 100644 --- a/libcudacxx/test/libcudacxx/std/atomics/atomics.flag/test_and_set.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/atomics/atomics.flag/test_and_set.pass.cpp @@ -39,7 +39,6 @@ __host__ __device__ void test() assert(f.test_and_set(cuda::std::memory_order_relaxed) == 0); assert(f.test_and_set(cuda::std::memory_order_relaxed) == 1); } -#ifndef TEST_COMPILER_ICC { Selector sel; cuda::std::atomic_flag& f = *sel.construct(); @@ -47,7 +46,6 @@ __host__ __device__ void test() assert(f.test_and_set(cuda::std::memory_order_consume) == 0); assert(f.test_and_set(cuda::std::memory_order_consume) == 1); } -#endif { Selector sel; cuda::std::atomic_flag& f = *sel.construct(); @@ -90,7 +88,6 @@ __host__ __device__ void test() assert(f.test_and_set(cuda::std::memory_order_relaxed) == 0); assert(f.test_and_set(cuda::std::memory_order_relaxed) == 1); } -#ifndef TEST_COMPILER_ICC { Selector sel; volatile cuda::std::atomic_flag& f = *sel.construct(); @@ -98,7 +95,6 @@ __host__ __device__ void test() assert(f.test_and_set(cuda::std::memory_order_consume) == 0); assert(f.test_and_set(cuda::std::memory_order_consume) == 1); } -#endif { Selector sel; volatile cuda::std::atomic_flag& f = *sel.construct(); diff --git a/libcudacxx/test/libcudacxx/std/containers/sequences/array/iterators.pass.cpp b/libcudacxx/test/libcudacxx/std/containers/sequences/array/iterators.pass.cpp index ee800a4da6c..576a5f90457 100644 --- a/libcudacxx/test/libcudacxx/std/containers/sequences/array/iterators.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/containers/sequences/array/iterators.pass.cpp @@ -78,7 +78,7 @@ __host__ __device__ check_noexcept(array); typename C::iterator i = array.begin(); typename C::const_iterator j = array.cbegin(); -#if !defined(TEST_COMPILER_CUDACC_BELOW_11_3) && !defined(TEST_COMPILER_ICC) // seems there are different nullptr's +#if !defined(TEST_COMPILER_CUDACC_BELOW_11_3) // seems there are different nullptr's assert(i == j); #else // ^^^ !TEST_COMPILER_CUDACC_BELOW_11_3 ^^^ / vvv TEST_COMPILER_CUDACC_BELOW_11_3 vvv assert(i == nullptr); @@ -147,8 +147,7 @@ __host__ __device__ assert(ii1 == ii4); static_assert(cuda::std::is_same_v, ""); static_assert(cuda::std::is_same_v, ""); -# if !defined(TEST_COMPILER_CUDACC_BELOW_11_3) && !defined(TEST_COMPILER_ICC) // old NVCC has issues comparing int* - // with const int* +# if !defined(TEST_COMPILER_CUDACC_BELOW_11_3) // old NVCC has issues comparing int* with const int* assert(ii1 == cii); # else // ^^^ !TEST_COMPILER_CUDACC_BELOW_11_3 ^^^ / vvv TEST_COMPILER_CUDACC_BELOW_11_3 vvv assert(ii1 == nullptr); @@ -156,8 +155,7 @@ __host__ __device__ # endif // TEST_COMPILER_CUDACC_BELOW_11_3 assert(!(ii1 != ii2)); -# if !defined(TEST_COMPILER_CUDACC_BELOW_11_3) && !defined(TEST_COMPILER_ICC) // old NVCC has issues comparing int* - // with const int* +# if !defined(TEST_COMPILER_CUDACC_BELOW_11_3) // old NVCC has issues comparing int* with const int* assert(!(ii1 != cii)); # endif // TEST_COMPILER_CUDACC_BELOW_11_3 @@ -265,11 +263,9 @@ __host__ __device__ int main(int, char**) { tests(); -#ifndef TEST_COMPILER_ICC -# if TEST_STD_VER >= 2014 && defined(_CCCL_BUILTIN_IS_CONSTANT_EVALUATED) \ - && (!defined(TEST_COMPILER_GCC) || __GNUC__ > 8) +#if TEST_STD_VER >= 2014 && defined(_CCCL_BUILTIN_IS_CONSTANT_EVALUATED) \ + && (!defined(TEST_COMPILER_GCC) || __GNUC__ > 8) static_assert(tests(), ""); -# endif // TEST_STD_VER >= 2014 && defined(_CCCL_BUILTIN_IS_CONSTANT_EVALUATED) -#endif // TEST_COMPILER_ICC +#endif // TEST_STD_VER >= 2014 && defined(_CCCL_BUILTIN_IS_CONSTANT_EVALUATED) return 0; } diff --git a/libcudacxx/test/libcudacxx/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp b/libcudacxx/test/libcudacxx/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp index 7d9e1200dca..f86a0b27eed 100644 --- a/libcudacxx/test/libcudacxx/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp @@ -80,9 +80,7 @@ __host__ __device__ constexpr void unqualified_lookup_move(It first_, It last_, auto result_first = ::check_unqualified_lookup::unqualified_lookup_wrapper{cuda::std::move(result_first_)}; auto result_last = ::check_unqualified_lookup::unqualified_lookup_wrapper{cuda::std::move(result_last_)}; -#ifndef TEST_COMPILER_ICC static_assert(!noexcept(cuda::std::ranges::iter_move(first)), "unqualified-lookup case not being chosen"); -#endif // TEST_COMPILER_ICC for (; first != last && result_first != result_last; (void) ++first, ++result_first) { @@ -98,11 +96,9 @@ __host__ __device__ constexpr void lvalue_move(It first_, It last_, Out result_f auto result_first = iterator_wrapper{cuda::std::move(result_first_)}; auto result_last = iterator_wrapper{cuda::std::move(result_last_)}; -#ifndef TEST_COMPILER_ICC static_assert(!noexcept(cuda::std::ranges::iter_move(first)), "`operator*() const&` is not noexcept, and there's no hidden " "friend iter_move."); -#endif // TEST_COMPILER_ICC for (; first != last && result_first != result_last; (void) ++first, ++result_first) { @@ -226,9 +222,7 @@ __host__ __device__ constexpr bool test() auto unscoped = check_unqualified_lookup::unscoped_enum::a; assert(cuda::std::ranges::iter_move(unscoped) == check_unqualified_lookup::unscoped_enum::a); -#ifndef TEST_COMPILER_ICC assert(!noexcept(cuda::std::ranges::iter_move(unscoped))); -#endif // TEST_COMPILER_ICC auto scoped = check_unqualified_lookup::scoped_enum::a; assert(cuda::std::ranges::iter_move(scoped) == nullptr); @@ -236,18 +230,16 @@ __host__ __device__ constexpr bool test() auto some_union = check_unqualified_lookup::some_union{0}; assert(cuda::std::ranges::iter_move(some_union) == 0); -#ifndef TEST_COMPILER_ICC assert(!noexcept(cuda::std::ranges::iter_move(some_union))); // Check noexcept-correctness static_assert(noexcept(cuda::std::ranges::iter_move(cuda::std::declval>())), ""); static_assert(noexcept(cuda::std::ranges::iter_move(cuda::std::declval>())), ""); // old GCC seems to fall over the chaining of the noexcept clauses here -# if (!defined(TEST_COMPILER_GCC) || __GNUC__ >= 9) +#if (!defined(TEST_COMPILER_GCC) || __GNUC__ >= 9) static_assert(!noexcept(cuda::std::ranges::iter_move(cuda::std::declval>())), ""); static_assert(!noexcept(cuda::std::ranges::iter_move(cuda::std::declval>())), ""); -# endif -#endif // TEST_COMPILER_ICC +#endif return true; } diff --git a/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/iter_move.pass.cpp b/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/iter_move.pass.cpp index b4c8cdfa69d..a8dd32f1e18 100644 --- a/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/iter_move.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/iter_move.pass.cpp @@ -49,9 +49,7 @@ struct MaybeNoexceptMove using ThrowingBase = MaybeNoexceptMove; using NoexceptBase = MaybeNoexceptMove; static_assert(cuda::std::input_iterator); -#ifndef TEST_COMPILER_ICC ASSERT_NOT_NOEXCEPT(cuda::std::ranges::iter_move(cuda::std::declval())); -#endif // TEST_COMPILER_ICC ASSERT_NOEXCEPT(cuda::std::ranges::iter_move(cuda::std::declval())); __host__ __device__ constexpr bool test() @@ -82,10 +80,8 @@ __host__ __device__ constexpr bool test() // Check the `noexcept` specification. { -#ifndef TEST_COMPILER_ICC using ThrowingIter = cuda::std::move_iterator; ASSERT_NOT_NOEXCEPT(iter_move(cuda::std::declval())); -#endif // TEST_COMPILER_ICC using NoexceptIter = cuda::std::move_iterator; ASSERT_NOEXCEPT(iter_move(cuda::std::declval())); } diff --git a/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/iter_swap.pass.cpp b/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/iter_swap.pass.cpp index ef62110918a..7a43631d027 100644 --- a/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/iter_swap.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/iter_swap.pass.cpp @@ -44,13 +44,11 @@ struct MaybeNoexceptSwap using ThrowingBase = MaybeNoexceptSwap; using NoexceptBase = MaybeNoexceptSwap; static_assert(cuda::std::input_iterator); -#if !defined(TEST_COMPILER_ICC) ASSERT_NOT_NOEXCEPT( cuda::std::ranges::iter_swap(cuda::std::declval(), cuda::std::declval())); -# if !defined(TEST_COMPILER_MSVC_2017) // MSVC2017 gets confused by the two friends and only considers the first +#if !defined(TEST_COMPILER_MSVC_2017) // MSVC2017 gets confused by the two friends and only considers the first ASSERT_NOEXCEPT(cuda::std::ranges::iter_swap(cuda::std::declval(), cuda::std::declval())); -# endif // !TEST_COMPILER_MSVC_2017 -#endif // & !TEST_COMPILER_ICC +#endif // !TEST_COMPILER_MSVC_2017 __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() { @@ -84,14 +82,12 @@ __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() // Check the `noexcept` specification. { -#if !defined(TEST_COMPILER_ICC) using ThrowingIter = cuda::std::move_iterator; ASSERT_NOT_NOEXCEPT(iter_swap(cuda::std::declval(), cuda::std::declval())); -# if !defined(TEST_COMPILER_MSVC_2017) // MSVC2017 gets confused by the two friends and only considers the first +#if !defined(TEST_COMPILER_MSVC_2017) // MSVC2017 gets confused by the two friends and only considers the first using NoexceptIter = cuda::std::move_iterator; ASSERT_NOEXCEPT(iter_swap(cuda::std::declval(), cuda::std::declval())); -# endif // !TEST_COMPILER_MSVC_2017 -#endif // !TEST_COMPILER_ICC +#endif // !TEST_COMPILER_MSVC_2017 } return true; diff --git a/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.advance_back/difference_type.pass.cpp b/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.advance_back/difference_type.pass.cpp index 621d7470f95..0112c5d475c 100644 --- a/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.advance_back/difference_type.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.advance_back/difference_type.pass.cpp @@ -38,14 +38,12 @@ int main(int, char**) test(s + 5, 5, s); #if TEST_STD_VER > 2011 -# ifndef TEST_COMPILER_ICC { constexpr const char* p = "123456789"; constexpr auto it1 = cuda::std::make_move_iterator(p); constexpr auto it2 = cuda::std::make_move_iterator(p + 5) -= 5; static_assert(it1 == it2, ""); } -# endif // TEST_COMPILER_ICC #endif // TEST_STD_VER > 2011 return 0; diff --git a/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op_advance/difference_type.pass.cpp b/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op_advance/difference_type.pass.cpp index 73b3780d95c..a230ea9b3b5 100644 --- a/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op_advance/difference_type.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op_advance/difference_type.pass.cpp @@ -43,14 +43,10 @@ int main(int, char**) typedef cuda::std::move_iterator MI; constexpr MI it1 = cuda::std::make_move_iterator(p); constexpr MI it2 = cuda::std::make_move_iterator(p + 5); -# ifndef TEST_COMPILER_ICC constexpr MI it3 = cuda::std::make_move_iterator(p) += 5; -# endif // TEST_COMPILER_ICC static_assert(it1 != it2, ""); -# ifndef TEST_COMPILER_ICC static_assert(it1 != it3, ""); static_assert(it2 == it3, ""); -# endif // TEST_COMPILER_ICC } #endif diff --git a/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/reverse.iterators/reverse.iter.nonmember/iter_move.pass.cpp b/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/reverse.iterators/reverse.iter.nonmember/iter_move.pass.cpp index 7c03921a628..4312519bf7a 100644 --- a/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/reverse.iterators/reverse.iter.nonmember/iter_move.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/reverse.iterators/reverse.iter.nonmember/iter_move.pass.cpp @@ -83,12 +83,10 @@ __host__ __device__ constexpr bool test() }; static_assert(cuda::std::bidirectional_iterator); -# ifndef TEST_COMPILER_ICC static_assert(!cuda::std::is_nothrow_copy_constructible_v); ASSERT_NOEXCEPT(cuda::std::ranges::iter_move(--cuda::std::declval())); using RI = cuda::std::reverse_iterator; ASSERT_NOT_NOEXCEPT(iter_move(cuda::std::declval())); -# endif // TEST_COMPILER_ICC } { @@ -121,11 +119,9 @@ __host__ __device__ constexpr bool test() static_assert(cuda::std::bidirectional_iterator); static_assert(cuda::std::is_nothrow_copy_constructible_v); -# ifndef TEST_COMPILER_ICC ASSERT_NOT_NOEXCEPT(cuda::std::ranges::iter_move(--cuda::std::declval())); using RI = cuda::std::reverse_iterator; ASSERT_NOT_NOEXCEPT(iter_move(cuda::std::declval())); -# endif // TEST_COMPILER_ICC } { diff --git a/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/reverse.iterators/reverse.iter.nonmember/iter_swap.pass.cpp b/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/reverse.iterators/reverse.iter.nonmember/iter_swap.pass.cpp index 96401f96991..d476ad66253 100644 --- a/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/reverse.iterators/reverse.iter.nonmember/iter_swap.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/iterators/predef.iterators/reverse.iterators/reverse.iter.nonmember/iter_swap.pass.cpp @@ -148,9 +148,7 @@ __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() { static_assert(cuda::std::bidirectional_iterator); -#ifndef TEST_COMPILER_ICC static_assert(!cuda::std::is_nothrow_copy_constructible_v); -#endif // TEST_COMPILER_ICC static_assert(cuda::std::is_nothrow_copy_constructible_v); #if TEST_STD_VER > 2017 ASSERT_NOEXCEPT(cuda::std::ranges::iter_swap( @@ -158,10 +156,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() #endif using RI1 = cuda::std::reverse_iterator; using RI2 = cuda::std::reverse_iterator; -#ifndef TEST_COMPILER_ICC ASSERT_NOT_NOEXCEPT(iter_swap(cuda::std::declval(), cuda::std::declval())); ASSERT_NOT_NOEXCEPT(iter_swap(cuda::std::declval(), cuda::std::declval())); -#endif // TEST_COMPILER_ICC } { @@ -175,10 +171,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() #endif using RI1 = cuda::std::reverse_iterator; using RI2 = cuda::std::reverse_iterator; -#ifndef TEST_COMPILER_ICC ASSERT_NOT_NOEXCEPT(iter_swap(cuda::std::declval(), cuda::std::declval())); ASSERT_NOT_NOEXCEPT(iter_swap(cuda::std::declval(), cuda::std::declval())); -#endif // TEST_COMPILER_ICC } { diff --git a/libcudacxx/test/libcudacxx/std/ranges/range.access/begin.pass.cpp b/libcudacxx/test/libcudacxx/std/ranges/range.access/begin.pass.cpp index 4ef151bf3d8..45c97e3db4b 100644 --- a/libcudacxx/test/libcudacxx/std/ranges/range.access/begin.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/ranges/range.access/begin.pass.cpp @@ -405,14 +405,12 @@ static_assert(noexcept(cuda::std::ranges::begin(ntab)), ""); static_assert(noexcept(cuda::std::ranges::cbegin(ntab)), ""); #endif // TEST_STD_VER > 2014 && !TEST_COMPILER_MSVC_2019 -#if !defined(TEST_COMPILER_ICC) _CCCL_GLOBAL_CONSTANT struct NoThrowMemberBeginReturnsRef { __host__ __device__ ThrowingIterator& begin() const noexcept; // auto(t.begin()) may throw } ntmbrr; static_assert(!noexcept(cuda::std::ranges::begin(ntmbrr)), ""); static_assert(!noexcept(cuda::std::ranges::cbegin(ntmbrr)), ""); -#endif // !TEST_COMPILER_ICC _CCCL_GLOBAL_CONSTANT struct BeginReturnsArrayRef { @@ -454,9 +452,7 @@ int main(int, char**) unused(ntmb); unused(ntab); #endif // TEST_STD_VER > 2014 && !TEST_COMPILER_MSVC_2019 -#if !defined(TEST_COMPILER_ICC) unused(ntmbrr); -#endif // !TEST_COMPILER_ICC unused(brar); return 0; diff --git a/libcudacxx/test/libcudacxx/std/ranges/range.access/empty.pass.cpp b/libcudacxx/test/libcudacxx/std/ranges/range.access/empty.pass.cpp index 09c826afc4a..20d6a0b66b7 100644 --- a/libcudacxx/test/libcudacxx/std/ranges/range.access/empty.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/ranges/range.access/empty.pass.cpp @@ -95,7 +95,7 @@ struct BoolConvertibleReturnType } }; // old GCC seems to fall over the chaining of the noexcept clauses here -#if (!defined(TEST_COMPILER_GCC) || __GNUC__ >= 9) && !defined(TEST_COMPILER_MSVC) && !defined(TEST_COMPILER_ICC) +#if (!defined(TEST_COMPILER_GCC) || __GNUC__ >= 9) && !defined(TEST_COMPILER_MSVC) static_assert(!noexcept(cuda::std::ranges::empty(BoolConvertibleReturnType()))); #endif // (!defined(TEST_COMPILER_GCC) || __GNUC__ >= 9) diff --git a/libcudacxx/test/libcudacxx/std/ranges/range.access/end.pass.cpp b/libcudacxx/test/libcudacxx/std/ranges/range.access/end.pass.cpp index 665f5a744c9..0e132c929e8 100644 --- a/libcudacxx/test/libcudacxx/std/ranges/range.access/end.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/ranges/range.access/end.pass.cpp @@ -459,7 +459,6 @@ static_assert(noexcept(cuda::std::ranges::end(ntae)), ""); static_assert(noexcept(cuda::std::ranges::cend(ntae)), ""); #endif // TEST_STD_VER > 2014 && !TEST_COMPILER_MSVC_2019 -#if !defined(TEST_COMPILER_ICC) _CCCL_GLOBAL_CONSTANT struct NoThrowMemberEndReturnsRef { __host__ __device__ ThrowingIterator begin() const; @@ -467,7 +466,6 @@ _CCCL_GLOBAL_CONSTANT struct NoThrowMemberEndReturnsRef } ntmerr; static_assert(!noexcept(cuda::std::ranges::end(ntmerr)), ""); static_assert(!noexcept(cuda::std::ranges::cend(ntmerr)), ""); -#endif // !TEST_COMPILER_ICC _CCCL_GLOBAL_CONSTANT struct EndReturnsArrayRef { @@ -510,9 +508,7 @@ int main(int, char**) unused(ntme); unused(ntae); #endif // TEST_STD_VER > 2014 && !TEST_COMPILER_MSVC_2019 -#if !defined(TEST_COMPILER_ICC) unused(ntmerr); -#endif // !TEST_COMPILER_ICC unused(erar); return 0; diff --git a/libcudacxx/test/libcudacxx/std/ranges/range.access/rbegin.pass.cpp b/libcudacxx/test/libcudacxx/std/ranges/range.access/rbegin.pass.cpp index 373ac14a954..c36c374fde6 100644 --- a/libcudacxx/test/libcudacxx/std/ranges/range.access/rbegin.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/ranges/range.access/rbegin.pass.cpp @@ -587,14 +587,12 @@ static_assert(noexcept(cuda::std::ranges::rbegin(ntab))); static_assert(noexcept(cuda::std::ranges::crbegin(ntab))); #endif // !TEST_COMPILER_MSVC_2019 -#if !defined(TEST_COMPILER_ICC) _CCCL_GLOBAL_CONSTANT struct NoThrowMemberRBeginReturnsRef { __host__ __device__ ThrowingIterator& rbegin() const noexcept; // auto(t.rbegin()) may throw } ntmbrr; static_assert(!noexcept(cuda::std::ranges::rbegin(ntmbrr))); static_assert(!noexcept(cuda::std::ranges::crbegin(ntmbrr))); -#endif // !TEST_COMPILER_ICC _CCCL_GLOBAL_CONSTANT struct RBeginReturnsArrayRef { @@ -603,7 +601,6 @@ _CCCL_GLOBAL_CONSTANT struct RBeginReturnsArrayRef static_assert(noexcept(cuda::std::ranges::rbegin(brar))); static_assert(noexcept(cuda::std::ranges::crbegin(brar))); -#if !defined(TEST_COMPILER_ICC) _CCCL_GLOBAL_CONSTANT struct NoThrowBeginThrowingEnd { __host__ __device__ int* begin() const noexcept; @@ -611,7 +608,6 @@ _CCCL_GLOBAL_CONSTANT struct NoThrowBeginThrowingEnd } ntbte; static_assert(!noexcept(cuda::std::ranges::rbegin(ntbte))); static_assert(!noexcept(cuda::std::ranges::crbegin(ntbte))); -#endif // !TEST_COMPILER_ICC _CCCL_GLOBAL_CONSTANT struct NoThrowEndThrowingBegin { @@ -657,13 +653,9 @@ int main(int, char**) unused(ntmb); unused(ntab); #endif // !TEST_COMPILER_MSVC_2019 -#if !defined(TEST_COMPILER_ICC) unused(ntmbrr); -#endif // !TEST_COMPILER_ICC unused(brar); -#if !defined(TEST_COMPILER_ICC) unused(ntbte); -#endif // !TEST_COMPILER_ICC unused(ntetb); return 0; diff --git a/libcudacxx/test/libcudacxx/std/ranges/range.access/rend.pass.cpp b/libcudacxx/test/libcudacxx/std/ranges/range.access/rend.pass.cpp index 239b9d53873..3deea8bbfca 100644 --- a/libcudacxx/test/libcudacxx/std/ranges/range.access/rend.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/ranges/range.access/rend.pass.cpp @@ -647,7 +647,6 @@ static_assert(noexcept(cuda::std::ranges::rend(ntare))); static_assert(noexcept(cuda::std::ranges::crend(ntare))); #endif // !TEST_COMPILER_MSVC_2019 -#if !defined(TEST_COMPILER_ICC) _CCCL_GLOBAL_CONSTANT struct NoThrowMemberREndReturnsRef { __host__ __device__ ThrowingIterator rbegin() const; @@ -655,7 +654,6 @@ _CCCL_GLOBAL_CONSTANT struct NoThrowMemberREndReturnsRef } ntmrerr; static_assert(!noexcept(cuda::std::ranges::rend(ntmrerr))); static_assert(!noexcept(cuda::std::ranges::crend(ntmrerr))); -#endif // !TEST_COMPILER_ICC _CCCL_GLOBAL_CONSTANT struct REndReturnsArrayRef { @@ -673,7 +671,6 @@ _CCCL_GLOBAL_CONSTANT struct NoThrowBeginThrowingEnd static_assert(noexcept(cuda::std::ranges::rend(ntbte))); static_assert(noexcept(cuda::std::ranges::crend(ntbte))); -#if !defined(TEST_COMPILER_ICC) _CCCL_GLOBAL_CONSTANT struct NoThrowEndThrowingBegin { __host__ __device__ int* begin() const; @@ -681,7 +678,6 @@ _CCCL_GLOBAL_CONSTANT struct NoThrowEndThrowingBegin } ntetb; static_assert(!noexcept(cuda::std::ranges::rend(ntetb))); static_assert(!noexcept(cuda::std::ranges::crend(ntetb))); -#endif // !TEST_COMPILER_ICC #if TEST_STD_VER > 2017 // Test ADL-proofing. @@ -719,14 +715,10 @@ int main(int, char**) unused(ntmre); unused(ntare); #endif // !TEST_COMPILER_MSVC_2019 -#if !defined(TEST_COMPILER_ICC) unused(ntmrerr); -#endif // !TEST_COMPILER_ICC unused(rerar); unused(ntbte); -#if !defined(TEST_COMPILER_ICC) unused(ntetb); -#endif // !TEST_COMPILER_ICC return 0; } diff --git a/libcudacxx/test/libcudacxx/std/ranges/range.utility/range.subrange/lwg3470.pass.cpp b/libcudacxx/test/libcudacxx/std/ranges/range.utility/range.subrange/lwg3470.pass.cpp index 5ec15fd10d7..880094e5d44 100644 --- a/libcudacxx/test/libcudacxx/std/ranges/range.utility/range.subrange/lwg3470.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/ranges/range.utility/range.subrange/lwg3470.pass.cpp @@ -9,7 +9,6 @@ // UNSUPPORTED: c++03, c++11, c++14 // UNSUPPORTED: msvc-19.16 -// UNSUPPORTED: icc // gcc is unable to get the construction of b right // UNSUPPORTED: gcc-7, gcc-8, gcc-9 diff --git a/libcudacxx/test/libcudacxx/std/ranges/range.utility/view.interface/view.interface.pass.cpp b/libcudacxx/test/libcudacxx/std/ranges/range.utility/view.interface/view.interface.pass.cpp index 9fe2e1ce31b..18c1dfa25de 100644 --- a/libcudacxx/test/libcudacxx/std/ranges/range.utility/view.interface/view.interface.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/ranges/range.utility/view.interface/view.interface.pass.cpp @@ -313,7 +313,7 @@ __host__ __device__ constexpr bool testEmpty() BoolConvertibleComparison boolConv{}; // old GCC seems to fall over the noexcept clauses here -#if (!defined(TEST_COMPILER_GCC) || __GNUC__ >= 9) && (!defined(TEST_COMPILER_MSVC)) && (!defined(TEST_COMPILER_ICC)) +#if (!defined(TEST_COMPILER_GCC) || __GNUC__ >= 9) && (!defined(TEST_COMPILER_MSVC)) ASSERT_NOT_NOEXCEPT(boolConv.empty()); #endif diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.U.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.U.pass.cpp index af88bf4c7b2..589df89149d 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.U.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.U.pass.cpp @@ -100,12 +100,10 @@ static_assert( static_assert( cuda::std::is_assignable_v, MaybeNoexcept>&, int>, ""); -#ifndef TEST_COMPILER_ICC // !is_nothrow_constructible_v && !is_nothrow_move_constructible_v && // !is_nothrow_move_constructible_v static_assert( !cuda::std::is_assignable_v, MaybeNoexcept>&, int>, ""); -#endif // TEST_COMPILER_ICC __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() { diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.copy.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.copy.pass.cpp index 4823f6c7745..483dec3c1cc 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.copy.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.copy.pass.cpp @@ -85,12 +85,10 @@ static_assert(cuda::std::is_copy_assignable_v && !is_nothrow_move_constructible_v static_assert(cuda::std::is_copy_assignable_v>, ""); -#ifndef TEST_COMPILER_ICC // !is_nothrow_move_constructible_v && !is_nothrow_move_constructible_v static_assert( cuda::std::__expected_can_copy_assign == cuda::std::__smf_availability::__deleted, ""); static_assert(!cuda::std::is_copy_assignable_v>, ""); -#endif // TEST_COMPILER_ICC __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() { diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.move.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.move.pass.cpp index 61c446ea53c..0bb51efeb9e 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.move.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.move.pass.cpp @@ -83,10 +83,8 @@ static_assert(cuda::std::is_move_assignable_v && !is_nothrow_move_constructible_v static_assert(cuda::std::is_move_assignable_v>, ""); -#ifndef TEST_COMPILER_ICC // !is_nothrow_move_constructible_v && !is_nothrow_move_constructible_v static_assert(!cuda::std::is_move_assignable_v>, ""); -#endif // TEST_COMPILER_ICC struct MoveAssignMayThrow { @@ -100,7 +98,6 @@ struct MoveAssignMayThrow // Test noexcept static_assert(cuda::std::is_nothrow_move_assignable_v>, ""); -#ifndef TEST_COMPILER_ICC // !is_nothrow_move_assignable_v static_assert(!cuda::std::is_nothrow_move_assignable_v>, ""); @@ -112,7 +109,6 @@ static_assert(!cuda::std::is_nothrow_move_assignable_v static_assert(!cuda::std::is_nothrow_move_assignable_v>, ""); -#endif // TEST_COMPILER_ICC __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() { diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.unexpected.copy.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.unexpected.copy.pass.cpp index 7569166bb4d..483eadff86c 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.unexpected.copy.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.unexpected.copy.pass.cpp @@ -103,13 +103,11 @@ static_assert(cuda::std::is_assignable_v && !is_nothrow_move_constructible_v && // !is_nothrow_move_constructible_v static_assert(!cuda::std::is_assignable_v, MaybeNoexcept>&, const cuda::std::unexpected&>, ""); -# endif // TEST_COMPILER_ICC #endif // TEST_COMPILER_MSVC_2017 __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.unexpected.move.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.unexpected.move.pass.cpp index db8ed0e6c0e..055789a88f1 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.unexpected.move.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/assign.unexpected.move.pass.cpp @@ -103,13 +103,11 @@ static_assert(cuda::std::is_assignable_v && !is_nothrow_move_constructible_v && // !is_nothrow_move_constructible_v static_assert(!cuda::std::is_assignable_v, MaybeNoexcept>&, cuda::std::unexpected&&>, ""); -# endif // TEST_COMPILER_ICC #endif // !TEST_COMPILER_MSVC_2017 __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/emplace.intializer_list.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/emplace.intializer_list.pass.cpp index 21dcc47f32d..22b7e442ad5 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/emplace.intializer_list.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/emplace.intializer_list.pass.cpp @@ -48,16 +48,12 @@ struct CtorFromInitalizerList static_assert(CanEmplace, int>, cuda::std::initializer_list&>, ""); -#ifndef TEST_COMPILER_ICC static_assert(!CanEmplace, int>, cuda::std::initializer_list&>, ""); -#endif // TEST_COMPILER_ICC static_assert( CanEmplace, int>, cuda::std::initializer_list&, int>, ""); -#ifndef TEST_COMPILER_ICC static_assert( !CanEmplace, int>, cuda::std::initializer_list&, int>, ""); -#endif // TEST_COMPILER_ICC struct Data { diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/emplace.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/emplace.pass.cpp index 30b2ec69267..cb5952a3ccd 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/emplace.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/assign/emplace.pass.cpp @@ -49,10 +49,8 @@ struct CtorFromInt static_assert(CanEmplace, int>, int>, ""); static_assert(CanEmplace, int>, int, int>, ""); -#ifndef TEST_COMPILER_ICC static_assert(!CanEmplace, int>, int>, ""); static_assert(!CanEmplace, int>, int, int>, ""); -#endif // TEST_COMPILER_ICC __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() { diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/ctor/ctor.move.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/ctor/ctor.move.pass.cpp index cfd5f404f05..a03512a0b22 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/ctor/ctor.move.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/ctor/ctor.move.pass.cpp @@ -93,14 +93,12 @@ static_assert(!cuda::std::is_trivially_move_constructible_v>, ""); -#ifndef TEST_COMPILER_ICC // Test: The exception specification is equivalent to // is_nothrow_move_constructible_v && is_nothrow_move_constructible_v. static_assert(cuda::std::is_nothrow_move_constructible_v>, ""); static_assert(!cuda::std::is_nothrow_move_constructible_v>, ""); static_assert(!cuda::std::is_nothrow_move_constructible_v>, ""); static_assert(!cuda::std::is_nothrow_move_constructible_v>, ""); -#endif // TEST_COMPILER_ICC __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() { diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/swap/free.swap.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/swap/free.swap.pass.cpp index 89e06bfbd7f..0fc6dfb5383 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/swap/free.swap.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/swap/free.swap.pass.cpp @@ -61,15 +61,12 @@ static_assert(cuda::std::is_swappable_v>, // is_nothrow_move_constructible_v && !is_nothrow_move_constructible_v static_assert(cuda::std::is_swappable_v>, ""); -#ifndef TEST_COMPILER_ICC // !is_nothrow_move_constructible_v && !is_nothrow_move_constructible_v static_assert(!cuda::std::is_swappable_v>, ""); -#endif // TEST_COMPILER_ICC // Test noexcept static_assert(cuda::std::is_nothrow_swappable_v>, ""); -#ifndef TEST_COMPILER_ICC // !is_nothrow_move_constructible_v static_assert(!cuda::std::is_nothrow_swappable_v>, ""); @@ -86,7 +83,6 @@ static_assert(!cuda::std::is_nothrow_swappable_v static_assert(!cuda::std::is_nothrow_swappable_v>, ""); -#endif // TEST_COMPILER_ICC __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() { diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/swap/member.swap.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/swap/member.swap.pass.cpp index c864b9a36a4..e219d76a504 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/swap/member.swap.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.expected/swap/member.swap.pass.cpp @@ -72,10 +72,8 @@ static_assert(HasMemberSwap, ""); // is_nothrow_move_constructible_v && !is_nothrow_move_constructible_v static_assert(HasMemberSwap, ""); -#ifndef TEST_COMPILER_ICC // !is_nothrow_move_constructible_v && !is_nothrow_move_constructible_v static_assert(!HasMemberSwap, ""); -#endif // TEST_COMPILER_ICC // Test noexcept template > @@ -87,7 +85,6 @@ constexpr bool MemberSwapNoexcept = static_assert(MemberSwapNoexcept, ""); -#ifndef TEST_COMPILER_ICC // !is_nothrow_move_constructible_v static_assert(!MemberSwapNoexcept, ""); @@ -104,7 +101,6 @@ static_assert(!MemberSwapNoexcept, ""); // !is_nothrow_swappable_v static_assert(!MemberSwapNoexcept, ""); -#endif // TEST_COMPILER_ICC __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() { diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.unexpected/swap/swap.free.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.unexpected/swap/swap.free.pass.cpp index 98058b00fe0..564ad1f0f55 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.unexpected/swap/swap.free.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.unexpected/swap/swap.free.pass.cpp @@ -42,9 +42,7 @@ constexpr bool ADLSwapNoexcept(), cuda::std::declval())); static_assert(ADLSwapNoexcept>, ""); -#ifndef TEST_COMPILER_ICC static_assert(!ADLSwapNoexcept>, ""); -#endif // TEST_COMPILER_ICC // test constraint struct NonSwappable diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.unexpected/swap/swap.member.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.unexpected/swap/swap.member.pass.cpp index 1e6c3dc7168..c0f77443ebe 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.unexpected/swap/swap.member.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.unexpected/swap/swap.member.pass.cpp @@ -42,9 +42,7 @@ constexpr bool noexcept(cuda::std::declval().swap(cuda::std::declval())); static_assert(MemberSwapNoexcept>, ""); -#ifndef TEST_COMPILER_ICC static_assert(!MemberSwapNoexcept>, ""); -#endif // TEST_COMPILER_ICC struct ADLSwap { diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/assign/assign.move.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/assign/assign.move.pass.cpp index 6fc626ceb60..d18bdb081a6 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/assign/assign.move.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/assign/assign.move.pass.cpp @@ -76,13 +76,11 @@ struct MoveAssignMayThrow // Test noexcept static_assert(cuda::std::is_nothrow_move_assignable_v>, ""); -#ifndef TEST_COMPILER_ICC // !is_nothrow_move_assignable_v static_assert(!cuda::std::is_nothrow_move_assignable_v>, ""); // !is_nothrow_move_constructible_v static_assert(!cuda::std::is_nothrow_move_assignable_v>, ""); -#endif // TEST_COMPILER_ICC __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() { diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/assign/assign.unexpected.move.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/assign/assign.unexpected.move.pass.cpp index fb58c1cb708..a00e34f44bf 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/assign/assign.unexpected.move.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/assign/assign.unexpected.move.pass.cpp @@ -103,13 +103,11 @@ static_assert(cuda::std::is_assignable_v && !is_nothrow_move_constructible_v && // !is_nothrow_move_constructible_v static_assert(!cuda::std::is_assignable_v, MaybeNoexcept>&, cuda::std::unexpected&&>, ""); -# endif // TEST_COMPILER_ICC #endif // !TEST_COMPILER_MSVC_2017 __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/ctor/ctor.move.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/ctor/ctor.move.pass.cpp index 15243a43e9f..11b05b7b252 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/ctor/ctor.move.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/ctor/ctor.move.pass.cpp @@ -75,13 +75,11 @@ static_assert(!cuda::std::is_move_constructible_v>, ""); static_assert(!cuda::std::is_trivially_move_constructible_v>, ""); -#ifndef TEST_COMPILER_ICC // Test: noexcept(is_nothrow_move_constructible_v) static_assert(cuda::std::is_nothrow_move_constructible_v>, ""); static_assert(!cuda::std::is_nothrow_move_constructible_v>, ""); static_assert(!cuda::std::is_nothrow_move_constructible_v>, ""); static_assert(!cuda::std::is_nothrow_move_constructible_v>, ""); -#endif // TEST_COMPILER_ICC __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() { diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/swap/free.swap.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/swap/free.swap.pass.cpp index ae636f3fff6..d23e5ecb4f0 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/swap/free.swap.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/swap/free.swap.pass.cpp @@ -51,7 +51,6 @@ struct MoveMayThrow }; static_assert(cuda::std::is_nothrow_swappable_v>, ""); -#ifndef TEST_COMPILER_ICC // !is_nothrow_move_constructible_v static_assert(!cuda::std::is_nothrow_swappable_v>, ""); @@ -60,7 +59,6 @@ struct SwapMayThrow __host__ __device__ friend void swap(SwapMayThrow&, SwapMayThrow&) noexcept(false) {} }; static_assert(!cuda::std::is_nothrow_swappable_v>, ""); -#endif // TEST_COMPILER_ICC __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() { diff --git a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/swap/member.swap.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/swap/member.swap.pass.cpp index 3bf0974bb42..e4a7a0676b5 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/swap/member.swap.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/expected/expected.void/swap/member.swap.pass.cpp @@ -69,7 +69,6 @@ constexpr bool MemberSwapNoexcept = noexcept( static_assert(MemberSwapNoexcept, ""); -#ifndef TEST_COMPILER_ICC // !is_nothrow_move_constructible_v static_assert(!MemberSwapNoexcept, ""); @@ -80,7 +79,6 @@ struct SwapMayThrow // !is_nothrow_swappable_v static_assert(!MemberSwapNoexcept, ""); -#endif // TEST_COMPILER_ICC __host__ __device__ TEST_CONSTEXPR_CXX20 bool test() { diff --git a/libcudacxx/test/libcudacxx/std/utilities/function.objects/func.bind_front/bind_front.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/function.objects/func.bind_front/bind_front.pass.cpp index c91b7a1701b..dd0689a868e 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/function.objects/func.bind_front/bind_front.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/function.objects/func.bind_front/bind_front.pass.cpp @@ -321,11 +321,9 @@ __host__ __device__ constexpr bool test() using X = decltype(cuda::std::bind_front(F{})); static_assert(cuda::std::is_invocable_v); static_assert(cuda::std::is_invocable_v); -# ifndef TEST_COMPILER_ICC -# ifndef TEST_COMPILER_MSVC_2017 // ICE during invoke check +# ifndef TEST_COMPILER_MSVC_2017 // ICE during invoke check static_assert(!cuda::std::is_invocable_v); -# endif // !TEST_COMPILER_MSVC_2017 -# endif // !TEST_COMPILER_ICC +# endif // !TEST_COMPILER_MSVC_2017 static_assert(cuda::std::is_invocable_v); } @@ -342,18 +340,15 @@ __host__ __device__ constexpr bool test() static_assert(cuda::std::is_invocable_v); static_assert(cuda::std::is_invocable_v); static_assert(cuda::std::is_invocable_v); -# ifndef TEST_COMPILER_ICC -# ifndef TEST_COMPILER_MSVC_2017 // ICE during invoke check +# ifndef TEST_COMPILER_MSVC_2017 // ICE during invoke check static_assert(!cuda::std::is_invocable_v); -# endif // !TEST_COMPILER_MSVC_2017 -# endif // !TEST_COMPILER_ICC +# endif // !TEST_COMPILER_MSVC_2017 } } #endif // Some examples by Tim Song -#ifndef TEST_COMPILER_ICC -# ifndef TEST_COMPILER_MSVC_2017 // ICE during invoke check +#ifndef TEST_COMPILER_MSVC_2017 // ICE during invoke check { { struct T @@ -379,8 +374,7 @@ __host__ __device__ constexpr bool test() static_assert(!cuda::std::is_invocable_v); } } -# endif // !TEST_COMPILER_MSVC_2017 -#endif // !TEST_COMPILER_ICC +#endif // !TEST_COMPILER_MSVC_2017 // Test properties of the constructor of the unspecified-type returned by bind_front. { @@ -468,7 +462,7 @@ __host__ __device__ constexpr bool test() takeAnything(); } -#if !defined(TEST_COMPILER_ICC) && !defined(TEST_COMPILER_MSVC_2017) +#if !defined(TEST_COMPILER_MSVC_2017) // Make sure bind_front's unspecified type's operator() is SFINAE-friendly { using T = decltype(cuda::std::bind_front(cuda::std::declval(), 1)); @@ -477,7 +471,7 @@ __host__ __device__ constexpr bool test() static_assert(!cuda::std::is_invocable::value); static_assert(!cuda::std::is_invocable::value); } -#endif // !TEST_COMPILER_ICC && !TEST_COMPILER_MSVC_2017 +#endif // !TEST_COMPILER_MSVC_2017 return true; } diff --git a/libcudacxx/test/libcudacxx/std/utilities/function.objects/func.not_fn/not_fn.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/function.objects/func.not_fn/not_fn.pass.cpp index 543914731ed..4a0bca39e16 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/function.objects/func.not_fn/not_fn.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/function.objects/func.not_fn/not_fn.pass.cpp @@ -525,14 +525,13 @@ void throws_in_constructor_test() __host__ __device__ void call_operator_sfinae_test() { -#ifndef TEST_COMPILER_ICC -# if !defined(TEST_COMPILER_MSVC_2017) +#if !defined(TEST_COMPILER_MSVC_2017) { // wrong number of arguments using T = decltype(cuda::std::not_fn(returns_true)); static_assert(cuda::std::is_invocable::value, ""); // callable only with no args static_assert(!cuda::std::is_invocable::value, ""); } -# endif // !TEST_COMPILER_MSVC_2017 +#endif // !TEST_COMPILER_MSVC_2017 { // violates const correctness (member function pointer) using T = decltype(cuda::std::not_fn(&MemFunCallable::return_value_nc)); static_assert(cuda::std::is_invocable::value, ""); @@ -545,7 +544,6 @@ __host__ __device__ void call_operator_sfinae_test() static_assert(cuda::std::is_invocable::value, ""); static_assert(!cuda::std::is_invocable::value, ""); } -#endif // TEST_COMPILER_ICC // NVRTC appears to be unhappy about... the lambda? // but doesn't let me fix it with annotations #ifndef TEST_COMPILER_NVRTC diff --git a/libcudacxx/test/libcudacxx/std/utilities/memory/smartptr/unique.ptr/unique.ptr.create/make_unique.sizezero.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/memory/smartptr/unique.ptr/unique.ptr.create/make_unique.sizezero.pass.cpp index 7364acc438e..4ce14c9acaa 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/memory/smartptr/unique.ptr/unique.ptr.create/make_unique.sizezero.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/memory/smartptr/unique.ptr/unique.ptr.create/make_unique.sizezero.pass.cpp @@ -10,7 +10,6 @@ // This code triggers https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104568 // UNSUPPORTED: msvc // UNSUPPORTED: nvrtc -// UNSUPPORTED: icc // UNSUPPORTED: nvhpc // Test the fix for https://llvm.org/PR54100 diff --git a/libcudacxx/test/libcudacxx/std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp index 78fd0c9890a..268d0907907 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp @@ -171,9 +171,7 @@ int main(int, char**) static_assert(cuda::std::is_nothrow_invocable_r::value, ""); static_assert(cuda::std::is_nothrow_invocable_r::value, ""); static_assert(cuda::std::is_nothrow_invocable_r::value, ""); -#ifndef TEST_COMPILER_ICC static_assert(throws_invocable_r(), ""); -#endif // TEST_COMPILER_ICC static_assert(!cuda::std::is_nothrow_invocable(), ""); } { @@ -181,9 +179,7 @@ int main(int, char**) using Fn = CallObject; static_assert(cuda::std::is_nothrow_invocable::value, ""); static_assert(cuda::std::is_nothrow_invocable::value, ""); -#ifndef TEST_COMPILER_ICC static_assert(throws_invocable(), ""); -#endif // TEST_COMPILER_ICC static_assert(!cuda::std::is_nothrow_invocable::value, ""); } { @@ -191,18 +187,14 @@ int main(int, char**) using Fn = CallObject; using Fn2 = CallObject; static_assert(cuda::std::is_nothrow_invocable::value, ""); -#ifndef TEST_COMPILER_ICC static_assert(throws_invocable(), ""); -#endif // TEST_COMPILER_ICC } { // Check that PMD derefs are noexcept using Fn = int(Tag::*); static_assert(cuda::std::is_nothrow_invocable::value, ""); static_assert(cuda::std::is_nothrow_invocable_r::value, ""); -#ifndef TEST_COMPILER_ICC static_assert(throws_invocable_r(), ""); -#endif // TEST_COMPILER_ICC } #if TEST_STD_VER >= 2017 { diff --git a/libcudacxx/test/libcudacxx/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_swappable.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_swappable.pass.cpp index 944e7a81fcc..5799a95f8a6 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_swappable.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_swappable.pass.cpp @@ -65,7 +65,6 @@ int main(int, char**) static_assert(!cuda::std::is_nothrow_swappable::value, ""); static_assert(!cuda::std::is_nothrow_swappable::value, ""); } -#ifndef TEST_COMPILER_ICC { // Test that it correctly deduces the noexcept of swap. static_assert(cuda::std::is_nothrow_swappable::value, ""); @@ -73,7 +72,6 @@ int main(int, char**) static_assert(!cuda::std::is_nothrow_swappable::value && cuda::std::is_swappable::value, ""); } -#endif // TEST_COMPILER_ICC { // Test that it doesn't drop the qualifiers static_assert(!cuda::std::is_nothrow_swappable::value, ""); diff --git a/libcudacxx/test/libcudacxx/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_swappable_with.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_swappable_with.pass.cpp index f9b8d2afbc2..d6dda4c5327 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_swappable_with.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_swappable_with.pass.cpp @@ -61,19 +61,15 @@ int main(int, char**) static_assert(!cuda::std::is_nothrow_swappable_with::value, ""); static_assert(cuda::std::is_nothrow_swappable_with::value, ""); static_assert(cuda::std::is_nothrow_swappable_with::value, ""); -#ifndef TEST_COMPILER_ICC static_assert(cuda::std::is_swappable_with::value && !cuda::std::is_nothrow_swappable_with::value, ""); -#endif // TEST_COMPILER_ICC } { // test that heterogeneous swap is allowed only if both 'swap(A, B)' and // 'swap(B, A)' are valid. static_assert(cuda::std::is_nothrow_swappable_with::value, ""); -#ifndef TEST_COMPILER_ICC static_assert(!cuda::std::is_nothrow_swappable_with::value && cuda::std::is_swappable_with::value, ""); -#endif // TEST_COMPILER_ICC static_assert(!cuda::std::is_nothrow_swappable_with::value, ""); } { diff --git a/libcudacxx/test/libcudacxx/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copyable_volatile.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copyable_volatile.pass.cpp index df0bc927341..8d98dc59c5c 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copyable_volatile.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copyable_volatile.pass.cpp @@ -14,7 +14,6 @@ // qualified types trivially copyable. // XFAIL: clang-3, clang-4, apple-clang-6, apple-clang-7, apple-clang-8, apple-clang-9.0 // XFAIL: gcc-4.8, gcc-5, gcc-6, gcc-7, gcc-8, gcc-9 -// XFAIL: icc // When we marked this XFAIL for MSVC, QA reported that it unexpectedly passed. // When we stopped marking it XFAIL for MSVC, QA reported that it unexpectedly diff --git a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.assign/move.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.assign/move.pass.cpp index c3019bd8383..b0db6638dbc 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.assign/move.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.assign/move.pass.cpp @@ -204,7 +204,6 @@ int main(int, char**) static_assert(cuda::std::is_nothrow_move_assignable>::value, ""); } { -#ifndef TEST_COMPILER_ICC struct ThrowsMove { __host__ __device__ ThrowsMove() noexcept {} @@ -235,7 +234,6 @@ int main(int, char**) } }; static_assert(!cuda::std::is_nothrow_move_assignable>::value, ""); -#endif // TEST_COMPILER_ICC struct NoThrowMove { __host__ __device__ NoThrowMove() noexcept(false) {} diff --git a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/default.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/default.pass.cpp index 041168b4c21..65731d66a31 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/default.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/default.pass.cpp @@ -71,9 +71,7 @@ int main(int, char**) test_constexpr>(); test_constexpr>(); #endif -#ifndef TEST_COMPILER_ICC test>(); -#endif // TEST_COMPILER_ICC #if !(defined(TEST_COMPILER_CUDACC_BELOW_11_3) && defined(TEST_COMPILER_CLANG)) static_assert(test_constexpr>(), ""); diff --git a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp index 3337936253c..efe1f10f607 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp @@ -116,7 +116,6 @@ int main(int, char**) optional opt(in_place, 5); assert(*opt == 5); } -#ifndef TEST_COMPILER_ICC { const optional opt(in_place); assert(static_cast(opt) == true); @@ -132,7 +131,6 @@ int main(int, char**) assert(static_cast(opt) == true); assert(*opt == X(5, 4)); } -#endif // TEST_COMPILER_ICC #if !(defined(TEST_COMPILER_CUDACC_BELOW_11_3) && defined(TEST_COMPILER_CLANG)) { constexpr optional opt(in_place); diff --git a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp index 8058f362982..b55a1a37b7b 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp @@ -213,7 +213,6 @@ int main(int, char**) } #endif // !TEST_HAS_NO_EXCEPTIONS { -#ifndef TEST_COMPILER_ICC struct ThrowsMove { __host__ __device__ ThrowsMove() noexcept(false) {} @@ -221,7 +220,6 @@ int main(int, char**) __host__ __device__ ThrowsMove(ThrowsMove&&) noexcept(false) {} }; static_assert(!cuda::std::is_nothrow_move_constructible>::value, ""); -#endif // TEST_COMPILER_ICC struct NoThrowMove { __host__ __device__ NoThrowMove() noexcept(false) {} diff --git a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp index c2815c98d5c..6911e7397c7 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp @@ -76,9 +76,7 @@ int main(int, char**) test_constexpr>(); test_constexpr>(); #endif -#ifndef TEST_COMPILER_ICC test>(); -#endif // TEST_COMPILER_ICC #if !(defined(TEST_COMPILER_CUDACC_BELOW_11_3) && defined(TEST_COMPILER_CLANG)) static_assert(test_constexpr>(), ""); diff --git a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value.pass.cpp index 5faee027db4..c824d1a4eea 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value.pass.cpp @@ -80,9 +80,7 @@ int main(int, char**) { optional opt; unused(opt); -#ifndef TEST_COMPILER_ICC ASSERT_NOT_NOEXCEPT(opt.value()); -#endif // TEST_COMPILER_ICC ASSERT_SAME_TYPE(decltype(opt.value()), X&); } { diff --git a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value_const.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value_const.pass.cpp index 5f5c90f2664..b2da432aeb2 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value_const.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value_const.pass.cpp @@ -67,9 +67,7 @@ int main(int, char**) { const optional opt; unused(opt); -#ifndef TEST_COMPILER_ICC ASSERT_NOT_NOEXCEPT(opt.value()); -#endif // TEST_COMPILER_ICC ASSERT_SAME_TYPE(decltype(opt.value()), X const&); } #if !(defined(TEST_COMPILER_CUDACC_BELOW_11_3) && defined(TEST_COMPILER_CLANG)) diff --git a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value_const_rvalue.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value_const_rvalue.pass.cpp index 62b53a7aa55..24e81acaa8d 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value_const_rvalue.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value_const_rvalue.pass.cpp @@ -67,9 +67,7 @@ int main(int, char**) { const optional opt; unused(opt); -#ifndef TEST_COMPILER_ICC ASSERT_NOT_NOEXCEPT(cuda::std::move(opt).value()); -#endif // TEST_COMPILER_ICC ASSERT_SAME_TYPE(decltype(cuda::std::move(opt).value()), X const&&); } #if !(defined(TEST_COMPILER_CUDACC_BELOW_11_3) && defined(TEST_COMPILER_CLANG)) diff --git a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value_rvalue.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value_rvalue.pass.cpp index 8eeaf115855..6f5d653ca2b 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value_rvalue.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value_rvalue.pass.cpp @@ -79,9 +79,7 @@ int main(int, char**) { optional opt; unused(opt); -#ifndef TEST_COMPILER_ICC ASSERT_NOT_NOEXCEPT(cuda::std::move(opt).value()); -#endif // TEST_COMPILER_ICC ASSERT_SAME_TYPE(decltype(cuda::std::move(opt).value()), X&&); } { diff --git a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.swap/swap.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.swap/swap.pass.cpp index 6990228ac5b..26dedd6205f 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.swap/swap.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.swap/swap.pass.cpp @@ -319,9 +319,7 @@ int main(int, char**) { optional opt1; optional opt2; -#ifndef TEST_COMPILER_ICC static_assert(noexcept(opt1.swap(opt2)) == false, ""); -#endif // TEST_COMPILER_ICC assert(static_cast(opt1) == false); assert(static_cast(opt2) == false); opt1.swap(opt2); @@ -332,9 +330,7 @@ int main(int, char**) { optional opt1(1); optional opt2; -#ifndef TEST_COMPILER_ICC static_assert(noexcept(opt1.swap(opt2)) == false, ""); -#endif // TEST_COMPILER_ICC assert(static_cast(opt1) == true); assert(*opt1 == 1); assert(static_cast(opt2) == false); @@ -348,9 +344,7 @@ int main(int, char**) { optional opt1; optional opt2(2); -#ifndef TEST_COMPILER_ICC static_assert(noexcept(opt1.swap(opt2)) == false, ""); -#endif // TEST_COMPILER_ICC assert(static_cast(opt1) == false); assert(static_cast(opt2) == true); assert(*opt2 == 2); @@ -364,9 +358,7 @@ int main(int, char**) { optional opt1(1); optional opt2(2); -#ifndef TEST_COMPILER_ICC static_assert(noexcept(opt1.swap(opt2)) == false, ""); -#endif // TEST_COMPILER_ICC assert(static_cast(opt1) == true); assert(*opt1 == 1); assert(static_cast(opt2) == true); @@ -382,9 +374,7 @@ int main(int, char**) { optional opt1; optional opt2; -#ifndef TEST_COMPILER_ICC static_assert(noexcept(opt1.swap(opt2)) == false, ""); -#endif // TEST_COMPILER_ICC assert(static_cast(opt1) == false); assert(static_cast(opt2) == false); opt1.swap(opt2); diff --git a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/special_members.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/special_members.pass.cpp index f4bac770a1f..f596b9dd279 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/special_members.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/special_members.pass.cpp @@ -29,7 +29,6 @@ struct SpecialMemberTest { using O = cuda::std::optional; -#ifndef TEST_COMPILER_ICC static_assert(cuda::std::is_default_constructible_v, "optional is always default constructible."); static_assert(cuda::std::is_copy_constructible_v == cuda::std::is_copy_constructible_v, @@ -38,7 +37,6 @@ struct SpecialMemberTest static_assert(cuda::std::is_move_constructible_v == (cuda::std::is_copy_constructible_v || cuda::std::is_move_constructible_v), "optional is move constructible if and only if T is copy or move constructible."); -#endif // TEST_COMPILER_ICC static_assert(cuda::std::is_copy_assignable_v == (cuda::std::is_copy_constructible_v && cuda::std::is_copy_assignable_v), diff --git a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/triviality.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/triviality.pass.cpp index 10c6cc4464e..98316f65f55 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/triviality.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/triviality.pass.cpp @@ -39,7 +39,6 @@ struct SpecialMemberTest { using O = cuda::std::optional; -#ifndef TEST_COMPILER_ICC static_assert(implies(cuda::std::is_trivially_copy_constructible_v, cuda::std::is_trivially_copy_constructible_v), "optional is trivially copy constructible if T is trivially copy constructible."); @@ -47,7 +46,6 @@ struct SpecialMemberTest static_assert(implies(cuda::std::is_trivially_move_constructible_v, cuda::std::is_trivially_move_constructible_v), "optional is trivially move constructible if T is trivially move constructible"); -#endif // TEST_COMPILER_ICC static_assert(implies(cuda::std::is_trivially_copy_constructible_v && cuda::std::is_trivially_copy_assignable_v && cuda::std::is_trivially_destructible_v, diff --git a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.specalg/swap.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.specalg/swap.pass.cpp index 32cee42099d..041af209d75 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/optional/optional.specalg/swap.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/optional/optional.specalg/swap.pass.cpp @@ -340,9 +340,7 @@ int main(int, char**) { optional opt1; optional opt2; -#ifndef TEST_COMPILER_ICC static_assert(noexcept(swap(opt1, opt2)) == false, ""); -#endif // TEST_COMPILER_ICC assert(static_cast(opt1) == false); assert(static_cast(opt2) == false); swap(opt1, opt2); @@ -353,9 +351,7 @@ int main(int, char**) { optional opt1(1); optional opt2; -#ifndef TEST_COMPILER_ICC static_assert(noexcept(swap(opt1, opt2)) == false, ""); -#endif // TEST_COMPILER_ICC assert(static_cast(opt1) == true); assert(*opt1 == 1); assert(static_cast(opt2) == false); @@ -369,9 +365,7 @@ int main(int, char**) { optional opt1; optional opt2(2); -#ifndef TEST_COMPILER_ICC static_assert(noexcept(swap(opt1, opt2)) == false, ""); -#endif // TEST_COMPILER_ICC assert(static_cast(opt1) == false); assert(static_cast(opt2) == true); assert(*opt2 == 2); @@ -385,9 +379,7 @@ int main(int, char**) { optional opt1(1); optional opt2(2); -#ifndef TEST_COMPILER_ICC static_assert(noexcept(swap(opt1, opt2)) == false, ""); -#endif // TEST_COMPILER_ICC assert(static_cast(opt1) == true); assert(*opt1 == 1); assert(static_cast(opt2) == true); @@ -403,9 +395,7 @@ int main(int, char**) { optional opt1; optional opt2; -#ifndef TEST_COMPILER_ICC static_assert(noexcept(swap(opt1, opt2)) == false, ""); -#endif // TEST_COMPILER_ICC assert(static_cast(opt1) == false); assert(static_cast(opt2) == false); swap(opt1, opt2); diff --git a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.cons/char_ptr_ctor.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.cons/char_ptr_ctor.pass.cpp index 2e5364ab2c9..624a65ddd6a 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.cons/char_ptr_ctor.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.cons/char_ptr_ctor.pass.cpp @@ -63,11 +63,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 void test_char_pointer_ctor() { assert(v[i] == (s[M - 1 - i] == '1')); } - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 10; i < v.size(); ++i) { - _CCCL_DIAG_POP { assert(v[i] == false); } @@ -81,11 +78,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 void test_char_pointer_ctor() { assert(v[i] == (s[M - 1 - i] == '1')); } - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 10; i < v.size(); ++i) { - _CCCL_DIAG_POP { assert(v[i] == false); } @@ -99,11 +93,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 void test_char_pointer_ctor() { assert(v[i] == (s[M - 1 - i] == '1')); } - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 10; i < v.size(); ++i) { - _CCCL_DIAG_POP { assert(v[i] == false); } @@ -117,11 +108,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 void test_char_pointer_ctor() { assert(v[i] == (s[M - 1 - i] == 'b')); } - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 10; i < v.size(); ++i) { - _CCCL_DIAG_POP { assert(v[i] == false); } diff --git a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.cons/default.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.cons/default.pass.cpp index 8988d271c04..a4271169927 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.cons/default.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.cons/default.pass.cpp @@ -20,11 +20,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 void test_default_ctor() { TEST_CONSTEXPR cuda::std::bitset v1; assert(v1.size() == N); - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 0; i < v1.size(); ++i) { - _CCCL_DIAG_POP { assert(v1[i] == false); } diff --git a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp index cbe955b61d4..62e566b6376 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp @@ -30,11 +30,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 void test_val_ctor() { assert(v[i] == ((i & 1) != 0)); } - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = M; i < v.size(); ++i) { - _CCCL_DIAG_POP { assert(v[i] == false); } diff --git a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/count.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/count.pass.cpp index b6cafbf8fee..a311ecd3b97 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/count.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/count.pass.cpp @@ -26,11 +26,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 void test_count() const cuda::std::bitset v(cases[c]); cuda::std::size_t c1 = v.count(); cuda::std::size_t c2 = 0; - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 0; i < v.size(); ++i) { - _CCCL_DIAG_POP { if (v[i]) { diff --git a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/flip_all.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/flip_all.pass.cpp index 50d98a162e8..f60f9f428f7 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/flip_all.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/flip_all.pass.cpp @@ -26,11 +26,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 void test_flip_all() cuda::std::bitset v1(cases[c]); cuda::std::bitset v2 = v1; v2.flip(); - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 0; i < v1.size(); ++i) { - _CCCL_DIAG_POP { assert(v2[i] == ~v1[i]); } diff --git a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp index dd697adf159..45fb6a74c7d 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp @@ -32,11 +32,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 bool test_left_shift() cuda::std::bitset v1(cases[c]); cuda::std::bitset v2 = v1; v1 <<= s; - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 0; i < v1.size(); ++i) { - _CCCL_DIAG_POP { if (i < s) { diff --git a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/not_all.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/not_all.pass.cpp index 159c41179b9..4245f14c251 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/not_all.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/not_all.pass.cpp @@ -25,11 +25,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 void test_not_all() { cuda::std::bitset v1(cases[c]); cuda::std::bitset v2 = ~v1; - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 0; i < v1.size(); ++i) { - _CCCL_DIAG_POP { assert(v2[i] == ~v1[i]); } diff --git a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp index 8e0aca78f52..65f0d5d7f66 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp @@ -29,11 +29,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 bool test_op_and_eq() cuda::std::bitset v2(cases[c2]); cuda::std::bitset v3 = v1; v1 &= v2; - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 0; i < v1.size(); ++i) { - _CCCL_DIAG_POP { assert(v1[i] == (v3[i] && v2[i])); } diff --git a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp index 1d1af9ccceb..c09062a5f1a 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp @@ -35,11 +35,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 bool test_op_or_eq() cuda::std::bitset v2(cases[c2]); cuda::std::bitset v3 = v1; v1 |= v2; - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 0; i < v1.size(); ++i) { - _CCCL_DIAG_POP { assert(v1[i] == (v3[i] || v2[i])); } diff --git a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp index b45c47e37d7..b5b927e93f8 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp @@ -33,11 +33,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 bool test_op_xor_eq() cuda::std::bitset v2(cases[c2]); cuda::std::bitset v3 = v1; v1 ^= v2; - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 0; i < v1.size(); ++i) { - _CCCL_DIAG_POP { assert(v1[i] == (v3[i] != v2[i])); } diff --git a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/reset_all.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/reset_all.pass.cpp index e7f3ba1feda..aa410d8e4db 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/reset_all.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/reset_all.pass.cpp @@ -22,11 +22,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 void test_reset_all() cuda::std::bitset v; v.set(); v.reset(); - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 0; i < v.size(); ++i) { - _CCCL_DIAG_POP { assert(!v[i]); } diff --git a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp index a87afb94cff..5aafb6dc9da 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp @@ -34,13 +34,10 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 bool test_right_shift() cuda::std::bitset v1(cases[c]); cuda::std::bitset v2 = v1; v1 >>= s; - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 0; i < v1.size(); ++i) { if (i + s < v1.size()) { - _CCCL_DIAG_POP { assert(v1[i] == v2[i + s]); } diff --git a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/set_all.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/set_all.pass.cpp index f08ff34b5bd..0a34df86bbe 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/set_all.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/template.bitset/bitset.members/set_all.pass.cpp @@ -21,11 +21,8 @@ __host__ __device__ TEST_CONSTEXPR_CXX14 void test_set_all() { cuda::std::bitset v; v.set(); - _CCCL_DIAG_PUSH - _CCCL_DIAG_SUPPRESS_ICC(186) for (cuda::std::size_t i = 0; i < v.size(); ++i) { - _CCCL_DIAG_POP { assert(v[i]); } diff --git a/libcudacxx/test/libcudacxx/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/decrement.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/decrement.pass.cpp index ed24b18f8e7..d72d3d8646d 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/decrement.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/decrement.pass.cpp @@ -50,7 +50,6 @@ int main(int, char**) static_assert(testConstexpr(), ""); -#ifndef TEST_COMPILER_ICC for (unsigned i = 0; i <= 6; ++i) { weekday wd(i); @@ -58,7 +57,6 @@ int main(int, char**) assert(((wd--).c_encoding() == euclidian_subtraction(i, 1))); assert(((wd).c_encoding() == euclidian_subtraction(i, 2))); } -#endif // TEST_COMPILER_ICC return 0; } diff --git a/libcudacxx/test/libcudacxx/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/plus_minus_equal.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/plus_minus_equal.pass.cpp index aedc3fff6c5..c891494755a 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/plus_minus_equal.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/plus_minus_equal.pass.cpp @@ -71,14 +71,12 @@ int main(int, char**) assert(((wd).c_encoding() == euclidian_addition(i, 3))); } -#ifndef TEST_COMPILER_ICC for (unsigned i = 0; i <= 6; ++i) { weekday wd(i); assert(((wd -= days{4}).c_encoding() == euclidian_subtraction(i, 4))); assert(((wd).c_encoding() == euclidian_subtraction(i, 4))); } -#endif // TEST_COMPILER_ICC return 0; } diff --git a/libcudacxx/test/libcudacxx/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/minus.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/minus.pass.cpp index 0b17e7ff10e..fa4487c94da 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/minus.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/minus.pass.cpp @@ -69,9 +69,7 @@ int main(int, char**) { weekday wd = weekday{i} - days{j}; assert(wd + days{j} == weekday{i}); -#ifndef TEST_COMPILER_ICC assert((wd.c_encoding() == euclidian_subtraction(i, j))); -#endif // TEST_COMPILER_ICC } } diff --git a/libcudacxx/test/libcudacxx/std/utilities/utility/exchange/exchange.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/utility/exchange/exchange.pass.cpp index e23cd925598..08522690ae3 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/utility/exchange/exchange.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/utility/exchange/exchange.pass.cpp @@ -132,9 +132,7 @@ int main(int, char**) static_assert(test_constexpr(), ""); #endif -#ifndef TEST_COMPILER_ICC static_assert(test_noexcept(), ""); -#endif // TEST_COMPILER_ICC return 0; } diff --git a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.get/get_index.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.get/get_index.pass.cpp index 39e2b569f68..be2d54ecab3 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.get/get_index.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.get/get_index.pass.cpp @@ -40,18 +40,16 @@ __host__ __device__ void test_const_lvalue_get() using V = cuda::std::variant; constexpr V v(42); #if !defined(TEST_COMPILER_MSVC) && !(defined(TEST_COMPILER_GCC) && __GNUC__ < 9) \ - && !defined(TEST_COMPILER_CUDACC_BELOW_11_3) && !defined(TEST_COMPILER_ICC) + && !defined(TEST_COMPILER_CUDACC_BELOW_11_3) ASSERT_NOT_NOEXCEPT(cuda::std::get<0>(v)); -#endif // !TEST_COMPILER_MSVC && !TEST_COMPILER_GCC && TEST_COMPILER_CUDACC_BELOW_11_3 && !TEST_COMPILER_ICC +#endif // !TEST_COMPILER_MSVC && !TEST_COMPILER_GCC && TEST_COMPILER_CUDACC_BELOW_11_3 ASSERT_SAME_TYPE(decltype(cuda::std::get<0>(v)), const int&); static_assert(cuda::std::get<0>(v) == 42, ""); } { using V = cuda::std::variant; const V v(42); -#if !defined(TEST_COMPILER_ICC) ASSERT_NOT_NOEXCEPT(cuda::std::get<0>(v)); -#endif // !TEST_COMPILER_ICC ASSERT_SAME_TYPE(decltype(cuda::std::get<0>(v)), const int&); assert(cuda::std::get<0>(v) == 42); } @@ -59,18 +57,16 @@ __host__ __device__ void test_const_lvalue_get() using V = cuda::std::variant; constexpr V v(42l); #if !defined(TEST_COMPILER_MSVC) && !(defined(TEST_COMPILER_GCC) && __GNUC__ < 9) \ - && !defined(TEST_COMPILER_CUDACC_BELOW_11_3) && !defined(TEST_COMPILER_ICC) + && !defined(TEST_COMPILER_CUDACC_BELOW_11_3) ASSERT_NOT_NOEXCEPT(cuda::std::get<1>(v)); -#endif // !TEST_COMPILER_MSVC && !TEST_COMPILER_GCC && TEST_COMPILER_CUDACC_BELOW_11_3 && !TEST_COMPILER_ICC +#endif // !TEST_COMPILER_MSVC && !TEST_COMPILER_GCC && TEST_COMPILER_CUDACC_BELOW_11_3 ASSERT_SAME_TYPE(decltype(cuda::std::get<1>(v)), const long&); static_assert(cuda::std::get<1>(v) == 42, ""); } { using V = cuda::std::variant; const V v(42l); -#if !defined(TEST_COMPILER_ICC) ASSERT_NOT_NOEXCEPT(cuda::std::get<1>(v)); -#endif // !TEST_COMPILER_ICC ASSERT_SAME_TYPE(decltype(cuda::std::get<1>(v)), const long&); assert(cuda::std::get<1>(v) == 42); } @@ -105,9 +101,7 @@ __host__ __device__ void test_lvalue_get() { using V = cuda::std::variant; V v(42); -#if !defined(TEST_COMPILER_ICC) ASSERT_NOT_NOEXCEPT(cuda::std::get<0>(v)); -#endif // !TEST_COMPILER_ICC ASSERT_SAME_TYPE(decltype(cuda::std::get<0>(v)), int&); assert(cuda::std::get<0>(v) == 42); } @@ -155,9 +149,7 @@ __host__ __device__ void test_rvalue_get() { using V = cuda::std::variant; V v(42); -#if !defined(TEST_COMPILER_ICC) ASSERT_NOT_NOEXCEPT(cuda::std::get<0>(cuda::std::move(v))); -#endif // !TEST_COMPILER_ICC ASSERT_SAME_TYPE(decltype(cuda::std::get<0>(cuda::std::move(v))), int&&); assert(cuda::std::get<0>(cuda::std::move(v)) == 42); } @@ -207,9 +199,7 @@ __host__ __device__ void test_const_rvalue_get() { using V = cuda::std::variant; const V v(42); -#if !defined(TEST_COMPILER_ICC) ASSERT_NOT_NOEXCEPT(cuda::std::get<0>(cuda::std::move(v))); -#endif // !TEST_COMPILER_ICC ASSERT_SAME_TYPE(decltype(cuda::std::get<0>(cuda::std::move(v))), const int&&); assert(cuda::std::get<0>(cuda::std::move(v)) == 42); } diff --git a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.get/get_type.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.get/get_type.pass.cpp index 63fdd99d591..e6f6f665a22 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.get/get_type.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.get/get_type.pass.cpp @@ -34,18 +34,16 @@ __host__ __device__ void test_const_lvalue_get() using V = cuda::std::variant; constexpr V v(42); #if !defined(TEST_COMPILER_MSVC) && !(defined(TEST_COMPILER_GCC) && __GNUC__ < 9) \ - && !defined(TEST_COMPILER_CUDACC_BELOW_11_3) && !defined(TEST_COMPILER_ICC) + && !defined(TEST_COMPILER_CUDACC_BELOW_11_3) ASSERT_NOT_NOEXCEPT(cuda::std::get(v)); -#endif // !TEST_COMPILER_MSVC && !TEST_COMPILER_GCC && TEST_COMPILER_CUDACC_BELOW_11_3 && !TEST_COMPILER_ICC +#endif // !TEST_COMPILER_MSVC && !TEST_COMPILER_GCC && TEST_COMPILER_CUDACC_BELOW_11_3 ASSERT_SAME_TYPE(decltype(cuda::std::get(v)), const int&); static_assert(cuda::std::get(v) == 42, ""); } { using V = cuda::std::variant; const V v(42); -#if !defined(TEST_COMPILER_ICC) ASSERT_NOT_NOEXCEPT(cuda::std::get(v)); -#endif // !TEST_COMPILER_ICC ASSERT_SAME_TYPE(decltype(cuda::std::get(v)), const int&); assert(cuda::std::get(v) == 42); } @@ -53,18 +51,16 @@ __host__ __device__ void test_const_lvalue_get() using V = cuda::std::variant; constexpr V v(42l); #if !defined(TEST_COMPILER_MSVC) && !(defined(TEST_COMPILER_GCC) && __GNUC__ < 9) \ - && !defined(TEST_COMPILER_CUDACC_BELOW_11_3) && !defined(TEST_COMPILER_ICC) + && !defined(TEST_COMPILER_CUDACC_BELOW_11_3) ASSERT_NOT_NOEXCEPT(cuda::std::get(v)); -#endif // !TEST_COMPILER_MSVC && !TEST_COMPILER_GCC && TEST_COMPILER_CUDACC_BELOW_11_3 && !TEST_COMPILER_ICC +#endif // !TEST_COMPILER_MSVC && !TEST_COMPILER_GCC && TEST_COMPILER_CUDACC_BELOW_11_3 ASSERT_SAME_TYPE(decltype(cuda::std::get(v)), const long&); static_assert(cuda::std::get(v) == 42, ""); } { using V = cuda::std::variant; const V v(42l); -#if !defined(TEST_COMPILER_ICC) ASSERT_NOT_NOEXCEPT(cuda::std::get(v)); -#endif // !TEST_COMPILER_ICC ASSERT_SAME_TYPE(decltype(cuda::std::get(v)), const long&); assert(cuda::std::get(v) == 42); } @@ -99,9 +95,7 @@ __host__ __device__ void test_lvalue_get() { using V = cuda::std::variant; V v(42); -#if !defined(TEST_COMPILER_ICC) ASSERT_NOT_NOEXCEPT(cuda::std::get(v)); -#endif // !TEST_COMPILER_ICC ASSERT_SAME_TYPE(decltype(cuda::std::get(v)), int&); assert(cuda::std::get(v) == 42); } @@ -149,9 +143,7 @@ __host__ __device__ void test_rvalue_get() { using V = cuda::std::variant; V v(42); -#if !defined(TEST_COMPILER_ICC) ASSERT_NOT_NOEXCEPT(cuda::std::get(cuda::std::move(v))); -#endif // !TEST_COMPILER_ICC ASSERT_SAME_TYPE(decltype(cuda::std::get(cuda::std::move(v))), int&&); assert(cuda::std::get(cuda::std::move(v)) == 42); } @@ -201,9 +193,7 @@ __host__ __device__ void test_const_rvalue_get() { using V = cuda::std::variant; const V v(42); -#if !defined(TEST_COMPILER_ICC) ASSERT_NOT_NOEXCEPT(cuda::std::get(cuda::std::move(v))); -#endif // !TEST_COMPILER_ICC ASSERT_SAME_TYPE(decltype(cuda::std::get(cuda::std::move(v))), const int&&); assert(cuda::std::get(cuda::std::move(v)) == 42); } diff --git a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp index 2dc01c1bd38..088d349ff71 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp @@ -172,7 +172,6 @@ __host__ __device__ void test_T_assignment_noexcept() using V = cuda::std::variant; static_assert(cuda::std::is_nothrow_assignable::value, ""); } -#if !defined(TEST_COMPILER_ICC) { using V = cuda::std::variant; static_assert(!cuda::std::is_nothrow_assignable::value, ""); @@ -181,7 +180,6 @@ __host__ __device__ void test_T_assignment_noexcept() using V = cuda::std::variant; static_assert(!cuda::std::is_nothrow_assignable::value, ""); } -#endif // !TEST_COMPILER_ICC } __host__ __device__ void test_T_assignment_sfinae() diff --git a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp index 328b3621b7c..1f1e020fa2b 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp @@ -286,7 +286,6 @@ void makeEmpty(Variant& v) __host__ __device__ void test_copy_assignment_not_noexcept() { -#if !defined(TEST_COMPILER_ICC) { using V = cuda::std::variant; static_assert(!cuda::std::is_nothrow_copy_assignable::value, ""); @@ -295,7 +294,6 @@ __host__ __device__ void test_copy_assignment_not_noexcept() using V = cuda::std::variant; static_assert(!cuda::std::is_nothrow_copy_assignable::value, ""); } -#endif // !TEST_COMPILER_ICC } __host__ __device__ void test_copy_assignment_sfinae() @@ -575,7 +573,7 @@ __host__ __device__ void test_copy_assignment_different_index() assert(&vref == &v1); assert(v1.index() == 1); assert(cuda::std::get<1>(v1).value == 42); -#if !defined(TEST_COMPILER_MSVC) && !defined(TEST_COMPILER_ICC) +#if !defined(TEST_COMPILER_MSVC) assert(CopyAssign::alive() == 2); assert(CopyAssign::copy_construct() == 1); assert(CopyAssign::move_construct() == 1); @@ -585,7 +583,7 @@ __host__ __device__ void test_copy_assignment_different_index() // interactions of many weird things these tests are doing. asm volatile("" ::: "memory"); assert(CopyAssign::copy_assign() == 0); -#endif // !TEST_COMPILER_MSVC && !TEST_COMPILER_ICC +#endif // !TEST_COMPILER_MSVC } #ifndef TEST_HAS_NO_EXCEPTIONS # if defined(_LIBCUDACXX_HAS_STRING) diff --git a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp index be47597f3b8..5f743270ad8 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp @@ -182,7 +182,6 @@ __host__ __device__ void test_move_assignment_noexcept() using V = cuda::std::variant; static_assert(cuda::std::is_nothrow_move_assignable::value, ""); } -#if !defined(TEST_COMPILER_ICC) { using V = cuda::std::variant; static_assert(!cuda::std::is_nothrow_move_assignable::value, ""); @@ -191,7 +190,6 @@ __host__ __device__ void test_move_assignment_noexcept() using V = cuda::std::variant; static_assert(!cuda::std::is_nothrow_move_assignable::value, ""); } -#endif // !TEST_COMPILER_ICC } __host__ __device__ void test_move_assignment_sfinae() diff --git a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp index c19d40476a7..fb63a88a2d8 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp @@ -62,12 +62,10 @@ __host__ __device__ void test_T_ctor_noexcept() using V = cuda::std::variant; static_assert(cuda::std::is_nothrow_constructible::value, ""); } -#if !defined(TEST_COMPILER_ICC) { using V = cuda::std::variant; static_assert(!cuda::std::is_nothrow_constructible::value, ""); } -#endif // !TEST_COMPILER_ICC } __host__ __device__ void test_T_ctor_sfinae() diff --git a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.ctor/default.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.ctor/default.pass.cpp index bded8e83f59..a85ada1db74 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.ctor/default.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.ctor/default.pass.cpp @@ -67,12 +67,10 @@ __host__ __device__ void test_default_ctor_noexcept() using V = cuda::std::variant; static_assert(cuda::std::is_nothrow_default_constructible::value, ""); } -#if !defined(TEST_COMPILER_ICC) { using V = cuda::std::variant; static_assert(!cuda::std::is_nothrow_default_constructible::value, ""); } -#endif // !TEST_COMPILER_ICC } #ifndef TEST_HAS_NO_EXCEPTIONS diff --git a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.ctor/move.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.ctor/move.pass.cpp index 668a717acca..1a580951d6e 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.ctor/move.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.ctor/move.pass.cpp @@ -160,7 +160,6 @@ __host__ __device__ void test_move_noexcept() using V = cuda::std::variant; static_assert(cuda::std::is_nothrow_move_constructible::value, ""); } -#if !defined(TEST_COMPILER_ICC) { using V = cuda::std::variant; static_assert(!cuda::std::is_nothrow_move_constructible::value, ""); @@ -169,7 +168,6 @@ __host__ __device__ void test_move_noexcept() using V = cuda::std::variant; static_assert(!cuda::std::is_nothrow_move_constructible::value, ""); } -#endif // !TEST_COMPILER_ICC } __host__ __device__ void test_move_ctor_sfinae() diff --git a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.swap/swap.pass.cpp b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.swap/swap.pass.cpp index ec2a53f5a7a..84f234ea4ee 100644 --- a/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.swap/swap.pass.cpp +++ b/libcudacxx/test/libcudacxx/std/utilities/variant/variant.variant/variant.swap/swap.pass.cpp @@ -531,9 +531,7 @@ __host__ __device__ void test_swap_noexcept() { using V = cuda::std::variant; static_assert(cuda::std::is_swappable_v && has_swap_member(), ""); -#if !defined(TEST_COMPILER_ICC) static_assert(!cuda::std::is_nothrow_swappable_v, ""); -#endif // !TEST_COMPILER_ICC // instantiate swap V v1, v2; v1.swap(v2); @@ -542,9 +540,7 @@ __host__ __device__ void test_swap_noexcept() { using V = cuda::std::variant; static_assert(cuda::std::is_swappable_v && has_swap_member(), ""); -#if !defined(TEST_COMPILER_ICC) static_assert(!cuda::std::is_nothrow_swappable_v, ""); -#endif // !TEST_COMPILER_ICC // instantiate swap V v1, v2; v1.swap(v2); @@ -553,9 +549,7 @@ __host__ __device__ void test_swap_noexcept() { using V = cuda::std::variant; static_assert(cuda::std::is_swappable_v && has_swap_member(), ""); -#if !defined(TEST_COMPILER_ICC) static_assert(!cuda::std::is_nothrow_swappable_v, ""); -#endif // !TEST_COMPILER_ICC // instantiate swap V v1, v2; v1.swap(v2); diff --git a/libcudacxx/test/public_headers/CMakeLists.txt b/libcudacxx/test/public_headers/CMakeLists.txt index adbd6eecaab..b0e48c19663 100644 --- a/libcudacxx/test/public_headers/CMakeLists.txt +++ b/libcudacxx/test/public_headers/CMakeLists.txt @@ -46,9 +46,6 @@ function(libcudacxx_add_public_header_test header) PRIVATE ${headertest_warning_levels_device} -DLIBCUDACXX_ENABLE_EXPERIMENTAL_MEMORY_RESOURCE) - if (CCCL_SUPPRESS_ICC_DEPRECATION_WARNING) - target_compile_definitions(headertest_${header_name} PRIVATE CCCL_SUPPRESS_ICC_DEPRECATION_WARNING) - endif() if (CCCL_SUPPRESS_MSVC2017_DEPRECATION_WARNING) target_compile_definitions(headertest_${header_name} PRIVATE CCCL_SUPPRESS_MSVC2017_DEPRECATION_WARNING) endif() diff --git a/libcudacxx/test/public_headers_host_only/CMakeLists.txt b/libcudacxx/test/public_headers_host_only/CMakeLists.txt index 71b97373b1c..57b6c70ede9 100644 --- a/libcudacxx/test/public_headers_host_only/CMakeLists.txt +++ b/libcudacxx/test/public_headers_host_only/CMakeLists.txt @@ -29,9 +29,6 @@ function(libcudacxx_add_std_header_test header) target_include_directories(headertest_std_${header_name} PRIVATE "${libcudacxx_SOURCE_DIR}/include") target_compile_options(headertest_std_${header_name} PRIVATE ${headertest_warning_levels_host}) target_compile_definitions(headertest_std_${header_name} PRIVATE CCCL_ENABLE_ASSERTIONS) - if (CCCL_SUPPRESS_ICC_DEPRECATION_WARNING) - target_compile_definitions(headertest_std_${header_name} PRIVATE CCCL_SUPPRESS_ICC_DEPRECATION_WARNING) - endif() if (CCCL_SUPPRESS_MSVC2017_DEPRECATION_WARNING) target_compile_definitions(headertest_std_${header_name} PRIVATE CCCL_SUPPRESS_MSVC2017_DEPRECATION_WARNING) endif() diff --git a/libcudacxx/test/support/test_macros.h b/libcudacxx/test/support/test_macros.h index dc9407fe035..35a5cc36d1a 100644 --- a/libcudacxx/test/support/test_macros.h +++ b/libcudacxx/test/support/test_macros.h @@ -65,9 +65,7 @@ # define TEST_HAS_BUILTIN_IDENTIFIER(X) 0 #endif -#if defined(__INTEL_COMPILER) -# define TEST_COMPILER_ICC -#elif defined(__NVCOMPILER) +#if defined(__NVCOMPILER) # define TEST_COMPILER_NVHPC #elif defined(__clang__) # define TEST_COMPILER_CLANG @@ -463,9 +461,9 @@ __host__ __device__ constexpr bool unused(T&&...) # endif #endif // defined(TEST_COMPILER_MSVC) -#if defined(TEST_COMPILER_NVHPC) || defined(TEST_COMPILER_ICC) +#if defined(TEST_COMPILER_NVHPC) # define TEST_COMPILER_BROKEN_SMF_NOEXCEPT -#endif // TEST_COMPILER_NVHPC || TEST_COMPILER_ICC +#endif // TEST_COMPILER_NVHPC #if (defined(TEST_WINDOWS_DLL) && !defined(_MSC_VER)) || defined(__MVS__) // Normally, a replaced e.g. 'operator new' ends up used if the user code diff --git a/libcudacxx/test/utils/libcudacxx/compiler.py b/libcudacxx/test/utils/libcudacxx/compiler.py index 1b375f9d39f..00f0ec3f0e1 100644 --- a/libcudacxx/test/utils/libcudacxx/compiler.py +++ b/libcudacxx/test/utils/libcudacxx/compiler.py @@ -114,11 +114,6 @@ def _initTypeAndVersion(self): major_ver = macros["__NVCOMPILER_MAJOR__"].strip() minor_ver = macros["__NVCOMPILER_MINOR__"].strip() patchlevel = macros["__NVCOMPILER_PATCHLEVEL__"].strip() - elif "__INTEL_COMPILER" in macros.keys(): - compiler_type = "icc" - major_ver = int(macros["__INTEL_COMPILER"]) / 100 - minor_ver = (int(macros["__INTEL_COMPILER"]) % 100) / 10 - patchlevel = int(macros["__INTEL_COMPILER"]) % 10 elif "__clang__" in macros.keys(): compiler_type = "clang" # Treat Apple's LLVM fork differently. diff --git a/libcudacxx/test/utils/libcudacxx/dumpversion.cpp b/libcudacxx/test/utils/libcudacxx/dumpversion.cpp index 55e2e6eed3c..162b6bf2d6a 100644 --- a/libcudacxx/test/utils/libcudacxx/dumpversion.cpp +++ b/libcudacxx/test/utils/libcudacxx/dumpversion.cpp @@ -26,11 +26,6 @@ int main() major_version = __NVCOMPILER; minor_version = ___NVCOMPILER_MINOR__; patch_level = ___NVCOMPILER_PATCHLEVEL__; -#elif defined(__INTEL_COMPILER) - compiler_type = "icc"; - major_version = __INTEL_COMPILER / 100; - minor_version = (__INTEL_COMPILER % 100) / 10; - patch_level = __INTEL_COMPILER % 10; #elif defined(__clang__) // Treat Apple's LLVM fork differently. # if defined(__apple_build_version__) diff --git a/libcudacxx/test/utils/libcudacxx/test/config.py b/libcudacxx/test/utils/libcudacxx/test/config.py index d52b869dd17..c2b4871790e 100644 --- a/libcudacxx/test/utils/libcudacxx/test/config.py +++ b/libcudacxx/test/utils/libcudacxx/test/config.py @@ -423,10 +423,6 @@ def configure_cxx(self): ) ) - if "icc" in self.config.available_features: - self.cxx.link_flags += ["-lirc"] - self.cxx.compile_flags += ["-Xcompiler=-diag-disable=10441"] - def _configure_clang_cl(self, clang_path): def _split_env_var(var): return [p.strip() for p in os.environ.get(var, "").split(";") if p.strip()] diff --git a/thrust/testing/async_copy.cu b/thrust/testing/async_copy.cu index cf67652ac06..cd18d83a782 100644 --- a/thrust/testing/async_copy.cu +++ b/thrust/testing/async_copy.cu @@ -207,11 +207,6 @@ struct test_async_copy_counting_iterator_input_to_host_vector f0.wait(); ASSERT_EQUAL(d0, d1); - -# if _CCCL_COMPILER(ICC) - // ICC fails this for some unknown reason - see #1468. - KNOWN_FAILURE; -# endif // _CCCL_COMPILER(ICC) } }; }; diff --git a/thrust/testing/scan.cu b/thrust/testing/scan.cu index 6a98cb99e61..c30eee013b6 100644 --- a/thrust/testing/scan.cu +++ b/thrust/testing/scan.cu @@ -25,18 +25,6 @@ template void TestScanSimple() { using T = typename Vector::value_type; - - // icc miscompiles the intermediate sum updates for custom_numeric. - // The issue doesn't happen with opts disabled, or on other compilers. - // Printing the intermediate sum each iteration "fixes" the issue, - // so likely a bad optimization. -#if _CCCL_COMPILER(ICC) - if (std::is_same::value) - { - return; - } -#endif - typename Vector::iterator iter; Vector input(5); diff --git a/thrust/thrust/complex.h b/thrust/thrust/complex.h index 1cca771fa45..b46b88c6b09 100644 --- a/thrust/thrust/complex.h +++ b/thrust/thrust/complex.h @@ -341,19 +341,13 @@ struct complex private: #if _CCCL_CUDA_COMPILER(NVCC, <, 11, 7) struct __align__(sizeof(T) * 2) storage -#elif _CCCL_COMPILER(ICC) - struct storage -#else // !(_CCCL_COMPILER(ICC) || _CCCL_CUDA_COMPILER(NVCC, <, 11, 7)) +#else // _CCCL_CUDA_COMPILER(NVCC, <, 11, 7)) struct alignas(sizeof(T) * 2) storage -#endif // !(_CCCL_COMPILER(ICC) || _CCCL_CUDA_COMPILER(NVCC, <, 11, 7)) +#endif // _CCCL_CUDA_COMPILER(NVCC, <, 11, 7)) { T x; T y; - } -#if _CCCL_COMPILER(ICC) - __attribute__((aligned(sizeof(T) * 2))) -#endif // _CCCL_COMPILER(ICC) - ; + }; storage data; }; diff --git a/thrust/thrust/detail/config/compiler.h b/thrust/thrust/detail/config/compiler.h index 25d8ebfb29e..06a5f950712 100644 --- a/thrust/thrust/detail/config/compiler.h +++ b/thrust/thrust/detail/config/compiler.h @@ -62,9 +62,6 @@ # define THRUST_MSVC_VERSION _MSC_VER //! deprecated [Since 2.7] # define THRUST_MSVC_VERSION_FULL _MSC_FULL_VER -#elif _CCCL_COMPILER(ICC) -//! deprecated [Since 2.7] -# define THRUST_HOST_COMPILER THRUST_HOST_COMPILER_INTEL #elif _CCCL_COMPILER(CLANG) //! deprecated [Since 2.7] # define THRUST_HOST_COMPILER THRUST_HOST_COMPILER_CLANG diff --git a/thrust/thrust/detail/preprocessor.h b/thrust/thrust/detail/preprocessor.h index 0c191d3b460..1ca936dba3f 100644 --- a/thrust/thrust/detail/preprocessor.h +++ b/thrust/thrust/detail/preprocessor.h @@ -630,8 +630,7 @@ /// \def THRUST_CURRENT_FUNCTION /// \brief The name of the current function as a string. /// -#if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) \ - || defined(__ghs__) +#if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || defined(__ghs__) # define THRUST_CURRENT_FUNCTION __PRETTY_FUNCTION__ #elif defined(__DMC__) && (__DMC__ >= 0x810) # define THRUST_CURRENT_FUNCTION __PRETTY_FUNCTION__ diff --git a/thrust/thrust/system/cuda/detail/future.inl b/thrust/thrust/system/cuda/detail/future.inl index 343a18156ec..7200e51d491 100644 --- a/thrust/thrust/system/cuda/detail/future.inl +++ b/thrust/thrust/system/cuda/detail/future.inl @@ -461,7 +461,6 @@ public: _CCCL_DIAG_PUSH _CCCL_DIAG_SUPPRESS_CLANG("-Wreorder") _CCCL_DIAG_SUPPRESS_GCC("-Wreorder") - _CCCL_DIAG_SUPPRESS_ICC(2407) template _CCCL_HOST explicit async_addressable_value_with_keep_alives( unique_stream&& stream, keep_alives_type&& keep_alives, ComputeContent&& compute_content) From 31e49d476c02fb33652e6214ca883e5472e278eb Mon Sep 17 00:00:00 2001 From: Wesley Maxey <71408887+wmaxey@users.noreply.github.com> Date: Wed, 8 Jan 2025 22:49:07 -0800 Subject: [PATCH 07/24] Make CUB NVRTC commandline arguments come from a cmake template (#3292) --- cub/test/CMakeLists.txt | 6 ++---- cub/test/catch2_test_nvrtc.cu | 1 + cub/test/cmake/nvrtc_args.h.in | 6 ++++++ 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 cub/test/cmake/nvrtc_args.h.in diff --git a/cub/test/CMakeLists.txt b/cub/test/CMakeLists.txt index 17201c4704f..c86d24754de 100644 --- a/cub/test/CMakeLists.txt +++ b/cub/test/CMakeLists.txt @@ -227,10 +227,8 @@ function(cub_add_test target_name_var test_name test_src cub_target launcher_id) endif() # CUB_SEPARATE_CATCH2 if ("${test_target}" MATCHES "nvrtc") - target_compile_definitions(${test_target} PRIVATE NVRTC_CUB_PATH="-I${CMAKE_SOURCE_DIR}/cub") - target_compile_definitions(${test_target} PRIVATE NVRTC_THRUST_PATH="-I${CMAKE_SOURCE_DIR}/thrust") - target_compile_definitions(${test_target} PRIVATE NVRTC_LIBCUDACXX_PATH="-I${CMAKE_SOURCE_DIR}/libcudacxx/include") - target_compile_definitions(${test_target} PRIVATE NVRTC_CTK_PATH="-I${CUDAToolkit_INCLUDE_DIRS}") + configure_file("cmake/nvrtc_args.h.in" ${CMAKE_CURRENT_BINARY_DIR}/nvrtc_args.h) + target_include_directories(${test_target} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) endif() if ("${test_target}" MATCHES "test.iterator") diff --git a/cub/test/catch2_test_nvrtc.cu b/cub/test/catch2_test_nvrtc.cu index 01f39027ce0..71187ecc83a 100644 --- a/cub/test/catch2_test_nvrtc.cu +++ b/cub/test/catch2_test_nvrtc.cu @@ -31,6 +31,7 @@ #include #include +#include TEST_CASE("Test nvrtc", "[test][nvrtc]") { diff --git a/cub/test/cmake/nvrtc_args.h.in b/cub/test/cmake/nvrtc_args.h.in new file mode 100644 index 00000000000..215804ad0f0 --- /dev/null +++ b/cub/test/cmake/nvrtc_args.h.in @@ -0,0 +1,6 @@ +#pragma once + +const char* NVRTC_CUB_PATH = "-I@CMAKE_SOURCE_DIR@/cub"; +const char* NVRTC_THRUST_PATH = "-I@CMAKE_SOURCE_DIR@/thrust"; +const char* NVRTC_LIBCUDACXX_PATH = "-I@CMAKE_SOURCE_DIR@/libcudacxx/include"; +const char* NVRTC_CTK_PATH = "-I@CUDAToolkit_INCLUDE_DIRS@"; From 58d8893dee7e53fc034589b7b99ab67814a618da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Augonnet?= <158148890+caugonnet@users.noreply.github.com> Date: Thu, 9 Jan 2025 09:42:37 +0100 Subject: [PATCH 08/24] Propose the same components (thrust, cub, libc++, cudax, cuda.parallel,...) in the bug report template than in the feature request template (#3295) --- .github/ISSUE_TEMPLATE/bug_report.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 725009e6256..74de63e7a94 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -37,6 +37,11 @@ body: - Thrust - CUB - libcu++ + - CUDA Experimental (cudax) + - cuda.cooperative (Python) + - cuda.parallel (Python) + - General CCCL + - Infrastructure - Not sure validations: required: true From 466c0d3cefe554d884c53ac242d95b4b598da5e6 Mon Sep 17 00:00:00 2001 From: Wesley Maxey <71408887+wmaxey@users.noreply.github.com> Date: Thu, 9 Jan 2025 01:30:16 -0800 Subject: [PATCH 09/24] Use process isolation instead of default hyper-v for Windows. (#3294) Try improving build times by using process isolation instead of hyper-v Co-authored-by: Michael Schellenberger Costa --- .github/actions/workflow-run-job-windows/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/workflow-run-job-windows/action.yml b/.github/actions/workflow-run-job-windows/action.yml index 805beff3446..1b5289a5a7d 100644 --- a/.github/actions/workflow-run-job-windows/action.yml +++ b/.github/actions/workflow-run-job-windows/action.yml @@ -50,6 +50,7 @@ runs: docker run \ --mount type=bind,source="${{steps.paths.outputs.HOST_REPO}}",target="${{steps.paths.outputs.MOUNT_REPO}}" \ --workdir "${{steps.paths.outputs.MOUNT_REPO}}" \ + --isolation=process \ ${{ inputs.image }} \ powershell -c " [System.Environment]::SetEnvironmentVariable('AWS_ACCESS_KEY_ID','${{env.AWS_ACCESS_KEY_ID}}'); From f43dc54f8d54999d540f380b627314379ba7316d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 9 Jan 2025 11:21:10 +0100 Subject: [PATCH 10/24] [pre-commit.ci] pre-commit autoupdate (#3248) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [pre-commit.ci] pre-commit autoupdate updates: - [github.com/pre-commit/mirrors-clang-format: v18.1.8 → v19.1.6](https://github.com/pre-commit/mirrors-clang-format/compare/v18.1.8...v19.1.6) - [github.com/astral-sh/ruff-pre-commit: v0.8.3 → v0.8.6](https://github.com/astral-sh/ruff-pre-commit/compare/v0.8.3...v0.8.6) - [github.com/pre-commit/mirrors-mypy: v1.13.0 → v1.14.1](https://github.com/pre-commit/mirrors-mypy/compare/v1.13.0...v1.14.1) Co-authored-by: Michael Schellenberger Costa --- .pre-commit-config.yaml | 6 +- cub/cub/agent/agent_histogram.cuh | 2 +- cub/cub/agent/agent_reduce.cuh | 8 +- cub/cub/block/block_radix_rank.cuh | 3 +- cub/cub/detail/strong_load.cuh | 153 +++------- cub/cub/detail/strong_store.cuh | 215 ++++--------- .../device/dispatch/dispatch_transform.cuh | 21 +- .../tuning/tuning_three_way_partition.cuh | 5 +- cub/cub/thread/thread_operators.cuh | 4 +- cub/cub/thread/thread_reduce.cuh | 8 +- .../catch2_test_device_for_each_in_extents.cu | 4 +- cub/test/catch2_test_device_transform.cu | 4 +- cub/test/test_block_radix_rank.cu | 2 +- .../__async/sender/basic_sender.cuh | 12 +- .../__async/sender/completion_signatures.cuh | 81 ++--- .../__async/sender/continue_on.cuh | 4 +- .../cuda/experimental/__async/sender/cpos.cuh | 8 +- .../experimental/__async/sender/let_value.cuh | 5 +- .../__async/sender/stop_token.cuh | 4 +- .../experimental/__async/sender/tuple.cuh | 4 +- .../__memory_resource/any_resource.cuh | 8 +- .../__utility/basic_any/basic_any_from.cuh | 8 +- .../__utility/basic_any/basic_any_ptr.cuh | 11 +- .../__utility/basic_any/interfaces.cuh | 12 +- .../experimental/__utility/basic_any/iset.cuh | 4 +- .../experimental/__utility/basic_any/rtti.cuh | 8 +- .../__utility/basic_any/virtual_ptrs.cuh | 6 +- .../__utility/basic_any/virtual_tables.cuh | 4 +- cudax/test/stf/error_checks/ctx_mismatch.cu | 3 +- .../error_checks/data_interface_mismatch.cu | 3 +- .../test/stf/error_checks/double_finalize.cu | 3 +- cudax/test/stf/error_checks/erase_frozen.cu | 3 +- .../error_checks/misformed_tasks_dbl_end.cu | 3 +- .../error_checks/misformed_tasks_dbl_start.cu | 3 +- .../test/stf/error_checks/non_managed_data.cu | 3 +- .../stf/error_checks/slice_check_bounds.cu | 3 +- .../stf/error_checks/uninitialized_data.cu | 3 +- .../stf/error_checks/unsatisfiable_spec.cu | 3 +- cudax/test/stf/error_checks/write_frozen.cu | 3 +- .../cuda/__barrier/barrier_block_scope.h | 57 ++-- .../cuda/__barrier/barrier_expect_tx.h | 7 +- .../cuda/__functional/address_stability.h | 4 +- .../__memcpy_async/cp_async_shared_global.h | 20 +- .../cuda/__memcpy_async/memcpy_completion.h | 8 +- .../instructions/generated/barrier_cluster.h | 25 +- .../instructions/generated/cp_async_bulk.h | 28 +- .../generated/cp_async_bulk_commit_group.h | 5 +- .../generated/cp_async_bulk_multicast.h | 13 +- .../generated/cp_async_bulk_tensor.h | 135 ++++----- .../cp_async_bulk_tensor_multicast.h | 85 +++--- .../generated/cp_async_bulk_wait_group.h | 10 +- .../generated/cp_reduce_async_bulk.h | 271 +++++++---------- .../generated/cp_reduce_async_bulk_bf16.h | 24 +- .../generated/cp_reduce_async_bulk_f16.h | 24 +- .../generated/fence_mbarrier_init.h | 5 +- .../generated/fence_proxy_alias.h | 5 +- .../generated/fence_proxy_async.h | 5 +- .../__ptx/instructions/generated/get_sreg.h | 185 ++---------- .../__ptx/instructions/generated/getctarank.h | 5 +- .../instructions/generated/mbarrier_arrive.h | 27 +- .../generated/mbarrier_arrive_expect_tx.h | 7 +- .../generated/mbarrier_arrive_no_complete.h | 7 +- .../instructions/generated/mbarrier_init.h | 5 +- .../generated/mbarrier_test_wait.h | 6 +- .../generated/mbarrier_test_wait_parity.h | 6 +- .../generated/mbarrier_try_wait.h | 13 +- .../generated/mbarrier_try_wait_parity.h | 13 +- .../__ptx/instructions/generated/red_async.h | 103 ++++--- .../__ptx/instructions/generated/st_async.h | 16 +- .../generated/tensormap_replace.h | 132 ++++---- libcudacxx/include/cuda/pipeline | 13 +- .../include/cuda/std/__atomic/types/base.h | 36 +-- .../include/cuda/std/__atomic/types/common.h | 4 +- .../include/cuda/std/__atomic/types/locked.h | 28 +- .../include/cuda/std/__atomic/types/small.h | 36 +-- .../cuda/std/__concepts/concept_macros.h | 5 +- libcudacxx/include/cuda/std/__cstddef/types.h | 2 +- libcudacxx/include/cuda/std/__cuda/chrono.h | 3 +- .../include/cuda/std/__functional/function.h | 2 +- .../include/cuda/std/__functional/mem_fn.h | 2 +- .../include/cuda/std/__iterator/access.h | 16 +- libcudacxx/include/cuda/std/__iterator/data.h | 8 +- .../include/cuda/std/__iterator/empty.h | 4 +- .../include/cuda/std/__iterator/iter_move.h | 5 +- .../cuda/std/__iterator/iterator_traits.h | 11 +- .../cuda/std/__iterator/reverse_access.h | 16 +- .../include/cuda/std/__mdspan/extents.h | 3 +- libcudacxx/include/cuda/std/__mdspan/macros.h | 10 +- libcudacxx/include/cuda/std/__mdspan/mdspan.h | 15 +- .../cuda/std/__memory/allocator_traits.h | 4 +- .../cuda/std/__memory/pointer_traits.h | 4 +- libcudacxx/include/cuda/std/__ranges/access.h | 5 +- libcudacxx/include/cuda/std/__ranges/data.h | 5 +- libcudacxx/include/cuda/std/__ranges/rend.h | 5 +- .../include/cuda/std/__ranges/subrange.h | 4 +- .../cuda/std/__thread/threading_support.h | 4 +- .../std/__thread/threading_support_cuda.h | 3 +- .../cuda/std/__type_traits/type_list.h | 4 +- .../cuda/std/detail/libcxx/include/span | 4 +- .../cuda/std/detail/libcxx/include/variant | 20 +- .../atomic.ext/atomic_fetch_max.pass.cpp | 3 +- .../atomic.ext/atomic_fetch_min.pass.cpp | 3 +- .../cuda/atomics/atomic.ext/atomic_helpers.h | 9 +- .../barrier/cp_async_bulk_tensor_1d.pass.cpp | 5 +- .../barrier/cp_async_bulk_tensor_2d.pass.cpp | 5 +- .../barrier/cp_async_bulk_tensor_3d.pass.cpp | 5 +- .../barrier/cp_async_bulk_tensor_4d.pass.cpp | 5 +- .../barrier/cp_async_bulk_tensor_5d.pass.cpp | 5 +- .../test/libcudacxx/cuda/memcpy_async.h | 18 +- .../cuda/memcpy_async/group_memcpy_async.h | 18 +- ...ne_memcpy_async_producer_consumer.pass.cpp | 3 +- ...peline_memcpy_async_thread_scope_generic.h | 15 +- .../atomics.types.generic/bool.pass.cpp | 3 +- .../floating_point.pass.cpp | 3 +- .../floating_point_ref.pass.cpp | 3 +- .../floating_point_ref_constness.pass.cpp | 3 +- .../integral/1b_integral_cuda.pass.cpp | 3 +- .../integral/1b_integral_std.pass.cpp | 3 +- .../integral/2b_integral_cuda.pass.cpp | 3 +- .../integral/2b_integral_std.pass.cpp | 3 +- .../integral/4b_integral_cuda.pass.cpp | 3 +- .../integral/4b_integral_std.pass.cpp | 3 +- .../integral/8b_integral_cuda.pass.cpp | 3 +- .../integral/8b_integral_std.pass.cpp | 3 +- .../integral/integral_ref.pass.cpp | 3 +- .../integral/integral_ref_constness.pass.cpp | 3 +- .../atomic_helpers.h | 15 +- .../equality_comparable.compile.pass.cpp | 8 +- .../equality_comparable_with.compile.pass.cpp | 284 ++++++++---------- .../totally_ordered.pass.cpp | 8 +- .../totally_ordered_with.pass.cpp | 258 ++++++++-------- .../concepts.object/copyable.compile.pass.cpp | 8 +- .../concepts.object/movable.compile.pass.cpp | 8 +- .../concepts.object/regular.compile.pass.cpp | 16 +- .../semiregular.compile.pass.cpp | 8 +- .../array/array.creation/to_array.pass.cpp | 2 +- .../incrementable_traits.compile.pass.cpp | 12 +- .../indirectly_readable.compile.pass.cpp | 6 +- .../weakly_incrementable.compile.pass.cpp | 12 +- .../thread/thread.barrier/completion.pass.cpp | 3 +- .../func.bind_front/bind_front.pass.cpp | 4 +- .../func.invoke/invoke.pass.cpp | 4 +- .../refwrap.invoke/invoke.compile.fail.cpp | 2 +- .../meta.trans.other/common_type.pass.cpp | 3 +- .../meta.trans.other/result_of.pass.cpp | 2 +- .../meta.trans.other/result_of11.pass.cpp | 2 +- .../bitset.members/to_ullong.pass.cpp | 2 +- .../bitset.members/to_ulong.pass.cpp | 2 +- .../tuple.apply/apply_extended_types.pass.cpp | 2 +- .../utility/utility.swap/swap.pass.cpp | 4 +- .../utility/utility.swap/swap_array.pass.cpp | 4 +- .../variant.swap/swap.pass.cpp | 4 +- libcudacxx/test/support/archetypes.h | 3 +- .../test/support/charconv_test_helpers.h | 4 +- libcudacxx/test/support/concurrent_agents.h | 3 +- libcudacxx/test/support/counting_predicates.h | 8 +- libcudacxx/test/support/cuda_space_selector.h | 3 +- libcudacxx/test/support/is_transparent.h | 20 +- libcudacxx/test/support/rapid-cxx-test.h | 144 ++++----- libcudacxx/test/support/test_convertible.h | 4 +- thrust/testing/async_transform.cu | 18 +- thrust/testing/cuda/transform.cu | 8 +- thrust/testing/unittest/testframework.h | 6 +- thrust/thrust/detail/functional/actor.h | 4 +- thrust/thrust/detail/functional/operators.h | 24 +- thrust/thrust/detail/tuple_transform.h | 3 +- .../detail/type_traits/pointer_traits.h | 12 +- thrust/thrust/functional.h | 16 +- thrust/thrust/optional.h | 10 +- thrust/thrust/system/cuda/detail/transform.h | 4 +- .../type_traits/is_contiguous_iterator.h | 4 +- 171 files changed, 1361 insertions(+), 1940 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7dd411ba39b..d317e931e78 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,7 +17,7 @@ repos: - id: mixed-line-ending - id: trailing-whitespace - repo: https://github.com/pre-commit/mirrors-clang-format - rev: v18.1.8 + rev: v19.1.6 hooks: - id: clang-format types_or: [file] @@ -39,7 +39,7 @@ repos: # TODO/REMINDER: add the Ruff vscode extension to the devcontainers # Ruff, the Python auto-correcting linter/formatter written in Rust - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.8.3 + rev: v0.8.6 hooks: - id: ruff # linter - id: ruff-format # formatter @@ -57,7 +57,7 @@ repos: - repo: https://github.com/pre-commit/mirrors-mypy - rev: 'v1.13.0' + rev: 'v1.14.1' hooks: - id: mypy additional_dependencies: [types-cachetools, numpy] diff --git a/cub/cub/agent/agent_histogram.cuh b/cub/cub/agent/agent_histogram.cuh index 21a487828ca..e454dc837b1 100644 --- a/cub/cub/agent/agent_histogram.cuh +++ b/cub/cub/agent/agent_histogram.cuh @@ -629,7 +629,7 @@ struct AgentHistogram // Set valid flags MarkValid( - is_valid, valid_samples, Int2Type{}); + is_valid, valid_samples, Int2Type < AgentHistogramPolicyT::LOAD_ALGORITHM == BLOCK_LOAD_STRIPED > {}); // Accumulate samples if (prefer_smem) diff --git a/cub/cub/agent/agent_reduce.cuh b/cub/cub/agent/agent_reduce.cuh index 2e0d94b219c..d5e3514f369 100644 --- a/cub/cub/agent/agent_reduce.cuh +++ b/cub/cub/agent/agent_reduce.cuh @@ -382,8 +382,8 @@ struct AgentReduce even_share.template BlockInit(block_offset, block_end); return (IsAligned(d_in + block_offset, Int2Type())) - ? ConsumeRange(even_share, Int2Type < true && ATTEMPT_VECTORIZATION > ()) - : ConsumeRange(even_share, Int2Type < false && ATTEMPT_VECTORIZATION > ()); + ? ConsumeRange(even_share, Int2Type()) + : ConsumeRange(even_share, Int2Type()); } /** @@ -396,8 +396,8 @@ struct AgentReduce even_share.template BlockInit(); return (IsAligned(d_in, Int2Type())) - ? ConsumeRange(even_share, Int2Type < true && ATTEMPT_VECTORIZATION > ()) - : ConsumeRange(even_share, Int2Type < false && ATTEMPT_VECTORIZATION > ()); + ? ConsumeRange(even_share, Int2Type()) + : ConsumeRange(even_share, Int2Type()); } private: diff --git a/cub/cub/block/block_radix_rank.cuh b/cub/cub/block/block_radix_rank.cuh index 490abb86bda..92605b5168d 100644 --- a/cub/cub/block/block_radix_rank.cuh +++ b/cub/cub/block/block_radix_rank.cuh @@ -606,8 +606,7 @@ private: { volatile DigitCounterT warp_digit_counters[RADIX_DIGITS][PADDED_WARPS]; DigitCounterT raking_grid[BLOCK_THREADS][PADDED_RAKING_SEGMENT]; - } - aliasable; + } aliasable; }; #endif // !_CCCL_DOXYGEN_INVOKED diff --git a/cub/cub/detail/strong_load.cuh b/cub/cub/detail/strong_load.cuh index 61693d808e2..b6ba4bb5fc8 100644 --- a/cub/cub/detail/strong_load.cuh +++ b/cub/cub/detail/strong_load.cuh @@ -59,14 +59,14 @@ static _CCCL_DEVICE _CCCL_FORCEINLINE uint4 load_relaxed(uint4 const* ptr) uint4 retval; NV_IF_TARGET( NV_PROVIDES_SM_70, - (asm volatile("ld.relaxed.gpu.v4.u32 {%0, %1, %2, %3}, [%4];" - : "=r"(retval.x), "=r"(retval.y), "=r"(retval.z), "=r"(retval.w) - : "l"(ptr) - : "memory");), - (asm volatile("ld.cg.v4.u32 {%0, %1, %2, %3}, [%4];" - : "=r"(retval.x), "=r"(retval.y), "=r"(retval.z), "=r"(retval.w) - : "l"(ptr) - : "memory");)); + (asm volatile("ld.relaxed.gpu.v4.u32 {%0, %1, %2, %3}, [%4];" : "=r"(retval.x), + "=r"(retval.y), + "=r"(retval.z), + "=r"(retval.w) : "l"(ptr) : "memory");), + (asm volatile("ld.cg.v4.u32 {%0, %1, %2, %3}, [%4];" : "=r"(retval.x), + "=r"(retval.y), + "=r"(retval.z), + "=r"(retval.w) : "l"(ptr) : "memory");)); return retval; } @@ -75,14 +75,8 @@ static _CCCL_DEVICE _CCCL_FORCEINLINE ulonglong2 load_relaxed(ulonglong2 const* ulonglong2 retval; NV_IF_TARGET( NV_PROVIDES_SM_70, - (asm volatile("ld.relaxed.gpu.v2.u64 {%0, %1}, [%2];" - : "=l"(retval.x), "=l"(retval.y) - : "l"(ptr) - : "memory");), - (asm volatile("ld.cg.v2.u64 {%0, %1}, [%2];" - : "=l"(retval.x), "=l"(retval.y) - : "l"(ptr) - : "memory");)); + (asm volatile("ld.relaxed.gpu.v2.u64 {%0, %1}, [%2];" : "=l"(retval.x), "=l"(retval.y) : "l"(ptr) : "memory");), + (asm volatile("ld.cg.v2.u64 {%0, %1}, [%2];" : "=l"(retval.x), "=l"(retval.y) : "l"(ptr) : "memory");)); return retval; } @@ -91,14 +85,14 @@ static _CCCL_DEVICE _CCCL_FORCEINLINE ushort4 load_relaxed(ushort4 const* ptr) ushort4 retval; NV_IF_TARGET( NV_PROVIDES_SM_70, - (asm volatile("ld.relaxed.gpu.v4.u16 {%0, %1, %2, %3}, [%4];" - : "=h"(retval.x), "=h"(retval.y), "=h"(retval.z), "=h"(retval.w) - : "l"(ptr) - : "memory");), - (asm volatile("ld.cg.v4.u16 {%0, %1, %2, %3}, [%4];" - : "=h"(retval.x), "=h"(retval.y), "=h"(retval.z), "=h"(retval.w) - : "l"(ptr) - : "memory");)); + (asm volatile("ld.relaxed.gpu.v4.u16 {%0, %1, %2, %3}, [%4];" : "=h"(retval.x), + "=h"(retval.y), + "=h"(retval.z), + "=h"(retval.w) : "l"(ptr) : "memory");), + (asm volatile("ld.cg.v4.u16 {%0, %1, %2, %3}, [%4];" : "=h"(retval.x), + "=h"(retval.y), + "=h"(retval.z), + "=h"(retval.w) : "l"(ptr) : "memory");)); return retval; } @@ -107,46 +101,26 @@ static _CCCL_DEVICE _CCCL_FORCEINLINE uint2 load_relaxed(uint2 const* ptr) uint2 retval; NV_IF_TARGET( NV_PROVIDES_SM_70, - (asm volatile("ld.relaxed.gpu.v2.u32 {%0, %1}, [%2];" - : "=r"(retval.x), "=r"(retval.y) - : "l"(ptr) - : "memory");), - (asm volatile("ld.cg.v2.u32 {%0, %1}, [%2];" - : "=r"(retval.x), "=r"(retval.y) - : "l"(ptr) - : "memory");)); + (asm volatile("ld.relaxed.gpu.v2.u32 {%0, %1}, [%2];" : "=r"(retval.x), "=r"(retval.y) : "l"(ptr) : "memory");), + (asm volatile("ld.cg.v2.u32 {%0, %1}, [%2];" : "=r"(retval.x), "=r"(retval.y) : "l"(ptr) : "memory");)); return retval; } static _CCCL_DEVICE _CCCL_FORCEINLINE unsigned long long load_relaxed(unsigned long long const* ptr) { unsigned long long retval; - NV_IF_TARGET( - NV_PROVIDES_SM_70, - (asm volatile("ld.relaxed.gpu.u64 %0, [%1];" - : "=l"(retval) - : "l"(ptr) - : "memory");), - (asm volatile("ld.cg.u64 %0, [%1];" - : "=l"(retval) - : "l"(ptr) - : "memory");)); + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("ld.relaxed.gpu.u64 %0, [%1];" : "=l"(retval) : "l"(ptr) : "memory");), + (asm volatile("ld.cg.u64 %0, [%1];" : "=l"(retval) : "l"(ptr) : "memory");)); return retval; } static _CCCL_DEVICE _CCCL_FORCEINLINE unsigned int load_relaxed(unsigned int const* ptr) { unsigned int retval; - NV_IF_TARGET( - NV_PROVIDES_SM_70, - (asm volatile("ld.relaxed.gpu.u32 %0, [%1];" - : "=r"(retval) - : "l"(ptr) - : "memory");), - (asm volatile("ld.cg.u32 %0, [%1];" - : "=r"(retval) - : "l"(ptr) - : "memory");)); + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("ld.relaxed.gpu.u32 %0, [%1];" : "=r"(retval) : "l"(ptr) : "memory");), + (asm volatile("ld.cg.u32 %0, [%1];" : "=r"(retval) : "l"(ptr) : "memory");)); return retval; } @@ -154,16 +128,9 @@ static _CCCL_DEVICE _CCCL_FORCEINLINE unsigned int load_relaxed(unsigned int con static _CCCL_DEVICE _CCCL_FORCEINLINE unsigned short load_relaxed(unsigned short const* ptr) { unsigned short retval; - NV_IF_TARGET( - NV_PROVIDES_SM_70, - (asm volatile("ld.relaxed.gpu.u16 %0, [%1];" - : "=h"(retval) - : "l"(ptr) - : "memory");), - (asm volatile("ld.cg.u16 %0, [%1];" - : "=h"(retval) - : "l"(ptr) - : "memory");)); + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("ld.relaxed.gpu.u16 %0, [%1];" : "=h"(retval) : "l"(ptr) : "memory");), + (asm volatile("ld.cg.u16 %0, [%1];" : "=h"(retval) : "l"(ptr) : "memory");)); return retval; } @@ -172,24 +139,16 @@ static _CCCL_DEVICE _CCCL_FORCEINLINE unsigned char load_relaxed(unsigned char c unsigned short retval; NV_IF_TARGET( NV_PROVIDES_SM_70, - (asm volatile( - "{" - " .reg .u8 datum;" - " ld.relaxed.gpu.u8 datum, [%1];" - " cvt.u16.u8 %0, datum;" - "}" - : "=h"(retval) - : "l"(ptr) - : "memory");), - (asm volatile( - "{" - " .reg .u8 datum;" - " ld.cg.u8 datum, [%1];" - " cvt.u16.u8 %0, datum;" - "}" - : "=h"(retval) - : "l"(ptr) - : "memory");)); + (asm volatile("{" + " .reg .u8 datum;" + " ld.relaxed.gpu.u8 datum, [%1];" + " cvt.u16.u8 %0, datum;" + "}" : "=h"(retval) : "l"(ptr) : "memory");), + (asm volatile("{" + " .reg .u8 datum;" + " ld.cg.u8 datum, [%1];" + " cvt.u16.u8 %0, datum;" + "}" : "=h"(retval) : "l"(ptr) : "memory");)); return (unsigned char) retval; } @@ -198,14 +157,8 @@ static _CCCL_DEVICE _CCCL_FORCEINLINE ulonglong2 load_acquire(ulonglong2 const* ulonglong2 retval; NV_IF_TARGET( NV_PROVIDES_SM_70, - (asm volatile("ld.acquire.gpu.v2.u64 {%0, %1}, [%2];" - : "=l"(retval.x), "=l"(retval.y) - : "l"(ptr) - : "memory");), - (asm volatile("ld.cg.v2.u64 {%0, %1}, [%2];" - : "=l"(retval.x), "=l"(retval.y) - : "l"(ptr) - : "memory"); + (asm volatile("ld.acquire.gpu.v2.u64 {%0, %1}, [%2];" : "=l"(retval.x), "=l"(retval.y) : "l"(ptr) : "memory");), + (asm volatile("ld.cg.v2.u64 {%0, %1}, [%2];" : "=l"(retval.x), "=l"(retval.y) : "l"(ptr) : "memory"); __threadfence();)); return retval; } @@ -215,14 +168,8 @@ static _CCCL_DEVICE _CCCL_FORCEINLINE uint2 load_acquire(uint2 const* ptr) uint2 retval; NV_IF_TARGET( NV_PROVIDES_SM_70, - (asm volatile("ld.acquire.gpu.v2.u32 {%0, %1}, [%2];" - : "=r"(retval.x), "=r"(retval.y) - : "l"(ptr) - : "memory");), - (asm volatile("ld.cg.v2.u32 {%0, %1}, [%2];" - : "=r"(retval.x), "=r"(retval.y) - : "l"(ptr) - : "memory"); + (asm volatile("ld.acquire.gpu.v2.u32 {%0, %1}, [%2];" : "=r"(retval.x), "=r"(retval.y) : "l"(ptr) : "memory");), + (asm volatile("ld.cg.v2.u32 {%0, %1}, [%2];" : "=r"(retval.x), "=r"(retval.y) : "l"(ptr) : "memory"); __threadfence();)); return retval; } @@ -230,17 +177,9 @@ static _CCCL_DEVICE _CCCL_FORCEINLINE uint2 load_acquire(uint2 const* ptr) static _CCCL_DEVICE _CCCL_FORCEINLINE unsigned int load_acquire(unsigned int const* ptr) { unsigned int retval; - NV_IF_TARGET( - NV_PROVIDES_SM_70, - (asm volatile("ld.acquire.gpu.u32 %0, [%1];" - : "=r"(retval) - : "l"(ptr) - : "memory");), - (asm volatile("ld.cg.u32 %0, [%1];" - : "=r"(retval) - : "l"(ptr) - : "memory"); - __threadfence();)); + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("ld.acquire.gpu.u32 %0, [%1];" : "=r"(retval) : "l"(ptr) : "memory");), + (asm volatile("ld.cg.u32 %0, [%1];" : "=r"(retval) : "l"(ptr) : "memory"); __threadfence();)); return retval; } diff --git a/cub/cub/detail/strong_store.cuh b/cub/cub/detail/strong_store.cuh index 9b8091738db..cc0e8f60e71 100644 --- a/cub/cub/detail/strong_store.cuh +++ b/cub/cub/detail/strong_store.cuh @@ -56,98 +56,61 @@ static _CCCL_DEVICE _CCCL_FORCEINLINE void store_relaxed(uint4* ptr, uint4 val) { NV_IF_TARGET( NV_PROVIDES_SM_70, - (asm volatile("st.relaxed.gpu.v4.u32 [%0], {%1, %2, %3, %4};" - : - : "l"(ptr), "r"(val.x), "r"(val.y), "r"(val.z), "r"(val.w) - : "memory");), - (asm volatile("st.cg.v4.u32 [%0], {%1, %2, %3, %4};" - : - : "l"(ptr), "r"(val.x), "r"(val.y), "r"(val.z), "r"(val.w) - : "memory");)); + (asm volatile("st.relaxed.gpu.v4.u32 [%0], {%1, %2, %3, %4};" : : "l"(ptr), + "r"(val.x), + "r"(val.y), + "r"(val.z), + "r"(val.w) : "memory");), + (asm volatile( + "st.cg.v4.u32 [%0], {%1, %2, %3, %4};" : : "l"(ptr), "r"(val.x), "r"(val.y), "r"(val.z), "r"(val.w) : "memory");)); } static _CCCL_DEVICE _CCCL_FORCEINLINE void store_relaxed(ulonglong2* ptr, ulonglong2 val) { - NV_IF_TARGET( - NV_PROVIDES_SM_70, - (asm volatile("st.relaxed.gpu.v2.u64 [%0], {%1, %2};" - : - : "l"(ptr), "l"(val.x), "l"(val.y) - : "memory");), - (asm volatile("st.cg.v2.u64 [%0], {%1, %2};" - : - : "l"(ptr), "l"(val.x), "l"(val.y) - : "memory");)); + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.relaxed.gpu.v2.u64 [%0], {%1, %2};" : : "l"(ptr), "l"(val.x), "l"(val.y) : "memory");), + (asm volatile("st.cg.v2.u64 [%0], {%1, %2};" : : "l"(ptr), "l"(val.x), "l"(val.y) : "memory");)); } static _CCCL_DEVICE _CCCL_FORCEINLINE void store_relaxed(ushort4* ptr, ushort4 val) { NV_IF_TARGET( NV_PROVIDES_SM_70, - (asm volatile("st.relaxed.gpu.v4.u16 [%0], {%1, %2, %3, %4};" - : - : "l"(ptr), "h"(val.x), "h"(val.y), "h"(val.z), "h"(val.w) - : "memory");), - (asm volatile("st.cg.v4.u16 [%0], {%1, %2, %3, %4};" - : - : "l"(ptr), "h"(val.x), "h"(val.y), "h"(val.z), "h"(val.w) - : "memory");)); + (asm volatile("st.relaxed.gpu.v4.u16 [%0], {%1, %2, %3, %4};" : : "l"(ptr), + "h"(val.x), + "h"(val.y), + "h"(val.z), + "h"(val.w) : "memory");), + (asm volatile( + "st.cg.v4.u16 [%0], {%1, %2, %3, %4};" : : "l"(ptr), "h"(val.x), "h"(val.y), "h"(val.z), "h"(val.w) : "memory");)); } static _CCCL_DEVICE _CCCL_FORCEINLINE void store_relaxed(uint2* ptr, uint2 val) { - NV_IF_TARGET( - NV_PROVIDES_SM_70, - (asm volatile("st.relaxed.gpu.v2.u32 [%0], {%1, %2};" - : - : "l"(ptr), "r"(val.x), "r"(val.y) - : "memory");), - (asm volatile("st.cg.v2.u32 [%0], {%1, %2};" - : - : "l"(ptr), "r"(val.x), "r"(val.y) - : "memory");)); + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.relaxed.gpu.v2.u32 [%0], {%1, %2};" : : "l"(ptr), "r"(val.x), "r"(val.y) : "memory");), + (asm volatile("st.cg.v2.u32 [%0], {%1, %2};" : : "l"(ptr), "r"(val.x), "r"(val.y) : "memory");)); } static _CCCL_DEVICE _CCCL_FORCEINLINE void store_relaxed(unsigned long long* ptr, unsigned long long val) { - NV_IF_TARGET( - NV_PROVIDES_SM_70, - (asm volatile("st.relaxed.gpu.u64 [%0], %1;" - : - : "l"(ptr), "l"(val) - : "memory");), - (asm volatile("st.cg.u64 [%0], %1;" - : - : "l"(ptr), "l"(val) - : "memory");)); + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.relaxed.gpu.u64 [%0], %1;" : : "l"(ptr), "l"(val) : "memory");), + (asm volatile("st.cg.u64 [%0], %1;" : : "l"(ptr), "l"(val) : "memory");)); } static _CCCL_DEVICE _CCCL_FORCEINLINE void store_relaxed(unsigned int* ptr, unsigned int val) { - NV_IF_TARGET( - NV_PROVIDES_SM_70, - (asm volatile("st.relaxed.gpu.u32 [%0], %1;" - : - : "l"(ptr), "r"(val) - : "memory");), - (asm volatile("st.cg.u32 [%0], %1;" - : - : "l"(ptr), "r"(val) - : "memory");)); + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.relaxed.gpu.u32 [%0], %1;" : : "l"(ptr), "r"(val) : "memory");), + (asm volatile("st.cg.u32 [%0], %1;" : : "l"(ptr), "r"(val) : "memory");)); } static _CCCL_DEVICE _CCCL_FORCEINLINE void store_relaxed(unsigned short* ptr, unsigned short val) { - NV_IF_TARGET( - NV_PROVIDES_SM_70, - (asm volatile("st.relaxed.gpu.u16 [%0], %1;" - : - : "l"(ptr), "h"(val) - : "memory");), - (asm volatile("st.cg.u16 [%0], %1;" - : - : "l"(ptr), "h"(val) - : "memory");)); + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.relaxed.gpu.u16 [%0], %1;" : : "l"(ptr), "h"(val) : "memory");), + (asm volatile("st.cg.u16 [%0], %1;" : : "l"(ptr), "h"(val) : "memory");)); } static _CCCL_DEVICE _CCCL_FORCEINLINE void store_relaxed(unsigned char* ptr, unsigned char val) @@ -158,123 +121,77 @@ static _CCCL_DEVICE _CCCL_FORCEINLINE void store_relaxed(unsigned char* ptr, uns " .reg .u8 datum;" " cvt.u8.u16 datum, %1;" " st.relaxed.gpu.u8 [%0], datum;" - "}" - : - : "l"(ptr), "h"((unsigned short) val) - : "memory");), + "}" : : "l"(ptr), + "h"((unsigned short) val) : "memory");), (asm volatile("{" " .reg .u8 datum;" " cvt.u8.u16 datum, %1;" " st.cg.u8 [%0], datum;" - "}" - : - : "l"(ptr), "h"((unsigned short) val) - : "memory");)); + "}" : : "l"(ptr), + "h"((unsigned short) val) : "memory");)); } _CCCL_DEVICE _CCCL_FORCEINLINE void store_release(uint4* ptr, uint4 val) { NV_IF_TARGET( NV_PROVIDES_SM_70, - (asm volatile("st.release.gpu.v4.u32 [%0], {%1, %2, %3, %4};" - : - : "l"(ptr), "r"(val.x), "r"(val.y), "r"(val.z), "r"(val.w) - : "memory");), - (__threadfence(); - asm volatile("st.cg.v4.u32 [%0], {%1, %2, %3, %4};" - : - : "l"(ptr), "r"(val.x), "r"(val.y), "r"(val.z), "r"(val.w) - : "memory");)); + (asm volatile("st.release.gpu.v4.u32 [%0], {%1, %2, %3, %4};" : : "l"(ptr), + "r"(val.x), + "r"(val.y), + "r"(val.z), + "r"(val.w) : "memory");), + (__threadfence(); asm volatile( + "st.cg.v4.u32 [%0], {%1, %2, %3, %4};" : : "l"(ptr), "r"(val.x), "r"(val.y), "r"(val.z), "r"(val.w) : "memory");)); } _CCCL_DEVICE _CCCL_FORCEINLINE void store_release(ulonglong2* ptr, ulonglong2 val) { NV_IF_TARGET( NV_PROVIDES_SM_70, - (asm volatile("st.release.gpu.v2.u64 [%0], {%1, %2};" - : - : "l"(ptr), "l"(val.x), "l"(val.y) - : "memory");), - (__threadfence(); - asm volatile("st.cg.v2.u64 [%0], {%1, %2};" - : - : "l"(ptr), "l"(val.x), "l"(val.y) - : "memory");)); + (asm volatile("st.release.gpu.v2.u64 [%0], {%1, %2};" : : "l"(ptr), "l"(val.x), "l"(val.y) : "memory");), + (__threadfence(); asm volatile("st.cg.v2.u64 [%0], {%1, %2};" : : "l"(ptr), "l"(val.x), "l"(val.y) : "memory");)); } _CCCL_DEVICE _CCCL_FORCEINLINE void store_release(ushort4* ptr, ushort4 val) { NV_IF_TARGET( NV_PROVIDES_SM_70, - (asm volatile("st.release.gpu.v4.u16 [%0], {%1, %2, %3, %4};" - : - : "l"(ptr), "h"(val.x), "h"(val.y), "h"(val.z), "h"(val.w) - : "memory");), - (__threadfence(); - asm volatile("st.cg.v4.u16 [%0], {%1, %2, %3, %4};" - : - : "l"(ptr), "h"(val.x), "h"(val.y), "h"(val.z), "h"(val.w) - : "memory");)); + (asm volatile("st.release.gpu.v4.u16 [%0], {%1, %2, %3, %4};" : : "l"(ptr), + "h"(val.x), + "h"(val.y), + "h"(val.z), + "h"(val.w) : "memory");), + (__threadfence(); asm volatile( + "st.cg.v4.u16 [%0], {%1, %2, %3, %4};" : : "l"(ptr), "h"(val.x), "h"(val.y), "h"(val.z), "h"(val.w) : "memory");)); } _CCCL_DEVICE _CCCL_FORCEINLINE void store_release(uint2* ptr, uint2 val) { NV_IF_TARGET( NV_PROVIDES_SM_70, - (asm volatile("st.release.gpu.v2.u32 [%0], {%1, %2};" - : - : "l"(ptr), "r"(val.x), "r"(val.y) - : "memory");), - (__threadfence(); - asm volatile("st.cg.v2.u32 [%0], {%1, %2};" - : - : "l"(ptr), "r"(val.x), "r"(val.y) - : "memory");)); + (asm volatile("st.release.gpu.v2.u32 [%0], {%1, %2};" : : "l"(ptr), "r"(val.x), "r"(val.y) : "memory");), + (__threadfence(); asm volatile("st.cg.v2.u32 [%0], {%1, %2};" : : "l"(ptr), "r"(val.x), "r"(val.y) : "memory");)); } _CCCL_DEVICE _CCCL_FORCEINLINE void store_release(unsigned long long* ptr, unsigned long long val) { - NV_IF_TARGET( - NV_PROVIDES_SM_70, - (asm volatile("st.release.gpu.u64 [%0], %1;" - : - : "l"(ptr), "l"(val) - : "memory");), - (__threadfence(); - asm volatile("st.cg.u64 [%0], %1;" - : - : "l"(ptr), "l"(val) - : "memory");)); + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.release.gpu.u64 [%0], %1;" : : "l"(ptr), "l"(val) : "memory");), + (__threadfence(); asm volatile("st.cg.u64 [%0], %1;" : : "l"(ptr), "l"(val) : "memory");)); } _CCCL_DEVICE _CCCL_FORCEINLINE void store_release(unsigned int* ptr, unsigned int val) { - NV_IF_TARGET( - NV_PROVIDES_SM_70, - (asm volatile("st.release.gpu.u32 [%0], %1;" - : - : "l"(ptr), "r"(val) - : "memory");), - (__threadfence(); - asm volatile("st.cg.u32 [%0], %1;" - : - : "l"(ptr), "r"(val) - : "memory");)); + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.release.gpu.u32 [%0], %1;" : : "l"(ptr), "r"(val) : "memory");), + (__threadfence(); asm volatile("st.cg.u32 [%0], %1;" : : "l"(ptr), "r"(val) : "memory");)); } _CCCL_DEVICE _CCCL_FORCEINLINE void store_release(unsigned short* ptr, unsigned short val) { - NV_IF_TARGET( - NV_PROVIDES_SM_70, - (asm volatile("st.release.gpu.u16 [%0], %1;" - : - : "l"(ptr), "h"(val) - : "memory");), - (__threadfence(); - asm volatile("st.cg.u16 [%0], %1;" - : - : "l"(ptr), "h"(val) - : "memory");)); + NV_IF_TARGET(NV_PROVIDES_SM_70, + (asm volatile("st.release.gpu.u16 [%0], %1;" : : "l"(ptr), "h"(val) : "memory");), + (__threadfence(); asm volatile("st.cg.u16 [%0], %1;" : : "l"(ptr), "h"(val) : "memory");)); } _CCCL_DEVICE _CCCL_FORCEINLINE void store_release(unsigned char* ptr, unsigned char val) @@ -285,19 +202,15 @@ _CCCL_DEVICE _CCCL_FORCEINLINE void store_release(unsigned char* ptr, unsigned c " .reg .u8 datum;" " cvt.u8.u16 datum, %1;" " st.release.gpu.u8 [%0], datum;" - "}" - : - : "l"(ptr), "h"((unsigned short) val) - : "memory");), + "}" : : "l"(ptr), + "h"((unsigned short) val) : "memory");), (__threadfence(); asm volatile( "{" " .reg .u8 datum;" " cvt.u8.u16 datum, %1;" " st.cg.u8 [%0], datum;" - "}" - : - : "l"(ptr), "h"((unsigned short) val) - : "memory");)); + "}" : : "l"(ptr), + "h"((unsigned short) val) : "memory");)); } } // namespace detail diff --git a/cub/cub/device/dispatch/dispatch_transform.cuh b/cub/cub/device/dispatch/dispatch_transform.cuh index 386a6276dfa..fa4fa80d0ef 100644 --- a/cub/cub/device/dispatch/dispatch_transform.cuh +++ b/cub/cub/device/dispatch/dispatch_transform.cuh @@ -169,11 +169,10 @@ _CCCL_DEVICE _CCCL_FORCEINLINE auto poor_apply_impl(F&& f, Tuple&& t, ::cuda::st } template -_CCCL_DEVICE _CCCL_FORCEINLINE auto poor_apply(F&& f, Tuple&& t) - -> decltype(poor_apply_impl( - ::cuda::std::forward(f), - ::cuda::std::forward(t), - ::cuda::std::make_index_sequence<::cuda::std::tuple_size<::cuda::std::remove_reference_t>::value>{})) +_CCCL_DEVICE _CCCL_FORCEINLINE auto poor_apply(F&& f, Tuple&& t) -> decltype(poor_apply_impl( + ::cuda::std::forward(f), + ::cuda::std::forward(t), + ::cuda::std::make_index_sequence<::cuda::std::tuple_size<::cuda::std::remove_reference_t>::value>{})) { return poor_apply_impl( ::cuda::std::forward(f), @@ -473,8 +472,9 @@ using needs_aligned_ptr_t = #ifdef _CUB_HAS_TRANSFORM_UBLKCP template ::value, int> = 0> -_CCCL_DEVICE _CCCL_FORCEINLINE auto select_kernel_arg( - ::cuda::std::integral_constant, kernel_arg&& arg) -> aligned_base_ptr>&& +_CCCL_DEVICE _CCCL_FORCEINLINE auto +select_kernel_arg(::cuda::std::integral_constant, kernel_arg&& arg) + -> aligned_base_ptr>&& { return ::cuda::std::move(arg.aligned_ptr); } @@ -660,10 +660,9 @@ struct dispatch_t - CUB_RUNTIME_FUNCTION _CCCL_VISIBILITY_HIDDEN _CCCL_FORCEINLINE auto configure_ublkcp_kernel() - -> PoorExpected< - ::cuda::std:: - tuple> + CUB_RUNTIME_FUNCTION _CCCL_VISIBILITY_HIDDEN _CCCL_FORCEINLINE auto configure_ublkcp_kernel() -> PoorExpected< + ::cuda::std:: + tuple> { using policy_t = typename ActivePolicy::algo_policy; constexpr int block_dim = policy_t::block_threads; diff --git a/cub/cub/device/dispatch/tuning/tuning_three_way_partition.cuh b/cub/cub/device/dispatch/tuning/tuning_three_way_partition.cuh index c6894ccbc86..3645e4b9ed7 100644 --- a/cub/cub/device/dispatch/tuning/tuning_three_way_partition.cuh +++ b/cub/cub/device/dispatch/tuning/tuning_three_way_partition.cuh @@ -255,9 +255,8 @@ struct policy_hub typename Tuning::delay_constructor>; template - static auto select_agent_policy(long) -> - typename DefaultPolicy< - default_delay_constructor_t::pack_t>>::ThreeWayPartitionPolicy; + static auto select_agent_policy(long) -> typename DefaultPolicy< + default_delay_constructor_t::pack_t>>::ThreeWayPartitionPolicy; struct Policy800 : ChainedPolicy<800, Policy800, Policy350> { diff --git a/cub/cub/thread/thread_operators.cuh b/cub/cub/thread/thread_operators.cuh index 7af32df392c..feef89776a9 100644 --- a/cub/cub/thread/thread_operators.cuh +++ b/cub/cub/thread/thread_operators.cuh @@ -391,8 +391,8 @@ struct CCCL_DEPRECATED BinaryFlip {} template - _CCCL_DEVICE auto - operator()(T&& t, U&& u) -> decltype(binary_op(::cuda::std::forward(u), ::cuda::std::forward(t))) + _CCCL_DEVICE auto operator()(T&& t, U&& u) + -> decltype(binary_op(::cuda::std::forward(u), ::cuda::std::forward(t))) { return binary_op(::cuda::std::forward(u), ::cuda::std::forward(t)); } diff --git a/cub/cub/thread/thread_reduce.cuh b/cub/cub/thread/thread_reduce.cuh index 294bc449e31..d3850051ca7 100644 --- a/cub/cub/thread/thread_reduce.cuh +++ b/cub/cub/thread/thread_reduce.cuh @@ -543,8 +543,8 @@ ThreadReduceTernaryTree(const Input& input, ReductionOp reduction_op) // never reached. Protect instantion of ThreadReduceSimd with arbitrary types and operators _CCCL_TEMPLATE(typename Input, typename ReductionOp) _CCCL_REQUIRES((!cub::internal::enable_generic_simd_reduction())) -_CCCL_NODISCARD _CCCL_DEVICE _CCCL_FORCEINLINE auto -ThreadReduceSimd(const Input& input, ReductionOp) -> ::cuda::std::remove_cvref_t +_CCCL_NODISCARD _CCCL_DEVICE _CCCL_FORCEINLINE auto ThreadReduceSimd(const Input& input, ReductionOp) + -> ::cuda::std::remove_cvref_t { assert(false); return input[0]; @@ -552,8 +552,8 @@ ThreadReduceSimd(const Input& input, ReductionOp) -> ::cuda::std::remove_cvref_t _CCCL_TEMPLATE(typename Input, typename ReductionOp) _CCCL_REQUIRES((cub::internal::enable_generic_simd_reduction())) -_CCCL_NODISCARD _CCCL_DEVICE _CCCL_FORCEINLINE auto -ThreadReduceSimd(const Input& input, ReductionOp reduction_op) -> ::cuda::std::remove_cvref_t +_CCCL_NODISCARD _CCCL_DEVICE _CCCL_FORCEINLINE auto ThreadReduceSimd(const Input& input, ReductionOp reduction_op) + -> ::cuda::std::remove_cvref_t { using cub::detail::unsafe_bitcast; using T = ::cuda::std::remove_cvref_t; diff --git a/cub/test/catch2_test_device_for_each_in_extents.cu b/cub/test/catch2_test_device_for_each_in_extents.cu index 8ad75a1d0cb..3e5a6c6689a 100644 --- a/cub/test/catch2_test_device_for_each_in_extents.cu +++ b/cub/test/catch2_test_device_for_each_in_extents.cu @@ -135,8 +135,8 @@ using dimensions = cuda::std::index_sequence<3, 2, 5, 4>>; template -auto build_static_extents(IndexType, - cuda::std::index_sequence) -> cuda::std::extents +auto build_static_extents(IndexType, cuda::std::index_sequence) + -> cuda::std::extents { return {}; } diff --git a/cub/test/catch2_test_device_transform.cu b/cub/test/catch2_test_device_transform.cu index 06f2b7c31a7..95c4794b8cf 100644 --- a/cub/test/catch2_test_device_transform.cu +++ b/cub/test/catch2_test_device_transform.cu @@ -166,8 +166,8 @@ struct alignas(Alignment) overaligned_addable_t return a.value == b.value; } - _CCCL_HOST_DEVICE friend auto - operator+(const overaligned_addable_t& a, const overaligned_addable_t& b) -> overaligned_addable_t + _CCCL_HOST_DEVICE friend auto operator+(const overaligned_addable_t& a, const overaligned_addable_t& b) + -> overaligned_addable_t { check(a); check(b); diff --git a/cub/test/test_block_radix_rank.cu b/cub/test/test_block_radix_rank.cu index 8c1df1a80c7..c53c6b179e3 100644 --- a/cub/test/test_block_radix_rank.cu +++ b/cub/test/test_block_radix_rank.cu @@ -310,7 +310,7 @@ void Test() Test(); Test(); - Test(cub::Int2Type<(BlockThreads % 32) == 0>{}); + Test(cub::Int2Type < (BlockThreads % 32) == 0 > {}); } int main(int argc, char** argv) diff --git a/cudax/include/cuda/experimental/__async/sender/basic_sender.cuh b/cudax/include/cuda/experimental/__async/sender/basic_sender.cuh index 459beddee22..ae8ad239d46 100644 --- a/cudax/include/cuda/experimental/__async/sender/basic_sender.cuh +++ b/cudax/include/cuda/experimental/__async/sender/basic_sender.cuh @@ -60,8 +60,8 @@ struct receiver_defaults } template - _CUDAX_TRIVIAL_API static auto - set_stopped(__ignore, _Rcvr& __rcvr) noexcept -> __async::completion_signatures<__async::set_stopped_t()> + _CUDAX_TRIVIAL_API static auto set_stopped(__ignore, _Rcvr& __rcvr) noexcept + -> __async::completion_signatures<__async::set_stopped_t()> { __async::set_stopped(static_cast<_Rcvr&&>(__rcvr)); return {}; @@ -198,15 +198,15 @@ _CUDAX_TRIVIAL_API auto __make_opstate(_Sndr __sndr, _Rcvr __rcvr) } template -_CUDAX_TRIVIAL_API auto -__get_attrs(int, const _Data& __data, const _Sndrs&... __sndrs) noexcept -> decltype(__data.get_attrs(__sndrs...)) +_CUDAX_TRIVIAL_API auto __get_attrs(int, const _Data& __data, const _Sndrs&... __sndrs) noexcept + -> decltype(__data.get_attrs(__sndrs...)) { return __data.get_attrs(__sndrs...); } template -_CUDAX_TRIVIAL_API auto -__get_attrs(long, const _Data&, const _Sndrs&... __sndrs) noexcept -> decltype(__async::get_env(__sndrs...)) +_CUDAX_TRIVIAL_API auto __get_attrs(long, const _Data&, const _Sndrs&... __sndrs) noexcept + -> decltype(__async::get_env(__sndrs...)) { return __async::get_env(__sndrs...); } diff --git a/cudax/include/cuda/experimental/__async/sender/completion_signatures.cuh b/cudax/include/cuda/experimental/__async/sender/completion_signatures.cuh index 25d5ef04d76..868c911b1da 100644 --- a/cudax/include/cuda/experimental/__async/sender/completion_signatures.cuh +++ b/cudax/include/cuda/experimental/__async/sender/completion_signatures.cuh @@ -76,48 +76,36 @@ template class _Vy, template class _ using __transform_sig_t = decltype(__transform_sig<_Sig, _Vy, _Ey, _Sy>()); template - class _Vy, - template - class _Ey, + template class _Vy, + template class _Ey, class _Sy, - template - class _Variant, + template class _Variant, class... _More> extern _DIAGNOSTIC<_Sigs> __transform_completion_signatures_v; template - class _Vy, - template - class _Ey, + template class _Vy, + template class _Ey, class _Sy, - template - class _Variant, + template class _Variant, class... _More> extern __fn_t<_ERROR<_What...>>* __transform_completion_signatures_v<_ERROR<_What...>, _Vy, _Ey, _Sy, _Variant, _More...>; template - class _Vy, - template - class _Ey, + template class _Vy, + template class _Ey, class _Sy, - template - class _Variant, + template class _Variant, class... _More> extern __fn_t<_Variant<__transform_sig_t<_Sigs, _Vy, _Ey, _Sy>..., _More...>>* __transform_completion_signatures_v, _Vy, _Ey, _Sy, _Variant, _More...>; template - class _Vy, - template - class _Ey, + template class _Vy, + template class _Ey, class _Sy, - template - class _Variant, + template class _Variant, class... _More> using __transform_completion_signatures = decltype(__transform_completion_signatures_v<_Sigs, _Vy, _Ey, _Sy, _Variant, _More...>()); @@ -129,12 +117,9 @@ template <> struct __gather_sigs_fn { template - class _Then, - template - class _Else, - template - class _Variant, + template class _Then, + template class _Else, + template class _Variant, class... _More> using __call = __transform_completion_signatures< _Sigs, @@ -149,12 +134,9 @@ template <> struct __gather_sigs_fn { template - class _Then, - template - class _Else, - template - class _Variant, + template class _Then, + template class _Else, + template class _Variant, class... _More> using __call = __transform_completion_signatures< _Sigs, @@ -169,12 +151,9 @@ template <> struct __gather_sigs_fn { template - class _Then, - template - class _Else, - template - class _Variant, + template class _Then, + template class _Else, + template class _Variant, class... _More> using __call = __transform_completion_signatures< _Sigs, @@ -187,12 +166,9 @@ struct __gather_sigs_fn template - class _Then, - template - class _Else, - template - class _Variant, + template class _Then, + template class _Else, + template class _Variant, class... _More> using __gather_completion_signatures = typename __gather_sigs_fn<_WantedTag>::template __call<_Sigs, _Then, _Else, _Variant, _More...>; @@ -404,13 +380,12 @@ template auto completion(_Tag, _Args&&...) -> __csig::__sigs<_Tag(_Args...)>&; template -auto completions_of(_Sndr&&, - _Rcvr = {}) -> decltype(__csig::__to_sigs(__declval&>())); +auto completions_of(_Sndr&&, _Rcvr = {}) + -> decltype(__csig::__to_sigs(__declval&>())); template -auto eptr_completion_if() - -> _CUDA_VSTD:: - conditional_t<_PotentiallyThrowing, __csig::__sigs, __csig::__sigs<>>&; +auto eptr_completion_if() -> _CUDA_VSTD:: + conditional_t<_PotentiallyThrowing, __csig::__sigs, __csig::__sigs<>>&; } // namespace meta } // namespace cuda::experimental::__async diff --git a/cudax/include/cuda/experimental/__async/sender/continue_on.cuh b/cudax/include/cuda/experimental/__async/sender/continue_on.cuh index 9a0c142e21c..8da87a443a3 100644 --- a/cudax/include/cuda/experimental/__async/sender/continue_on.cuh +++ b/cudax/include/cuda/experimental/__async/sender/continue_on.cuh @@ -267,8 +267,8 @@ struct continue_on_t::__sndr_t }; template -_CUDAX_API auto -continue_on_t::operator()(_Sndr __sndr, _Sch __sch) const noexcept -> continue_on_t::__sndr_t<_Sndr, _Sch> +_CUDAX_API auto continue_on_t::operator()(_Sndr __sndr, _Sch __sch) const noexcept + -> continue_on_t::__sndr_t<_Sndr, _Sch> { return __sndr_t<_Sndr, _Sch>{{}, __sch, static_cast<_Sndr&&>(__sndr)}; } diff --git a/cudax/include/cuda/experimental/__async/sender/cpos.cuh b/cudax/include/cuda/experimental/__async/sender/cpos.cuh index 7f1fb383a71..dab62e7ac10 100644 --- a/cudax/include/cuda/experimental/__async/sender/cpos.cuh +++ b/cudax/include/cuda/experimental/__async/sender/cpos.cuh @@ -110,8 +110,8 @@ _CCCL_GLOBAL_CONSTANT struct set_error_t _CCCL_GLOBAL_CONSTANT struct set_stopped_t { template - _CUDAX_TRIVIAL_API auto - operator()(_Rcvr&& __rcvr) const noexcept -> decltype(static_cast<_Rcvr&&>(__rcvr).set_stopped()) + _CUDAX_TRIVIAL_API auto operator()(_Rcvr&& __rcvr) const noexcept + -> decltype(static_cast<_Rcvr&&>(__rcvr).set_stopped()) { static_assert(_CUDA_VSTD::is_same_v(__rcvr).set_stopped()), void>); static_assert(noexcept(static_cast<_Rcvr&&>(__rcvr).set_stopped())); @@ -119,8 +119,8 @@ _CCCL_GLOBAL_CONSTANT struct set_stopped_t } template - _CUDAX_TRIVIAL_API auto - operator()(_Rcvr* __rcvr) const noexcept -> decltype(static_cast<_Rcvr&&>(*__rcvr).set_stopped()) + _CUDAX_TRIVIAL_API auto operator()(_Rcvr* __rcvr) const noexcept + -> decltype(static_cast<_Rcvr&&>(*__rcvr).set_stopped()) { static_assert(_CUDA_VSTD::is_same_v(*__rcvr).set_stopped()), void>); static_assert(noexcept(static_cast<_Rcvr&&>(*__rcvr).set_stopped())); diff --git a/cudax/include/cuda/experimental/__async/sender/let_value.cuh b/cudax/include/cuda/experimental/__async/sender/let_value.cuh index 7d06e071fe0..6742a1c1d6c 100644 --- a/cudax/include/cuda/experimental/__async/sender/let_value.cuh +++ b/cudax/include/cuda/experimental/__async/sender/let_value.cuh @@ -243,8 +243,9 @@ private: _Sndr __sndr_; template - _CUDAX_API auto connect(_Rcvr __rcvr) && noexcept( - __nothrow_constructible<__opstate_t<_Rcvr, _Sndr, _Fn>, _Sndr, _Fn, _Rcvr>) -> __opstate_t<_Rcvr, _Sndr, _Fn> + _CUDAX_API auto + connect(_Rcvr __rcvr) && noexcept(__nothrow_constructible<__opstate_t<_Rcvr, _Sndr, _Fn>, _Sndr, _Fn, _Rcvr>) + -> __opstate_t<_Rcvr, _Sndr, _Fn> { return __opstate_t<_Rcvr, _Sndr, _Fn>( static_cast<_Sndr&&>(__sndr_), static_cast<_Fn&&>(__fn_), static_cast<_Rcvr&&>(__rcvr)); diff --git a/cudax/include/cuda/experimental/__async/sender/stop_token.cuh b/cudax/include/cuda/experimental/__async/sender/stop_token.cuh index 35e6d4d164a..693816dbb45 100644 --- a/cudax/include/cuda/experimental/__async/sender/stop_token.cuh +++ b/cudax/include/cuda/experimental/__async/sender/stop_token.cuh @@ -369,8 +369,8 @@ _CUDAX_API inline void inplace_stop_source::__unlock(uint8_t __old_state) const (void) __state_.store(__old_state, _CUDA_VSTD::memory_order_release); } -_CUDAX_API inline auto -inplace_stop_source::__try_lock_unless_stop_requested(bool __set_stop_requested) const noexcept -> bool +_CUDAX_API inline auto inplace_stop_source::__try_lock_unless_stop_requested(bool __set_stop_requested) const noexcept + -> bool { __stok::__spin_wait __spin; auto __old_state = __state_.load(_CUDA_VSTD::memory_order_relaxed); diff --git a/cudax/include/cuda/experimental/__async/sender/tuple.cuh b/cudax/include/cuda/experimental/__async/sender/tuple.cuh index 98a1d0997f1..0229ed8b9c7 100644 --- a/cudax/include/cuda/experimental/__async/sender/tuple.cuh +++ b/cudax/include/cuda/experimental/__async/sender/tuple.cuh @@ -65,8 +65,8 @@ struct __tupl<_CUDA_VSTD::index_sequence<_Idx...>, _Ts...> : __box<_Idx, _Ts>... template _CUDAX_TRIVIAL_API static auto __for_each(_Fn&& __fn, _Self&& __self, _Us&&... __us) // - noexcept((__nothrow_callable<_Fn, _Us..., __copy_cvref_t<_Self, _Ts>> - && ...)) -> _CUDA_VSTD::enable_if_t<(__callable<_Fn, _Us..., __copy_cvref_t<_Self, _Ts>> && ...)> + noexcept((__nothrow_callable<_Fn, _Us..., __copy_cvref_t<_Self, _Ts>> && ...)) + -> _CUDA_VSTD::enable_if_t<(__callable<_Fn, _Us..., __copy_cvref_t<_Self, _Ts>> && ...)> { return ( static_cast<_Fn&&>(__fn)(static_cast<_Us&&>(__us)..., static_cast<_Self&&>(__self).__box<_Idx, _Ts>::__value_), diff --git a/cudax/include/cuda/experimental/__memory_resource/any_resource.cuh b/cudax/include/cuda/experimental/__memory_resource/any_resource.cuh index 8a42bab40ca..0e1dceff19b 100644 --- a/cudax/include/cuda/experimental/__memory_resource/any_resource.cuh +++ b/cudax/include/cuda/experimental/__memory_resource/any_resource.cuh @@ -80,8 +80,8 @@ struct __with_property template struct __iproperty : interface<__iproperty> { - _CUDAX_HOST_API friend auto - get_property([[maybe_unused]] const __iproperty& __obj, _Property) -> __property_result_t<_Property> + _CUDAX_HOST_API friend auto get_property([[maybe_unused]] const __iproperty& __obj, _Property) + -> __property_result_t<_Property> { if constexpr (!_CUDA_VSTD::is_same_v<__property_result_t<_Property>, void>) { @@ -268,8 +268,8 @@ template struct __with_try_get_property { template - _CUDAX_HOST_API _CCCL_NODISCARD_FRIEND auto - try_get_property(const _Derived& __self, _Property) noexcept -> __try_property_result_t<_Property> + _CUDAX_HOST_API _CCCL_NODISCARD_FRIEND auto try_get_property(const _Derived& __self, _Property) noexcept + -> __try_property_result_t<_Property> { auto __prop = __cudax::dynamic_any_cast*>(&__self); if constexpr (_CUDA_VSTD::is_same_v<__property_result_t<_Property>, void>) diff --git a/cudax/include/cuda/experimental/__utility/basic_any/basic_any_from.cuh b/cudax/include/cuda/experimental/__utility/basic_any/basic_any_from.cuh index 5b64dbc531d..bd481b3dea2 100644 --- a/cudax/include/cuda/experimental/__utility/basic_any/basic_any_from.cuh +++ b/cudax/include/cuda/experimental/__utility/basic_any/basic_any_from.cuh @@ -50,8 +50,8 @@ _CCCL_NODISCARD _CUDAX_TRIVIAL_HOST_API auto basic_any_from(_Interface<_Super>& } template