Vector Optimized Library of Kernels 3.1.0
Architecture-tuned implementations of math kernels
volk_64u_byteswappuppet_64u.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2014, 2015, 2018, 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_64u_byteswappuppet_64u_H
11#define INCLUDED_volk_64u_byteswappuppet_64u_H
12
13
14#include <stdint.h>
15#include <string.h>
17
18#ifdef LV_HAVE_GENERIC
19static inline void volk_64u_byteswappuppet_64u_generic(uint64_t* output,
20 uint64_t* intsToSwap,
21 unsigned int num_points)
22{
23
24 volk_64u_byteswap_generic((uint64_t*)intsToSwap, num_points);
25 memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint64_t));
26}
27#endif
28
29#ifdef LV_HAVE_SSE2
30static inline void volk_64u_byteswappuppet_64u_u_sse2(uint64_t* output,
31 uint64_t* intsToSwap,
32 unsigned int num_points)
33{
34
35 volk_64u_byteswap_u_sse2((uint64_t*)intsToSwap, num_points);
36 memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint64_t));
37}
38#endif
39
40#ifdef LV_HAVE_SSE2
41static inline void volk_64u_byteswappuppet_64u_a_sse2(uint64_t* output,
42 uint64_t* intsToSwap,
43 unsigned int num_points)
44{
45
46 volk_64u_byteswap_a_sse2((uint64_t*)intsToSwap, num_points);
47 memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint64_t));
48}
49#endif
50
51#ifdef LV_HAVE_SSSE3
52static inline void volk_64u_byteswappuppet_64u_u_ssse3(uint64_t* output,
53 uint64_t* intsToSwap,
54 unsigned int num_points)
55{
56
57 volk_64u_byteswap_u_ssse3((uint64_t*)intsToSwap, num_points);
58 memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint64_t));
59}
60#endif
61
62#ifdef LV_HAVE_SSSE3
63static inline void volk_64u_byteswappuppet_64u_a_ssse3(uint64_t* output,
64 uint64_t* intsToSwap,
65 unsigned int num_points)
66{
67
68 volk_64u_byteswap_a_ssse3((uint64_t*)intsToSwap, num_points);
69 memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint64_t));
70}
71#endif
72
73#ifdef LV_HAVE_AVX2
74static inline void volk_64u_byteswappuppet_64u_u_avx2(uint64_t* output,
75 uint64_t* intsToSwap,
76 unsigned int num_points)
77{
78
79 volk_64u_byteswap_u_avx2((uint64_t*)intsToSwap, num_points);
80 memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint64_t));
81}
82#endif
83
84#ifdef LV_HAVE_AVX2
85static inline void volk_64u_byteswappuppet_64u_a_avx2(uint64_t* output,
86 uint64_t* intsToSwap,
87 unsigned int num_points)
88{
89
90 volk_64u_byteswap_a_avx2((uint64_t*)intsToSwap, num_points);
91 memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint64_t));
92}
93#endif
94
95#endif