Vector Optimized Library of Kernels 3.1.0
Architecture-tuned implementations of math kernels
volk_32f_s32f_clamppuppet_32f.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2023 Magnus Lundmark <magnuslundmark@gmail.com>
4 *
5 * This file is part of VOLK
6 *
7 * SPDX-License-Identifier: LGPL-3.0-or-later
8 */
9
10#ifndef INCLUDED_volk_32f_s32f_clamppuppet_32f_H
11#define INCLUDED_volk_32f_s32f_clamppuppet_32f_H
12
14
15#ifdef LV_HAVE_GENERIC
16static inline void volk_32f_s32f_clamppuppet_32f_generic(float* out,
17 const float* in,
18 const float min,
19 unsigned int num_points)
20{
21 volk_32f_s32f_x2_clamp_32f_generic(out, in, min, -min, num_points);
22}
23#endif
24
25#ifdef LV_HAVE_AVX2
26static inline void volk_32f_s32f_clamppuppet_32f_a_avx2(float* out,
27 const float* in,
28 const float min,
29 unsigned int num_points)
30{
31 volk_32f_s32f_x2_clamp_32f_a_avx2(out, in, min, -min, num_points);
32}
33#endif
34
35#ifdef LV_HAVE_SSE4_1
36static inline void volk_32f_s32f_clamppuppet_32f_a_sse4_1(float* out,
37 const float* in,
38 const float min,
39 unsigned int num_points)
40{
41 volk_32f_s32f_x2_clamp_32f_a_sse4_1(out, in, min, -min, num_points);
42}
43#endif
44
45#ifdef LV_HAVE_AVX2
46static inline void volk_32f_s32f_clamppuppet_32f_u_avx2(float* out,
47 const float* in,
48 const float min,
49 unsigned int num_points)
50{
51 volk_32f_s32f_x2_clamp_32f_u_avx2(out, in, min, -min, num_points);
52}
53#endif
54
55#ifdef LV_HAVE_SSE4_1
56static inline void volk_32f_s32f_clamppuppet_32f_u_sse4_1(float* out,
57 const float* in,
58 const float min,
59 unsigned int num_points)
60{
61 volk_32f_s32f_x2_clamp_32f_u_sse4_1(out, in, min, -min, num_points);
62}
63#endif
64
65#endif /* INCLUDED_volk_32f_s32f_clamppuppet_32f_H */