GLM: intrinsic_common.hpp Source File

GLM 0.9.5

- Main Page
- Related Pages
- Modules
- Namespaces
- Files

- File List

intrinsic_common.hpp
1
29 #ifndef glm_detail_intrinsic_common
30 #define glm_detail_intrinsic_common
31
32 #include "setup.hpp"
33
34 #if(!(GLM_ARCH & GLM_ARCH_SSE2))
35 # error "SSE2 instructions not supported or enabled"
36 #else
37
38 namespace glm{
39 namespace detail
40 {
41 __m128 sse_abs_ps(__m128 x);
42
43 __m128 sse_sgn_ps(__m128 x);
44
45 //floor
46 __m128 sse_flr_ps(__m128 v);
47
48 //trunc
49 __m128 sse_trc_ps(__m128 v);
50
51 //round
52 __m128 sse_nd_ps(__m128 v);
53
54 //roundEven
55 __m128 sse_rde_ps(__m128 v);
56
57 __m128 sse_rnd_ps(__m128 x);
58
59 __m128 sse_ceil_ps(__m128 v);
60
61 __m128 sse_frc_ps(__m128 x);
62
63 __m128 sse_mod_ps(__m128 x, __m128 y);
64
65 __m128 sse_modf_ps(__m128 x, __m128i & i);
66
67 //GLM_FUNC_QUALIFIER __m128 sse_min_ps(__m128 x, __m128 y)
68
69 //GLM_FUNC_QUALIFIER __m128 sse_max_ps(__m128 x, __m128 y)
70
71 __m128 sse_clp_ps(__m128 v, __m128 minVal, __m128 maxVal);
72
73 __m128 sse_mix_ps(__m128 v1, __m128 v2, __m128 a);
74
75 __m128 sse_stp_ps(__m128 edge, __m128 x);
76
77 __m128 sse_ssp_ps(__m128 edge0, __m128 edge1, __m128 x);
78
79 __m128 sse_nan_ps(__m128 x);
80
81 __m128 sse_inf_ps(__m128 x);
82
83 }//namespace detail
84 }//namespace glm
85
86 #include "intrinsic_common.inl"
87
88 #endif//GLM_ARCH
89 #endif//glm_detail_intrinsic_common