Vector Optimized Library of Kernels  3.2.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  for (size_t i = 0; i < num_points; ++i) {
22  volk_32u_popcnt_generic(outVector + i, inVector[i]);
23  }
24 }
25 #endif /* LV_HAVE_GENERIC */
26 
27 #ifdef LV_HAVE_SSE4_2
28 static inline void volk_32u_popcntpuppet_32u_a_sse4_2(uint32_t* outVector,
29  const uint32_t* inVector,
30  unsigned int num_points)
31 {
32  for (size_t i = 0; i < num_points; ++i) {
33  volk_32u_popcnt_a_sse4_2(outVector + i, inVector[i]);
34  }
35 }
36 #endif /* LV_HAVE_SSE4_2 */
37 
38 #ifdef LV_HAVE_RVV
39 static inline void volk_32u_popcntpuppet_32u_rvv(uint32_t* outVector,
40  const uint32_t* inVector,
41  unsigned int num_points)
42 {
43  for (size_t i = 0; i < num_points; ++i) {
44  volk_32u_popcnt_rvv(outVector + i, inVector[i]);
45  }
46 }
47 #endif /* LV_HAVE_RVV */
48 
49 #ifdef LV_HAVE_RVA22V
50 static inline void volk_32u_popcntpuppet_32u_rva22(uint32_t* outVector,
51  const uint32_t* inVector,
52  unsigned int num_points)
53 {
54  for (size_t i = 0; i < num_points; ++i) {
55  volk_32u_popcnt_rva22(outVector + i, inVector[i]);
56  }
57 }
58 #endif /* LV_HAVE_RVA22V */
59 
60 #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:28
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
for i
Definition: volk_config_fixed.tmpl.h:13