Skip to content

Commit 7d82235

Browse files
authored
SIMD: Remove Unnecessary Namespaces (#4600)
## Summary With `vir-simd`, we do not need these namespaces anymore. They are in fact not available on macOS/Windows by default. ## Additional background conda-forge/amrex-feedstock#60
1 parent e6dfad9 commit 7d82235

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

Src/Base/AMReX_SIMD.H

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,9 @@
1717
namespace amrex::simd
1818
{
1919
// TODO make SIMD provider configurable: VIR (C++17 TS2) or C++26 (later)
20-
//namespace stdx = std::experimental;
2120
// for https://en.cppreference.com/w/cpp/experimental/simd/simd_cast.html
2221
namespace stdx {
2322
#ifdef AMREX_USE_SIMD
24-
using namespace std::experimental;
25-
using namespace std::experimental::__proposed;
2623
using namespace vir::stdx;
2724
#else
2825
// fallback implementations for functions that are commonly used in portable code paths
@@ -36,21 +33,21 @@ namespace amrex::simd
3633

3734
#ifdef AMREX_USE_SIMD
3835
// TODO: not sure why std::experimental::simd_abi::native<T> does not work, so we use this long version
39-
constexpr auto native_simd_size_real = std::experimental::native_simd<amrex::Real>::size();
40-
constexpr auto native_simd_size_particlereal = std::experimental::native_simd<amrex::ParticleReal>::size();
36+
constexpr auto native_simd_size_real = stdx::native_simd<amrex::Real>::size();
37+
constexpr auto native_simd_size_particlereal = stdx::native_simd<amrex::ParticleReal>::size();
4138

4239
// Note: to make use of not only vector registers but also ILP, user might want to use * 2 or more of the native size
4340
// for selected compute kernels.
4441
// TODO Check if a default with * 2 or similar is sensible.
4542
template<int SIMD_WIDTH = native_simd_size_real>
46-
using SIMDReal = std::experimental::fixed_size_simd<amrex::Real, SIMD_WIDTH>;
43+
using SIMDReal = stdx::fixed_size_simd<amrex::Real, SIMD_WIDTH>;
4744

4845
template<int SIMD_WIDTH = native_simd_size_particlereal>
49-
using SIMDParticleReal = std::experimental::fixed_size_simd<amrex::ParticleReal, SIMD_WIDTH>;
46+
using SIMDParticleReal = stdx::fixed_size_simd<amrex::ParticleReal, SIMD_WIDTH>;
5047

5148
// Type that has the same amount of IdCpu SIMD elements as the SIMDParticleReal type
5249
template<typename T_ParticleReal = SIMDParticleReal<>>
53-
using SIMDIdCpu = std::experimental::rebind_simd_t<std::uint64_t, T_ParticleReal>;
50+
using SIMDIdCpu = stdx::rebind_simd_t<std::uint64_t, T_ParticleReal>;
5451
#else
5552
constexpr auto native_simd_size_real = 1;
5653
constexpr auto native_simd_size_particlereal = 1;

0 commit comments

Comments
 (0)