Vector Optimized Library of Kernels  3.3.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>
16 #include <volk/volk_64u_byteswap.h>
17 
18 #ifdef LV_HAVE_GENERIC
19 static 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
30 static 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
41 static 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
52 static 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
63 static 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
74 static 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
85 static 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 #ifdef LV_HAVE_NEON
96 static inline void volk_64u_byteswappuppet_64u_neon(uint64_t* output,
97  uint64_t* intsToSwap,
98  unsigned int num_points)
99 {
100 
101  volk_64u_byteswap_neon((uint64_t*)intsToSwap, num_points);
102  memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint64_t));
103 }
104 #endif
105 
106 #ifdef LV_HAVE_RVV
107 static inline void volk_64u_byteswappuppet_64u_rvv(uint64_t* output,
108  uint64_t* intsToSwap,
109  unsigned int num_points)
110 {
111 
112  volk_64u_byteswap_rvv((uint64_t*)intsToSwap, num_points);
113  memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint64_t));
114 }
115 #endif
116 
117 #ifdef LV_HAVE_RVA23
118 static inline void volk_64u_byteswappuppet_64u_rva23(uint64_t* output,
119  uint64_t* intsToSwap,
120  unsigned int num_points)
121 {
122 
123  volk_64u_byteswap_rva23((uint64_t*)intsToSwap, num_points);
124  memcpy((void*)output, (void*)intsToSwap, num_points * sizeof(uint64_t));
125 }
126 #endif
127 
128 #endif
volk_64u_byteswap_generic
static void volk_64u_byteswap_generic(uint64_t *intsToSwap, unsigned int num_points)
Definition: volk_64u_byteswap.h:164
volk_64u_byteswap.h
volk_64u_byteswap_u_sse2
static void volk_64u_byteswap_u_sse2(uint64_t *intsToSwap, unsigned int num_points)
Definition: volk_64u_byteswap.h:62
volk_64u_byteswappuppet_64u_u_ssse3
static void volk_64u_byteswappuppet_64u_u_ssse3(uint64_t *output, uint64_t *intsToSwap, unsigned int num_points)
Definition: volk_64u_byteswappuppet_64u.h:52
volk_64u_byteswap_neon
static void volk_64u_byteswap_neon(uint64_t *intsToSwap, unsigned int num_points)
Definition: volk_64u_byteswap.h:116
volk_64u_byteswap_a_ssse3
static void volk_64u_byteswap_a_ssse3(uint64_t *intsToSwap, unsigned int num_points)
Definition: volk_64u_byteswap.h:236
volk_64u_byteswap_u_ssse3
static void volk_64u_byteswap_u_ssse3(uint64_t *intsToSwap, unsigned int num_points)
Definition: volk_64u_byteswap.h:391
volk_64u_byteswappuppet_64u_a_ssse3
static void volk_64u_byteswappuppet_64u_a_ssse3(uint64_t *output, uint64_t *intsToSwap, unsigned int num_points)
Definition: volk_64u_byteswappuppet_64u.h:63
volk_64u_byteswappuppet_64u_generic
static void volk_64u_byteswappuppet_64u_generic(uint64_t *output, uint64_t *intsToSwap, unsigned int num_points)
Definition: volk_64u_byteswappuppet_64u.h:19
volk_64u_byteswap_a_sse2
static void volk_64u_byteswap_a_sse2(uint64_t *intsToSwap, unsigned int num_points)
Definition: volk_64u_byteswap.h:291
volk_64u_byteswappuppet_64u_a_sse2
static void volk_64u_byteswappuppet_64u_a_sse2(uint64_t *output, uint64_t *intsToSwap, unsigned int num_points)
Definition: volk_64u_byteswappuppet_64u.h:41
volk_64u_byteswappuppet_64u_u_sse2
static void volk_64u_byteswappuppet_64u_u_sse2(uint64_t *output, uint64_t *intsToSwap, unsigned int num_points)
Definition: volk_64u_byteswappuppet_64u.h:30
volk_64u_byteswappuppet_64u_neon
static void volk_64u_byteswappuppet_64u_neon(uint64_t *output, uint64_t *intsToSwap, unsigned int num_points)
Definition: volk_64u_byteswappuppet_64u.h:96