Vector Optimized Library of Kernels  3.0.0
Architecture-tuned implementations of math kernels
volk_32u_popcntpuppet_32u.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2014 Free Software Foundation, Inc.
4  *
5  * This file is part of VOLK
6  *
7  * SPDX-License-Identifier: LGPL-3.0-or-later
8  */
9 
10 #ifndef INCLUDED_volk_32u_popcntpuppet_32u_H
11 #define INCLUDED_volk_32u_popcntpuppet_32u_H
12 
13 #include <stdint.h>
14 #include <volk/volk_32u_popcnt.h>
15 
16 #ifdef LV_HAVE_GENERIC
17 static inline void volk_32u_popcntpuppet_32u_generic(uint32_t* outVector,
18  const uint32_t* inVector,
19  unsigned int num_points)
20 {
21  unsigned int ii;
22  for (ii = 0; ii < num_points; ++ii) {
23  volk_32u_popcnt_generic(outVector + ii, *(inVector + ii));
24  }
25 }
26 #endif /* LV_HAVE_GENERIC */
27 
28 #ifdef LV_HAVE_SSE4_2
29 static inline void volk_32u_popcntpuppet_32u_a_sse4_2(uint32_t* outVector,
30  const uint32_t* inVector,
31  unsigned int num_points)
32 {
33  unsigned int ii;
34  for (ii = 0; ii < num_points; ++ii) {
35  volk_32u_popcnt_a_sse4_2(outVector + ii, *(inVector + ii));
36  }
37 }
38 #endif /* LV_HAVE_SSE4_2 */
39 
40 #endif /* INCLUDED_volk_32fc_s32fc_rotatorpuppet_32fc_a_H */
static void volk_32u_popcnt_a_sse4_2(uint32_t *ret, const uint32_t value)
Definition: volk_32u_popcnt.h:72
static void volk_32u_popcnt_generic(uint32_t *ret, const uint32_t value)
Definition: volk_32u_popcnt.h:51
static void volk_32u_popcntpuppet_32u_a_sse4_2(uint32_t *outVector, const uint32_t *inVector, unsigned int num_points)
Definition: volk_32u_popcntpuppet_32u.h:29
static void volk_32u_popcntpuppet_32u_generic(uint32_t *outVector, const uint32_t *inVector, unsigned int num_points)
Definition: volk_32u_popcntpuppet_32u.h:17