Helper class for ARM NEON support. More...
#include <boost/cstdint.hpp>
Go to the source code of this file.
Classes | |
struct | tvector< T, S > |
Emulates a vector. More... | |
struct | tmatrix< T, S, D > |
Emulates a matrix. More... | |
Typedefs | |
typedef tvector< uint8_t, 8 > | uint8x8_t |
typedef tvector< uint16_t, 8 > | uint16x8_t |
typedef tmatrix< uint8_t, 8, 4 > | uint8x8x4_t |
Functions | |
template<class Td , unsigned S> | |
tvector< Td, S > | vdup_n (Td imm) |
uint16x8_t | vdupq_n_u16 (uint16_t imm) |
uint8x8_t | vdup_n_u8 (uint8_t imm) |
template<class Td , class Tm , unsigned S> | |
tvector< Td, S > | vshr (tvector< Tm, S > m, const unsigned imm) |
uint8x8_t | vshrn_n_u16 (uint16x8_t m, const unsigned imm) |
template<class Td , class Tn , class Tm , unsigned S> | |
tvector< Td, S > | vadd (tvector< Tn, S > n, tvector< Tm, S > m) |
uint16x8_t | vaddq_u16 (uint16x8_t n, uint16x8_t m) |
template<class Td , class Ts , unsigned S> | |
tvector< Td, S > | vmul (tvector< Ts, S > n, tvector< Ts, S > m) |
uint16x8_t | vmull_u8 (uint8x8_t n, uint8x8_t m) |
template<class Td , unsigned S, unsigned D> | |
tmatrix< Td, S, D > | vld (Td *base) |
uint8x8x4_t | vld4_u8 (uint8_t *base) |
template<class Td , unsigned S, unsigned D> | |
void | vst (Td *base, tmatrix< Td, S, D > list) |
void | vst4_u8 (uint8_t *base, uint8x8x4_t list) |
Helper class for ARM NEON support.
When using g++ on an ARM that support the NEON it uses the gcc intrinsics [1], for all other platforms an emulation is used. The emulation is based on the RealView Compilation Tool Assembler Guide (ARM DUI 0204J (ID101213)) [2]. The emulation follows the latter convensions instead of the former. The numbers in the sections refer to the section numers in [2].
Not everything is implemented, only functions used are implemented.
Common template parameters are:
[1] http://gcc.gnu.org/onlinedocs/gcc-4.7.0/gcc/ARM-NEON-Intrinsics.html [2] http://infocenter.arm.com/help/topic/com.arm.doc.dui0204i/DUI0204I_rvct_assembler_guide.pdf
Definition in file neon.hpp.
typedef tvector<uint16_t, 8> uint16x8_t |
typedef tmatrix<uint8_t, 8, 4> uint8x8x4_t |
|
inline |
Definition at line 159 of file neon.hpp.
Referenced by blend_surface().
|
inline |
Definition at line 121 of file neon.hpp.
Referenced by blend_surface().
|
inline |
Definition at line 115 of file neon.hpp.
Referenced by blend_surface().
|
inline |
Definition at line 200 of file neon.hpp.
Referenced by blend_surface().
|
inline |
Definition at line 179 of file neon.hpp.
Referenced by blend_surface().
|
inline |
Definition at line 140 of file neon.hpp.
Referenced by blend_surface().
Definition at line 207 of file neon.hpp.
References i, S, and tmatrix< T, S, D >::val.
|
inline |
Definition at line 217 of file neon.hpp.
Referenced by blend_surface().