Line |
Branch |
Exec |
Source |
1 |
|
|
|
2 |
|
|
/* autogenerated from volk_16u_byteswap_a_orc_impl.orc */ |
3 |
|
|
|
4 |
|
|
#ifdef HAVE_CONFIG_H |
5 |
|
|
#include "config.h" |
6 |
|
|
#endif |
7 |
|
|
#include <math.h> |
8 |
|
|
|
9 |
|
|
#ifndef _ORC_INTEGER_TYPEDEFS_ |
10 |
|
|
#define _ORC_INTEGER_TYPEDEFS_ |
11 |
|
|
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L |
12 |
|
|
#include <stdint.h> |
13 |
|
|
typedef int8_t orc_int8; |
14 |
|
|
typedef int16_t orc_int16; |
15 |
|
|
typedef int32_t orc_int32; |
16 |
|
|
typedef int64_t orc_int64; |
17 |
|
|
typedef uint8_t orc_uint8; |
18 |
|
|
typedef uint16_t orc_uint16; |
19 |
|
|
typedef uint32_t orc_uint32; |
20 |
|
|
typedef uint64_t orc_uint64; |
21 |
|
|
#define ORC_UINT64_C(x) UINT64_C(x) |
22 |
|
|
#elif defined(_MSC_VER) |
23 |
|
|
typedef signed __int8 orc_int8; |
24 |
|
|
typedef signed __int16 orc_int16; |
25 |
|
|
typedef signed __int32 orc_int32; |
26 |
|
|
typedef signed __int64 orc_int64; |
27 |
|
|
typedef unsigned __int8 orc_uint8; |
28 |
|
|
typedef unsigned __int16 orc_uint16; |
29 |
|
|
typedef unsigned __int32 orc_uint32; |
30 |
|
|
typedef unsigned __int64 orc_uint64; |
31 |
|
|
#define ORC_UINT64_C(x) (x##Ui64) |
32 |
|
|
#define inline __inline |
33 |
|
|
#else |
34 |
|
|
#include <limits.h> |
35 |
|
|
typedef signed char orc_int8; |
36 |
|
|
typedef short orc_int16; |
37 |
|
|
typedef int orc_int32; |
38 |
|
|
typedef unsigned char orc_uint8; |
39 |
|
|
typedef unsigned short orc_uint16; |
40 |
|
|
typedef unsigned int orc_uint32; |
41 |
|
|
#if INT_MAX == LONG_MAX |
42 |
|
|
typedef long long orc_int64; |
43 |
|
|
typedef unsigned long long orc_uint64; |
44 |
|
|
#define ORC_UINT64_C(x) (x##ULL) |
45 |
|
|
#else |
46 |
|
|
typedef long orc_int64; |
47 |
|
|
typedef unsigned long orc_uint64; |
48 |
|
|
#define ORC_UINT64_C(x) (x##UL) |
49 |
|
|
#endif |
50 |
|
|
#endif |
51 |
|
|
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; |
52 |
|
|
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; |
53 |
|
|
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; |
54 |
|
|
#endif |
55 |
|
|
#ifndef ORC_RESTRICT |
56 |
|
|
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L |
57 |
|
|
#define ORC_RESTRICT restrict |
58 |
|
|
#elif defined(__GNUC__) && __GNUC__ >= 4 |
59 |
|
|
#define ORC_RESTRICT __restrict__ |
60 |
|
|
#elif defined(_MSC_VER) |
61 |
|
|
#define ORC_RESTRICT __restrict |
62 |
|
|
#else |
63 |
|
|
#define ORC_RESTRICT |
64 |
|
|
#endif |
65 |
|
|
#endif |
66 |
|
|
|
67 |
|
|
#ifndef ORC_INTERNAL |
68 |
|
|
#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590) |
69 |
|
|
#define ORC_INTERNAL __attribute__((visibility("hidden"))) |
70 |
|
|
#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) |
71 |
|
|
#define ORC_INTERNAL __hidden |
72 |
|
|
#elif defined (__GNUC__) |
73 |
|
|
#define ORC_INTERNAL __attribute__((visibility("hidden"))) |
74 |
|
|
#else |
75 |
|
|
#define ORC_INTERNAL |
76 |
|
|
#endif |
77 |
|
|
#endif |
78 |
|
|
|
79 |
|
|
|
80 |
|
|
#ifndef DISABLE_ORC |
81 |
|
|
#include <orc/orc.h> |
82 |
|
|
#endif |
83 |
|
|
void volk_16u_byteswap_a_orc_impl (orc_uint16 * ORC_RESTRICT d1, int n); |
84 |
|
|
|
85 |
|
|
|
86 |
|
|
/* begin Orc C target preamble */ |
87 |
|
|
#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) |
88 |
|
|
#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) |
89 |
|
|
#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) |
90 |
|
|
#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b)) |
91 |
|
|
#define ORC_SB_MAX 127 |
92 |
|
|
#define ORC_SB_MIN (-1-ORC_SB_MAX) |
93 |
|
|
#define ORC_UB_MAX (orc_uint8) 255 |
94 |
|
|
#define ORC_UB_MIN 0 |
95 |
|
|
#define ORC_SW_MAX 32767 |
96 |
|
|
#define ORC_SW_MIN (-1-ORC_SW_MAX) |
97 |
|
|
#define ORC_UW_MAX (orc_uint16)65535 |
98 |
|
|
#define ORC_UW_MIN 0 |
99 |
|
|
#define ORC_SL_MAX 2147483647 |
100 |
|
|
#define ORC_SL_MIN (-1-ORC_SL_MAX) |
101 |
|
|
#define ORC_UL_MAX 4294967295U |
102 |
|
|
#define ORC_UL_MIN 0 |
103 |
|
|
#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX) |
104 |
|
|
#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX) |
105 |
|
|
#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX) |
106 |
|
|
#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX) |
107 |
|
|
#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX) |
108 |
|
|
#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX) |
109 |
|
|
#define ORC_SWAP_W(x) ((((x)&0xffU)<<8) | (((x)&0xff00U)>>8)) |
110 |
|
|
#define ORC_SWAP_L(x) ((((x)&0xffU)<<24) | (((x)&0xff00U)<<8) | (((x)&0xff0000U)>>8) | (((x)&0xff000000U)>>24)) |
111 |
|
|
#define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56)) |
112 |
|
|
#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset))) |
113 |
|
|
#define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff)) |
114 |
|
|
#define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0)) |
115 |
|
|
#define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff))) |
116 |
|
|
#define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0)) |
117 |
|
|
#ifndef ORC_RESTRICT |
118 |
|
|
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L |
119 |
|
|
#define ORC_RESTRICT restrict |
120 |
|
|
#elif defined(__GNUC__) && __GNUC__ >= 4 |
121 |
|
|
#define ORC_RESTRICT __restrict__ |
122 |
|
|
#else |
123 |
|
|
#define ORC_RESTRICT |
124 |
|
|
#endif |
125 |
|
|
#endif |
126 |
|
|
/* end Orc C target preamble */ |
127 |
|
|
|
128 |
|
|
|
129 |
|
|
|
130 |
|
|
/* volk_16u_byteswap_a_orc_impl */ |
131 |
|
|
#ifdef DISABLE_ORC |
132 |
|
|
void |
133 |
|
|
volk_16u_byteswap_a_orc_impl (orc_uint16 * ORC_RESTRICT d1, int n){ |
134 |
|
|
int i; |
135 |
|
|
orc_union16 * ORC_RESTRICT ptr0; |
136 |
|
|
orc_union16 var32; |
137 |
|
|
orc_union16 var33; |
138 |
|
|
|
139 |
|
|
ptr0 = (orc_union16 *)d1; |
140 |
|
|
|
141 |
|
|
|
142 |
|
|
for (i = 0; i < n; i++) { |
143 |
|
|
/* 0: loadw */ |
144 |
|
|
var32 = ptr0[i]; |
145 |
|
|
/* 1: swapw */ |
146 |
|
|
var33.i = ORC_SWAP_W(var32.i); |
147 |
|
|
/* 2: storew */ |
148 |
|
|
ptr0[i] = var33; |
149 |
|
|
} |
150 |
|
|
|
151 |
|
|
} |
152 |
|
|
|
153 |
|
|
#else |
154 |
|
|
static void |
155 |
|
✗ |
_backup_volk_16u_byteswap_a_orc_impl (OrcExecutor * ORC_RESTRICT ex) |
156 |
|
|
{ |
157 |
|
|
int i; |
158 |
|
✗ |
int n = ex->n; |
159 |
|
|
orc_union16 * ORC_RESTRICT ptr0; |
160 |
|
|
orc_union16 var32; |
161 |
|
|
orc_union16 var33; |
162 |
|
|
|
163 |
|
✗ |
ptr0 = (orc_union16 *)ex->arrays[0]; |
164 |
|
|
|
165 |
|
|
|
166 |
|
✗ |
for (i = 0; i < n; i++) { |
167 |
|
|
/* 0: loadw */ |
168 |
|
✗ |
var32 = ptr0[i]; |
169 |
|
|
/* 1: swapw */ |
170 |
|
✗ |
var33.i = ORC_SWAP_W(var32.i); |
171 |
|
|
/* 2: storew */ |
172 |
|
✗ |
ptr0[i] = var33; |
173 |
|
|
} |
174 |
|
|
|
175 |
|
✗ |
} |
176 |
|
|
|
177 |
|
|
void |
178 |
|
✗ |
volk_16u_byteswap_a_orc_impl (orc_uint16 * ORC_RESTRICT d1, int n) |
179 |
|
|
{ |
180 |
|
✗ |
OrcExecutor _ex, *ex = &_ex; |
181 |
|
|
static volatile int p_inited = 0; |
182 |
|
|
static OrcCode *c = 0; |
183 |
|
|
void (*func) (OrcExecutor *); |
184 |
|
|
|
185 |
|
✗ |
if (!p_inited) { |
186 |
|
✗ |
orc_once_mutex_lock (); |
187 |
|
✗ |
if (!p_inited) { |
188 |
|
|
OrcProgram *p; |
189 |
|
|
|
190 |
|
|
#if 1 |
191 |
|
|
static const orc_uint8 bc[] = { |
192 |
|
|
1, 9, 28, 118, 111, 108, 107, 95, 49, 54, 117, 95, 98, 121, 116, 101, |
193 |
|
|
115, 119, 97, 112, 95, 97, 95, 111, 114, 99, 95, 105, 109, 112, 108, 11, |
194 |
|
|
2, 2, 183, 0, 0, 2, 0, |
195 |
|
|
}; |
196 |
|
✗ |
p = orc_program_new_from_static_bytecode (bc); |
197 |
|
✗ |
orc_program_set_backup_function (p, _backup_volk_16u_byteswap_a_orc_impl); |
198 |
|
|
#else |
199 |
|
|
p = orc_program_new (); |
200 |
|
|
orc_program_set_name (p, "volk_16u_byteswap_a_orc_impl"); |
201 |
|
|
orc_program_set_backup_function (p, _backup_volk_16u_byteswap_a_orc_impl); |
202 |
|
|
orc_program_add_destination (p, 2, "d1"); |
203 |
|
|
|
204 |
|
|
orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_D1); |
205 |
|
|
#endif |
206 |
|
|
|
207 |
|
✗ |
orc_program_compile (p); |
208 |
|
✗ |
c = orc_program_take_code (p); |
209 |
|
✗ |
orc_program_free (p); |
210 |
|
|
} |
211 |
|
✗ |
p_inited = TRUE; |
212 |
|
✗ |
orc_once_mutex_unlock (); |
213 |
|
|
} |
214 |
|
✗ |
ex->arrays[ORC_VAR_A2] = c; |
215 |
|
✗ |
ex->program = 0; |
216 |
|
|
|
217 |
|
✗ |
ex->n = n; |
218 |
|
✗ |
ex->arrays[ORC_VAR_D1] = d1; |
219 |
|
|
|
220 |
|
✗ |
func = c->exec; |
221 |
|
✗ |
func (ex); |
222 |
|
✗ |
} |
223 |
|
|
#endif |
224 |
|
|
|
225 |
|
|
|
226 |
|
|
|