1#ifndef AMREX_GPU_LAUNCH_FUNCTS_SIMD_H_
2#define AMREX_GPU_LAUNCH_FUNCTS_SIMD_H_
4#include <AMReX_Config.H>
22template<
int WIDTH,
class N=
int>
26 static constexpr int width = WIDTH;
40template <
int WIDTH,
typename N,
typename L,
typename M=std::enable_if_t<std::is_
integral_v<N>> >
46 for (; i + WIDTH <= n; i+=WIDTH) {
65template <
typename T,
typename N,
typename L,
typename M=std::enable_if_t<std::is_
integral_v<N>> >
70 if constexpr (amrex::simd::is_vectorized<T>) {
71 amrex::ParallelForSIMD<T::simd_width>(n, std::forward<L>(f));
#define AMREX_ATTRIBUTE_FLATTEN_FOR
Definition AMReX_Extension.H:151
Definition AMReX_Amr.cpp:49
std::enable_if_t< std::is_integral_v< T > > ParallelFor(TypeList< CTOs... > ctos, std::array< int, sizeof...(CTOs)> const &runtime_options, T N, F &&f)
Definition AMReX_CTOParallelForImpl.H:193
void ParallelForSIMD(N n, L const &f) noexcept
Definition AMReX_GpuLaunchFunctsSIMD.H:42
Definition AMReX_GpuLaunchFunctsSIMD.H:24
static constexpr int width
Definition AMReX_GpuLaunchFunctsSIMD.H:26
N index
Definition AMReX_GpuLaunchFunctsSIMD.H:29