intrinsic_common.hpp
Go to the documentation of this file.
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
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