4#include <AMReX_Config.H>
11# if __cplusplus >= 202002L
12# include <vir/simd_cvt.h>
26 using namespace vir::stdx;
27# if __cplusplus >= 202002L
34 bool any_of (
bool const v) {
return v; }
48 template<
int SIMD_WIDTH = native_simd_size_real>
49 using SIMDReal = stdx::fixed_size_simd<amrex::Real, SIMD_WIDTH>;
51 template<
int SIMD_WIDTH = native_simd_size_particlereal>
52 using SIMDParticleReal = stdx::fixed_size_simd<amrex::ParticleReal, SIMD_WIDTH>;
55 template<
typename T_ParticleReal = SIMDParticleReal<>>
56 using SIMDIdCpu = stdx::rebind_simd_t<std::uint64_t, T_ParticleReal>;
61 template<
int SIMD_WIDTH = native_simd_size_real>
64 template<
int SIMD_WIDTH = native_simd_size_particlereal>
68 template<
typename T_ParticleReal = SIMDParticleReal<>>
74 struct InternalVectorized {};
104 template<
int SIMD_WIDTH = native_simd_size_real>
109 static constexpr int simd_width = SIMD_WIDTH;
117 constexpr bool is_vectorized = std::is_base_of_v<detail::InternalVectorized, T>;
139 template<
typename R,
typename... Args>
142 constexpr bool val_arr[
sizeof...(Args)] {!std::is_const_v<std::remove_reference_t<Args>>...};
146 template<
typename C,
typename R,
typename... Args>
149 constexpr bool val_arr[
sizeof...(Args)] {!std::is_const_v<std::remove_reference_t<Args>>...};
152 template<
typename C,
typename R,
typename... Args>
155 constexpr bool val_arr[
sizeof...(Args)] {!std::is_const_v<std::remove_reference_t<Args>>...};
#define AMREX_FORCE_INLINE
Definition AMReX_Extension.H:119
#define AMREX_GPU_HOST_DEVICE
Definition AMReX_GpuQualifiers.H:20
amrex_real Real
Floating Point Type for Fields.
Definition AMReX_REAL.H:79
amrex_particle_real ParticleReal
Floating Point Type for Particles.
Definition AMReX_REAL.H:90
AMREX_GPU_HOST_DEVICE bool any_of(bool const v)
Definition AMReX_SIMD.H:34
Definition AMReX_SIMD.H:21
std::uint64_t SIMDIdCpu
Definition AMReX_SIMD.H:69
constexpr auto native_simd_size_real
Definition AMReX_SIMD.H:58
constexpr bool is_vectorized
Definition AMReX_SIMD.H:117
constexpr bool is_nth_arg_non_const(R(*)(Args...), int n)
Definition AMReX_SIMD.H:140
amrex::ParticleReal SIMDParticleReal
Definition AMReX_SIMD.H:65
constexpr auto native_simd_size_particlereal
Definition AMReX_SIMD.H:59
amrex::Real SIMDReal
Definition AMReX_SIMD.H:62
Definition AMReX_SIMD.H:107