⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spe.h

📁 linux下的gcc编译器
💻 H
📖 第 1 页 / 共 3 页
字号:
static inline float__ev_get_sfix32_fs_internal (__ev64_opaque__ a, uint32_t pos){  __ev64_fs__ v;  v = __builtin_spe_evfscfsf ((__v2sf) a);  return __ev_get_fs_internal ((__ev64_opaque__) v, pos);}static inline float__ev_get_ufix32_fs_internal (__ev64_opaque__ a, uint32_t pos){  __ev64_fs__ v;  v = __builtin_spe_evfscfuf ((__v2sf) a);  return __ev_get_fs_internal ((__ev64_opaque__) v, pos);}static inline uint16_t__ev_get_u16_internal (__ev64_opaque__ a, uint32_t pos){  union  {    __ev64_opaque__ v;    uint16_t i[4];  } u;  u.v = a;  return u.i[pos];}static inline int16_t__ev_get_s16_internal (__ev64_opaque__ a, uint32_t pos){  union  {    __ev64_opaque__ v;    int16_t i[4];  } u;  u.v = a;  return u.i[pos];}/* __ev_set_* functions.  */#define __ev_set_u32(a, b, c) __ev_set_u32_internal ((__ev64_opaque__) a, b, c)#define __ev_set_s32(a, b, c) __ev_set_s32_internal ((__ev64_opaque__) a, b, c)#define __ev_set_fs(a, b, c) __ev_set_fs_internal ((__ev64_opaque__) a, b, c)#define __ev_set_u16(a, b, c) __ev_set_u16_internal ((__ev64_opaque__) a, b, c)#define __ev_set_s16(a, b, c) __ev_set_s16_internal ((__ev64_opaque__) a, b, c)#define __ev_set_ufix32_u32 __ev_set_u32#define __ev_set_sfix32_s32 __ev_set_s32#define __ev_set_sfix32_fs(a, b, c)  __ev_set_sfix32_fs_internal ((__ev64_opaque__) (a), b, c)#define __ev_set_ufix32_fs(a, b, c)  __ev_set_ufix32_fs_internal ((__ev64_opaque__) (a), b, c)#define __ev_set_upper_u32(a, b) __ev_set_u32 (a, b, 0)#define __ev_set_lower_u32(a, b) __ev_set_u32 (a, b, 1)#define __ev_set_upper_s32(a, b) __ev_set_s32 (a, b, 0)#define __ev_set_lower_s32(a, b) __ev_set_s32 (a, b, 1)#define __ev_set_upper_fs(a, b) __ev_set_fs (a, b, 0)#define __ev_set_lower_fs(a, b) __ev_set_fs (a, b, 1)#define __ev_set_upper_ufix32_u32 __ev_set_upper_u32#define __ev_set_lower_ufix32_u32 __ev_set_lower_u32#define __ev_set_upper_sfix32_s32 __ev_set_upper_s32#define __ev_set_lower_sfix32_s32 __ev_set_lower_s32#define __ev_set_upper_sfix32_fs(a, b)  __ev_set_sfix32_fs (a, b, 0)#define __ev_set_lower_sfix32_fs(a, b)  __ev_set_sfix32_fs (a, b, 1)#define __ev_set_upper_ufix32_fs(a, b)  __ev_set_ufix32_fs (a, b, 0)#define __ev_set_lower_ufix32_fs(a, b)  __ev_set_ufix32_fs (a, b, 1)#define __ev_set_acc_vec64(a) __builtin_spe_evmra ((__ev64_opaque__)(a))static inline __ev64_opaque____ev_set_acc_u64 (uint64_t a){  __ev64_opaque__ ev32;  ev32 = __ev_create_u64 (a);  __ev_mra (ev32);  return ev32;}static inline __ev64_opaque____ev_set_acc_s64 (int64_t a){  __ev64_opaque__ ev32;  ev32 = __ev_create_s64 (a);  __ev_mra (ev32);  return ev32;}static inline __ev64_opaque____ev_set_u32_internal (__ev64_opaque__ a, uint32_t b, uint32_t pos){  union  {    __ev64_opaque__ v;    uint32_t i[2];  } u;  u.v = a;  u.i[pos] = b;  return u.v;}static inline __ev64_opaque____ev_set_s32_internal (__ev64_opaque__ a, int32_t b, uint32_t pos){  union  {    __ev64_opaque__ v;    int32_t i[2];  } u;  u.v = a;  u.i[pos] = b;  return u.v;}static inline __ev64_opaque____ev_set_fs_internal (__ev64_opaque__ a, float b, uint32_t pos){  union  {    __ev64_opaque__ v;    float f[2];  } u;  u.v = a;  u.f[pos] = b;  return u.v;}static inline __ev64_opaque____ev_set_sfix32_fs_internal (__ev64_opaque__ a, float b, uint32_t pos){  __ev64_opaque__ v;  float other;  /* Get other half.  */  other = __ev_get_fs_internal (a, pos ^ 1);  /* Make an sfix32 with 'b'.  */  v = __ev_create_sfix32_fs (b, b);  /* Set other half to what it used to be.  */  return __ev_set_fs_internal (v, other, pos ^ 1);}static inline __ev64_opaque____ev_set_ufix32_fs_internal (__ev64_opaque__ a, float b, uint32_t pos){  __ev64_opaque__ v;  float other;  /* Get other half.  */  other = __ev_get_fs_internal (a, pos ^ 1);  /* Make an ufix32 with 'b'.  */  v = __ev_create_ufix32_fs (b, b);  /* Set other half to what it used to be.  */  return __ev_set_fs_internal (v, other, pos ^ 1);}static inline __ev64_opaque____ev_set_u16_internal (__ev64_opaque__ a, uint16_t b, uint32_t pos){  union  {    __ev64_opaque__ v;    uint16_t i[4];  } u;  u.v = a;  u.i[pos] = b;  return u.v;}static inline __ev64_opaque____ev_set_s16_internal (__ev64_opaque__ a, int16_t b, uint32_t pos){  union  {    __ev64_opaque__ v;    int16_t i[4];  } u;  u.v = a;  u.i[pos] = b;  return u.v;}/* Predicates.  */#define __pred_all	0#define __pred_any	1#define __pred_upper	2#define __pred_lower	3#define __ev_any_gts(a, b)		__builtin_spe_evcmpgts (__pred_any, (__v2si) (a), (__v2si) (b))#define __ev_all_gts(a, b)		__builtin_spe_evcmpgts (__pred_all, (__v2si) (a), (__v2si) (b))#define __ev_upper_gts(a, b)		__builtin_spe_evcmpgts (__pred_upper, (__v2si) (a), (__v2si) (b))#define __ev_lower_gts(a, b)		__builtin_spe_evcmpgts (__pred_lower, (__v2si) (a), (__v2si) (b))#define __ev_select_gts(a, b, c, d) 	((__v2si) __builtin_spe_evsel_gts ((__v2si) (a), (__v2si) (b), (__v2si) (c), (__v2si) (d)))#define __ev_any_gtu(a, b)		__builtin_spe_evcmpgtu (__pred_any, (__v2si) (a), (__v2si) (b))#define __ev_all_gtu(a, b)		__builtin_spe_evcmpgtu (__pred_all, (__v2si) (a), (__v2si) (b))#define __ev_upper_gtu(a, b)		__builtin_spe_evcmpgtu (__pred_upper, (__v2si) (a), (__v2si) (b))#define __ev_lower_gtu(a, b)		__builtin_spe_evcmpgtu (__pred_lower, (__v2si) (a), (__v2si) (b))#define __ev_select_gtu(a, b, c, d) 	((__v2si) __builtin_spe_evsel_gtu ((__v2si) (a), (__v2si) (b), (__v2si) (c), (__v2si) (d)))#define __ev_any_lts(a, b)		__builtin_spe_evcmplts (__pred_any, (__v2si) (a), (__v2si) (b))#define __ev_all_lts(a, b)		__builtin_spe_evcmplts (__pred_all, (__v2si) (a), (__v2si) (b))#define __ev_upper_lts(a, b)		__builtin_spe_evcmplts (__pred_upper, (__v2si) (a), (__v2si) (b))#define __ev_lower_lts(a, b)		__builtin_spe_evcmplts (__pred_lower, (__v2si) (a), (__v2si) (b))#define __ev_select_lts(a, b, c, d) 	((__v2si) __builtin_spe_evsel_lts ((__v2si) (a), (__v2si) (b), (__v2si) (c), (__v2si) (d)))#define __ev_any_ltu(a, b)		__builtin_spe_evcmpltu (__pred_any, (__v2si) (a), (__v2si) (b))#define __ev_all_ltu(a, b)		__builtin_spe_evcmpltu (__pred_all, (__v2si) (a), (__v2si) (b))#define __ev_upper_ltu(a, b)		__builtin_spe_evcmpltu (__pred_upper, (__v2si) (a), (__v2si) (b))#define __ev_lower_ltu(a, b)		__builtin_spe_evcmpltu (__pred_lower, (__v2si) (a), (__v2si) (b))#define __ev_select_ltu(a, b, c, d) 	((__v2si) __builtin_spe_evsel_ltu ((__v2si) (a), (__v2si) (b), (__v2si) (c), (__v2si) (d)))#define __ev_any_eq(a, b)		__builtin_spe_evcmpeq (__pred_any, (__v2si) (a), (__v2si) (b))#define __ev_all_eq(a, b)		__builtin_spe_evcmpeq (__pred_all, (__v2si) (a), (__v2si) (b))#define __ev_upper_eq(a, b)		__builtin_spe_evcmpeq (__pred_upper, (__v2si) (a), (__v2si) (b))#define __ev_lower_eq(a, b)		__builtin_spe_evcmpeq (__pred_lower, (__v2si) (a), (__v2si) (b))#define __ev_select_eq(a, b, c, d) 	((__v2si) __builtin_spe_evsel_eq ((__v2si) (a), (__v2si) (b), (__v2si) (c), (__v2si) (d)))#define __ev_any_fs_gt(a, b)		__builtin_spe_evfscmpgt (__pred_any, (__v2sf) (a), (__v2sf) (b))#define __ev_all_fs_gt(a, b)		__builtin_spe_evfscmpgt (__pred_all, (__v2sf) (a), (__v2sf) (b))#define __ev_upper_fs_gt(a, b)		__builtin_spe_evfscmpgt (__pred_upper, (__v2sf) (a), (__v2sf) (b))#define __ev_lower_fs_gt(a, b)		__builtin_spe_evfscmpgt (__pred_lower, (__v2sf) (a), (__v2sf) (b))#define __ev_select_fs_gt(a, b, c, d)	((__v2si) __builtin_spe_evsel_fsgt ((__v2sf) (a), (__v2sf) (b), (__v2sf) (c), (__v2sf) (d)))#define __ev_any_fs_lt(a, b)		__builtin_spe_evfscmplt (__pred_any, (__v2sf) (a), (__v2sf) (b))#define __ev_all_fs_lt(a, b)		__builtin_spe_evfscmplt (__pred_all, (__v2sf) (a), (__v2sf) (b))#define __ev_upper_fs_lt(a, b)		__builtin_spe_evfscmplt (__pred_upper, (__v2sf) (a), (__v2sf) (b))#define __ev_lower_fs_lt(a, b)		__builtin_spe_evfscmplt (__pred_lower, (__v2sf) (a), (__v2sf) (b))#define __ev_select_fs_lt(a, b, c, d)	((__v2si) __builtin_spe_evsel_fslt ((__v2sf) (a), (__v2sf) (b), (__v2sf) (c), (__v2sf) (d)))#define __ev_any_fs_eq(a, b)		__builtin_spe_evfscmpeq (__pred_any, (__v2sf) (a), (__v2sf) (b))#define __ev_all_fs_eq(a, b)		__builtin_spe_evfscmpeq (__pred_all, (__v2sf) (a), (__v2sf) (b))#define __ev_upper_fs_eq(a, b)		__builtin_spe_evfscmpeq (__pred_upper, (__v2sf) (a), (__v2sf) (b))#define __ev_lower_fs_eq(a, b)		__builtin_spe_evfscmpeq (__pred_lower, (__v2sf) (a), (__v2sf) (b))#define __ev_select_fs_eq(a, b, c, d)	((__v2si) __builtin_spe_evsel_fseq ((__v2sf) (a), (__v2sf) (b), (__v2sf) (c), (__v2sf) (d)))#define __ev_any_fs_tst_gt(a, b)	__builtin_spe_evfststgt (__pred_any, (__v2sf) (a), (__v2sf) (b))#define __ev_all_fs_tst_gt(a, b)	__builtin_spe_evfststgt (__pred_all, (__v2sf) (a), (__v2sf) (b))#define __ev_upper_fs_tst_gt(a, b)	__builtin_spe_evfststgt (__pred_upper, (__v2sf) (a), (__v2sf) (b))#define __ev_lower_fs_tst_gt(a, b)	__builtin_spe_evfststgt (__pred_lower, (__v2sf) (a), (__v2sf) (b))#define __ev_select_fs_tst_gt(a, b, c, d)	((__v2si) __builtin_spe_evsel_fststgt ((__v2sf) (a), (__v2sf) (b), (__v2sf) (c), (__v2sf) (d)))#define __ev_any_fs_tst_lt(a, b)	__builtin_spe_evfststlt (__pred_any, (__v2sf) (a), (__v2sf) (b))#define __ev_all_fs_tst_lt(a, b)	__builtin_spe_evfststlt (__pred_all, (__v2sf) (a), (__v2sf) (b))#define __ev_upper_fs_tst_lt(a, b)	__builtin_spe_evfststlt (__pred_upper, (__v2sf) (a), (__v2sf) (b))#define __ev_lower_fs_tst_lt(a, b)	__builtin_spe_evfststlt (__pred_lower, (__v2sf) (a), (__v2sf) (b))#define __ev_select_fs_tst_lt(a, b, c, d)	((__v2si) __builtin_spe_evsel_fststlt ((__v2sf) (a), (__v2sf) (b), (__v2sf) (c), (__v2sf) (d)))#define __ev_any_fs_tst_eq(a, b)	__builtin_spe_evfststeq (__pred_any, (__v2sf) (a), (__v2sf) (b))#define __ev_all_fs_tst_eq(a, b)	__builtin_spe_evfststeq (__pred_all, (__v2sf) (a), (__v2sf) (b))#define __ev_upper_fs_tst_eq(a, b)	__builtin_spe_evfststeq (__pred_upper, (__v2sf) (a), (__v2sf) (b))#define __ev_lower_fs_tst_eq(a, b)	__builtin_spe_evfststeq (__pred_lower, (__v2sf) (a), (__v2sf) (b))#define __ev_select_fs_tst_eq(a, b, c, d)	((__v2si) __builtin_spe_evsel_fststeq ((__v2sf) (a), (__v2sf) (b), (__v2sf) (c), (__v2sf) (d)))/* SPEFSCR accesor functions.  */#define __SPEFSCR_SOVH		0x80000000#define __SPEFSCR_OVH		0x40000000#define __SPEFSCR_FGH		0x20000000#define __SPEFSCR_FXH		0x10000000#define __SPEFSCR_FINVH		0x08000000#define __SPEFSCR_FDBZH		0x04000000#define __SPEFSCR_FUNFH		0x02000000#define __SPEFSCR_FOVFH		0x01000000/* 2 unused bits.  */#define __SPEFSCR_FINXS		0x00200000#define __SPEFSCR_FINVS		0x00100000#define __SPEFSCR_FDBZS		0x00080000#define __SPEFSCR_FUNFS		0x00040000#define __SPEFSCR_FOVFS		0x00020000#define __SPEFSCR_MODE		0x00010000#define __SPEFSCR_SOV		0x00008000#define __SPEFSCR_OV		0x00004000#define __SPEFSCR_FG		0x00002000#define __SPEFSCR_FX		0x00001000#define __SPEFSCR_FINV		0x00000800#define __SPEFSCR_FDBZ		0x00000400#define __SPEFSCR_FUNF		0x00000200#define __SPEFSCR_FOVF		0x00000100/* 1 unused bit.  */#define __SPEFSCR_FINXE		0x00000040#define __SPEFSCR_FINVE		0x00000020#define __SPEFSCR_FDBZE		0x00000010#define __SPEFSCR_FUNFE		0x00000008#define __SPEFSCR_FOVFE		0x00000004#define __SPEFSCR_FRMC		0x00000003#define __ev_get_spefscr_sovh() (__builtin_spe_mfspefscr () & __SPEFSCR_SOVH)#define __ev_get_spefscr_ovh() (__builtin_spe_mfspefscr () & __SPEFSCR_OVH)#define __ev_get_spefscr_fgh() (__builtin_spe_mfspefscr () & __SPEFSCR_FGH)#define __ev_get_spefscr_fxh() (__builtin_spe_mfspefscr () & __SPEFSCR_FXH)#define __ev_get_spefscr_finvh() (__builtin_spe_mfspefscr () & __SPEFSCR_FINVH)#define __ev_get_spefscr_fdbzh() (__builtin_spe_mfspefscr () & __SPEFSCR_FDBZH)#define __ev_get_spefscr_funfh() (__builtin_spe_mfspefscr () & __SPEFSCR_FUNFH)#define __ev_get_spefscr_fovfh() (__builtin_spe_mfspefscr () & __SPEFSCR_FOVFH)#define __ev_get_spefscr_finxs() (__builtin_spe_mfspefscr () & __SPEFSCR_FINXS)#define __ev_get_spefscr_finvs() (__builtin_spe_mfspefscr () & __SPEFSCR_FINVS)#define __ev_get_spefscr_fdbzs() (__builtin_spe_mfspefscr () & __SPEFSCR_FDBZS)#define __ev_get_spefscr_funfs() (__builtin_spe_mfspefscr () & __SPEFSCR_FUNFS)#define __ev_get_spefscr_fovfs() (__builtin_spe_mfspefscr () & __SPEFSCR_FOVFS)#define __ev_get_spefscr_mode() (__builtin_spe_mfspefscr () & __SPEFSCR_MODE)#define __ev_get_spefscr_sov() (__builtin_spe_mfspefscr () & __SPEFSCR_SOV)#define __ev_get_spefscr_ov() (__builtin_spe_mfspefscr () & __SPEFSCR_OV)#define __ev_get_spefscr_fg() (__builtin_spe_mfspefscr () & __SPEFSCR_FG)#define __ev_get_spefscr_fx() (__builtin_spe_mfspefscr () & __SPEFSCR_FX)#define __ev_get_spefscr_finv() (__builtin_spe_mfspefscr () & __SPEFSCR_FINV)#define __ev_get_spefscr_fdbz() (__builtin_spe_mfspefscr () & __SPEFSCR_FDBZ)#define __ev_get_spefscr_funf() (__builtin_spe_mfspefscr () & __SPEFSCR_FUNF)#define __ev_get_spefscr_fovf() (__builtin_spe_mfspefscr () & __SPEFSCR_FOVF)#define __ev_get_spefscr_finxe() (__builtin_spe_mfspefscr () & __SPEFSCR_FINXE)#define __ev_get_spefscr_finve() (__builtin_spe_mfspefscr () & __SPEFSCR_FINVE)#define __ev_get_spefscr_fdbze() (__builtin_spe_mfspefscr () & __SPEFSCR_FDBZE)#define __ev_get_spefscr_funfe() (__builtin_spe_mfspefscr () & __SPEFSCR_FUNFE)#define __ev_get_spefscr_fovfe() (__builtin_spe_mfspefscr () & __SPEFSCR_FOVFE)#define __ev_get_spefscr_frmc() (__builtin_spe_mfspefscr () & __SPEFSCR_FRMC)static inline void__ev_clr_spefscr_field (int mask){  int i;  i = __builtin_spe_mfspefscr ();  i &= ~mask;  __builtin_spe_mtspefscr (i);}#define __ev_clr_spefscr_sovh() __ev_clr_spefscr_field (__SPEFSCR_SOVH)#define __ev_clr_spefscr_sov() __ev_clr_spefscr_field (__SPEFSCR_SOV)#define __ev_clr_spefscr_finxs() __ev_clr_spefscr_field (__SPEFSCR_FINXS)#define __ev_clr_spefscr_finvs() __ev_clr_spefscr_field (__SPEFSCR_FINVS)#define __ev_clr_spefscr_fdbzs() __ev_clr_spefscr_field (__SPEFSCR_FDBZS)#define __ev_clr_spefscr_funfs() __ev_clr_spefscr_field (__SPEFSCR_FUNFS)#define __ev_clr_spefscr_fovfs() __ev_clr_spefscr_field (__SPEFSCR_FOVFS)/* Set rounding mode:     rnd = 0 (nearest)     rnd = 1 (zero)     rnd = 2 (+inf)     rnd = 3 (-inf).  */static inline void__ev_set_spefscr_frmc (int rnd){  int i;  i = __builtin_spe_mfspefscr ();  i &= ~__SPEFSCR_FRMC;  i |= rnd;}#endif /* _SPE_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -