Vector Optimized Library of Kernels 3.1.0
Architecture-tuned implementations of math kernels
volk_16u_byteswappuppet_16u.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2014, 2015, 2020 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_16u_byteswappuppet_16u_H
11#define INCLUDED_volk_16u_byteswappuppet_16u_H
12
13
14#include <stdint.h>
15#include <string.h>
17
18#ifdef LV_HAVE_GENERIC
19static inline void volk_16u_byteswappuppet_16u_generic(uint16_t* output,
20 uint16_t* intsToSwap,
21 unsigned int num_points)
22{
23
24 volk_16u_byteswap_generic((uint16_t*)intsToSwap, num_points);
25 memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint16_t));
26}
27#endif
28
29#ifdef LV_HAVE_NEON
30static inline void volk_16u_byteswappuppet_16u_neon(uint16_t* output,
31 uint16_t* intsToSwap,
32 unsigned int num_points)
33{
34
35 volk_16u_byteswap_neon((uint16_t*)intsToSwap, num_points);
36 memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint16_t));
37}
38#endif
39
40#ifdef LV_HAVE_NEON
41static inline void volk_16u_byteswappuppet_16u_neon_table(uint16_t* output,
42 uint16_t* intsToSwap,
43 unsigned int num_points)
44{
45
46 volk_16u_byteswap_neon_table((uint16_t*)intsToSwap, num_points);
47 memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint16_t));
48}
49#endif
50
51#ifdef LV_HAVE_SSE2
52static inline void volk_16u_byteswappuppet_16u_u_sse2(uint16_t* output,
53 uint16_t* intsToSwap,
54 unsigned int num_points)
55{
56
57 volk_16u_byteswap_u_sse2((uint16_t*)intsToSwap, num_points);
58 memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint16_t));
59}
60#endif
61
62#ifdef LV_HAVE_SSE2
63static inline void volk_16u_byteswappuppet_16u_a_sse2(uint16_t* output,
64 uint16_t* intsToSwap,
65 unsigned int num_points)
66{
67
68 volk_16u_byteswap_a_sse2((uint16_t*)intsToSwap, num_points);
69 memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint16_t));
70}
71#endif
72
73#ifdef LV_HAVE_AVX2
74static inline void volk_16u_byteswappuppet_16u_u_avx2(uint16_t* output,
75 uint16_t* intsToSwap,
76 unsigned int num_points)
77{
78
79 volk_16u_byteswap_u_avx2((uint16_t*)intsToSwap, num_points);
80 memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint16_t));
81}
82#endif
83
84#ifdef LV_HAVE_AVX2
85static inline void volk_16u_byteswappuppet_16u_a_avx2(uint16_t* output,
86 uint16_t* intsToSwap,
87 unsigned int num_points)
88{
89
90 volk_16u_byteswap_a_avx2((uint16_t*)intsToSwap, num_points);
91 memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint16_t));
92}
93#endif
94
95#endif