20 #ifndef RAJA_policy_simd_kernel_ForICount_HPP
21 #define RAJA_policy_simd_kernel_ForICount_HPP
23 #include "RAJA/config.hpp"
26 #include <type_traits>
47 template<camp::idx_t ArgumentId,
49 typename... EnclosedStmts,
53 ForICount<ArgumentId, ParamId, RAJA::simd_exec, EnclosedStmts...>,
57 template<
typename Data>
58 static RAJA_INLINE
void exec(Data&& data)
64 auto iter = get<ArgumentId>(data.segment_tuple);
65 auto begin = std::begin(
iter);
66 auto end = std::end(
iter);
67 auto distance = std::distance(begin, end);
70 for (decltype(distance) i = 0; i < distance; ++i)
74 data.template assign_offset<ArgumentId>(i);
75 data.template assign_param<ParamId>(i);
value_type::device_call &[i_loop] iter
Definition: WorkRunner.hpp:216
setSegmentType< Types, Segment, camp::at_v< typename camp::decay< Data >::index_types_t, Segment > > setSegmentTypeFromData
Definition: LoopTypes.hpp:95
RAJA_HOST_DEVICE auto thread_privatize(const T &item) -> Privatizer< T >
Create a private copy of the argument to be stored on the current thread's stack in a class of the Pr...
Definition: privatizer.hpp:88
Definition: AlignedRangeIndexSetBuilders.cpp:35
auto privatizer
Definition: launch.hpp:176
Header file for kernel lambda executor.
Header file for loop kernel internals.
Header file for statement wrappers and executors.
Header file containing RAJA simd policy definitions.
static RAJA_INLINE void exec(Data &&data)
Definition: ForICount.hpp:58
Definition: Statement.hpp:48