VecCore 0.8.1
C++ Library for Portable SIMD Vectorization
Loading...
Searching...
No Matches
UMESimdArray.h
Go to the documentation of this file.
1#ifndef VECCORE_BACKEND_UMESIMDARRAY_H
2#define VECCORE_BACKEND_UMESIMDARRAY_H
3
4#ifdef VECCORE_ENABLE_UMESIMD
5
6#include <umesimd/UMESimd.h>
7
8namespace vecCore {
9
10namespace backend {
11
12// a UME backend with fixed-size types
13template <int N = 16>
14class UMESimdArray {
15public:
16 using Real_v = UME::SIMD::SIMDVec<Real_s, N>;
17 using Float_v = UME::SIMD::SIMDVec<float, N>;
18 using Double_v = UME::SIMD::SIMDVec<double, N>;
19
20 using Int_v = UME::SIMD::SIMDVec<int, N>;
21 using Int16_v = UME::SIMD::SIMDVec<int16_t, N>;
22 using Int32_v = UME::SIMD::SIMDVec<int32_t, N>;
23 using Int64_v = UME::SIMD::SIMDVec<int64_t, N>;
24
25 using UInt_v = UME::SIMD::SIMDVec<unsigned int, N>;
26 using UInt16_v = UME::SIMD::SIMDVec<uint16_t, N>;
27 using UInt32_v = UME::SIMD::SIMDVec<uint32_t, N>;
28 using UInt64_v = UME::SIMD::SIMDVec<uint64_t, N>;
29};
30
31} // namespace backend
32
33} // namespace vecCore
34
35// bring in common implementation
36#include "UMESimdCommon.h"
37
38#endif
39#endif