68 #ifndef INCLUDED_volk_32fc_conjugate_32fc_u_H 69 #define INCLUDED_volk_32fc_conjugate_32fc_u_H 77 #include <immintrin.h> 81 unsigned int num_points)
83 unsigned int number = 0;
84 const unsigned int quarterPoints = num_points / 4;
90 __m256 conjugator = _mm256_setr_ps(0, -0.f, 0, -0.f, 0, -0.f, 0, -0.f);
92 for (; number < quarterPoints; number++) {
94 x = _mm256_loadu_ps((
float*)a);
96 x = _mm256_xor_ps(x, conjugator);
98 _mm256_storeu_ps((
float*)c, x);
104 number = quarterPoints * 4;
106 for (; number < num_points; number++) {
113 #include <pmmintrin.h> 117 unsigned int num_points)
119 unsigned int number = 0;
120 const unsigned int halfPoints = num_points / 2;
126 __m128 conjugator = _mm_setr_ps(0, -0.f, 0, -0.f);
128 for (; number < halfPoints; number++) {
130 x = _mm_loadu_ps((
float*)a);
132 x = _mm_xor_ps(x, conjugator);
134 _mm_storeu_ps((
float*)c, x);
140 if ((num_points % 2) != 0) {
146 #ifdef LV_HAVE_GENERIC 150 unsigned int num_points)
154 unsigned int number = 0;
156 for (number = 0; number < num_points; number++) {
164 #ifndef INCLUDED_volk_32fc_conjugate_32fc_a_H 165 #define INCLUDED_volk_32fc_conjugate_32fc_a_H 168 #include <inttypes.h> 173 #include <immintrin.h> 177 unsigned int num_points)
179 unsigned int number = 0;
180 const unsigned int quarterPoints = num_points / 4;
186 __m256 conjugator = _mm256_setr_ps(0, -0.f, 0, -0.f, 0, -0.f, 0, -0.f);
188 for (; number < quarterPoints; number++) {
190 x = _mm256_load_ps((
float*)a);
192 x = _mm256_xor_ps(x, conjugator);
194 _mm256_store_ps((
float*)c, x);
200 number = quarterPoints * 4;
202 for (; number < num_points; number++) {
209 #include <pmmintrin.h> 213 unsigned int num_points)
215 unsigned int number = 0;
216 const unsigned int halfPoints = num_points / 2;
222 __m128 conjugator = _mm_setr_ps(0, -0.f, 0, -0.f);
224 for (; number < halfPoints; number++) {
226 x = _mm_load_ps((
float*)a);
228 x = _mm_xor_ps(x, conjugator);
230 _mm_store_ps((
float*)c, x);
236 if ((num_points % 2) != 0) {
243 #include <arm_neon.h> 247 unsigned int num_points)
250 const unsigned int quarterPoints = num_points / 4;
256 for (number = 0; number < quarterPoints; number++) {
258 x = vld2q_f32((
float*)a);
261 x.val[1] = vnegq_f32(x.val[1]);
263 vst2q_f32((
float*)c, x);
269 for (number = quarterPoints * 4; number < num_points; number++) {
276 #ifdef LV_HAVE_GENERIC 280 unsigned int num_points)
284 unsigned int number = 0;
286 for (number = 0; number < num_points; number++) {
static void volk_32fc_conjugate_32fc_u_avx(lv_32fc_t *cVector, const lv_32fc_t *aVector, unsigned int num_points)
Definition: volk_32fc_conjugate_32fc.h:79
static void volk_32fc_conjugate_32fc_a_sse3(lv_32fc_t *cVector, const lv_32fc_t *aVector, unsigned int num_points)
Definition: volk_32fc_conjugate_32fc.h:211
#define lv_conj(x)
Definition: volk_complex.h:96
static void volk_32fc_conjugate_32fc_u_sse3(lv_32fc_t *cVector, const lv_32fc_t *aVector, unsigned int num_points)
Definition: volk_32fc_conjugate_32fc.h:115
#define __VOLK_PREFETCH(addr)
Definition: volk_common.h:62
static void volk_32fc_conjugate_32fc_a_avx(lv_32fc_t *cVector, const lv_32fc_t *aVector, unsigned int num_points)
Definition: volk_32fc_conjugate_32fc.h:175
float complex lv_32fc_t
Definition: volk_complex.h:70
static void volk_32fc_conjugate_32fc_generic(lv_32fc_t *cVector, const lv_32fc_t *aVector, unsigned int num_points)
Definition: volk_32fc_conjugate_32fc.h:148
static void volk_32fc_conjugate_32fc_a_neon(lv_32fc_t *cVector, const lv_32fc_t *aVector, unsigned int num_points)
Definition: volk_32fc_conjugate_32fc.h:245
static void volk_32fc_conjugate_32fc_a_generic(lv_32fc_t *cVector, const lv_32fc_t *aVector, unsigned int num_points)
Definition: volk_32fc_conjugate_32fc.h:278