Research Article

Inastemp: A Novel Intrinsics-as-Template Library for Portable SIMD-Vectorization

Table 1

Inastemp vector classes.

Class name Accuracy Intrinsic type Possible hardware

InaVecSCALARfloat,double All
InaVecSSE3float,double __m128(d) Intel Pentium Dual-Core, AMD Athlon 64
InaVecSSSE3float,double __m128(d) Intel Atom, AMD Bobcat
InaVecSSE4float,double __m128(d) Intel Silvermont, AMD Barcelona
InaVecAVXfloat,double __m256(d) Intel Sandy Bridge, AMD Bulldozer
InaVecAVX2float,double __m256(d) Intel Haswell, AMD Carrizo
InaVecAVX512COMMONfloat,double __m512(d) Intel Skylake
InaVecAVX512KNLfloat,double __m512(d) Intel Knights Landing
InaVecALTIVECfloat,double __vector () IBM Power-8
InaVecBestTypefloat,doubleCompilation dependentCompilation dependent