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, std::
integral N,
typename L >
46 for (; i + WIDTH <= n; i+=WIDTH) {
65template <
typename T, std::
integral N,
typename L >
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:50
void ParallelFor(TypeList< CTOs... > ctos, std::array< int, sizeof...(CTOs)> const &runtime_options, T N, F &&f)
Definition AMReX_CTOParallelForImpl.H:202
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