All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Setzero.h
Go to the documentation of this file.
1 //=================================================================================================
20 //=================================================================================================
21 
22 #ifndef _BLAZE_MATH_INTRINSICS_SETZERO_H_
23 #define _BLAZE_MATH_INTRINSICS_SETZERO_H_
24 
25 
26 //*************************************************************************************************
27 // Includes
28 //*************************************************************************************************
29 
32 
33 
34 namespace blaze {
35 
36 //=================================================================================================
37 //
38 // INTRINSIC SETZERO FUNCTIONS
39 //
40 //=================================================================================================
41 
42 //*************************************************************************************************
49 inline void setzero( sse_int8_t& value )
50 {
51 #if BLAZE_SSE2_MODE
52  value.value = _mm_setzero_si128();
53 #else
54  value = 0;
55 #endif
56 }
57 //*************************************************************************************************
58 
59 
60 //*************************************************************************************************
67 inline void setzero( sse_int16_t& value )
68 {
69 #if BLAZE_SSE2_MODE
70  value.value = _mm_setzero_si128();
71 #else
72  value = 0;
73 #endif
74 }
75 //*************************************************************************************************
76 
77 
78 //*************************************************************************************************
85 inline void setzero( sse_int32_t& value )
86 {
87 #if BLAZE_MIC_MODE
88  value.value = _mm512_setzero_epi32();
89 #elif BLAZE_SSE2_MODE
90  value.value = _mm_setzero_si128();
91 #else
92  value = 0;
93 #endif
94 }
95 //*************************************************************************************************
96 
97 
98 //*************************************************************************************************
105 inline void setzero( sse_int64_t& value )
106 {
107 #if BLAZE_MIC_MODE
108  value.value = _mm512_setzero_epi32();
109 #elif BLAZE_SSE2_MODE
110  value.value = _mm_setzero_si128();
111 #else
112  value = 0;
113 #endif
114 }
115 //*************************************************************************************************
116 
117 
118 //*************************************************************************************************
125 inline void setzero( sse_float_t& value )
126 {
127 #if BLAZE_MIC_MODE
128  value.value = _mm512_setzero_ps();
129 #elif BLAZE_AVX_MODE
130  value.value = _mm256_setzero_ps();
131 #elif BLAZE_SSE_MODE
132  value.value = _mm_setzero_ps();
133 #else
134  value = 0.0F;
135 #endif
136 }
137 //*************************************************************************************************
138 
139 
140 //*************************************************************************************************
147 inline void setzero( sse_double_t& value )
148 {
149 #if BLAZE_MIC_MODE
150  value.value = _mm512_setzero_pd();
151 #elif BLAZE_AVX_MODE
152  value.value = _mm256_setzero_pd();
153 #elif BLAZE_SSE2_MODE
154  value.value = _mm_setzero_pd();
155 #else
156  value = 0.0;
157 #endif
158 }
159 //*************************************************************************************************
160 
161 } // namespace blaze
162 
163 #endif