alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
EmuSimd.hpp File Reference
#include "alpaka/api/api.hpp"
#include "alpaka/simd/concepts.hpp"
#include "alpaka/simd/internal/SmartMaskValueRef.hpp"
#include "alpaka/simd/internal/alignment.hpp"
#include "alpaka/simd/internal/utility.hpp"
#include "alpaka/simd/trait.hpp"
#include <concepts>
#include <type_traits>

Go to the source code of this file.

Classes

struct  alpaka::trait::GetSimdStorageType< T_Api, T_Type, T_width >
 Get the storage type for a SIMD pack. More...

Namespaces

namespace  alpaka
 main alpaka namespace.
namespace  alpaka::trait

Macros

#define ALPAKA_VECTOR_ASSIGN_OP(op)
 assign operator
#define ALPAKA_VECTOR_BINARY_OP(typenameOrConcept, op)

Macro Definition Documentation

◆ ALPAKA_VECTOR_ASSIGN_OP

#define ALPAKA_VECTOR_ASSIGN_OP ( op)
Value:
constexpr EmuSimd& operator op(EmuSimd const& rhs) \
{ \
for(uint32_t i = 0u; i < T_width; i++) \
{ \
asNativeType()[i] op rhs[i]; \
} \
return *this; \
} \
constexpr EmuSimd& operator op(T_Type const value) \
{ \
for(uint32_t i = 0u; i < T_width; i++) \
{ \
asNativeType()[i] op value; \
} \
return *this; \
}

assign operator

Definition at line 172 of file EmuSimd.hpp.

◆ ALPAKA_VECTOR_BINARY_OP

#define ALPAKA_VECTOR_BINARY_OP ( typenameOrConcept,
op )
Value:
template<typenameOrConcept T_Type, uint32_t T_width> \
constexpr auto operator op(const EmuSimd<T_Type, T_width>& lhs, const EmuSimd<T_Type, T_width>& rhs) \
{ \
EmuSimd<T_Type, T_width> ret{}; \
for(uint32_t i = 0u; i < T_width; i++) \
ret[i] = lhs[i] op rhs[i]; \
return ret; \
} \
template<typenameOrConcept T_Type, uint32_t T_width> \
constexpr auto operator op(const EmuSimd<T_Type, T_width>& lhs, T_Type rhs) \
{ \
EmuSimd<T_Type, T_width> ret{}; \
for(uint32_t i = 0u; i < T_width; i++) \
ret[i] = lhs[i] op rhs; \
return ret; \
} \
template<typenameOrConcept T_Type, uint32_t T_width> \
constexpr auto operator op(T_Type lhs, const EmuSimd<T_Type, T_width>& rhs) \
{ \
EmuSimd<T_Type, T_width> ret{}; \
for(uint32_t i = 0u; i < T_width; i++) \
ret[i] = lhs op rhs[i]; \
return ret; \
}

Definition at line 205 of file EmuSimd.hpp.