audioconvert: enhance transforming caps
[platform/upstream/gstreamer.git] / gst / audioconvert / gstaudioconvertorc-dist.c
1
2 /* autogenerated from gstaudioconvertorc.orc */
3
4 #ifdef HAVE_CONFIG_H
5 #include "config.h"
6 #endif
7 #include <glib.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
52 {
53   orc_int16 i;
54   orc_int8 x2[2];
55 } orc_union16;
56 typedef union
57 {
58   orc_int32 i;
59   float f;
60   orc_int16 x2[2];
61   orc_int8 x4[4];
62 } orc_union32;
63 typedef union
64 {
65   orc_int64 i;
66   double f;
67   orc_int32 x2[2];
68   float x2f[2];
69   orc_int16 x4[4];
70 } orc_union64;
71 #endif
72 #ifndef ORC_RESTRICT
73 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
74 #define ORC_RESTRICT restrict
75 #elif defined(__GNUC__) && __GNUC__ >= 4
76 #define ORC_RESTRICT __restrict__
77 #else
78 #define ORC_RESTRICT
79 #endif
80 #endif
81
82 #ifndef DISABLE_ORC
83 #include <orc/orc.h>
84 #endif
85 void audio_convert_orc_unpack_u8 (gint32 * ORC_RESTRICT d1,
86     const guint8 * ORC_RESTRICT s1, int p1, int n);
87 void audio_convert_orc_unpack_s8 (gint32 * ORC_RESTRICT d1,
88     const guint8 * ORC_RESTRICT s1, int p1, int n);
89 void audio_convert_orc_unpack_u16 (gint32 * ORC_RESTRICT d1,
90     const guint8 * ORC_RESTRICT s1, int p1, int n);
91 void audio_convert_orc_unpack_s16 (gint32 * ORC_RESTRICT d1,
92     const guint8 * ORC_RESTRICT s1, int p1, int n);
93 void audio_convert_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
94     const guint8 * ORC_RESTRICT s1, int p1, int n);
95 void audio_convert_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1,
96     const guint8 * ORC_RESTRICT s1, int p1, int n);
97 void audio_convert_orc_unpack_u32 (gint32 * ORC_RESTRICT d1,
98     const guint8 * ORC_RESTRICT s1, int p1, int n);
99 void audio_convert_orc_unpack_s32 (gint32 * ORC_RESTRICT d1,
100     const guint8 * ORC_RESTRICT s1, int p1, int n);
101 void audio_convert_orc_unpack_u32_swap (gint32 * ORC_RESTRICT d1,
102     const guint8 * ORC_RESTRICT s1, int p1, int n);
103 void audio_convert_orc_unpack_s32_swap (gint32 * ORC_RESTRICT d1,
104     const guint8 * ORC_RESTRICT s1, int p1, int n);
105 void audio_convert_orc_unpack_float_s32 (guint32 * ORC_RESTRICT d1,
106     const gfloat * ORC_RESTRICT s1, int n);
107 void audio_convert_orc_unpack_float_s32_swap (guint32 * ORC_RESTRICT d1,
108     const gfloat * ORC_RESTRICT s1, int n);
109 void audio_convert_orc_unpack_double_s32 (guint32 * ORC_RESTRICT d1,
110     const gdouble * ORC_RESTRICT s1, int n);
111 void audio_convert_orc_unpack_double_s32_swap (guint32 * ORC_RESTRICT d1,
112     const gdouble * ORC_RESTRICT s1, int n);
113 void audio_convert_orc_unpack_float_double (gdouble * ORC_RESTRICT d1,
114     const gfloat * ORC_RESTRICT s1, int n);
115 void audio_convert_orc_unpack_float_double_swap (gdouble * ORC_RESTRICT d1,
116     const gfloat * ORC_RESTRICT s1, int n);
117 void audio_convert_orc_unpack_double_double (gdouble * ORC_RESTRICT d1,
118     const gdouble * ORC_RESTRICT s1, int n);
119 void audio_convert_orc_unpack_double_double_swap (gdouble * ORC_RESTRICT d1,
120     const gdouble * ORC_RESTRICT s1, int n);
121 void audio_convert_orc_unpack_u8_double (gdouble * ORC_RESTRICT d1,
122     const guint8 * ORC_RESTRICT s1, int p1, int n);
123 void audio_convert_orc_unpack_s8_double (gdouble * ORC_RESTRICT d1,
124     const guint8 * ORC_RESTRICT s1, int p1, int n);
125 void audio_convert_orc_unpack_u16_double (gdouble * ORC_RESTRICT d1,
126     const guint8 * ORC_RESTRICT s1, int p1, int n);
127 void audio_convert_orc_unpack_s16_double (gdouble * ORC_RESTRICT d1,
128     const guint8 * ORC_RESTRICT s1, int p1, int n);
129 void audio_convert_orc_unpack_u16_double_swap (gdouble * ORC_RESTRICT d1,
130     const guint8 * ORC_RESTRICT s1, int p1, int n);
131 void audio_convert_orc_unpack_s16_double_swap (gdouble * ORC_RESTRICT d1,
132     const guint8 * ORC_RESTRICT s1, int p1, int n);
133 void audio_convert_orc_unpack_u32_double (gdouble * ORC_RESTRICT d1,
134     const guint8 * ORC_RESTRICT s1, int p1, int n);
135 void audio_convert_orc_unpack_s32_double (gdouble * ORC_RESTRICT d1,
136     const guint8 * ORC_RESTRICT s1, int p1, int n);
137 void audio_convert_orc_unpack_u32_double_swap (gdouble * ORC_RESTRICT d1,
138     const guint8 * ORC_RESTRICT s1, int p1, int n);
139 void audio_convert_orc_unpack_s32_double_swap (gdouble * ORC_RESTRICT d1,
140     const guint8 * ORC_RESTRICT s1, int p1, int n);
141 void audio_convert_orc_pack_u8 (guint8 * ORC_RESTRICT d1,
142     const gint32 * ORC_RESTRICT s1, int p1, int n);
143 void audio_convert_orc_pack_s8 (guint8 * ORC_RESTRICT d1,
144     const gint32 * ORC_RESTRICT s1, int p1, int n);
145 void audio_convert_orc_pack_u16 (guint8 * ORC_RESTRICT d1,
146     const gint32 * ORC_RESTRICT s1, int p1, int n);
147 void audio_convert_orc_pack_s16 (guint8 * ORC_RESTRICT d1,
148     const gint32 * ORC_RESTRICT s1, int p1, int n);
149 void audio_convert_orc_pack_u16_swap (guint8 * ORC_RESTRICT d1,
150     const gint32 * ORC_RESTRICT s1, int p1, int n);
151 void audio_convert_orc_pack_s16_swap (guint8 * ORC_RESTRICT d1,
152     const gint32 * ORC_RESTRICT s1, int p1, int n);
153 void audio_convert_orc_pack_u32 (guint8 * ORC_RESTRICT d1,
154     const gint32 * ORC_RESTRICT s1, int p1, int n);
155 void audio_convert_orc_pack_s32 (guint8 * ORC_RESTRICT d1,
156     const gint32 * ORC_RESTRICT s1, int p1, int n);
157 void audio_convert_orc_pack_u32_swap (guint8 * ORC_RESTRICT d1,
158     const gint32 * ORC_RESTRICT s1, int p1, int n);
159 void audio_convert_orc_pack_s32_swap (guint8 * ORC_RESTRICT d1,
160     const gint32 * ORC_RESTRICT s1, int p1, int n);
161 void audio_convert_orc_pack_s32_float (gfloat * ORC_RESTRICT d1,
162     const gint32 * ORC_RESTRICT s1, int n);
163 void audio_convert_orc_pack_s32_float_swap (gfloat * ORC_RESTRICT d1,
164     const gint32 * ORC_RESTRICT s1, int n);
165 void audio_convert_orc_pack_s32_double (gdouble * ORC_RESTRICT d1,
166     const gint32 * ORC_RESTRICT s1, int n);
167 void audio_convert_orc_pack_s32_double_swap (gdouble * ORC_RESTRICT d1,
168     const gint32 * ORC_RESTRICT s1, int n);
169 void audio_convert_orc_pack_double_float (gfloat * ORC_RESTRICT d1,
170     const gdouble * ORC_RESTRICT s1, int n);
171 void audio_convert_orc_pack_double_float_swap (gfloat * ORC_RESTRICT d1,
172     const gdouble * ORC_RESTRICT s1, int n);
173 void audio_convert_orc_pack_double_u8 (guint8 * ORC_RESTRICT d1,
174     const gdouble * ORC_RESTRICT s1, int p1, int n);
175 void audio_convert_orc_pack_double_s8 (guint8 * ORC_RESTRICT d1,
176     const gdouble * ORC_RESTRICT s1, int p1, int n);
177 void audio_convert_orc_pack_double_u16 (guint8 * ORC_RESTRICT d1,
178     const gdouble * ORC_RESTRICT s1, int p1, int n);
179 void audio_convert_orc_pack_double_s16 (guint8 * ORC_RESTRICT d1,
180     const gdouble * ORC_RESTRICT s1, int p1, int n);
181 void audio_convert_orc_pack_double_u16_swap (guint8 * ORC_RESTRICT d1,
182     const gdouble * ORC_RESTRICT s1, int p1, int n);
183 void audio_convert_orc_pack_double_s16_swap (guint8 * ORC_RESTRICT d1,
184     const gdouble * ORC_RESTRICT s1, int p1, int n);
185 void audio_convert_orc_pack_double_u32 (guint8 * ORC_RESTRICT d1,
186     const gdouble * ORC_RESTRICT s1, int p1, int n);
187 void audio_convert_orc_pack_double_s32 (guint8 * ORC_RESTRICT d1,
188     const gdouble * ORC_RESTRICT s1, int p1, int n);
189 void audio_convert_orc_pack_double_u32_swap (guint8 * ORC_RESTRICT d1,
190     const gdouble * ORC_RESTRICT s1, int p1, int n);
191 void audio_convert_orc_pack_double_s32_swap (guint8 * ORC_RESTRICT d1,
192     const gdouble * ORC_RESTRICT s1, int p1, int n);
193
194
195 /* begin Orc C target preamble */
196 #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
197 #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
198 #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
199 #define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
200 #define ORC_SB_MAX 127
201 #define ORC_SB_MIN (-1-ORC_SB_MAX)
202 #define ORC_UB_MAX 255
203 #define ORC_UB_MIN 0
204 #define ORC_SW_MAX 32767
205 #define ORC_SW_MIN (-1-ORC_SW_MAX)
206 #define ORC_UW_MAX 65535
207 #define ORC_UW_MIN 0
208 #define ORC_SL_MAX 2147483647
209 #define ORC_SL_MIN (-1-ORC_SL_MAX)
210 #define ORC_UL_MAX 4294967295U
211 #define ORC_UL_MIN 0
212 #define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
213 #define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
214 #define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
215 #define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
216 #define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
217 #define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
218 #define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))
219 #define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))
220 #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))
221 #define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
222 #define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
223 #define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
224 #define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
225 #define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
226 #ifndef ORC_RESTRICT
227 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
228 #define ORC_RESTRICT restrict
229 #elif defined(__GNUC__) && __GNUC__ >= 4
230 #define ORC_RESTRICT __restrict__
231 #else
232 #define ORC_RESTRICT
233 #endif
234 #endif
235 /* end Orc C target preamble */
236
237
238
239 /* audio_convert_orc_unpack_u8 */
240 #ifdef DISABLE_ORC
241 void
242 audio_convert_orc_unpack_u8 (gint32 * ORC_RESTRICT d1,
243     const guint8 * ORC_RESTRICT s1, int p1, int n)
244 {
245   int i;
246   orc_union32 *ORC_RESTRICT ptr0;
247   const orc_int8 *ORC_RESTRICT ptr4;
248   orc_int8 var34;
249   orc_union32 var35;
250   orc_union32 var36;
251   orc_union16 var37;
252   orc_union32 var38;
253   orc_union32 var39;
254
255   ptr0 = (orc_union32 *) d1;
256   ptr4 = (orc_int8 *) s1;
257
258   /* 4: loadpl */
259   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
260
261   for (i = 0; i < n; i++) {
262     /* 0: loadb */
263     var34 = ptr4[i];
264     /* 1: convubw */
265     var37.i = (orc_uint8) var34;
266     /* 2: convuwl */
267     var38.i = (orc_uint16) var37.i;
268     /* 3: shll */
269     var39.i = var38.i << p1;
270     /* 5: xorl */
271     var36.i = var39.i ^ var35.i;
272     /* 6: storel */
273     ptr0[i] = var36;
274   }
275
276 }
277
278 #else
279 static void
280 _backup_audio_convert_orc_unpack_u8 (OrcExecutor * ORC_RESTRICT ex)
281 {
282   int i;
283   int n = ex->n;
284   orc_union32 *ORC_RESTRICT ptr0;
285   const orc_int8 *ORC_RESTRICT ptr4;
286   orc_int8 var34;
287   orc_union32 var35;
288   orc_union32 var36;
289   orc_union16 var37;
290   orc_union32 var38;
291   orc_union32 var39;
292
293   ptr0 = (orc_union32 *) ex->arrays[0];
294   ptr4 = (orc_int8 *) ex->arrays[4];
295
296   /* 4: loadpl */
297   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
298
299   for (i = 0; i < n; i++) {
300     /* 0: loadb */
301     var34 = ptr4[i];
302     /* 1: convubw */
303     var37.i = (orc_uint8) var34;
304     /* 2: convuwl */
305     var38.i = (orc_uint16) var37.i;
306     /* 3: shll */
307     var39.i = var38.i << ex->params[24];
308     /* 5: xorl */
309     var36.i = var39.i ^ var35.i;
310     /* 6: storel */
311     ptr0[i] = var36;
312   }
313
314 }
315
316 void
317 audio_convert_orc_unpack_u8 (gint32 * ORC_RESTRICT d1,
318     const guint8 * ORC_RESTRICT s1, int p1, int n)
319 {
320   OrcExecutor _ex, *ex = &_ex;
321   static volatile int p_inited = 0;
322   static OrcCode *c = 0;
323   void (*func) (OrcExecutor *);
324
325   if (!p_inited) {
326     orc_once_mutex_lock ();
327     if (!p_inited) {
328       OrcProgram *p;
329
330       p = orc_program_new ();
331       orc_program_set_name (p, "audio_convert_orc_unpack_u8");
332       orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_u8);
333       orc_program_add_destination (p, 4, "d1");
334       orc_program_add_source (p, 1, "s1");
335       orc_program_add_constant (p, 4, 0x80000000, "c1");
336       orc_program_add_parameter (p, 4, "p1");
337       orc_program_add_temporary (p, 2, "t1");
338       orc_program_add_temporary (p, 4, "t2");
339
340       orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
341           ORC_VAR_D1);
342       orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
343           ORC_VAR_D1);
344       orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
345           ORC_VAR_D1);
346       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
347           ORC_VAR_D1);
348
349       orc_program_compile (p);
350       c = orc_program_take_code (p);
351       orc_program_free (p);
352     }
353     p_inited = TRUE;
354     orc_once_mutex_unlock ();
355   }
356   ex->arrays[ORC_VAR_A2] = c;
357   ex->program = 0;
358
359   ex->n = n;
360   ex->arrays[ORC_VAR_D1] = d1;
361   ex->arrays[ORC_VAR_S1] = (void *) s1;
362   ex->params[ORC_VAR_P1] = p1;
363
364   func = c->exec;
365   func (ex);
366 }
367 #endif
368
369
370 /* audio_convert_orc_unpack_s8 */
371 #ifdef DISABLE_ORC
372 void
373 audio_convert_orc_unpack_s8 (gint32 * ORC_RESTRICT d1,
374     const guint8 * ORC_RESTRICT s1, int p1, int n)
375 {
376   int i;
377   orc_union32 *ORC_RESTRICT ptr0;
378   const orc_int8 *ORC_RESTRICT ptr4;
379   orc_int8 var34;
380   orc_union32 var35;
381   orc_union16 var36;
382   orc_union32 var37;
383
384   ptr0 = (orc_union32 *) d1;
385   ptr4 = (orc_int8 *) s1;
386
387
388   for (i = 0; i < n; i++) {
389     /* 0: loadb */
390     var34 = ptr4[i];
391     /* 1: convubw */
392     var36.i = (orc_uint8) var34;
393     /* 2: convuwl */
394     var37.i = (orc_uint16) var36.i;
395     /* 3: shll */
396     var35.i = var37.i << p1;
397     /* 4: storel */
398     ptr0[i] = var35;
399   }
400
401 }
402
403 #else
404 static void
405 _backup_audio_convert_orc_unpack_s8 (OrcExecutor * ORC_RESTRICT ex)
406 {
407   int i;
408   int n = ex->n;
409   orc_union32 *ORC_RESTRICT ptr0;
410   const orc_int8 *ORC_RESTRICT ptr4;
411   orc_int8 var34;
412   orc_union32 var35;
413   orc_union16 var36;
414   orc_union32 var37;
415
416   ptr0 = (orc_union32 *) ex->arrays[0];
417   ptr4 = (orc_int8 *) ex->arrays[4];
418
419
420   for (i = 0; i < n; i++) {
421     /* 0: loadb */
422     var34 = ptr4[i];
423     /* 1: convubw */
424     var36.i = (orc_uint8) var34;
425     /* 2: convuwl */
426     var37.i = (orc_uint16) var36.i;
427     /* 3: shll */
428     var35.i = var37.i << ex->params[24];
429     /* 4: storel */
430     ptr0[i] = var35;
431   }
432
433 }
434
435 void
436 audio_convert_orc_unpack_s8 (gint32 * ORC_RESTRICT d1,
437     const guint8 * ORC_RESTRICT s1, int p1, int n)
438 {
439   OrcExecutor _ex, *ex = &_ex;
440   static volatile int p_inited = 0;
441   static OrcCode *c = 0;
442   void (*func) (OrcExecutor *);
443
444   if (!p_inited) {
445     orc_once_mutex_lock ();
446     if (!p_inited) {
447       OrcProgram *p;
448
449       p = orc_program_new ();
450       orc_program_set_name (p, "audio_convert_orc_unpack_s8");
451       orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_s8);
452       orc_program_add_destination (p, 4, "d1");
453       orc_program_add_source (p, 1, "s1");
454       orc_program_add_parameter (p, 4, "p1");
455       orc_program_add_temporary (p, 2, "t1");
456       orc_program_add_temporary (p, 4, "t2");
457
458       orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
459           ORC_VAR_D1);
460       orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
461           ORC_VAR_D1);
462       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_P1,
463           ORC_VAR_D1);
464
465       orc_program_compile (p);
466       c = orc_program_take_code (p);
467       orc_program_free (p);
468     }
469     p_inited = TRUE;
470     orc_once_mutex_unlock ();
471   }
472   ex->arrays[ORC_VAR_A2] = c;
473   ex->program = 0;
474
475   ex->n = n;
476   ex->arrays[ORC_VAR_D1] = d1;
477   ex->arrays[ORC_VAR_S1] = (void *) s1;
478   ex->params[ORC_VAR_P1] = p1;
479
480   func = c->exec;
481   func (ex);
482 }
483 #endif
484
485
486 /* audio_convert_orc_unpack_u16 */
487 #ifdef DISABLE_ORC
488 void
489 audio_convert_orc_unpack_u16 (gint32 * ORC_RESTRICT d1,
490     const guint8 * ORC_RESTRICT s1, int p1, int n)
491 {
492   int i;
493   orc_union32 *ORC_RESTRICT ptr0;
494   const orc_union16 *ORC_RESTRICT ptr4;
495   orc_union16 var33;
496   orc_union32 var34;
497   orc_union32 var35;
498   orc_union32 var36;
499   orc_union32 var37;
500
501   ptr0 = (orc_union32 *) d1;
502   ptr4 = (orc_union16 *) s1;
503
504   /* 3: loadpl */
505   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
506
507   for (i = 0; i < n; i++) {
508     /* 0: loadw */
509     var33 = ptr4[i];
510     /* 1: convuwl */
511     var36.i = (orc_uint16) var33.i;
512     /* 2: shll */
513     var37.i = var36.i << p1;
514     /* 4: xorl */
515     var35.i = var37.i ^ var34.i;
516     /* 5: storel */
517     ptr0[i] = var35;
518   }
519
520 }
521
522 #else
523 static void
524 _backup_audio_convert_orc_unpack_u16 (OrcExecutor * ORC_RESTRICT ex)
525 {
526   int i;
527   int n = ex->n;
528   orc_union32 *ORC_RESTRICT ptr0;
529   const orc_union16 *ORC_RESTRICT ptr4;
530   orc_union16 var33;
531   orc_union32 var34;
532   orc_union32 var35;
533   orc_union32 var36;
534   orc_union32 var37;
535
536   ptr0 = (orc_union32 *) ex->arrays[0];
537   ptr4 = (orc_union16 *) ex->arrays[4];
538
539   /* 3: loadpl */
540   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
541
542   for (i = 0; i < n; i++) {
543     /* 0: loadw */
544     var33 = ptr4[i];
545     /* 1: convuwl */
546     var36.i = (orc_uint16) var33.i;
547     /* 2: shll */
548     var37.i = var36.i << ex->params[24];
549     /* 4: xorl */
550     var35.i = var37.i ^ var34.i;
551     /* 5: storel */
552     ptr0[i] = var35;
553   }
554
555 }
556
557 void
558 audio_convert_orc_unpack_u16 (gint32 * ORC_RESTRICT d1,
559     const guint8 * ORC_RESTRICT s1, int p1, int n)
560 {
561   OrcExecutor _ex, *ex = &_ex;
562   static volatile int p_inited = 0;
563   static OrcCode *c = 0;
564   void (*func) (OrcExecutor *);
565
566   if (!p_inited) {
567     orc_once_mutex_lock ();
568     if (!p_inited) {
569       OrcProgram *p;
570
571       p = orc_program_new ();
572       orc_program_set_name (p, "audio_convert_orc_unpack_u16");
573       orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_u16);
574       orc_program_add_destination (p, 4, "d1");
575       orc_program_add_source (p, 2, "s1");
576       orc_program_add_constant (p, 4, 0x80000000, "c1");
577       orc_program_add_parameter (p, 4, "p1");
578       orc_program_add_temporary (p, 4, "t1");
579
580       orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
581           ORC_VAR_D1);
582       orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
583           ORC_VAR_D1);
584       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
585           ORC_VAR_D1);
586
587       orc_program_compile (p);
588       c = orc_program_take_code (p);
589       orc_program_free (p);
590     }
591     p_inited = TRUE;
592     orc_once_mutex_unlock ();
593   }
594   ex->arrays[ORC_VAR_A2] = c;
595   ex->program = 0;
596
597   ex->n = n;
598   ex->arrays[ORC_VAR_D1] = d1;
599   ex->arrays[ORC_VAR_S1] = (void *) s1;
600   ex->params[ORC_VAR_P1] = p1;
601
602   func = c->exec;
603   func (ex);
604 }
605 #endif
606
607
608 /* audio_convert_orc_unpack_s16 */
609 #ifdef DISABLE_ORC
610 void
611 audio_convert_orc_unpack_s16 (gint32 * ORC_RESTRICT d1,
612     const guint8 * ORC_RESTRICT s1, int p1, int n)
613 {
614   int i;
615   orc_union32 *ORC_RESTRICT ptr0;
616   const orc_union16 *ORC_RESTRICT ptr4;
617   orc_union16 var33;
618   orc_union32 var34;
619   orc_union32 var35;
620
621   ptr0 = (orc_union32 *) d1;
622   ptr4 = (orc_union16 *) s1;
623
624
625   for (i = 0; i < n; i++) {
626     /* 0: loadw */
627     var33 = ptr4[i];
628     /* 1: convuwl */
629     var35.i = (orc_uint16) var33.i;
630     /* 2: shll */
631     var34.i = var35.i << p1;
632     /* 3: storel */
633     ptr0[i] = var34;
634   }
635
636 }
637
638 #else
639 static void
640 _backup_audio_convert_orc_unpack_s16 (OrcExecutor * ORC_RESTRICT ex)
641 {
642   int i;
643   int n = ex->n;
644   orc_union32 *ORC_RESTRICT ptr0;
645   const orc_union16 *ORC_RESTRICT ptr4;
646   orc_union16 var33;
647   orc_union32 var34;
648   orc_union32 var35;
649
650   ptr0 = (orc_union32 *) ex->arrays[0];
651   ptr4 = (orc_union16 *) ex->arrays[4];
652
653
654   for (i = 0; i < n; i++) {
655     /* 0: loadw */
656     var33 = ptr4[i];
657     /* 1: convuwl */
658     var35.i = (orc_uint16) var33.i;
659     /* 2: shll */
660     var34.i = var35.i << ex->params[24];
661     /* 3: storel */
662     ptr0[i] = var34;
663   }
664
665 }
666
667 void
668 audio_convert_orc_unpack_s16 (gint32 * ORC_RESTRICT d1,
669     const guint8 * ORC_RESTRICT s1, int p1, int n)
670 {
671   OrcExecutor _ex, *ex = &_ex;
672   static volatile int p_inited = 0;
673   static OrcCode *c = 0;
674   void (*func) (OrcExecutor *);
675
676   if (!p_inited) {
677     orc_once_mutex_lock ();
678     if (!p_inited) {
679       OrcProgram *p;
680
681       p = orc_program_new ();
682       orc_program_set_name (p, "audio_convert_orc_unpack_s16");
683       orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_s16);
684       orc_program_add_destination (p, 4, "d1");
685       orc_program_add_source (p, 2, "s1");
686       orc_program_add_parameter (p, 4, "p1");
687       orc_program_add_temporary (p, 4, "t1");
688
689       orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
690           ORC_VAR_D1);
691       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_P1,
692           ORC_VAR_D1);
693
694       orc_program_compile (p);
695       c = orc_program_take_code (p);
696       orc_program_free (p);
697     }
698     p_inited = TRUE;
699     orc_once_mutex_unlock ();
700   }
701   ex->arrays[ORC_VAR_A2] = c;
702   ex->program = 0;
703
704   ex->n = n;
705   ex->arrays[ORC_VAR_D1] = d1;
706   ex->arrays[ORC_VAR_S1] = (void *) s1;
707   ex->params[ORC_VAR_P1] = p1;
708
709   func = c->exec;
710   func (ex);
711 }
712 #endif
713
714
715 /* audio_convert_orc_unpack_u16_swap */
716 #ifdef DISABLE_ORC
717 void
718 audio_convert_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
719     const guint8 * ORC_RESTRICT s1, int p1, int n)
720 {
721   int i;
722   orc_union32 *ORC_RESTRICT ptr0;
723   const orc_union16 *ORC_RESTRICT ptr4;
724   orc_union16 var34;
725   orc_union32 var35;
726   orc_union32 var36;
727   orc_union16 var37;
728   orc_union32 var38;
729   orc_union32 var39;
730
731   ptr0 = (orc_union32 *) d1;
732   ptr4 = (orc_union16 *) s1;
733
734   /* 4: loadpl */
735   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
736
737   for (i = 0; i < n; i++) {
738     /* 0: loadw */
739     var34 = ptr4[i];
740     /* 1: swapw */
741     var37.i = ORC_SWAP_W (var34.i);
742     /* 2: convuwl */
743     var38.i = (orc_uint16) var37.i;
744     /* 3: shll */
745     var39.i = var38.i << p1;
746     /* 5: xorl */
747     var36.i = var39.i ^ var35.i;
748     /* 6: storel */
749     ptr0[i] = var36;
750   }
751
752 }
753
754 #else
755 static void
756 _backup_audio_convert_orc_unpack_u16_swap (OrcExecutor * ORC_RESTRICT ex)
757 {
758   int i;
759   int n = ex->n;
760   orc_union32 *ORC_RESTRICT ptr0;
761   const orc_union16 *ORC_RESTRICT ptr4;
762   orc_union16 var34;
763   orc_union32 var35;
764   orc_union32 var36;
765   orc_union16 var37;
766   orc_union32 var38;
767   orc_union32 var39;
768
769   ptr0 = (orc_union32 *) ex->arrays[0];
770   ptr4 = (orc_union16 *) ex->arrays[4];
771
772   /* 4: loadpl */
773   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
774
775   for (i = 0; i < n; i++) {
776     /* 0: loadw */
777     var34 = ptr4[i];
778     /* 1: swapw */
779     var37.i = ORC_SWAP_W (var34.i);
780     /* 2: convuwl */
781     var38.i = (orc_uint16) var37.i;
782     /* 3: shll */
783     var39.i = var38.i << ex->params[24];
784     /* 5: xorl */
785     var36.i = var39.i ^ var35.i;
786     /* 6: storel */
787     ptr0[i] = var36;
788   }
789
790 }
791
792 void
793 audio_convert_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
794     const guint8 * ORC_RESTRICT s1, int p1, int n)
795 {
796   OrcExecutor _ex, *ex = &_ex;
797   static volatile int p_inited = 0;
798   static OrcCode *c = 0;
799   void (*func) (OrcExecutor *);
800
801   if (!p_inited) {
802     orc_once_mutex_lock ();
803     if (!p_inited) {
804       OrcProgram *p;
805
806       p = orc_program_new ();
807       orc_program_set_name (p, "audio_convert_orc_unpack_u16_swap");
808       orc_program_set_backup_function (p,
809           _backup_audio_convert_orc_unpack_u16_swap);
810       orc_program_add_destination (p, 4, "d1");
811       orc_program_add_source (p, 2, "s1");
812       orc_program_add_constant (p, 4, 0x80000000, "c1");
813       orc_program_add_parameter (p, 4, "p1");
814       orc_program_add_temporary (p, 2, "t1");
815       orc_program_add_temporary (p, 4, "t2");
816
817       orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
818           ORC_VAR_D1);
819       orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
820           ORC_VAR_D1);
821       orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
822           ORC_VAR_D1);
823       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
824           ORC_VAR_D1);
825
826       orc_program_compile (p);
827       c = orc_program_take_code (p);
828       orc_program_free (p);
829     }
830     p_inited = TRUE;
831     orc_once_mutex_unlock ();
832   }
833   ex->arrays[ORC_VAR_A2] = c;
834   ex->program = 0;
835
836   ex->n = n;
837   ex->arrays[ORC_VAR_D1] = d1;
838   ex->arrays[ORC_VAR_S1] = (void *) s1;
839   ex->params[ORC_VAR_P1] = p1;
840
841   func = c->exec;
842   func (ex);
843 }
844 #endif
845
846
847 /* audio_convert_orc_unpack_s16_swap */
848 #ifdef DISABLE_ORC
849 void
850 audio_convert_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1,
851     const guint8 * ORC_RESTRICT s1, int p1, int n)
852 {
853   int i;
854   orc_union32 *ORC_RESTRICT ptr0;
855   const orc_union16 *ORC_RESTRICT ptr4;
856   orc_union16 var34;
857   orc_union32 var35;
858   orc_union16 var36;
859   orc_union32 var37;
860
861   ptr0 = (orc_union32 *) d1;
862   ptr4 = (orc_union16 *) s1;
863
864
865   for (i = 0; i < n; i++) {
866     /* 0: loadw */
867     var34 = ptr4[i];
868     /* 1: swapw */
869     var36.i = ORC_SWAP_W (var34.i);
870     /* 2: convuwl */
871     var37.i = (orc_uint16) var36.i;
872     /* 3: shll */
873     var35.i = var37.i << p1;
874     /* 4: storel */
875     ptr0[i] = var35;
876   }
877
878 }
879
880 #else
881 static void
882 _backup_audio_convert_orc_unpack_s16_swap (OrcExecutor * ORC_RESTRICT ex)
883 {
884   int i;
885   int n = ex->n;
886   orc_union32 *ORC_RESTRICT ptr0;
887   const orc_union16 *ORC_RESTRICT ptr4;
888   orc_union16 var34;
889   orc_union32 var35;
890   orc_union16 var36;
891   orc_union32 var37;
892
893   ptr0 = (orc_union32 *) ex->arrays[0];
894   ptr4 = (orc_union16 *) ex->arrays[4];
895
896
897   for (i = 0; i < n; i++) {
898     /* 0: loadw */
899     var34 = ptr4[i];
900     /* 1: swapw */
901     var36.i = ORC_SWAP_W (var34.i);
902     /* 2: convuwl */
903     var37.i = (orc_uint16) var36.i;
904     /* 3: shll */
905     var35.i = var37.i << ex->params[24];
906     /* 4: storel */
907     ptr0[i] = var35;
908   }
909
910 }
911
912 void
913 audio_convert_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1,
914     const guint8 * ORC_RESTRICT s1, int p1, int n)
915 {
916   OrcExecutor _ex, *ex = &_ex;
917   static volatile int p_inited = 0;
918   static OrcCode *c = 0;
919   void (*func) (OrcExecutor *);
920
921   if (!p_inited) {
922     orc_once_mutex_lock ();
923     if (!p_inited) {
924       OrcProgram *p;
925
926       p = orc_program_new ();
927       orc_program_set_name (p, "audio_convert_orc_unpack_s16_swap");
928       orc_program_set_backup_function (p,
929           _backup_audio_convert_orc_unpack_s16_swap);
930       orc_program_add_destination (p, 4, "d1");
931       orc_program_add_source (p, 2, "s1");
932       orc_program_add_parameter (p, 4, "p1");
933       orc_program_add_temporary (p, 2, "t1");
934       orc_program_add_temporary (p, 4, "t2");
935
936       orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
937           ORC_VAR_D1);
938       orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
939           ORC_VAR_D1);
940       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_P1,
941           ORC_VAR_D1);
942
943       orc_program_compile (p);
944       c = orc_program_take_code (p);
945       orc_program_free (p);
946     }
947     p_inited = TRUE;
948     orc_once_mutex_unlock ();
949   }
950   ex->arrays[ORC_VAR_A2] = c;
951   ex->program = 0;
952
953   ex->n = n;
954   ex->arrays[ORC_VAR_D1] = d1;
955   ex->arrays[ORC_VAR_S1] = (void *) s1;
956   ex->params[ORC_VAR_P1] = p1;
957
958   func = c->exec;
959   func (ex);
960 }
961 #endif
962
963
964 /* audio_convert_orc_unpack_u32 */
965 #ifdef DISABLE_ORC
966 void
967 audio_convert_orc_unpack_u32 (gint32 * ORC_RESTRICT d1,
968     const guint8 * ORC_RESTRICT s1, int p1, int n)
969 {
970   int i;
971   orc_union32 *ORC_RESTRICT ptr0;
972   const orc_union32 *ORC_RESTRICT ptr4;
973   orc_union32 var33;
974   orc_union32 var34;
975   orc_union32 var35;
976   orc_union32 var36;
977
978   ptr0 = (orc_union32 *) d1;
979   ptr4 = (orc_union32 *) s1;
980
981   /* 2: loadpl */
982   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
983
984   for (i = 0; i < n; i++) {
985     /* 0: loadl */
986     var33 = ptr4[i];
987     /* 1: shll */
988     var36.i = var33.i << p1;
989     /* 3: xorl */
990     var35.i = var36.i ^ var34.i;
991     /* 4: storel */
992     ptr0[i] = var35;
993   }
994
995 }
996
997 #else
998 static void
999 _backup_audio_convert_orc_unpack_u32 (OrcExecutor * ORC_RESTRICT ex)
1000 {
1001   int i;
1002   int n = ex->n;
1003   orc_union32 *ORC_RESTRICT ptr0;
1004   const orc_union32 *ORC_RESTRICT ptr4;
1005   orc_union32 var33;
1006   orc_union32 var34;
1007   orc_union32 var35;
1008   orc_union32 var36;
1009
1010   ptr0 = (orc_union32 *) ex->arrays[0];
1011   ptr4 = (orc_union32 *) ex->arrays[4];
1012
1013   /* 2: loadpl */
1014   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
1015
1016   for (i = 0; i < n; i++) {
1017     /* 0: loadl */
1018     var33 = ptr4[i];
1019     /* 1: shll */
1020     var36.i = var33.i << ex->params[24];
1021     /* 3: xorl */
1022     var35.i = var36.i ^ var34.i;
1023     /* 4: storel */
1024     ptr0[i] = var35;
1025   }
1026
1027 }
1028
1029 void
1030 audio_convert_orc_unpack_u32 (gint32 * ORC_RESTRICT d1,
1031     const guint8 * ORC_RESTRICT s1, int p1, int n)
1032 {
1033   OrcExecutor _ex, *ex = &_ex;
1034   static volatile int p_inited = 0;
1035   static OrcCode *c = 0;
1036   void (*func) (OrcExecutor *);
1037
1038   if (!p_inited) {
1039     orc_once_mutex_lock ();
1040     if (!p_inited) {
1041       OrcProgram *p;
1042
1043       p = orc_program_new ();
1044       orc_program_set_name (p, "audio_convert_orc_unpack_u32");
1045       orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_u32);
1046       orc_program_add_destination (p, 4, "d1");
1047       orc_program_add_source (p, 4, "s1");
1048       orc_program_add_constant (p, 4, 0x80000000, "c1");
1049       orc_program_add_parameter (p, 4, "p1");
1050       orc_program_add_temporary (p, 4, "t1");
1051
1052       orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
1053           ORC_VAR_D1);
1054       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
1055           ORC_VAR_D1);
1056
1057       orc_program_compile (p);
1058       c = orc_program_take_code (p);
1059       orc_program_free (p);
1060     }
1061     p_inited = TRUE;
1062     orc_once_mutex_unlock ();
1063   }
1064   ex->arrays[ORC_VAR_A2] = c;
1065   ex->program = 0;
1066
1067   ex->n = n;
1068   ex->arrays[ORC_VAR_D1] = d1;
1069   ex->arrays[ORC_VAR_S1] = (void *) s1;
1070   ex->params[ORC_VAR_P1] = p1;
1071
1072   func = c->exec;
1073   func (ex);
1074 }
1075 #endif
1076
1077
1078 /* audio_convert_orc_unpack_s32 */
1079 #ifdef DISABLE_ORC
1080 void
1081 audio_convert_orc_unpack_s32 (gint32 * ORC_RESTRICT d1,
1082     const guint8 * ORC_RESTRICT s1, int p1, int n)
1083 {
1084   int i;
1085   orc_union32 *ORC_RESTRICT ptr0;
1086   const orc_union32 *ORC_RESTRICT ptr4;
1087   orc_union32 var32;
1088   orc_union32 var33;
1089
1090   ptr0 = (orc_union32 *) d1;
1091   ptr4 = (orc_union32 *) s1;
1092
1093
1094   for (i = 0; i < n; i++) {
1095     /* 0: loadl */
1096     var32 = ptr4[i];
1097     /* 1: shll */
1098     var33.i = var32.i << p1;
1099     /* 2: storel */
1100     ptr0[i] = var33;
1101   }
1102
1103 }
1104
1105 #else
1106 static void
1107 _backup_audio_convert_orc_unpack_s32 (OrcExecutor * ORC_RESTRICT ex)
1108 {
1109   int i;
1110   int n = ex->n;
1111   orc_union32 *ORC_RESTRICT ptr0;
1112   const orc_union32 *ORC_RESTRICT ptr4;
1113   orc_union32 var32;
1114   orc_union32 var33;
1115
1116   ptr0 = (orc_union32 *) ex->arrays[0];
1117   ptr4 = (orc_union32 *) ex->arrays[4];
1118
1119
1120   for (i = 0; i < n; i++) {
1121     /* 0: loadl */
1122     var32 = ptr4[i];
1123     /* 1: shll */
1124     var33.i = var32.i << ex->params[24];
1125     /* 2: storel */
1126     ptr0[i] = var33;
1127   }
1128
1129 }
1130
1131 void
1132 audio_convert_orc_unpack_s32 (gint32 * ORC_RESTRICT d1,
1133     const guint8 * ORC_RESTRICT s1, int p1, int n)
1134 {
1135   OrcExecutor _ex, *ex = &_ex;
1136   static volatile int p_inited = 0;
1137   static OrcCode *c = 0;
1138   void (*func) (OrcExecutor *);
1139
1140   if (!p_inited) {
1141     orc_once_mutex_lock ();
1142     if (!p_inited) {
1143       OrcProgram *p;
1144
1145       p = orc_program_new ();
1146       orc_program_set_name (p, "audio_convert_orc_unpack_s32");
1147       orc_program_set_backup_function (p, _backup_audio_convert_orc_unpack_s32);
1148       orc_program_add_destination (p, 4, "d1");
1149       orc_program_add_source (p, 4, "s1");
1150       orc_program_add_parameter (p, 4, "p1");
1151
1152       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_P1,
1153           ORC_VAR_D1);
1154
1155       orc_program_compile (p);
1156       c = orc_program_take_code (p);
1157       orc_program_free (p);
1158     }
1159     p_inited = TRUE;
1160     orc_once_mutex_unlock ();
1161   }
1162   ex->arrays[ORC_VAR_A2] = c;
1163   ex->program = 0;
1164
1165   ex->n = n;
1166   ex->arrays[ORC_VAR_D1] = d1;
1167   ex->arrays[ORC_VAR_S1] = (void *) s1;
1168   ex->params[ORC_VAR_P1] = p1;
1169
1170   func = c->exec;
1171   func (ex);
1172 }
1173 #endif
1174
1175
1176 /* audio_convert_orc_unpack_u32_swap */
1177 #ifdef DISABLE_ORC
1178 void
1179 audio_convert_orc_unpack_u32_swap (gint32 * ORC_RESTRICT d1,
1180     const guint8 * ORC_RESTRICT s1, int p1, int n)
1181 {
1182   int i;
1183   orc_union32 *ORC_RESTRICT ptr0;
1184   const orc_union32 *ORC_RESTRICT ptr4;
1185   orc_union32 var33;
1186   orc_union32 var34;
1187   orc_union32 var35;
1188   orc_union32 var36;
1189   orc_union32 var37;
1190
1191   ptr0 = (orc_union32 *) d1;
1192   ptr4 = (orc_union32 *) s1;
1193
1194   /* 3: loadpl */
1195   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
1196
1197   for (i = 0; i < n; i++) {
1198     /* 0: loadl */
1199     var33 = ptr4[i];
1200     /* 1: swapl */
1201     var36.i = ORC_SWAP_L (var33.i);
1202     /* 2: shll */
1203     var37.i = var36.i << p1;
1204     /* 4: xorl */
1205     var35.i = var37.i ^ var34.i;
1206     /* 5: storel */
1207     ptr0[i] = var35;
1208   }
1209
1210 }
1211
1212 #else
1213 static void
1214 _backup_audio_convert_orc_unpack_u32_swap (OrcExecutor * ORC_RESTRICT ex)
1215 {
1216   int i;
1217   int n = ex->n;
1218   orc_union32 *ORC_RESTRICT ptr0;
1219   const orc_union32 *ORC_RESTRICT ptr4;
1220   orc_union32 var33;
1221   orc_union32 var34;
1222   orc_union32 var35;
1223   orc_union32 var36;
1224   orc_union32 var37;
1225
1226   ptr0 = (orc_union32 *) ex->arrays[0];
1227   ptr4 = (orc_union32 *) ex->arrays[4];
1228
1229   /* 3: loadpl */
1230   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
1231
1232   for (i = 0; i < n; i++) {
1233     /* 0: loadl */
1234     var33 = ptr4[i];
1235     /* 1: swapl */
1236     var36.i = ORC_SWAP_L (var33.i);
1237     /* 2: shll */
1238     var37.i = var36.i << ex->params[24];
1239     /* 4: xorl */
1240     var35.i = var37.i ^ var34.i;
1241     /* 5: storel */
1242     ptr0[i] = var35;
1243   }
1244
1245 }
1246
1247 void
1248 audio_convert_orc_unpack_u32_swap (gint32 * ORC_RESTRICT d1,
1249     const guint8 * ORC_RESTRICT s1, int p1, int n)
1250 {
1251   OrcExecutor _ex, *ex = &_ex;
1252   static volatile int p_inited = 0;
1253   static OrcCode *c = 0;
1254   void (*func) (OrcExecutor *);
1255
1256   if (!p_inited) {
1257     orc_once_mutex_lock ();
1258     if (!p_inited) {
1259       OrcProgram *p;
1260
1261       p = orc_program_new ();
1262       orc_program_set_name (p, "audio_convert_orc_unpack_u32_swap");
1263       orc_program_set_backup_function (p,
1264           _backup_audio_convert_orc_unpack_u32_swap);
1265       orc_program_add_destination (p, 4, "d1");
1266       orc_program_add_source (p, 4, "s1");
1267       orc_program_add_constant (p, 4, 0x80000000, "c1");
1268       orc_program_add_parameter (p, 4, "p1");
1269       orc_program_add_temporary (p, 4, "t1");
1270
1271       orc_program_append_2 (p, "swapl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
1272           ORC_VAR_D1);
1273       orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
1274           ORC_VAR_D1);
1275       orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
1276           ORC_VAR_D1);
1277
1278       orc_program_compile (p);
1279       c = orc_program_take_code (p);
1280       orc_program_free (p);
1281     }
1282     p_inited = TRUE;
1283     orc_once_mutex_unlock ();
1284   }
1285   ex->arrays[ORC_VAR_A2] = c;
1286   ex->program = 0;
1287
1288   ex->n = n;
1289   ex->arrays[ORC_VAR_D1] = d1;
1290   ex->arrays[ORC_VAR_S1] = (void *) s1;
1291   ex->params[ORC_VAR_P1] = p1;
1292
1293   func = c->exec;
1294   func (ex);
1295 }
1296 #endif
1297
1298
1299 /* audio_convert_orc_unpack_s32_swap */
1300 #ifdef DISABLE_ORC
1301 void
1302 audio_convert_orc_unpack_s32_swap (gint32 * ORC_RESTRICT d1,
1303     const guint8 * ORC_RESTRICT s1, int p1, int n)
1304 {
1305   int i;
1306   orc_union32 *ORC_RESTRICT ptr0;
1307   const orc_union32 *ORC_RESTRICT ptr4;
1308   orc_union32 var33;
1309   orc_union32 var34;
1310   orc_union32 var35;
1311
1312   ptr0 = (orc_union32 *) d1;
1313   ptr4 = (orc_union32 *) s1;
1314
1315
1316   for (i = 0; i < n; i++) {
1317     /* 0: loadl */
1318     var33 = ptr4[i];
1319     /* 1: swapl */
1320     var35.i = ORC_SWAP_L (var33.i);
1321     /* 2: shll */
1322     var34.i = var35.i << p1;
1323     /* 3: storel */
1324     ptr0[i] = var34;
1325   }
1326
1327 }
1328
1329 #else
1330 static void
1331 _backup_audio_convert_orc_unpack_s32_swap (OrcExecutor * ORC_RESTRICT ex)
1332 {
1333   int i;
1334   int n = ex->n;
1335   orc_union32 *ORC_RESTRICT ptr0;
1336   const orc_union32 *ORC_RESTRICT ptr4;
1337   orc_union32 var33;
1338   orc_union32 var34;
1339   orc_union32 var35;
1340
1341   ptr0 = (orc_union32 *) ex->arrays[0];
1342   ptr4 = (orc_union32 *) ex->arrays[4];
1343
1344
1345   for (i = 0; i < n; i++) {
1346     /* 0: loadl */
1347     var33 = ptr4[i];
1348     /* 1: swapl */
1349     var35.i = ORC_SWAP_L (var33.i);
1350     /* 2: shll */
1351     var34.i = var35.i << ex->params[24];
1352     /* 3: storel */
1353     ptr0[i] = var34;
1354   }
1355
1356 }
1357
1358 void
1359 audio_convert_orc_unpack_s32_swap (gint32 * ORC_RESTRICT d1,
1360     const guint8 * ORC_RESTRICT s1, int p1, int n)
1361 {
1362   OrcExecutor _ex, *ex = &_ex;
1363   static volatile int p_inited = 0;
1364   static OrcCode *c = 0;
1365   void (*func) (OrcExecutor *);
1366
1367   if (!p_inited) {
1368     orc_once_mutex_lock ();
1369     if (!p_inited) {
1370       OrcProgram *p;
1371
1372       p = orc_program_new ();
1373       orc_program_set_name (p, "audio_convert_orc_unpack_s32_swap");
1374       orc_program_set_backup_function (p,
1375           _backup_audio_convert_orc_unpack_s32_swap);
1376       orc_program_add_destination (p, 4, "d1");
1377       orc_program_add_source (p, 4, "s1");
1378       orc_program_add_parameter (p, 4, "p1");
1379       orc_program_add_temporary (p, 4, "t1");
1380
1381       orc_program_append_2 (p, "swapl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
1382           ORC_VAR_D1);
1383       orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_P1,
1384           ORC_VAR_D1);
1385
1386       orc_program_compile (p);
1387       c = orc_program_take_code (p);
1388       orc_program_free (p);
1389     }
1390     p_inited = TRUE;
1391     orc_once_mutex_unlock ();
1392   }
1393   ex->arrays[ORC_VAR_A2] = c;
1394   ex->program = 0;
1395
1396   ex->n = n;
1397   ex->arrays[ORC_VAR_D1] = d1;
1398   ex->arrays[ORC_VAR_S1] = (void *) s1;
1399   ex->params[ORC_VAR_P1] = p1;
1400
1401   func = c->exec;
1402   func (ex);
1403 }
1404 #endif
1405
1406
1407 /* audio_convert_orc_unpack_float_s32 */
1408 #ifdef DISABLE_ORC
1409 void
1410 audio_convert_orc_unpack_float_s32 (guint32 * ORC_RESTRICT d1,
1411     const gfloat * ORC_RESTRICT s1, int n)
1412 {
1413   int i;
1414   orc_union32 *ORC_RESTRICT ptr0;
1415   const orc_union32 *ORC_RESTRICT ptr4;
1416   orc_union32 var33;
1417   orc_union32 var34;
1418   orc_union32 var35;
1419   orc_union32 var36;
1420   orc_union32 var37;
1421   orc_union32 var38;
1422
1423   ptr0 = (orc_union32 *) d1;
1424   ptr4 = (orc_union32 *) s1;
1425
1426   /* 1: loadpl */
1427   var33.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
1428   /* 3: loadpl */
1429   var34.i = (int) 0x3f000000;   /* 1056964608 or 5.2221e-315f */
1430
1431   for (i = 0; i < n; i++) {
1432     /* 0: loadl */
1433     var36 = ptr4[i];
1434     /* 2: mulf */
1435     {
1436       orc_union32 _src1;
1437       orc_union32 _src2;
1438       orc_union32 _dest1;
1439       _src1.i = ORC_DENORMAL (var36.i);
1440       _src2.i = ORC_DENORMAL (var33.i);
1441       _dest1.f = _src1.f * _src2.f;
1442       var37.i = ORC_DENORMAL (_dest1.i);
1443     }
1444     /* 4: addf */
1445     {
1446       orc_union32 _src1;
1447       orc_union32 _src2;
1448       orc_union32 _dest1;
1449       _src1.i = ORC_DENORMAL (var37.i);
1450       _src2.i = ORC_DENORMAL (var34.i);
1451       _dest1.f = _src1.f + _src2.f;
1452       var38.i = ORC_DENORMAL (_dest1.i);
1453     }
1454     /* 5: convfl */
1455     {
1456       int tmp;
1457       tmp = (int) var38.f;
1458       if (tmp == 0x80000000 && !(var38.i & 0x80000000))
1459         tmp = 0x7fffffff;
1460       var35.i = tmp;
1461     }
1462     /* 6: storel */
1463     ptr0[i] = var35;
1464   }
1465
1466 }
1467
1468 #else
1469 static void
1470 _backup_audio_convert_orc_unpack_float_s32 (OrcExecutor * ORC_RESTRICT ex)
1471 {
1472   int i;
1473   int n = ex->n;
1474   orc_union32 *ORC_RESTRICT ptr0;
1475   const orc_union32 *ORC_RESTRICT ptr4;
1476   orc_union32 var33;
1477   orc_union32 var34;
1478   orc_union32 var35;
1479   orc_union32 var36;
1480   orc_union32 var37;
1481   orc_union32 var38;
1482
1483   ptr0 = (orc_union32 *) ex->arrays[0];
1484   ptr4 = (orc_union32 *) ex->arrays[4];
1485
1486   /* 1: loadpl */
1487   var33.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
1488   /* 3: loadpl */
1489   var34.i = (int) 0x3f000000;   /* 1056964608 or 5.2221e-315f */
1490
1491   for (i = 0; i < n; i++) {
1492     /* 0: loadl */
1493     var36 = ptr4[i];
1494     /* 2: mulf */
1495     {
1496       orc_union32 _src1;
1497       orc_union32 _src2;
1498       orc_union32 _dest1;
1499       _src1.i = ORC_DENORMAL (var36.i);
1500       _src2.i = ORC_DENORMAL (var33.i);
1501       _dest1.f = _src1.f * _src2.f;
1502       var37.i = ORC_DENORMAL (_dest1.i);
1503     }
1504     /* 4: addf */
1505     {
1506       orc_union32 _src1;
1507       orc_union32 _src2;
1508       orc_union32 _dest1;
1509       _src1.i = ORC_DENORMAL (var37.i);
1510       _src2.i = ORC_DENORMAL (var34.i);
1511       _dest1.f = _src1.f + _src2.f;
1512       var38.i = ORC_DENORMAL (_dest1.i);
1513     }
1514     /* 5: convfl */
1515     {
1516       int tmp;
1517       tmp = (int) var38.f;
1518       if (tmp == 0x80000000 && !(var38.i & 0x80000000))
1519         tmp = 0x7fffffff;
1520       var35.i = tmp;
1521     }
1522     /* 6: storel */
1523     ptr0[i] = var35;
1524   }
1525
1526 }
1527
1528 void
1529 audio_convert_orc_unpack_float_s32 (guint32 * ORC_RESTRICT d1,
1530     const gfloat * ORC_RESTRICT s1, int n)
1531 {
1532   OrcExecutor _ex, *ex = &_ex;
1533   static volatile int p_inited = 0;
1534   static OrcCode *c = 0;
1535   void (*func) (OrcExecutor *);
1536
1537   if (!p_inited) {
1538     orc_once_mutex_lock ();
1539     if (!p_inited) {
1540       OrcProgram *p;
1541
1542       p = orc_program_new ();
1543       orc_program_set_name (p, "audio_convert_orc_unpack_float_s32");
1544       orc_program_set_backup_function (p,
1545           _backup_audio_convert_orc_unpack_float_s32);
1546       orc_program_add_destination (p, 4, "d1");
1547       orc_program_add_source (p, 4, "s1");
1548       orc_program_add_constant (p, 4, 0x4f000000, "c1");
1549       orc_program_add_constant (p, 4, 0x3f000000, "c2");
1550       orc_program_add_temporary (p, 4, "t1");
1551
1552       orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
1553           ORC_VAR_D1);
1554       orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
1555           ORC_VAR_D1);
1556       orc_program_append_2 (p, "addf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
1557           ORC_VAR_D1);
1558       orc_program_append_2 (p, "convfl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
1559           ORC_VAR_D1);
1560
1561       orc_program_compile (p);
1562       c = orc_program_take_code (p);
1563       orc_program_free (p);
1564     }
1565     p_inited = TRUE;
1566     orc_once_mutex_unlock ();
1567   }
1568   ex->arrays[ORC_VAR_A2] = c;
1569   ex->program = 0;
1570
1571   ex->n = n;
1572   ex->arrays[ORC_VAR_D1] = d1;
1573   ex->arrays[ORC_VAR_S1] = (void *) s1;
1574
1575   func = c->exec;
1576   func (ex);
1577 }
1578 #endif
1579
1580
1581 /* audio_convert_orc_unpack_float_s32_swap */
1582 #ifdef DISABLE_ORC
1583 void
1584 audio_convert_orc_unpack_float_s32_swap (guint32 * ORC_RESTRICT d1,
1585     const gfloat * ORC_RESTRICT s1, int n)
1586 {
1587   int i;
1588   orc_union32 *ORC_RESTRICT ptr0;
1589   const orc_union32 *ORC_RESTRICT ptr4;
1590   orc_union32 var33;
1591   orc_union32 var34;
1592   orc_union32 var35;
1593   orc_union32 var36;
1594   orc_union32 var37;
1595   orc_union32 var38;
1596   orc_union32 var39;
1597
1598   ptr0 = (orc_union32 *) d1;
1599   ptr4 = (orc_union32 *) s1;
1600
1601   /* 2: loadpl */
1602   var34.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
1603   /* 4: loadpl */
1604   var35.i = (int) 0x3f000000;   /* 1056964608 or 5.2221e-315f */
1605
1606   for (i = 0; i < n; i++) {
1607     /* 0: loadl */
1608     var33 = ptr4[i];
1609     /* 1: swapl */
1610     var37.i = ORC_SWAP_L (var33.i);
1611     /* 3: mulf */
1612     {
1613       orc_union32 _src1;
1614       orc_union32 _src2;
1615       orc_union32 _dest1;
1616       _src1.i = ORC_DENORMAL (var37.i);
1617       _src2.i = ORC_DENORMAL (var34.i);
1618       _dest1.f = _src1.f * _src2.f;
1619       var38.i = ORC_DENORMAL (_dest1.i);
1620     }
1621     /* 5: addf */
1622     {
1623       orc_union32 _src1;
1624       orc_union32 _src2;
1625       orc_union32 _dest1;
1626       _src1.i = ORC_DENORMAL (var38.i);
1627       _src2.i = ORC_DENORMAL (var35.i);
1628       _dest1.f = _src1.f + _src2.f;
1629       var39.i = ORC_DENORMAL (_dest1.i);
1630     }
1631     /* 6: convfl */
1632     {
1633       int tmp;
1634       tmp = (int) var39.f;
1635       if (tmp == 0x80000000 && !(var39.i & 0x80000000))
1636         tmp = 0x7fffffff;
1637       var36.i = tmp;
1638     }
1639     /* 7: storel */
1640     ptr0[i] = var36;
1641   }
1642
1643 }
1644
1645 #else
1646 static void
1647 _backup_audio_convert_orc_unpack_float_s32_swap (OrcExecutor * ORC_RESTRICT ex)
1648 {
1649   int i;
1650   int n = ex->n;
1651   orc_union32 *ORC_RESTRICT ptr0;
1652   const orc_union32 *ORC_RESTRICT ptr4;
1653   orc_union32 var33;
1654   orc_union32 var34;
1655   orc_union32 var35;
1656   orc_union32 var36;
1657   orc_union32 var37;
1658   orc_union32 var38;
1659   orc_union32 var39;
1660
1661   ptr0 = (orc_union32 *) ex->arrays[0];
1662   ptr4 = (orc_union32 *) ex->arrays[4];
1663
1664   /* 2: loadpl */
1665   var34.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
1666   /* 4: loadpl */
1667   var35.i = (int) 0x3f000000;   /* 1056964608 or 5.2221e-315f */
1668
1669   for (i = 0; i < n; i++) {
1670     /* 0: loadl */
1671     var33 = ptr4[i];
1672     /* 1: swapl */
1673     var37.i = ORC_SWAP_L (var33.i);
1674     /* 3: mulf */
1675     {
1676       orc_union32 _src1;
1677       orc_union32 _src2;
1678       orc_union32 _dest1;
1679       _src1.i = ORC_DENORMAL (var37.i);
1680       _src2.i = ORC_DENORMAL (var34.i);
1681       _dest1.f = _src1.f * _src2.f;
1682       var38.i = ORC_DENORMAL (_dest1.i);
1683     }
1684     /* 5: addf */
1685     {
1686       orc_union32 _src1;
1687       orc_union32 _src2;
1688       orc_union32 _dest1;
1689       _src1.i = ORC_DENORMAL (var38.i);
1690       _src2.i = ORC_DENORMAL (var35.i);
1691       _dest1.f = _src1.f + _src2.f;
1692       var39.i = ORC_DENORMAL (_dest1.i);
1693     }
1694     /* 6: convfl */
1695     {
1696       int tmp;
1697       tmp = (int) var39.f;
1698       if (tmp == 0x80000000 && !(var39.i & 0x80000000))
1699         tmp = 0x7fffffff;
1700       var36.i = tmp;
1701     }
1702     /* 7: storel */
1703     ptr0[i] = var36;
1704   }
1705
1706 }
1707
1708 void
1709 audio_convert_orc_unpack_float_s32_swap (guint32 * ORC_RESTRICT d1,
1710     const gfloat * ORC_RESTRICT s1, int n)
1711 {
1712   OrcExecutor _ex, *ex = &_ex;
1713   static volatile int p_inited = 0;
1714   static OrcCode *c = 0;
1715   void (*func) (OrcExecutor *);
1716
1717   if (!p_inited) {
1718     orc_once_mutex_lock ();
1719     if (!p_inited) {
1720       OrcProgram *p;
1721
1722       p = orc_program_new ();
1723       orc_program_set_name (p, "audio_convert_orc_unpack_float_s32_swap");
1724       orc_program_set_backup_function (p,
1725           _backup_audio_convert_orc_unpack_float_s32_swap);
1726       orc_program_add_destination (p, 4, "d1");
1727       orc_program_add_source (p, 4, "s1");
1728       orc_program_add_constant (p, 4, 0x4f000000, "c1");
1729       orc_program_add_constant (p, 4, 0x3f000000, "c2");
1730       orc_program_add_temporary (p, 4, "t1");
1731
1732       orc_program_append_2 (p, "swapl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
1733           ORC_VAR_D1);
1734       orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
1735           ORC_VAR_D1);
1736       orc_program_append_2 (p, "addf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
1737           ORC_VAR_D1);
1738       orc_program_append_2 (p, "convfl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
1739           ORC_VAR_D1);
1740
1741       orc_program_compile (p);
1742       c = orc_program_take_code (p);
1743       orc_program_free (p);
1744     }
1745     p_inited = TRUE;
1746     orc_once_mutex_unlock ();
1747   }
1748   ex->arrays[ORC_VAR_A2] = c;
1749   ex->program = 0;
1750
1751   ex->n = n;
1752   ex->arrays[ORC_VAR_D1] = d1;
1753   ex->arrays[ORC_VAR_S1] = (void *) s1;
1754
1755   func = c->exec;
1756   func (ex);
1757 }
1758 #endif
1759
1760
1761 /* audio_convert_orc_unpack_double_s32 */
1762 #ifdef DISABLE_ORC
1763 void
1764 audio_convert_orc_unpack_double_s32 (guint32 * ORC_RESTRICT d1,
1765     const gdouble * ORC_RESTRICT s1, int n)
1766 {
1767   int i;
1768   orc_union32 *ORC_RESTRICT ptr0;
1769   const orc_union64 *ORC_RESTRICT ptr4;
1770   orc_union64 var33;
1771   orc_union64 var34;
1772   orc_union32 var35;
1773   orc_union64 var36;
1774   orc_union64 var37;
1775   orc_union64 var38;
1776
1777   ptr0 = (orc_union32 *) d1;
1778   ptr4 = (orc_union64 *) s1;
1779
1780   /* 1: loadpq */
1781   var33.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
1782   /* 3: loadpq */
1783   var34.i = ORC_UINT64_C (0x3fe0000000000000);  /* 0.5f */
1784
1785   for (i = 0; i < n; i++) {
1786     /* 0: loadq */
1787     var36 = ptr4[i];
1788     /* 2: muld */
1789     {
1790       orc_union64 _src1;
1791       orc_union64 _src2;
1792       orc_union64 _dest1;
1793       _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
1794       _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
1795       _dest1.f = _src1.f * _src2.f;
1796       var37.i = ORC_DENORMAL_DOUBLE (_dest1.i);
1797     }
1798     /* 4: addd */
1799     {
1800       orc_union64 _src1;
1801       orc_union64 _src2;
1802       orc_union64 _dest1;
1803       _src1.i = ORC_DENORMAL_DOUBLE (var37.i);
1804       _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
1805       _dest1.f = _src1.f + _src2.f;
1806       var38.i = ORC_DENORMAL_DOUBLE (_dest1.i);
1807     }
1808     /* 5: convdl */
1809     {
1810       int tmp;
1811       tmp = var38.f;
1812       if (tmp == 0x80000000 && !(var38.i & ORC_UINT64_C (0x8000000000000000)))
1813         tmp = 0x7fffffff;
1814       var35.i = tmp;
1815     }
1816     /* 6: storel */
1817     ptr0[i] = var35;
1818   }
1819
1820 }
1821
1822 #else
1823 static void
1824 _backup_audio_convert_orc_unpack_double_s32 (OrcExecutor * ORC_RESTRICT ex)
1825 {
1826   int i;
1827   int n = ex->n;
1828   orc_union32 *ORC_RESTRICT ptr0;
1829   const orc_union64 *ORC_RESTRICT ptr4;
1830   orc_union64 var33;
1831   orc_union64 var34;
1832   orc_union32 var35;
1833   orc_union64 var36;
1834   orc_union64 var37;
1835   orc_union64 var38;
1836
1837   ptr0 = (orc_union32 *) ex->arrays[0];
1838   ptr4 = (orc_union64 *) ex->arrays[4];
1839
1840   /* 1: loadpq */
1841   var33.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
1842   /* 3: loadpq */
1843   var34.i = ORC_UINT64_C (0x3fe0000000000000);  /* 0.5f */
1844
1845   for (i = 0; i < n; i++) {
1846     /* 0: loadq */
1847     var36 = ptr4[i];
1848     /* 2: muld */
1849     {
1850       orc_union64 _src1;
1851       orc_union64 _src2;
1852       orc_union64 _dest1;
1853       _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
1854       _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
1855       _dest1.f = _src1.f * _src2.f;
1856       var37.i = ORC_DENORMAL_DOUBLE (_dest1.i);
1857     }
1858     /* 4: addd */
1859     {
1860       orc_union64 _src1;
1861       orc_union64 _src2;
1862       orc_union64 _dest1;
1863       _src1.i = ORC_DENORMAL_DOUBLE (var37.i);
1864       _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
1865       _dest1.f = _src1.f + _src2.f;
1866       var38.i = ORC_DENORMAL_DOUBLE (_dest1.i);
1867     }
1868     /* 5: convdl */
1869     {
1870       int tmp;
1871       tmp = var38.f;
1872       if (tmp == 0x80000000 && !(var38.i & ORC_UINT64_C (0x8000000000000000)))
1873         tmp = 0x7fffffff;
1874       var35.i = tmp;
1875     }
1876     /* 6: storel */
1877     ptr0[i] = var35;
1878   }
1879
1880 }
1881
1882 void
1883 audio_convert_orc_unpack_double_s32 (guint32 * ORC_RESTRICT d1,
1884     const gdouble * ORC_RESTRICT s1, int n)
1885 {
1886   OrcExecutor _ex, *ex = &_ex;
1887   static volatile int p_inited = 0;
1888   static OrcCode *c = 0;
1889   void (*func) (OrcExecutor *);
1890
1891   if (!p_inited) {
1892     orc_once_mutex_lock ();
1893     if (!p_inited) {
1894       OrcProgram *p;
1895
1896       p = orc_program_new ();
1897       orc_program_set_name (p, "audio_convert_orc_unpack_double_s32");
1898       orc_program_set_backup_function (p,
1899           _backup_audio_convert_orc_unpack_double_s32);
1900       orc_program_add_destination (p, 4, "d1");
1901       orc_program_add_source (p, 8, "s1");
1902       orc_program_add_constant_int64 (p, 8, 0x41dfffffffc00000ULL, "c1");
1903       orc_program_add_constant_int64 (p, 8, 0x3fe0000000000000ULL, "c2");
1904       orc_program_add_temporary (p, 8, "t1");
1905
1906       orc_program_append_2 (p, "loadq", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
1907           ORC_VAR_D1);
1908       orc_program_append_2 (p, "muld", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
1909           ORC_VAR_D1);
1910       orc_program_append_2 (p, "addd", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
1911           ORC_VAR_D1);
1912       orc_program_append_2 (p, "convdl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
1913           ORC_VAR_D1);
1914
1915       orc_program_compile (p);
1916       c = orc_program_take_code (p);
1917       orc_program_free (p);
1918     }
1919     p_inited = TRUE;
1920     orc_once_mutex_unlock ();
1921   }
1922   ex->arrays[ORC_VAR_A2] = c;
1923   ex->program = 0;
1924
1925   ex->n = n;
1926   ex->arrays[ORC_VAR_D1] = d1;
1927   ex->arrays[ORC_VAR_S1] = (void *) s1;
1928
1929   func = c->exec;
1930   func (ex);
1931 }
1932 #endif
1933
1934
1935 /* audio_convert_orc_unpack_double_s32_swap */
1936 #ifdef DISABLE_ORC
1937 void
1938 audio_convert_orc_unpack_double_s32_swap (guint32 * ORC_RESTRICT d1,
1939     const gdouble * ORC_RESTRICT s1, int n)
1940 {
1941   int i;
1942   orc_union32 *ORC_RESTRICT ptr0;
1943   const orc_union64 *ORC_RESTRICT ptr4;
1944   orc_union64 var33;
1945   orc_union64 var34;
1946   orc_union64 var35;
1947   orc_union32 var36;
1948   orc_union64 var37;
1949   orc_union64 var38;
1950   orc_union64 var39;
1951
1952   ptr0 = (orc_union32 *) d1;
1953   ptr4 = (orc_union64 *) s1;
1954
1955   /* 2: loadpq */
1956   var34.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
1957   /* 4: loadpq */
1958   var35.i = ORC_UINT64_C (0x3fe0000000000000);  /* 0.5f */
1959
1960   for (i = 0; i < n; i++) {
1961     /* 0: loadq */
1962     var33 = ptr4[i];
1963     /* 1: swapq */
1964     var37.i = ORC_SWAP_Q (var33.i);
1965     /* 3: muld */
1966     {
1967       orc_union64 _src1;
1968       orc_union64 _src2;
1969       orc_union64 _dest1;
1970       _src1.i = ORC_DENORMAL_DOUBLE (var37.i);
1971       _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
1972       _dest1.f = _src1.f * _src2.f;
1973       var38.i = ORC_DENORMAL_DOUBLE (_dest1.i);
1974     }
1975     /* 5: addd */
1976     {
1977       orc_union64 _src1;
1978       orc_union64 _src2;
1979       orc_union64 _dest1;
1980       _src1.i = ORC_DENORMAL_DOUBLE (var38.i);
1981       _src2.i = ORC_DENORMAL_DOUBLE (var35.i);
1982       _dest1.f = _src1.f + _src2.f;
1983       var39.i = ORC_DENORMAL_DOUBLE (_dest1.i);
1984     }
1985     /* 6: convdl */
1986     {
1987       int tmp;
1988       tmp = var39.f;
1989       if (tmp == 0x80000000 && !(var39.i & ORC_UINT64_C (0x8000000000000000)))
1990         tmp = 0x7fffffff;
1991       var36.i = tmp;
1992     }
1993     /* 7: storel */
1994     ptr0[i] = var36;
1995   }
1996
1997 }
1998
1999 #else
2000 static void
2001 _backup_audio_convert_orc_unpack_double_s32_swap (OrcExecutor * ORC_RESTRICT ex)
2002 {
2003   int i;
2004   int n = ex->n;
2005   orc_union32 *ORC_RESTRICT ptr0;
2006   const orc_union64 *ORC_RESTRICT ptr4;
2007   orc_union64 var33;
2008   orc_union64 var34;
2009   orc_union64 var35;
2010   orc_union32 var36;
2011   orc_union64 var37;
2012   orc_union64 var38;
2013   orc_union64 var39;
2014
2015   ptr0 = (orc_union32 *) ex->arrays[0];
2016   ptr4 = (orc_union64 *) ex->arrays[4];
2017
2018   /* 2: loadpq */
2019   var34.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
2020   /* 4: loadpq */
2021   var35.i = ORC_UINT64_C (0x3fe0000000000000);  /* 0.5f */
2022
2023   for (i = 0; i < n; i++) {
2024     /* 0: loadq */
2025     var33 = ptr4[i];
2026     /* 1: swapq */
2027     var37.i = ORC_SWAP_Q (var33.i);
2028     /* 3: muld */
2029     {
2030       orc_union64 _src1;
2031       orc_union64 _src2;
2032       orc_union64 _dest1;
2033       _src1.i = ORC_DENORMAL_DOUBLE (var37.i);
2034       _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
2035       _dest1.f = _src1.f * _src2.f;
2036       var38.i = ORC_DENORMAL_DOUBLE (_dest1.i);
2037     }
2038     /* 5: addd */
2039     {
2040       orc_union64 _src1;
2041       orc_union64 _src2;
2042       orc_union64 _dest1;
2043       _src1.i = ORC_DENORMAL_DOUBLE (var38.i);
2044       _src2.i = ORC_DENORMAL_DOUBLE (var35.i);
2045       _dest1.f = _src1.f + _src2.f;
2046       var39.i = ORC_DENORMAL_DOUBLE (_dest1.i);
2047     }
2048     /* 6: convdl */
2049     {
2050       int tmp;
2051       tmp = var39.f;
2052       if (tmp == 0x80000000 && !(var39.i & ORC_UINT64_C (0x8000000000000000)))
2053         tmp = 0x7fffffff;
2054       var36.i = tmp;
2055     }
2056     /* 7: storel */
2057     ptr0[i] = var36;
2058   }
2059
2060 }
2061
2062 void
2063 audio_convert_orc_unpack_double_s32_swap (guint32 * ORC_RESTRICT d1,
2064     const gdouble * ORC_RESTRICT s1, int n)
2065 {
2066   OrcExecutor _ex, *ex = &_ex;
2067   static volatile int p_inited = 0;
2068   static OrcCode *c = 0;
2069   void (*func) (OrcExecutor *);
2070
2071   if (!p_inited) {
2072     orc_once_mutex_lock ();
2073     if (!p_inited) {
2074       OrcProgram *p;
2075
2076       p = orc_program_new ();
2077       orc_program_set_name (p, "audio_convert_orc_unpack_double_s32_swap");
2078       orc_program_set_backup_function (p,
2079           _backup_audio_convert_orc_unpack_double_s32_swap);
2080       orc_program_add_destination (p, 4, "d1");
2081       orc_program_add_source (p, 8, "s1");
2082       orc_program_add_constant_int64 (p, 8, 0x41dfffffffc00000ULL, "c1");
2083       orc_program_add_constant_int64 (p, 8, 0x3fe0000000000000ULL, "c2");
2084       orc_program_add_temporary (p, 8, "t1");
2085
2086       orc_program_append_2 (p, "swapq", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2087           ORC_VAR_D1);
2088       orc_program_append_2 (p, "muld", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2089           ORC_VAR_D1);
2090       orc_program_append_2 (p, "addd", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
2091           ORC_VAR_D1);
2092       orc_program_append_2 (p, "convdl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2093           ORC_VAR_D1);
2094
2095       orc_program_compile (p);
2096       c = orc_program_take_code (p);
2097       orc_program_free (p);
2098     }
2099     p_inited = TRUE;
2100     orc_once_mutex_unlock ();
2101   }
2102   ex->arrays[ORC_VAR_A2] = c;
2103   ex->program = 0;
2104
2105   ex->n = n;
2106   ex->arrays[ORC_VAR_D1] = d1;
2107   ex->arrays[ORC_VAR_S1] = (void *) s1;
2108
2109   func = c->exec;
2110   func (ex);
2111 }
2112 #endif
2113
2114
2115 /* audio_convert_orc_unpack_float_double */
2116 #ifdef DISABLE_ORC
2117 void
2118 audio_convert_orc_unpack_float_double (gdouble * ORC_RESTRICT d1,
2119     const gfloat * ORC_RESTRICT s1, int n)
2120 {
2121   int i;
2122   orc_union64 *ORC_RESTRICT ptr0;
2123   const orc_union32 *ORC_RESTRICT ptr4;
2124   orc_union32 var32;
2125   orc_union64 var33;
2126
2127   ptr0 = (orc_union64 *) d1;
2128   ptr4 = (orc_union32 *) s1;
2129
2130
2131   for (i = 0; i < n; i++) {
2132     /* 0: loadl */
2133     var32 = ptr4[i];
2134     /* 1: convfd */
2135     {
2136       orc_union32 _src1;
2137       _src1.i = ORC_DENORMAL (var32.i);
2138       var33.f = _src1.f;
2139     }
2140     /* 2: storeq */
2141     ptr0[i] = var33;
2142   }
2143
2144 }
2145
2146 #else
2147 static void
2148 _backup_audio_convert_orc_unpack_float_double (OrcExecutor * ORC_RESTRICT ex)
2149 {
2150   int i;
2151   int n = ex->n;
2152   orc_union64 *ORC_RESTRICT ptr0;
2153   const orc_union32 *ORC_RESTRICT ptr4;
2154   orc_union32 var32;
2155   orc_union64 var33;
2156
2157   ptr0 = (orc_union64 *) ex->arrays[0];
2158   ptr4 = (orc_union32 *) ex->arrays[4];
2159
2160
2161   for (i = 0; i < n; i++) {
2162     /* 0: loadl */
2163     var32 = ptr4[i];
2164     /* 1: convfd */
2165     {
2166       orc_union32 _src1;
2167       _src1.i = ORC_DENORMAL (var32.i);
2168       var33.f = _src1.f;
2169     }
2170     /* 2: storeq */
2171     ptr0[i] = var33;
2172   }
2173
2174 }
2175
2176 void
2177 audio_convert_orc_unpack_float_double (gdouble * ORC_RESTRICT d1,
2178     const gfloat * ORC_RESTRICT s1, int n)
2179 {
2180   OrcExecutor _ex, *ex = &_ex;
2181   static volatile int p_inited = 0;
2182   static OrcCode *c = 0;
2183   void (*func) (OrcExecutor *);
2184
2185   if (!p_inited) {
2186     orc_once_mutex_lock ();
2187     if (!p_inited) {
2188       OrcProgram *p;
2189
2190       p = orc_program_new ();
2191       orc_program_set_name (p, "audio_convert_orc_unpack_float_double");
2192       orc_program_set_backup_function (p,
2193           _backup_audio_convert_orc_unpack_float_double);
2194       orc_program_add_destination (p, 8, "d1");
2195       orc_program_add_source (p, 4, "s1");
2196
2197       orc_program_append_2 (p, "convfd", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
2198           ORC_VAR_D1);
2199
2200       orc_program_compile (p);
2201       c = orc_program_take_code (p);
2202       orc_program_free (p);
2203     }
2204     p_inited = TRUE;
2205     orc_once_mutex_unlock ();
2206   }
2207   ex->arrays[ORC_VAR_A2] = c;
2208   ex->program = 0;
2209
2210   ex->n = n;
2211   ex->arrays[ORC_VAR_D1] = d1;
2212   ex->arrays[ORC_VAR_S1] = (void *) s1;
2213
2214   func = c->exec;
2215   func (ex);
2216 }
2217 #endif
2218
2219
2220 /* audio_convert_orc_unpack_float_double_swap */
2221 #ifdef DISABLE_ORC
2222 void
2223 audio_convert_orc_unpack_float_double_swap (gdouble * ORC_RESTRICT d1,
2224     const gfloat * ORC_RESTRICT s1, int n)
2225 {
2226   int i;
2227   orc_union64 *ORC_RESTRICT ptr0;
2228   const orc_union32 *ORC_RESTRICT ptr4;
2229   orc_union32 var33;
2230   orc_union64 var34;
2231   orc_union32 var35;
2232
2233   ptr0 = (orc_union64 *) d1;
2234   ptr4 = (orc_union32 *) s1;
2235
2236
2237   for (i = 0; i < n; i++) {
2238     /* 0: loadl */
2239     var33 = ptr4[i];
2240     /* 1: swapl */
2241     var35.i = ORC_SWAP_L (var33.i);
2242     /* 2: convfd */
2243     {
2244       orc_union32 _src1;
2245       _src1.i = ORC_DENORMAL (var35.i);
2246       var34.f = _src1.f;
2247     }
2248     /* 3: storeq */
2249     ptr0[i] = var34;
2250   }
2251
2252 }
2253
2254 #else
2255 static void
2256 _backup_audio_convert_orc_unpack_float_double_swap (OrcExecutor *
2257     ORC_RESTRICT ex)
2258 {
2259   int i;
2260   int n = ex->n;
2261   orc_union64 *ORC_RESTRICT ptr0;
2262   const orc_union32 *ORC_RESTRICT ptr4;
2263   orc_union32 var33;
2264   orc_union64 var34;
2265   orc_union32 var35;
2266
2267   ptr0 = (orc_union64 *) ex->arrays[0];
2268   ptr4 = (orc_union32 *) ex->arrays[4];
2269
2270
2271   for (i = 0; i < n; i++) {
2272     /* 0: loadl */
2273     var33 = ptr4[i];
2274     /* 1: swapl */
2275     var35.i = ORC_SWAP_L (var33.i);
2276     /* 2: convfd */
2277     {
2278       orc_union32 _src1;
2279       _src1.i = ORC_DENORMAL (var35.i);
2280       var34.f = _src1.f;
2281     }
2282     /* 3: storeq */
2283     ptr0[i] = var34;
2284   }
2285
2286 }
2287
2288 void
2289 audio_convert_orc_unpack_float_double_swap (gdouble * ORC_RESTRICT d1,
2290     const gfloat * ORC_RESTRICT s1, int n)
2291 {
2292   OrcExecutor _ex, *ex = &_ex;
2293   static volatile int p_inited = 0;
2294   static OrcCode *c = 0;
2295   void (*func) (OrcExecutor *);
2296
2297   if (!p_inited) {
2298     orc_once_mutex_lock ();
2299     if (!p_inited) {
2300       OrcProgram *p;
2301
2302       p = orc_program_new ();
2303       orc_program_set_name (p, "audio_convert_orc_unpack_float_double_swap");
2304       orc_program_set_backup_function (p,
2305           _backup_audio_convert_orc_unpack_float_double_swap);
2306       orc_program_add_destination (p, 8, "d1");
2307       orc_program_add_source (p, 4, "s1");
2308       orc_program_add_temporary (p, 4, "t1");
2309
2310       orc_program_append_2 (p, "swapl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2311           ORC_VAR_D1);
2312       orc_program_append_2 (p, "convfd", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2313           ORC_VAR_D1);
2314
2315       orc_program_compile (p);
2316       c = orc_program_take_code (p);
2317       orc_program_free (p);
2318     }
2319     p_inited = TRUE;
2320     orc_once_mutex_unlock ();
2321   }
2322   ex->arrays[ORC_VAR_A2] = c;
2323   ex->program = 0;
2324
2325   ex->n = n;
2326   ex->arrays[ORC_VAR_D1] = d1;
2327   ex->arrays[ORC_VAR_S1] = (void *) s1;
2328
2329   func = c->exec;
2330   func (ex);
2331 }
2332 #endif
2333
2334
2335 /* audio_convert_orc_unpack_double_double */
2336 #ifdef DISABLE_ORC
2337 void
2338 audio_convert_orc_unpack_double_double (gdouble * ORC_RESTRICT d1,
2339     const gdouble * ORC_RESTRICT s1, int n)
2340 {
2341   int i;
2342   orc_union64 *ORC_RESTRICT ptr0;
2343   const orc_union64 *ORC_RESTRICT ptr4;
2344   orc_union64 var32;
2345   orc_union64 var33;
2346
2347   ptr0 = (orc_union64 *) d1;
2348   ptr4 = (orc_union64 *) s1;
2349
2350
2351   for (i = 0; i < n; i++) {
2352     /* 0: loadq */
2353     var32 = ptr4[i];
2354     /* 1: copyq */
2355     var33.i = var32.i;
2356     /* 2: storeq */
2357     ptr0[i] = var33;
2358   }
2359
2360 }
2361
2362 #else
2363 static void
2364 _backup_audio_convert_orc_unpack_double_double (OrcExecutor * ORC_RESTRICT ex)
2365 {
2366   int i;
2367   int n = ex->n;
2368   orc_union64 *ORC_RESTRICT ptr0;
2369   const orc_union64 *ORC_RESTRICT ptr4;
2370   orc_union64 var32;
2371   orc_union64 var33;
2372
2373   ptr0 = (orc_union64 *) ex->arrays[0];
2374   ptr4 = (orc_union64 *) ex->arrays[4];
2375
2376
2377   for (i = 0; i < n; i++) {
2378     /* 0: loadq */
2379     var32 = ptr4[i];
2380     /* 1: copyq */
2381     var33.i = var32.i;
2382     /* 2: storeq */
2383     ptr0[i] = var33;
2384   }
2385
2386 }
2387
2388 void
2389 audio_convert_orc_unpack_double_double (gdouble * ORC_RESTRICT d1,
2390     const gdouble * ORC_RESTRICT s1, int n)
2391 {
2392   OrcExecutor _ex, *ex = &_ex;
2393   static volatile int p_inited = 0;
2394   static OrcCode *c = 0;
2395   void (*func) (OrcExecutor *);
2396
2397   if (!p_inited) {
2398     orc_once_mutex_lock ();
2399     if (!p_inited) {
2400       OrcProgram *p;
2401
2402       p = orc_program_new ();
2403       orc_program_set_name (p, "audio_convert_orc_unpack_double_double");
2404       orc_program_set_backup_function (p,
2405           _backup_audio_convert_orc_unpack_double_double);
2406       orc_program_add_destination (p, 8, "d1");
2407       orc_program_add_source (p, 8, "s1");
2408
2409       orc_program_append_2 (p, "copyq", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
2410           ORC_VAR_D1);
2411
2412       orc_program_compile (p);
2413       c = orc_program_take_code (p);
2414       orc_program_free (p);
2415     }
2416     p_inited = TRUE;
2417     orc_once_mutex_unlock ();
2418   }
2419   ex->arrays[ORC_VAR_A2] = c;
2420   ex->program = 0;
2421
2422   ex->n = n;
2423   ex->arrays[ORC_VAR_D1] = d1;
2424   ex->arrays[ORC_VAR_S1] = (void *) s1;
2425
2426   func = c->exec;
2427   func (ex);
2428 }
2429 #endif
2430
2431
2432 /* audio_convert_orc_unpack_double_double_swap */
2433 #ifdef DISABLE_ORC
2434 void
2435 audio_convert_orc_unpack_double_double_swap (gdouble * ORC_RESTRICT d1,
2436     const gdouble * ORC_RESTRICT s1, int n)
2437 {
2438   int i;
2439   orc_union64 *ORC_RESTRICT ptr0;
2440   const orc_union64 *ORC_RESTRICT ptr4;
2441   orc_union64 var32;
2442   orc_union64 var33;
2443
2444   ptr0 = (orc_union64 *) d1;
2445   ptr4 = (orc_union64 *) s1;
2446
2447
2448   for (i = 0; i < n; i++) {
2449     /* 0: loadq */
2450     var32 = ptr4[i];
2451     /* 1: swapq */
2452     var33.i = ORC_SWAP_Q (var32.i);
2453     /* 2: storeq */
2454     ptr0[i] = var33;
2455   }
2456
2457 }
2458
2459 #else
2460 static void
2461 _backup_audio_convert_orc_unpack_double_double_swap (OrcExecutor *
2462     ORC_RESTRICT ex)
2463 {
2464   int i;
2465   int n = ex->n;
2466   orc_union64 *ORC_RESTRICT ptr0;
2467   const orc_union64 *ORC_RESTRICT ptr4;
2468   orc_union64 var32;
2469   orc_union64 var33;
2470
2471   ptr0 = (orc_union64 *) ex->arrays[0];
2472   ptr4 = (orc_union64 *) ex->arrays[4];
2473
2474
2475   for (i = 0; i < n; i++) {
2476     /* 0: loadq */
2477     var32 = ptr4[i];
2478     /* 1: swapq */
2479     var33.i = ORC_SWAP_Q (var32.i);
2480     /* 2: storeq */
2481     ptr0[i] = var33;
2482   }
2483
2484 }
2485
2486 void
2487 audio_convert_orc_unpack_double_double_swap (gdouble * ORC_RESTRICT d1,
2488     const gdouble * ORC_RESTRICT s1, int n)
2489 {
2490   OrcExecutor _ex, *ex = &_ex;
2491   static volatile int p_inited = 0;
2492   static OrcCode *c = 0;
2493   void (*func) (OrcExecutor *);
2494
2495   if (!p_inited) {
2496     orc_once_mutex_lock ();
2497     if (!p_inited) {
2498       OrcProgram *p;
2499
2500       p = orc_program_new ();
2501       orc_program_set_name (p, "audio_convert_orc_unpack_double_double_swap");
2502       orc_program_set_backup_function (p,
2503           _backup_audio_convert_orc_unpack_double_double_swap);
2504       orc_program_add_destination (p, 8, "d1");
2505       orc_program_add_source (p, 8, "s1");
2506
2507       orc_program_append_2 (p, "swapq", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
2508           ORC_VAR_D1);
2509
2510       orc_program_compile (p);
2511       c = orc_program_take_code (p);
2512       orc_program_free (p);
2513     }
2514     p_inited = TRUE;
2515     orc_once_mutex_unlock ();
2516   }
2517   ex->arrays[ORC_VAR_A2] = c;
2518   ex->program = 0;
2519
2520   ex->n = n;
2521   ex->arrays[ORC_VAR_D1] = d1;
2522   ex->arrays[ORC_VAR_S1] = (void *) s1;
2523
2524   func = c->exec;
2525   func (ex);
2526 }
2527 #endif
2528
2529
2530 /* audio_convert_orc_unpack_u8_double */
2531 #ifdef DISABLE_ORC
2532 void
2533 audio_convert_orc_unpack_u8_double (gdouble * ORC_RESTRICT d1,
2534     const guint8 * ORC_RESTRICT s1, int p1, int n)
2535 {
2536   int i;
2537   orc_union64 *ORC_RESTRICT ptr0;
2538   const orc_int8 *ORC_RESTRICT ptr4;
2539   orc_int8 var34;
2540   orc_union32 var35;
2541   orc_union64 var36;
2542   orc_union16 var37;
2543   orc_union32 var38;
2544   orc_union32 var39;
2545   orc_union32 var40;
2546
2547   ptr0 = (orc_union64 *) d1;
2548   ptr4 = (orc_int8 *) s1;
2549
2550   /* 4: loadpl */
2551   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
2552
2553   for (i = 0; i < n; i++) {
2554     /* 0: loadb */
2555     var34 = ptr4[i];
2556     /* 1: convubw */
2557     var37.i = (orc_uint8) var34;
2558     /* 2: convuwl */
2559     var38.i = (orc_uint16) var37.i;
2560     /* 3: shll */
2561     var39.i = var38.i << p1;
2562     /* 5: xorl */
2563     var40.i = var39.i ^ var35.i;
2564     /* 6: convld */
2565     var36.f = var40.i;
2566     /* 7: storeq */
2567     ptr0[i] = var36;
2568   }
2569
2570 }
2571
2572 #else
2573 static void
2574 _backup_audio_convert_orc_unpack_u8_double (OrcExecutor * ORC_RESTRICT ex)
2575 {
2576   int i;
2577   int n = ex->n;
2578   orc_union64 *ORC_RESTRICT ptr0;
2579   const orc_int8 *ORC_RESTRICT ptr4;
2580   orc_int8 var34;
2581   orc_union32 var35;
2582   orc_union64 var36;
2583   orc_union16 var37;
2584   orc_union32 var38;
2585   orc_union32 var39;
2586   orc_union32 var40;
2587
2588   ptr0 = (orc_union64 *) ex->arrays[0];
2589   ptr4 = (orc_int8 *) ex->arrays[4];
2590
2591   /* 4: loadpl */
2592   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
2593
2594   for (i = 0; i < n; i++) {
2595     /* 0: loadb */
2596     var34 = ptr4[i];
2597     /* 1: convubw */
2598     var37.i = (orc_uint8) var34;
2599     /* 2: convuwl */
2600     var38.i = (orc_uint16) var37.i;
2601     /* 3: shll */
2602     var39.i = var38.i << ex->params[24];
2603     /* 5: xorl */
2604     var40.i = var39.i ^ var35.i;
2605     /* 6: convld */
2606     var36.f = var40.i;
2607     /* 7: storeq */
2608     ptr0[i] = var36;
2609   }
2610
2611 }
2612
2613 void
2614 audio_convert_orc_unpack_u8_double (gdouble * ORC_RESTRICT d1,
2615     const guint8 * ORC_RESTRICT s1, int p1, int n)
2616 {
2617   OrcExecutor _ex, *ex = &_ex;
2618   static volatile int p_inited = 0;
2619   static OrcCode *c = 0;
2620   void (*func) (OrcExecutor *);
2621
2622   if (!p_inited) {
2623     orc_once_mutex_lock ();
2624     if (!p_inited) {
2625       OrcProgram *p;
2626
2627       p = orc_program_new ();
2628       orc_program_set_name (p, "audio_convert_orc_unpack_u8_double");
2629       orc_program_set_backup_function (p,
2630           _backup_audio_convert_orc_unpack_u8_double);
2631       orc_program_add_destination (p, 8, "d1");
2632       orc_program_add_source (p, 1, "s1");
2633       orc_program_add_constant (p, 4, 0x80000000, "c1");
2634       orc_program_add_parameter (p, 4, "p1");
2635       orc_program_add_temporary (p, 2, "t1");
2636       orc_program_add_temporary (p, 4, "t2");
2637
2638       orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2639           ORC_VAR_D1);
2640       orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
2641           ORC_VAR_D1);
2642       orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
2643           ORC_VAR_D1);
2644       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
2645           ORC_VAR_D1);
2646       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
2647           ORC_VAR_D1);
2648
2649       orc_program_compile (p);
2650       c = orc_program_take_code (p);
2651       orc_program_free (p);
2652     }
2653     p_inited = TRUE;
2654     orc_once_mutex_unlock ();
2655   }
2656   ex->arrays[ORC_VAR_A2] = c;
2657   ex->program = 0;
2658
2659   ex->n = n;
2660   ex->arrays[ORC_VAR_D1] = d1;
2661   ex->arrays[ORC_VAR_S1] = (void *) s1;
2662   ex->params[ORC_VAR_P1] = p1;
2663
2664   func = c->exec;
2665   func (ex);
2666 }
2667 #endif
2668
2669
2670 /* audio_convert_orc_unpack_s8_double */
2671 #ifdef DISABLE_ORC
2672 void
2673 audio_convert_orc_unpack_s8_double (gdouble * ORC_RESTRICT d1,
2674     const guint8 * ORC_RESTRICT s1, int p1, int n)
2675 {
2676   int i;
2677   orc_union64 *ORC_RESTRICT ptr0;
2678   const orc_int8 *ORC_RESTRICT ptr4;
2679   orc_int8 var34;
2680   orc_union64 var35;
2681   orc_union16 var36;
2682   orc_union32 var37;
2683   orc_union32 var38;
2684
2685   ptr0 = (orc_union64 *) d1;
2686   ptr4 = (orc_int8 *) s1;
2687
2688
2689   for (i = 0; i < n; i++) {
2690     /* 0: loadb */
2691     var34 = ptr4[i];
2692     /* 1: convubw */
2693     var36.i = (orc_uint8) var34;
2694     /* 2: convuwl */
2695     var37.i = (orc_uint16) var36.i;
2696     /* 3: shll */
2697     var38.i = var37.i << p1;
2698     /* 4: convld */
2699     var35.f = var38.i;
2700     /* 5: storeq */
2701     ptr0[i] = var35;
2702   }
2703
2704 }
2705
2706 #else
2707 static void
2708 _backup_audio_convert_orc_unpack_s8_double (OrcExecutor * ORC_RESTRICT ex)
2709 {
2710   int i;
2711   int n = ex->n;
2712   orc_union64 *ORC_RESTRICT ptr0;
2713   const orc_int8 *ORC_RESTRICT ptr4;
2714   orc_int8 var34;
2715   orc_union64 var35;
2716   orc_union16 var36;
2717   orc_union32 var37;
2718   orc_union32 var38;
2719
2720   ptr0 = (orc_union64 *) ex->arrays[0];
2721   ptr4 = (orc_int8 *) ex->arrays[4];
2722
2723
2724   for (i = 0; i < n; i++) {
2725     /* 0: loadb */
2726     var34 = ptr4[i];
2727     /* 1: convubw */
2728     var36.i = (orc_uint8) var34;
2729     /* 2: convuwl */
2730     var37.i = (orc_uint16) var36.i;
2731     /* 3: shll */
2732     var38.i = var37.i << ex->params[24];
2733     /* 4: convld */
2734     var35.f = var38.i;
2735     /* 5: storeq */
2736     ptr0[i] = var35;
2737   }
2738
2739 }
2740
2741 void
2742 audio_convert_orc_unpack_s8_double (gdouble * ORC_RESTRICT d1,
2743     const guint8 * ORC_RESTRICT s1, int p1, int n)
2744 {
2745   OrcExecutor _ex, *ex = &_ex;
2746   static volatile int p_inited = 0;
2747   static OrcCode *c = 0;
2748   void (*func) (OrcExecutor *);
2749
2750   if (!p_inited) {
2751     orc_once_mutex_lock ();
2752     if (!p_inited) {
2753       OrcProgram *p;
2754
2755       p = orc_program_new ();
2756       orc_program_set_name (p, "audio_convert_orc_unpack_s8_double");
2757       orc_program_set_backup_function (p,
2758           _backup_audio_convert_orc_unpack_s8_double);
2759       orc_program_add_destination (p, 8, "d1");
2760       orc_program_add_source (p, 1, "s1");
2761       orc_program_add_parameter (p, 4, "p1");
2762       orc_program_add_temporary (p, 2, "t1");
2763       orc_program_add_temporary (p, 4, "t2");
2764
2765       orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2766           ORC_VAR_D1);
2767       orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
2768           ORC_VAR_D1);
2769       orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
2770           ORC_VAR_D1);
2771       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
2772           ORC_VAR_D1);
2773
2774       orc_program_compile (p);
2775       c = orc_program_take_code (p);
2776       orc_program_free (p);
2777     }
2778     p_inited = TRUE;
2779     orc_once_mutex_unlock ();
2780   }
2781   ex->arrays[ORC_VAR_A2] = c;
2782   ex->program = 0;
2783
2784   ex->n = n;
2785   ex->arrays[ORC_VAR_D1] = d1;
2786   ex->arrays[ORC_VAR_S1] = (void *) s1;
2787   ex->params[ORC_VAR_P1] = p1;
2788
2789   func = c->exec;
2790   func (ex);
2791 }
2792 #endif
2793
2794
2795 /* audio_convert_orc_unpack_u16_double */
2796 #ifdef DISABLE_ORC
2797 void
2798 audio_convert_orc_unpack_u16_double (gdouble * ORC_RESTRICT d1,
2799     const guint8 * ORC_RESTRICT s1, int p1, int n)
2800 {
2801   int i;
2802   orc_union64 *ORC_RESTRICT ptr0;
2803   const orc_union16 *ORC_RESTRICT ptr4;
2804   orc_union16 var33;
2805   orc_union32 var34;
2806   orc_union64 var35;
2807   orc_union32 var36;
2808   orc_union32 var37;
2809   orc_union32 var38;
2810
2811   ptr0 = (orc_union64 *) d1;
2812   ptr4 = (orc_union16 *) s1;
2813
2814   /* 3: loadpl */
2815   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
2816
2817   for (i = 0; i < n; i++) {
2818     /* 0: loadw */
2819     var33 = ptr4[i];
2820     /* 1: convuwl */
2821     var36.i = (orc_uint16) var33.i;
2822     /* 2: shll */
2823     var37.i = var36.i << p1;
2824     /* 4: xorl */
2825     var38.i = var37.i ^ var34.i;
2826     /* 5: convld */
2827     var35.f = var38.i;
2828     /* 6: storeq */
2829     ptr0[i] = var35;
2830   }
2831
2832 }
2833
2834 #else
2835 static void
2836 _backup_audio_convert_orc_unpack_u16_double (OrcExecutor * ORC_RESTRICT ex)
2837 {
2838   int i;
2839   int n = ex->n;
2840   orc_union64 *ORC_RESTRICT ptr0;
2841   const orc_union16 *ORC_RESTRICT ptr4;
2842   orc_union16 var33;
2843   orc_union32 var34;
2844   orc_union64 var35;
2845   orc_union32 var36;
2846   orc_union32 var37;
2847   orc_union32 var38;
2848
2849   ptr0 = (orc_union64 *) ex->arrays[0];
2850   ptr4 = (orc_union16 *) ex->arrays[4];
2851
2852   /* 3: loadpl */
2853   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
2854
2855   for (i = 0; i < n; i++) {
2856     /* 0: loadw */
2857     var33 = ptr4[i];
2858     /* 1: convuwl */
2859     var36.i = (orc_uint16) var33.i;
2860     /* 2: shll */
2861     var37.i = var36.i << ex->params[24];
2862     /* 4: xorl */
2863     var38.i = var37.i ^ var34.i;
2864     /* 5: convld */
2865     var35.f = var38.i;
2866     /* 6: storeq */
2867     ptr0[i] = var35;
2868   }
2869
2870 }
2871
2872 void
2873 audio_convert_orc_unpack_u16_double (gdouble * ORC_RESTRICT d1,
2874     const guint8 * ORC_RESTRICT s1, int p1, int n)
2875 {
2876   OrcExecutor _ex, *ex = &_ex;
2877   static volatile int p_inited = 0;
2878   static OrcCode *c = 0;
2879   void (*func) (OrcExecutor *);
2880
2881   if (!p_inited) {
2882     orc_once_mutex_lock ();
2883     if (!p_inited) {
2884       OrcProgram *p;
2885
2886       p = orc_program_new ();
2887       orc_program_set_name (p, "audio_convert_orc_unpack_u16_double");
2888       orc_program_set_backup_function (p,
2889           _backup_audio_convert_orc_unpack_u16_double);
2890       orc_program_add_destination (p, 8, "d1");
2891       orc_program_add_source (p, 2, "s1");
2892       orc_program_add_constant (p, 4, 0x80000000, "c1");
2893       orc_program_add_parameter (p, 4, "p1");
2894       orc_program_add_temporary (p, 4, "t1");
2895
2896       orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2897           ORC_VAR_D1);
2898       orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
2899           ORC_VAR_D1);
2900       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2901           ORC_VAR_D1);
2902       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2903           ORC_VAR_D1);
2904
2905       orc_program_compile (p);
2906       c = orc_program_take_code (p);
2907       orc_program_free (p);
2908     }
2909     p_inited = TRUE;
2910     orc_once_mutex_unlock ();
2911   }
2912   ex->arrays[ORC_VAR_A2] = c;
2913   ex->program = 0;
2914
2915   ex->n = n;
2916   ex->arrays[ORC_VAR_D1] = d1;
2917   ex->arrays[ORC_VAR_S1] = (void *) s1;
2918   ex->params[ORC_VAR_P1] = p1;
2919
2920   func = c->exec;
2921   func (ex);
2922 }
2923 #endif
2924
2925
2926 /* audio_convert_orc_unpack_s16_double */
2927 #ifdef DISABLE_ORC
2928 void
2929 audio_convert_orc_unpack_s16_double (gdouble * ORC_RESTRICT d1,
2930     const guint8 * ORC_RESTRICT s1, int p1, int n)
2931 {
2932   int i;
2933   orc_union64 *ORC_RESTRICT ptr0;
2934   const orc_union16 *ORC_RESTRICT ptr4;
2935   orc_union16 var33;
2936   orc_union64 var34;
2937   orc_union32 var35;
2938   orc_union32 var36;
2939
2940   ptr0 = (orc_union64 *) d1;
2941   ptr4 = (orc_union16 *) s1;
2942
2943
2944   for (i = 0; i < n; i++) {
2945     /* 0: loadw */
2946     var33 = ptr4[i];
2947     /* 1: convuwl */
2948     var35.i = (orc_uint16) var33.i;
2949     /* 2: shll */
2950     var36.i = var35.i << p1;
2951     /* 3: convld */
2952     var34.f = var36.i;
2953     /* 4: storeq */
2954     ptr0[i] = var34;
2955   }
2956
2957 }
2958
2959 #else
2960 static void
2961 _backup_audio_convert_orc_unpack_s16_double (OrcExecutor * ORC_RESTRICT ex)
2962 {
2963   int i;
2964   int n = ex->n;
2965   orc_union64 *ORC_RESTRICT ptr0;
2966   const orc_union16 *ORC_RESTRICT ptr4;
2967   orc_union16 var33;
2968   orc_union64 var34;
2969   orc_union32 var35;
2970   orc_union32 var36;
2971
2972   ptr0 = (orc_union64 *) ex->arrays[0];
2973   ptr4 = (orc_union16 *) ex->arrays[4];
2974
2975
2976   for (i = 0; i < n; i++) {
2977     /* 0: loadw */
2978     var33 = ptr4[i];
2979     /* 1: convuwl */
2980     var35.i = (orc_uint16) var33.i;
2981     /* 2: shll */
2982     var36.i = var35.i << ex->params[24];
2983     /* 3: convld */
2984     var34.f = var36.i;
2985     /* 4: storeq */
2986     ptr0[i] = var34;
2987   }
2988
2989 }
2990
2991 void
2992 audio_convert_orc_unpack_s16_double (gdouble * ORC_RESTRICT d1,
2993     const guint8 * ORC_RESTRICT s1, int p1, int n)
2994 {
2995   OrcExecutor _ex, *ex = &_ex;
2996   static volatile int p_inited = 0;
2997   static OrcCode *c = 0;
2998   void (*func) (OrcExecutor *);
2999
3000   if (!p_inited) {
3001     orc_once_mutex_lock ();
3002     if (!p_inited) {
3003       OrcProgram *p;
3004
3005       p = orc_program_new ();
3006       orc_program_set_name (p, "audio_convert_orc_unpack_s16_double");
3007       orc_program_set_backup_function (p,
3008           _backup_audio_convert_orc_unpack_s16_double);
3009       orc_program_add_destination (p, 8, "d1");
3010       orc_program_add_source (p, 2, "s1");
3011       orc_program_add_parameter (p, 4, "p1");
3012       orc_program_add_temporary (p, 4, "t1");
3013
3014       orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
3015           ORC_VAR_D1);
3016       orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
3017           ORC_VAR_D1);
3018       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
3019           ORC_VAR_D1);
3020
3021       orc_program_compile (p);
3022       c = orc_program_take_code (p);
3023       orc_program_free (p);
3024     }
3025     p_inited = TRUE;
3026     orc_once_mutex_unlock ();
3027   }
3028   ex->arrays[ORC_VAR_A2] = c;
3029   ex->program = 0;
3030
3031   ex->n = n;
3032   ex->arrays[ORC_VAR_D1] = d1;
3033   ex->arrays[ORC_VAR_S1] = (void *) s1;
3034   ex->params[ORC_VAR_P1] = p1;
3035
3036   func = c->exec;
3037   func (ex);
3038 }
3039 #endif
3040
3041
3042 /* audio_convert_orc_unpack_u16_double_swap */
3043 #ifdef DISABLE_ORC
3044 void
3045 audio_convert_orc_unpack_u16_double_swap (gdouble * ORC_RESTRICT d1,
3046     const guint8 * ORC_RESTRICT s1, int p1, int n)
3047 {
3048   int i;
3049   orc_union64 *ORC_RESTRICT ptr0;
3050   const orc_union16 *ORC_RESTRICT ptr4;
3051   orc_union16 var34;
3052   orc_union32 var35;
3053   orc_union64 var36;
3054   orc_union16 var37;
3055   orc_union32 var38;
3056   orc_union32 var39;
3057   orc_union32 var40;
3058
3059   ptr0 = (orc_union64 *) d1;
3060   ptr4 = (orc_union16 *) s1;
3061
3062   /* 4: loadpl */
3063   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
3064
3065   for (i = 0; i < n; i++) {
3066     /* 0: loadw */
3067     var34 = ptr4[i];
3068     /* 1: swapw */
3069     var37.i = ORC_SWAP_W (var34.i);
3070     /* 2: convuwl */
3071     var38.i = (orc_uint16) var37.i;
3072     /* 3: shll */
3073     var39.i = var38.i << p1;
3074     /* 5: xorl */
3075     var40.i = var39.i ^ var35.i;
3076     /* 6: convld */
3077     var36.f = var40.i;
3078     /* 7: storeq */
3079     ptr0[i] = var36;
3080   }
3081
3082 }
3083
3084 #else
3085 static void
3086 _backup_audio_convert_orc_unpack_u16_double_swap (OrcExecutor * ORC_RESTRICT ex)
3087 {
3088   int i;
3089   int n = ex->n;
3090   orc_union64 *ORC_RESTRICT ptr0;
3091   const orc_union16 *ORC_RESTRICT ptr4;
3092   orc_union16 var34;
3093   orc_union32 var35;
3094   orc_union64 var36;
3095   orc_union16 var37;
3096   orc_union32 var38;
3097   orc_union32 var39;
3098   orc_union32 var40;
3099
3100   ptr0 = (orc_union64 *) ex->arrays[0];
3101   ptr4 = (orc_union16 *) ex->arrays[4];
3102
3103   /* 4: loadpl */
3104   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
3105
3106   for (i = 0; i < n; i++) {
3107     /* 0: loadw */
3108     var34 = ptr4[i];
3109     /* 1: swapw */
3110     var37.i = ORC_SWAP_W (var34.i);
3111     /* 2: convuwl */
3112     var38.i = (orc_uint16) var37.i;
3113     /* 3: shll */
3114     var39.i = var38.i << ex->params[24];
3115     /* 5: xorl */
3116     var40.i = var39.i ^ var35.i;
3117     /* 6: convld */
3118     var36.f = var40.i;
3119     /* 7: storeq */
3120     ptr0[i] = var36;
3121   }
3122
3123 }
3124
3125 void
3126 audio_convert_orc_unpack_u16_double_swap (gdouble * ORC_RESTRICT d1,
3127     const guint8 * ORC_RESTRICT s1, int p1, int n)
3128 {
3129   OrcExecutor _ex, *ex = &_ex;
3130   static volatile int p_inited = 0;
3131   static OrcCode *c = 0;
3132   void (*func) (OrcExecutor *);
3133
3134   if (!p_inited) {
3135     orc_once_mutex_lock ();
3136     if (!p_inited) {
3137       OrcProgram *p;
3138
3139       p = orc_program_new ();
3140       orc_program_set_name (p, "audio_convert_orc_unpack_u16_double_swap");
3141       orc_program_set_backup_function (p,
3142           _backup_audio_convert_orc_unpack_u16_double_swap);
3143       orc_program_add_destination (p, 8, "d1");
3144       orc_program_add_source (p, 2, "s1");
3145       orc_program_add_constant (p, 4, 0x80000000, "c1");
3146       orc_program_add_parameter (p, 4, "p1");
3147       orc_program_add_temporary (p, 2, "t1");
3148       orc_program_add_temporary (p, 4, "t2");
3149
3150       orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
3151           ORC_VAR_D1);
3152       orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
3153           ORC_VAR_D1);
3154       orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
3155           ORC_VAR_D1);
3156       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
3157           ORC_VAR_D1);
3158       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
3159           ORC_VAR_D1);
3160
3161       orc_program_compile (p);
3162       c = orc_program_take_code (p);
3163       orc_program_free (p);
3164     }
3165     p_inited = TRUE;
3166     orc_once_mutex_unlock ();
3167   }
3168   ex->arrays[ORC_VAR_A2] = c;
3169   ex->program = 0;
3170
3171   ex->n = n;
3172   ex->arrays[ORC_VAR_D1] = d1;
3173   ex->arrays[ORC_VAR_S1] = (void *) s1;
3174   ex->params[ORC_VAR_P1] = p1;
3175
3176   func = c->exec;
3177   func (ex);
3178 }
3179 #endif
3180
3181
3182 /* audio_convert_orc_unpack_s16_double_swap */
3183 #ifdef DISABLE_ORC
3184 void
3185 audio_convert_orc_unpack_s16_double_swap (gdouble * ORC_RESTRICT d1,
3186     const guint8 * ORC_RESTRICT s1, int p1, int n)
3187 {
3188   int i;
3189   orc_union64 *ORC_RESTRICT ptr0;
3190   const orc_union16 *ORC_RESTRICT ptr4;
3191   orc_union16 var34;
3192   orc_union64 var35;
3193   orc_union16 var36;
3194   orc_union32 var37;
3195   orc_union32 var38;
3196
3197   ptr0 = (orc_union64 *) d1;
3198   ptr4 = (orc_union16 *) s1;
3199
3200
3201   for (i = 0; i < n; i++) {
3202     /* 0: loadw */
3203     var34 = ptr4[i];
3204     /* 1: swapw */
3205     var36.i = ORC_SWAP_W (var34.i);
3206     /* 2: convuwl */
3207     var37.i = (orc_uint16) var36.i;
3208     /* 3: shll */
3209     var38.i = var37.i << p1;
3210     /* 4: convld */
3211     var35.f = var38.i;
3212     /* 5: storeq */
3213     ptr0[i] = var35;
3214   }
3215
3216 }
3217
3218 #else
3219 static void
3220 _backup_audio_convert_orc_unpack_s16_double_swap (OrcExecutor * ORC_RESTRICT ex)
3221 {
3222   int i;
3223   int n = ex->n;
3224   orc_union64 *ORC_RESTRICT ptr0;
3225   const orc_union16 *ORC_RESTRICT ptr4;
3226   orc_union16 var34;
3227   orc_union64 var35;
3228   orc_union16 var36;
3229   orc_union32 var37;
3230   orc_union32 var38;
3231
3232   ptr0 = (orc_union64 *) ex->arrays[0];
3233   ptr4 = (orc_union16 *) ex->arrays[4];
3234
3235
3236   for (i = 0; i < n; i++) {
3237     /* 0: loadw */
3238     var34 = ptr4[i];
3239     /* 1: swapw */
3240     var36.i = ORC_SWAP_W (var34.i);
3241     /* 2: convuwl */
3242     var37.i = (orc_uint16) var36.i;
3243     /* 3: shll */
3244     var38.i = var37.i << ex->params[24];
3245     /* 4: convld */
3246     var35.f = var38.i;
3247     /* 5: storeq */
3248     ptr0[i] = var35;
3249   }
3250
3251 }
3252
3253 void
3254 audio_convert_orc_unpack_s16_double_swap (gdouble * ORC_RESTRICT d1,
3255     const guint8 * ORC_RESTRICT s1, int p1, int n)
3256 {
3257   OrcExecutor _ex, *ex = &_ex;
3258   static volatile int p_inited = 0;
3259   static OrcCode *c = 0;
3260   void (*func) (OrcExecutor *);
3261
3262   if (!p_inited) {
3263     orc_once_mutex_lock ();
3264     if (!p_inited) {
3265       OrcProgram *p;
3266
3267       p = orc_program_new ();
3268       orc_program_set_name (p, "audio_convert_orc_unpack_s16_double_swap");
3269       orc_program_set_backup_function (p,
3270           _backup_audio_convert_orc_unpack_s16_double_swap);
3271       orc_program_add_destination (p, 8, "d1");
3272       orc_program_add_source (p, 2, "s1");
3273       orc_program_add_parameter (p, 4, "p1");
3274       orc_program_add_temporary (p, 2, "t1");
3275       orc_program_add_temporary (p, 4, "t2");
3276
3277       orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
3278           ORC_VAR_D1);
3279       orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
3280           ORC_VAR_D1);
3281       orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
3282           ORC_VAR_D1);
3283       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
3284           ORC_VAR_D1);
3285
3286       orc_program_compile (p);
3287       c = orc_program_take_code (p);
3288       orc_program_free (p);
3289     }
3290     p_inited = TRUE;
3291     orc_once_mutex_unlock ();
3292   }
3293   ex->arrays[ORC_VAR_A2] = c;
3294   ex->program = 0;
3295
3296   ex->n = n;
3297   ex->arrays[ORC_VAR_D1] = d1;
3298   ex->arrays[ORC_VAR_S1] = (void *) s1;
3299   ex->params[ORC_VAR_P1] = p1;
3300
3301   func = c->exec;
3302   func (ex);
3303 }
3304 #endif
3305
3306
3307 /* audio_convert_orc_unpack_u32_double */
3308 #ifdef DISABLE_ORC
3309 void
3310 audio_convert_orc_unpack_u32_double (gdouble * ORC_RESTRICT d1,
3311     const guint8 * ORC_RESTRICT s1, int p1, int n)
3312 {
3313   int i;
3314   orc_union64 *ORC_RESTRICT ptr0;
3315   const orc_union32 *ORC_RESTRICT ptr4;
3316   orc_union32 var33;
3317   orc_union32 var34;
3318   orc_union64 var35;
3319   orc_union32 var36;
3320   orc_union32 var37;
3321
3322   ptr0 = (orc_union64 *) d1;
3323   ptr4 = (orc_union32 *) s1;
3324
3325   /* 2: loadpl */
3326   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
3327
3328   for (i = 0; i < n; i++) {
3329     /* 0: loadl */
3330     var33 = ptr4[i];
3331     /* 1: shll */
3332     var36.i = var33.i << p1;
3333     /* 3: xorl */
3334     var37.i = var36.i ^ var34.i;
3335     /* 4: convld */
3336     var35.f = var37.i;
3337     /* 5: storeq */
3338     ptr0[i] = var35;
3339   }
3340
3341 }
3342
3343 #else
3344 static void
3345 _backup_audio_convert_orc_unpack_u32_double (OrcExecutor * ORC_RESTRICT ex)
3346 {
3347   int i;
3348   int n = ex->n;
3349   orc_union64 *ORC_RESTRICT ptr0;
3350   const orc_union32 *ORC_RESTRICT ptr4;
3351   orc_union32 var33;
3352   orc_union32 var34;
3353   orc_union64 var35;
3354   orc_union32 var36;
3355   orc_union32 var37;
3356
3357   ptr0 = (orc_union64 *) ex->arrays[0];
3358   ptr4 = (orc_union32 *) ex->arrays[4];
3359
3360   /* 2: loadpl */
3361   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
3362
3363   for (i = 0; i < n; i++) {
3364     /* 0: loadl */
3365     var33 = ptr4[i];
3366     /* 1: shll */
3367     var36.i = var33.i << ex->params[24];
3368     /* 3: xorl */
3369     var37.i = var36.i ^ var34.i;
3370     /* 4: convld */
3371     var35.f = var37.i;
3372     /* 5: storeq */
3373     ptr0[i] = var35;
3374   }
3375
3376 }
3377
3378 void
3379 audio_convert_orc_unpack_u32_double (gdouble * ORC_RESTRICT d1,
3380     const guint8 * ORC_RESTRICT s1, int p1, int n)
3381 {
3382   OrcExecutor _ex, *ex = &_ex;
3383   static volatile int p_inited = 0;
3384   static OrcCode *c = 0;
3385   void (*func) (OrcExecutor *);
3386
3387   if (!p_inited) {
3388     orc_once_mutex_lock ();
3389     if (!p_inited) {
3390       OrcProgram *p;
3391
3392       p = orc_program_new ();
3393       orc_program_set_name (p, "audio_convert_orc_unpack_u32_double");
3394       orc_program_set_backup_function (p,
3395           _backup_audio_convert_orc_unpack_u32_double);
3396       orc_program_add_destination (p, 8, "d1");
3397       orc_program_add_source (p, 4, "s1");
3398       orc_program_add_constant (p, 4, 0x80000000, "c1");
3399       orc_program_add_parameter (p, 4, "p1");
3400       orc_program_add_temporary (p, 4, "t1");
3401
3402       orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
3403           ORC_VAR_D1);
3404       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
3405           ORC_VAR_D1);
3406       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
3407           ORC_VAR_D1);
3408
3409       orc_program_compile (p);
3410       c = orc_program_take_code (p);
3411       orc_program_free (p);
3412     }
3413     p_inited = TRUE;
3414     orc_once_mutex_unlock ();
3415   }
3416   ex->arrays[ORC_VAR_A2] = c;
3417   ex->program = 0;
3418
3419   ex->n = n;
3420   ex->arrays[ORC_VAR_D1] = d1;
3421   ex->arrays[ORC_VAR_S1] = (void *) s1;
3422   ex->params[ORC_VAR_P1] = p1;
3423
3424   func = c->exec;
3425   func (ex);
3426 }
3427 #endif
3428
3429
3430 /* audio_convert_orc_unpack_s32_double */
3431 #ifdef DISABLE_ORC
3432 void
3433 audio_convert_orc_unpack_s32_double (gdouble * ORC_RESTRICT d1,
3434     const guint8 * ORC_RESTRICT s1, int p1, int n)
3435 {
3436   int i;
3437   orc_union64 *ORC_RESTRICT ptr0;
3438   const orc_union32 *ORC_RESTRICT ptr4;
3439   orc_union32 var33;
3440   orc_union64 var34;
3441   orc_union32 var35;
3442
3443   ptr0 = (orc_union64 *) d1;
3444   ptr4 = (orc_union32 *) s1;
3445
3446
3447   for (i = 0; i < n; i++) {
3448     /* 0: loadl */
3449     var33 = ptr4[i];
3450     /* 1: shll */
3451     var35.i = var33.i << p1;
3452     /* 2: convld */
3453     var34.f = var35.i;
3454     /* 3: storeq */
3455     ptr0[i] = var34;
3456   }
3457
3458 }
3459
3460 #else
3461 static void
3462 _backup_audio_convert_orc_unpack_s32_double (OrcExecutor * ORC_RESTRICT ex)
3463 {
3464   int i;
3465   int n = ex->n;
3466   orc_union64 *ORC_RESTRICT ptr0;
3467   const orc_union32 *ORC_RESTRICT ptr4;
3468   orc_union32 var33;
3469   orc_union64 var34;
3470   orc_union32 var35;
3471
3472   ptr0 = (orc_union64 *) ex->arrays[0];
3473   ptr4 = (orc_union32 *) ex->arrays[4];
3474
3475
3476   for (i = 0; i < n; i++) {
3477     /* 0: loadl */
3478     var33 = ptr4[i];
3479     /* 1: shll */
3480     var35.i = var33.i << ex->params[24];
3481     /* 2: convld */
3482     var34.f = var35.i;
3483     /* 3: storeq */
3484     ptr0[i] = var34;
3485   }
3486
3487 }
3488
3489 void
3490 audio_convert_orc_unpack_s32_double (gdouble * ORC_RESTRICT d1,
3491     const guint8 * ORC_RESTRICT s1, int p1, int n)
3492 {
3493   OrcExecutor _ex, *ex = &_ex;
3494   static volatile int p_inited = 0;
3495   static OrcCode *c = 0;
3496   void (*func) (OrcExecutor *);
3497
3498   if (!p_inited) {
3499     orc_once_mutex_lock ();
3500     if (!p_inited) {
3501       OrcProgram *p;
3502
3503       p = orc_program_new ();
3504       orc_program_set_name (p, "audio_convert_orc_unpack_s32_double");
3505       orc_program_set_backup_function (p,
3506           _backup_audio_convert_orc_unpack_s32_double);
3507       orc_program_add_destination (p, 8, "d1");
3508       orc_program_add_source (p, 4, "s1");
3509       orc_program_add_parameter (p, 4, "p1");
3510       orc_program_add_temporary (p, 4, "t1");
3511
3512       orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
3513           ORC_VAR_D1);
3514       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
3515           ORC_VAR_D1);
3516
3517       orc_program_compile (p);
3518       c = orc_program_take_code (p);
3519       orc_program_free (p);
3520     }
3521     p_inited = TRUE;
3522     orc_once_mutex_unlock ();
3523   }
3524   ex->arrays[ORC_VAR_A2] = c;
3525   ex->program = 0;
3526
3527   ex->n = n;
3528   ex->arrays[ORC_VAR_D1] = d1;
3529   ex->arrays[ORC_VAR_S1] = (void *) s1;
3530   ex->params[ORC_VAR_P1] = p1;
3531
3532   func = c->exec;
3533   func (ex);
3534 }
3535 #endif
3536
3537
3538 /* audio_convert_orc_unpack_u32_double_swap */
3539 #ifdef DISABLE_ORC
3540 void
3541 audio_convert_orc_unpack_u32_double_swap (gdouble * ORC_RESTRICT d1,
3542     const guint8 * ORC_RESTRICT s1, int p1, int n)
3543 {
3544   int i;
3545   orc_union64 *ORC_RESTRICT ptr0;
3546   const orc_union32 *ORC_RESTRICT ptr4;
3547   orc_union32 var33;
3548   orc_union32 var34;
3549   orc_union64 var35;
3550   orc_union32 var36;
3551   orc_union32 var37;
3552   orc_union32 var38;
3553
3554   ptr0 = (orc_union64 *) d1;
3555   ptr4 = (orc_union32 *) s1;
3556
3557   /* 3: loadpl */
3558   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
3559
3560   for (i = 0; i < n; i++) {
3561     /* 0: loadl */
3562     var33 = ptr4[i];
3563     /* 1: swapl */
3564     var36.i = ORC_SWAP_L (var33.i);
3565     /* 2: shll */
3566     var37.i = var36.i << p1;
3567     /* 4: xorl */
3568     var38.i = var37.i ^ var34.i;
3569     /* 5: convld */
3570     var35.f = var38.i;
3571     /* 6: storeq */
3572     ptr0[i] = var35;
3573   }
3574
3575 }
3576
3577 #else
3578 static void
3579 _backup_audio_convert_orc_unpack_u32_double_swap (OrcExecutor * ORC_RESTRICT ex)
3580 {
3581   int i;
3582   int n = ex->n;
3583   orc_union64 *ORC_RESTRICT ptr0;
3584   const orc_union32 *ORC_RESTRICT ptr4;
3585   orc_union32 var33;
3586   orc_union32 var34;
3587   orc_union64 var35;
3588   orc_union32 var36;
3589   orc_union32 var37;
3590   orc_union32 var38;
3591
3592   ptr0 = (orc_union64 *) ex->arrays[0];
3593   ptr4 = (orc_union32 *) ex->arrays[4];
3594
3595   /* 3: loadpl */
3596   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
3597
3598   for (i = 0; i < n; i++) {
3599     /* 0: loadl */
3600     var33 = ptr4[i];
3601     /* 1: swapl */
3602     var36.i = ORC_SWAP_L (var33.i);
3603     /* 2: shll */
3604     var37.i = var36.i << ex->params[24];
3605     /* 4: xorl */
3606     var38.i = var37.i ^ var34.i;
3607     /* 5: convld */
3608     var35.f = var38.i;
3609     /* 6: storeq */
3610     ptr0[i] = var35;
3611   }
3612
3613 }
3614
3615 void
3616 audio_convert_orc_unpack_u32_double_swap (gdouble * ORC_RESTRICT d1,
3617     const guint8 * ORC_RESTRICT s1, int p1, int n)
3618 {
3619   OrcExecutor _ex, *ex = &_ex;
3620   static volatile int p_inited = 0;
3621   static OrcCode *c = 0;
3622   void (*func) (OrcExecutor *);
3623
3624   if (!p_inited) {
3625     orc_once_mutex_lock ();
3626     if (!p_inited) {
3627       OrcProgram *p;
3628
3629       p = orc_program_new ();
3630       orc_program_set_name (p, "audio_convert_orc_unpack_u32_double_swap");
3631       orc_program_set_backup_function (p,
3632           _backup_audio_convert_orc_unpack_u32_double_swap);
3633       orc_program_add_destination (p, 8, "d1");
3634       orc_program_add_source (p, 4, "s1");
3635       orc_program_add_constant (p, 4, 0x80000000, "c1");
3636       orc_program_add_parameter (p, 4, "p1");
3637       orc_program_add_temporary (p, 4, "t1");
3638
3639       orc_program_append_2 (p, "swapl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
3640           ORC_VAR_D1);
3641       orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
3642           ORC_VAR_D1);
3643       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
3644           ORC_VAR_D1);
3645       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
3646           ORC_VAR_D1);
3647
3648       orc_program_compile (p);
3649       c = orc_program_take_code (p);
3650       orc_program_free (p);
3651     }
3652     p_inited = TRUE;
3653     orc_once_mutex_unlock ();
3654   }
3655   ex->arrays[ORC_VAR_A2] = c;
3656   ex->program = 0;
3657
3658   ex->n = n;
3659   ex->arrays[ORC_VAR_D1] = d1;
3660   ex->arrays[ORC_VAR_S1] = (void *) s1;
3661   ex->params[ORC_VAR_P1] = p1;
3662
3663   func = c->exec;
3664   func (ex);
3665 }
3666 #endif
3667
3668
3669 /* audio_convert_orc_unpack_s32_double_swap */
3670 #ifdef DISABLE_ORC
3671 void
3672 audio_convert_orc_unpack_s32_double_swap (gdouble * ORC_RESTRICT d1,
3673     const guint8 * ORC_RESTRICT s1, int p1, int n)
3674 {
3675   int i;
3676   orc_union64 *ORC_RESTRICT ptr0;
3677   const orc_union32 *ORC_RESTRICT ptr4;
3678   orc_union32 var33;
3679   orc_union64 var34;
3680   orc_union32 var35;
3681   orc_union32 var36;
3682
3683   ptr0 = (orc_union64 *) d1;
3684   ptr4 = (orc_union32 *) s1;
3685
3686
3687   for (i = 0; i < n; i++) {
3688     /* 0: loadl */
3689     var33 = ptr4[i];
3690     /* 1: swapl */
3691     var35.i = ORC_SWAP_L (var33.i);
3692     /* 2: shll */
3693     var36.i = var35.i << p1;
3694     /* 3: convld */
3695     var34.f = var36.i;
3696     /* 4: storeq */
3697     ptr0[i] = var34;
3698   }
3699
3700 }
3701
3702 #else
3703 static void
3704 _backup_audio_convert_orc_unpack_s32_double_swap (OrcExecutor * ORC_RESTRICT ex)
3705 {
3706   int i;
3707   int n = ex->n;
3708   orc_union64 *ORC_RESTRICT ptr0;
3709   const orc_union32 *ORC_RESTRICT ptr4;
3710   orc_union32 var33;
3711   orc_union64 var34;
3712   orc_union32 var35;
3713   orc_union32 var36;
3714
3715   ptr0 = (orc_union64 *) ex->arrays[0];
3716   ptr4 = (orc_union32 *) ex->arrays[4];
3717
3718
3719   for (i = 0; i < n; i++) {
3720     /* 0: loadl */
3721     var33 = ptr4[i];
3722     /* 1: swapl */
3723     var35.i = ORC_SWAP_L (var33.i);
3724     /* 2: shll */
3725     var36.i = var35.i << ex->params[24];
3726     /* 3: convld */
3727     var34.f = var36.i;
3728     /* 4: storeq */
3729     ptr0[i] = var34;
3730   }
3731
3732 }
3733
3734 void
3735 audio_convert_orc_unpack_s32_double_swap (gdouble * ORC_RESTRICT d1,
3736     const guint8 * ORC_RESTRICT s1, int p1, int n)
3737 {
3738   OrcExecutor _ex, *ex = &_ex;
3739   static volatile int p_inited = 0;
3740   static OrcCode *c = 0;
3741   void (*func) (OrcExecutor *);
3742
3743   if (!p_inited) {
3744     orc_once_mutex_lock ();
3745     if (!p_inited) {
3746       OrcProgram *p;
3747
3748       p = orc_program_new ();
3749       orc_program_set_name (p, "audio_convert_orc_unpack_s32_double_swap");
3750       orc_program_set_backup_function (p,
3751           _backup_audio_convert_orc_unpack_s32_double_swap);
3752       orc_program_add_destination (p, 8, "d1");
3753       orc_program_add_source (p, 4, "s1");
3754       orc_program_add_parameter (p, 4, "p1");
3755       orc_program_add_temporary (p, 4, "t1");
3756
3757       orc_program_append_2 (p, "swapl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
3758           ORC_VAR_D1);
3759       orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
3760           ORC_VAR_D1);
3761       orc_program_append_2 (p, "convld", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
3762           ORC_VAR_D1);
3763
3764       orc_program_compile (p);
3765       c = orc_program_take_code (p);
3766       orc_program_free (p);
3767     }
3768     p_inited = TRUE;
3769     orc_once_mutex_unlock ();
3770   }
3771   ex->arrays[ORC_VAR_A2] = c;
3772   ex->program = 0;
3773
3774   ex->n = n;
3775   ex->arrays[ORC_VAR_D1] = d1;
3776   ex->arrays[ORC_VAR_S1] = (void *) s1;
3777   ex->params[ORC_VAR_P1] = p1;
3778
3779   func = c->exec;
3780   func (ex);
3781 }
3782 #endif
3783
3784
3785 /* audio_convert_orc_pack_u8 */
3786 #ifdef DISABLE_ORC
3787 void
3788 audio_convert_orc_pack_u8 (guint8 * ORC_RESTRICT d1,
3789     const gint32 * ORC_RESTRICT s1, int p1, int n)
3790 {
3791   int i;
3792   orc_int8 *ORC_RESTRICT ptr0;
3793   const orc_union32 *ORC_RESTRICT ptr4;
3794   orc_union32 var34;
3795   orc_union32 var35;
3796   orc_int8 var36;
3797   orc_union32 var37;
3798   orc_union32 var38;
3799   orc_union16 var39;
3800
3801   ptr0 = (orc_int8 *) d1;
3802   ptr4 = (orc_union32 *) s1;
3803
3804   /* 1: loadpl */
3805   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
3806
3807   for (i = 0; i < n; i++) {
3808     /* 0: loadl */
3809     var34 = ptr4[i];
3810     /* 2: xorl */
3811     var37.i = var34.i ^ var35.i;
3812     /* 3: shrul */
3813     var38.i = ((orc_uint32) var37.i) >> p1;
3814     /* 4: convlw */
3815     var39.i = var38.i;
3816     /* 5: convwb */
3817     var36 = var39.i;
3818     /* 6: storeb */
3819     ptr0[i] = var36;
3820   }
3821
3822 }
3823
3824 #else
3825 static void
3826 _backup_audio_convert_orc_pack_u8 (OrcExecutor * ORC_RESTRICT ex)
3827 {
3828   int i;
3829   int n = ex->n;
3830   orc_int8 *ORC_RESTRICT ptr0;
3831   const orc_union32 *ORC_RESTRICT ptr4;
3832   orc_union32 var34;
3833   orc_union32 var35;
3834   orc_int8 var36;
3835   orc_union32 var37;
3836   orc_union32 var38;
3837   orc_union16 var39;
3838
3839   ptr0 = (orc_int8 *) ex->arrays[0];
3840   ptr4 = (orc_union32 *) ex->arrays[4];
3841
3842   /* 1: loadpl */
3843   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
3844
3845   for (i = 0; i < n; i++) {
3846     /* 0: loadl */
3847     var34 = ptr4[i];
3848     /* 2: xorl */
3849     var37.i = var34.i ^ var35.i;
3850     /* 3: shrul */
3851     var38.i = ((orc_uint32) var37.i) >> ex->params[24];
3852     /* 4: convlw */
3853     var39.i = var38.i;
3854     /* 5: convwb */
3855     var36 = var39.i;
3856     /* 6: storeb */
3857     ptr0[i] = var36;
3858   }
3859
3860 }
3861
3862 void
3863 audio_convert_orc_pack_u8 (guint8 * ORC_RESTRICT d1,
3864     const gint32 * ORC_RESTRICT s1, int p1, int n)
3865 {
3866   OrcExecutor _ex, *ex = &_ex;
3867   static volatile int p_inited = 0;
3868   static OrcCode *c = 0;
3869   void (*func) (OrcExecutor *);
3870
3871   if (!p_inited) {
3872     orc_once_mutex_lock ();
3873     if (!p_inited) {
3874       OrcProgram *p;
3875
3876       p = orc_program_new ();
3877       orc_program_set_name (p, "audio_convert_orc_pack_u8");
3878       orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_u8);
3879       orc_program_add_destination (p, 1, "d1");
3880       orc_program_add_source (p, 4, "s1");
3881       orc_program_add_constant (p, 4, 0x80000000, "c1");
3882       orc_program_add_parameter (p, 4, "p1");
3883       orc_program_add_temporary (p, 4, "t1");
3884       orc_program_add_temporary (p, 2, "t2");
3885
3886       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
3887           ORC_VAR_D1);
3888       orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
3889           ORC_VAR_D1);
3890       orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
3891           ORC_VAR_D1);
3892       orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
3893           ORC_VAR_D1);
3894
3895       orc_program_compile (p);
3896       c = orc_program_take_code (p);
3897       orc_program_free (p);
3898     }
3899     p_inited = TRUE;
3900     orc_once_mutex_unlock ();
3901   }
3902   ex->arrays[ORC_VAR_A2] = c;
3903   ex->program = 0;
3904
3905   ex->n = n;
3906   ex->arrays[ORC_VAR_D1] = d1;
3907   ex->arrays[ORC_VAR_S1] = (void *) s1;
3908   ex->params[ORC_VAR_P1] = p1;
3909
3910   func = c->exec;
3911   func (ex);
3912 }
3913 #endif
3914
3915
3916 /* audio_convert_orc_pack_s8 */
3917 #ifdef DISABLE_ORC
3918 void
3919 audio_convert_orc_pack_s8 (guint8 * ORC_RESTRICT d1,
3920     const gint32 * ORC_RESTRICT s1, int p1, int n)
3921 {
3922   int i;
3923   orc_int8 *ORC_RESTRICT ptr0;
3924   const orc_union32 *ORC_RESTRICT ptr4;
3925   orc_union32 var34;
3926   orc_int8 var35;
3927   orc_union32 var36;
3928   orc_union16 var37;
3929
3930   ptr0 = (orc_int8 *) d1;
3931   ptr4 = (orc_union32 *) s1;
3932
3933
3934   for (i = 0; i < n; i++) {
3935     /* 0: loadl */
3936     var34 = ptr4[i];
3937     /* 1: shrsl */
3938     var36.i = var34.i >> p1;
3939     /* 2: convlw */
3940     var37.i = var36.i;
3941     /* 3: convwb */
3942     var35 = var37.i;
3943     /* 4: storeb */
3944     ptr0[i] = var35;
3945   }
3946
3947 }
3948
3949 #else
3950 static void
3951 _backup_audio_convert_orc_pack_s8 (OrcExecutor * ORC_RESTRICT ex)
3952 {
3953   int i;
3954   int n = ex->n;
3955   orc_int8 *ORC_RESTRICT ptr0;
3956   const orc_union32 *ORC_RESTRICT ptr4;
3957   orc_union32 var34;
3958   orc_int8 var35;
3959   orc_union32 var36;
3960   orc_union16 var37;
3961
3962   ptr0 = (orc_int8 *) ex->arrays[0];
3963   ptr4 = (orc_union32 *) ex->arrays[4];
3964
3965
3966   for (i = 0; i < n; i++) {
3967     /* 0: loadl */
3968     var34 = ptr4[i];
3969     /* 1: shrsl */
3970     var36.i = var34.i >> ex->params[24];
3971     /* 2: convlw */
3972     var37.i = var36.i;
3973     /* 3: convwb */
3974     var35 = var37.i;
3975     /* 4: storeb */
3976     ptr0[i] = var35;
3977   }
3978
3979 }
3980
3981 void
3982 audio_convert_orc_pack_s8 (guint8 * ORC_RESTRICT d1,
3983     const gint32 * ORC_RESTRICT s1, int p1, int n)
3984 {
3985   OrcExecutor _ex, *ex = &_ex;
3986   static volatile int p_inited = 0;
3987   static OrcCode *c = 0;
3988   void (*func) (OrcExecutor *);
3989
3990   if (!p_inited) {
3991     orc_once_mutex_lock ();
3992     if (!p_inited) {
3993       OrcProgram *p;
3994
3995       p = orc_program_new ();
3996       orc_program_set_name (p, "audio_convert_orc_pack_s8");
3997       orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_s8);
3998       orc_program_add_destination (p, 1, "d1");
3999       orc_program_add_source (p, 4, "s1");
4000       orc_program_add_parameter (p, 4, "p1");
4001       orc_program_add_temporary (p, 4, "t1");
4002       orc_program_add_temporary (p, 2, "t2");
4003
4004       orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
4005           ORC_VAR_D1);
4006       orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
4007           ORC_VAR_D1);
4008       orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
4009           ORC_VAR_D1);
4010
4011       orc_program_compile (p);
4012       c = orc_program_take_code (p);
4013       orc_program_free (p);
4014     }
4015     p_inited = TRUE;
4016     orc_once_mutex_unlock ();
4017   }
4018   ex->arrays[ORC_VAR_A2] = c;
4019   ex->program = 0;
4020
4021   ex->n = n;
4022   ex->arrays[ORC_VAR_D1] = d1;
4023   ex->arrays[ORC_VAR_S1] = (void *) s1;
4024   ex->params[ORC_VAR_P1] = p1;
4025
4026   func = c->exec;
4027   func (ex);
4028 }
4029 #endif
4030
4031
4032 /* audio_convert_orc_pack_u16 */
4033 #ifdef DISABLE_ORC
4034 void
4035 audio_convert_orc_pack_u16 (guint8 * ORC_RESTRICT d1,
4036     const gint32 * ORC_RESTRICT s1, int p1, int n)
4037 {
4038   int i;
4039   orc_union16 *ORC_RESTRICT ptr0;
4040   const orc_union32 *ORC_RESTRICT ptr4;
4041   orc_union32 var33;
4042   orc_union32 var34;
4043   orc_union16 var35;
4044   orc_union32 var36;
4045   orc_union32 var37;
4046
4047   ptr0 = (orc_union16 *) d1;
4048   ptr4 = (orc_union32 *) s1;
4049
4050   /* 1: loadpl */
4051   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
4052
4053   for (i = 0; i < n; i++) {
4054     /* 0: loadl */
4055     var33 = ptr4[i];
4056     /* 2: xorl */
4057     var36.i = var33.i ^ var34.i;
4058     /* 3: shrul */
4059     var37.i = ((orc_uint32) var36.i) >> p1;
4060     /* 4: convlw */
4061     var35.i = var37.i;
4062     /* 5: storew */
4063     ptr0[i] = var35;
4064   }
4065
4066 }
4067
4068 #else
4069 static void
4070 _backup_audio_convert_orc_pack_u16 (OrcExecutor * ORC_RESTRICT ex)
4071 {
4072   int i;
4073   int n = ex->n;
4074   orc_union16 *ORC_RESTRICT ptr0;
4075   const orc_union32 *ORC_RESTRICT ptr4;
4076   orc_union32 var33;
4077   orc_union32 var34;
4078   orc_union16 var35;
4079   orc_union32 var36;
4080   orc_union32 var37;
4081
4082   ptr0 = (orc_union16 *) ex->arrays[0];
4083   ptr4 = (orc_union32 *) ex->arrays[4];
4084
4085   /* 1: loadpl */
4086   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
4087
4088   for (i = 0; i < n; i++) {
4089     /* 0: loadl */
4090     var33 = ptr4[i];
4091     /* 2: xorl */
4092     var36.i = var33.i ^ var34.i;
4093     /* 3: shrul */
4094     var37.i = ((orc_uint32) var36.i) >> ex->params[24];
4095     /* 4: convlw */
4096     var35.i = var37.i;
4097     /* 5: storew */
4098     ptr0[i] = var35;
4099   }
4100
4101 }
4102
4103 void
4104 audio_convert_orc_pack_u16 (guint8 * ORC_RESTRICT d1,
4105     const gint32 * ORC_RESTRICT s1, int p1, int n)
4106 {
4107   OrcExecutor _ex, *ex = &_ex;
4108   static volatile int p_inited = 0;
4109   static OrcCode *c = 0;
4110   void (*func) (OrcExecutor *);
4111
4112   if (!p_inited) {
4113     orc_once_mutex_lock ();
4114     if (!p_inited) {
4115       OrcProgram *p;
4116
4117       p = orc_program_new ();
4118       orc_program_set_name (p, "audio_convert_orc_pack_u16");
4119       orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_u16);
4120       orc_program_add_destination (p, 2, "d1");
4121       orc_program_add_source (p, 4, "s1");
4122       orc_program_add_constant (p, 4, 0x80000000, "c1");
4123       orc_program_add_parameter (p, 4, "p1");
4124       orc_program_add_temporary (p, 4, "t1");
4125
4126       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
4127           ORC_VAR_D1);
4128       orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
4129           ORC_VAR_D1);
4130       orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
4131           ORC_VAR_D1);
4132
4133       orc_program_compile (p);
4134       c = orc_program_take_code (p);
4135       orc_program_free (p);
4136     }
4137     p_inited = TRUE;
4138     orc_once_mutex_unlock ();
4139   }
4140   ex->arrays[ORC_VAR_A2] = c;
4141   ex->program = 0;
4142
4143   ex->n = n;
4144   ex->arrays[ORC_VAR_D1] = d1;
4145   ex->arrays[ORC_VAR_S1] = (void *) s1;
4146   ex->params[ORC_VAR_P1] = p1;
4147
4148   func = c->exec;
4149   func (ex);
4150 }
4151 #endif
4152
4153
4154 /* audio_convert_orc_pack_s16 */
4155 #ifdef DISABLE_ORC
4156 void
4157 audio_convert_orc_pack_s16 (guint8 * ORC_RESTRICT d1,
4158     const gint32 * ORC_RESTRICT s1, int p1, int n)
4159 {
4160   int i;
4161   orc_union16 *ORC_RESTRICT ptr0;
4162   const orc_union32 *ORC_RESTRICT ptr4;
4163   orc_union32 var33;
4164   orc_union16 var34;
4165   orc_union32 var35;
4166
4167   ptr0 = (orc_union16 *) d1;
4168   ptr4 = (orc_union32 *) s1;
4169
4170
4171   for (i = 0; i < n; i++) {
4172     /* 0: loadl */
4173     var33 = ptr4[i];
4174     /* 1: shrsl */
4175     var35.i = var33.i >> p1;
4176     /* 2: convlw */
4177     var34.i = var35.i;
4178     /* 3: storew */
4179     ptr0[i] = var34;
4180   }
4181
4182 }
4183
4184 #else
4185 static void
4186 _backup_audio_convert_orc_pack_s16 (OrcExecutor * ORC_RESTRICT ex)
4187 {
4188   int i;
4189   int n = ex->n;
4190   orc_union16 *ORC_RESTRICT ptr0;
4191   const orc_union32 *ORC_RESTRICT ptr4;
4192   orc_union32 var33;
4193   orc_union16 var34;
4194   orc_union32 var35;
4195
4196   ptr0 = (orc_union16 *) ex->arrays[0];
4197   ptr4 = (orc_union32 *) ex->arrays[4];
4198
4199
4200   for (i = 0; i < n; i++) {
4201     /* 0: loadl */
4202     var33 = ptr4[i];
4203     /* 1: shrsl */
4204     var35.i = var33.i >> ex->params[24];
4205     /* 2: convlw */
4206     var34.i = var35.i;
4207     /* 3: storew */
4208     ptr0[i] = var34;
4209   }
4210
4211 }
4212
4213 void
4214 audio_convert_orc_pack_s16 (guint8 * ORC_RESTRICT d1,
4215     const gint32 * ORC_RESTRICT s1, int p1, int n)
4216 {
4217   OrcExecutor _ex, *ex = &_ex;
4218   static volatile int p_inited = 0;
4219   static OrcCode *c = 0;
4220   void (*func) (OrcExecutor *);
4221
4222   if (!p_inited) {
4223     orc_once_mutex_lock ();
4224     if (!p_inited) {
4225       OrcProgram *p;
4226
4227       p = orc_program_new ();
4228       orc_program_set_name (p, "audio_convert_orc_pack_s16");
4229       orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_s16);
4230       orc_program_add_destination (p, 2, "d1");
4231       orc_program_add_source (p, 4, "s1");
4232       orc_program_add_parameter (p, 4, "p1");
4233       orc_program_add_temporary (p, 4, "t1");
4234
4235       orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
4236           ORC_VAR_D1);
4237       orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
4238           ORC_VAR_D1);
4239
4240       orc_program_compile (p);
4241       c = orc_program_take_code (p);
4242       orc_program_free (p);
4243     }
4244     p_inited = TRUE;
4245     orc_once_mutex_unlock ();
4246   }
4247   ex->arrays[ORC_VAR_A2] = c;
4248   ex->program = 0;
4249
4250   ex->n = n;
4251   ex->arrays[ORC_VAR_D1] = d1;
4252   ex->arrays[ORC_VAR_S1] = (void *) s1;
4253   ex->params[ORC_VAR_P1] = p1;
4254
4255   func = c->exec;
4256   func (ex);
4257 }
4258 #endif
4259
4260
4261 /* audio_convert_orc_pack_u16_swap */
4262 #ifdef DISABLE_ORC
4263 void
4264 audio_convert_orc_pack_u16_swap (guint8 * ORC_RESTRICT d1,
4265     const gint32 * ORC_RESTRICT s1, int p1, int n)
4266 {
4267   int i;
4268   orc_union16 *ORC_RESTRICT ptr0;
4269   const orc_union32 *ORC_RESTRICT ptr4;
4270   orc_union32 var34;
4271   orc_union32 var35;
4272   orc_union16 var36;
4273   orc_union32 var37;
4274   orc_union32 var38;
4275   orc_union16 var39;
4276
4277   ptr0 = (orc_union16 *) d1;
4278   ptr4 = (orc_union32 *) s1;
4279
4280   /* 1: loadpl */
4281   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
4282
4283   for (i = 0; i < n; i++) {
4284     /* 0: loadl */
4285     var34 = ptr4[i];
4286     /* 2: xorl */
4287     var37.i = var34.i ^ var35.i;
4288     /* 3: shrul */
4289     var38.i = ((orc_uint32) var37.i) >> p1;
4290     /* 4: convlw */
4291     var39.i = var38.i;
4292     /* 5: swapw */
4293     var36.i = ORC_SWAP_W (var39.i);
4294     /* 6: storew */
4295     ptr0[i] = var36;
4296   }
4297
4298 }
4299
4300 #else
4301 static void
4302 _backup_audio_convert_orc_pack_u16_swap (OrcExecutor * ORC_RESTRICT ex)
4303 {
4304   int i;
4305   int n = ex->n;
4306   orc_union16 *ORC_RESTRICT ptr0;
4307   const orc_union32 *ORC_RESTRICT ptr4;
4308   orc_union32 var34;
4309   orc_union32 var35;
4310   orc_union16 var36;
4311   orc_union32 var37;
4312   orc_union32 var38;
4313   orc_union16 var39;
4314
4315   ptr0 = (orc_union16 *) ex->arrays[0];
4316   ptr4 = (orc_union32 *) ex->arrays[4];
4317
4318   /* 1: loadpl */
4319   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
4320
4321   for (i = 0; i < n; i++) {
4322     /* 0: loadl */
4323     var34 = ptr4[i];
4324     /* 2: xorl */
4325     var37.i = var34.i ^ var35.i;
4326     /* 3: shrul */
4327     var38.i = ((orc_uint32) var37.i) >> ex->params[24];
4328     /* 4: convlw */
4329     var39.i = var38.i;
4330     /* 5: swapw */
4331     var36.i = ORC_SWAP_W (var39.i);
4332     /* 6: storew */
4333     ptr0[i] = var36;
4334   }
4335
4336 }
4337
4338 void
4339 audio_convert_orc_pack_u16_swap (guint8 * ORC_RESTRICT d1,
4340     const gint32 * ORC_RESTRICT s1, int p1, int n)
4341 {
4342   OrcExecutor _ex, *ex = &_ex;
4343   static volatile int p_inited = 0;
4344   static OrcCode *c = 0;
4345   void (*func) (OrcExecutor *);
4346
4347   if (!p_inited) {
4348     orc_once_mutex_lock ();
4349     if (!p_inited) {
4350       OrcProgram *p;
4351
4352       p = orc_program_new ();
4353       orc_program_set_name (p, "audio_convert_orc_pack_u16_swap");
4354       orc_program_set_backup_function (p,
4355           _backup_audio_convert_orc_pack_u16_swap);
4356       orc_program_add_destination (p, 2, "d1");
4357       orc_program_add_source (p, 4, "s1");
4358       orc_program_add_constant (p, 4, 0x80000000, "c1");
4359       orc_program_add_parameter (p, 4, "p1");
4360       orc_program_add_temporary (p, 4, "t1");
4361       orc_program_add_temporary (p, 2, "t2");
4362
4363       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
4364           ORC_VAR_D1);
4365       orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
4366           ORC_VAR_D1);
4367       orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
4368           ORC_VAR_D1);
4369       orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
4370           ORC_VAR_D1);
4371
4372       orc_program_compile (p);
4373       c = orc_program_take_code (p);
4374       orc_program_free (p);
4375     }
4376     p_inited = TRUE;
4377     orc_once_mutex_unlock ();
4378   }
4379   ex->arrays[ORC_VAR_A2] = c;
4380   ex->program = 0;
4381
4382   ex->n = n;
4383   ex->arrays[ORC_VAR_D1] = d1;
4384   ex->arrays[ORC_VAR_S1] = (void *) s1;
4385   ex->params[ORC_VAR_P1] = p1;
4386
4387   func = c->exec;
4388   func (ex);
4389 }
4390 #endif
4391
4392
4393 /* audio_convert_orc_pack_s16_swap */
4394 #ifdef DISABLE_ORC
4395 void
4396 audio_convert_orc_pack_s16_swap (guint8 * ORC_RESTRICT d1,
4397     const gint32 * ORC_RESTRICT s1, int p1, int n)
4398 {
4399   int i;
4400   orc_union16 *ORC_RESTRICT ptr0;
4401   const orc_union32 *ORC_RESTRICT ptr4;
4402   orc_union32 var34;
4403   orc_union16 var35;
4404   orc_union32 var36;
4405   orc_union16 var37;
4406
4407   ptr0 = (orc_union16 *) d1;
4408   ptr4 = (orc_union32 *) s1;
4409
4410
4411   for (i = 0; i < n; i++) {
4412     /* 0: loadl */
4413     var34 = ptr4[i];
4414     /* 1: shrsl */
4415     var36.i = var34.i >> p1;
4416     /* 2: convlw */
4417     var37.i = var36.i;
4418     /* 3: swapw */
4419     var35.i = ORC_SWAP_W (var37.i);
4420     /* 4: storew */
4421     ptr0[i] = var35;
4422   }
4423
4424 }
4425
4426 #else
4427 static void
4428 _backup_audio_convert_orc_pack_s16_swap (OrcExecutor * ORC_RESTRICT ex)
4429 {
4430   int i;
4431   int n = ex->n;
4432   orc_union16 *ORC_RESTRICT ptr0;
4433   const orc_union32 *ORC_RESTRICT ptr4;
4434   orc_union32 var34;
4435   orc_union16 var35;
4436   orc_union32 var36;
4437   orc_union16 var37;
4438
4439   ptr0 = (orc_union16 *) ex->arrays[0];
4440   ptr4 = (orc_union32 *) ex->arrays[4];
4441
4442
4443   for (i = 0; i < n; i++) {
4444     /* 0: loadl */
4445     var34 = ptr4[i];
4446     /* 1: shrsl */
4447     var36.i = var34.i >> ex->params[24];
4448     /* 2: convlw */
4449     var37.i = var36.i;
4450     /* 3: swapw */
4451     var35.i = ORC_SWAP_W (var37.i);
4452     /* 4: storew */
4453     ptr0[i] = var35;
4454   }
4455
4456 }
4457
4458 void
4459 audio_convert_orc_pack_s16_swap (guint8 * ORC_RESTRICT d1,
4460     const gint32 * ORC_RESTRICT s1, int p1, int n)
4461 {
4462   OrcExecutor _ex, *ex = &_ex;
4463   static volatile int p_inited = 0;
4464   static OrcCode *c = 0;
4465   void (*func) (OrcExecutor *);
4466
4467   if (!p_inited) {
4468     orc_once_mutex_lock ();
4469     if (!p_inited) {
4470       OrcProgram *p;
4471
4472       p = orc_program_new ();
4473       orc_program_set_name (p, "audio_convert_orc_pack_s16_swap");
4474       orc_program_set_backup_function (p,
4475           _backup_audio_convert_orc_pack_s16_swap);
4476       orc_program_add_destination (p, 2, "d1");
4477       orc_program_add_source (p, 4, "s1");
4478       orc_program_add_parameter (p, 4, "p1");
4479       orc_program_add_temporary (p, 4, "t1");
4480       orc_program_add_temporary (p, 2, "t2");
4481
4482       orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
4483           ORC_VAR_D1);
4484       orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
4485           ORC_VAR_D1);
4486       orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
4487           ORC_VAR_D1);
4488
4489       orc_program_compile (p);
4490       c = orc_program_take_code (p);
4491       orc_program_free (p);
4492     }
4493     p_inited = TRUE;
4494     orc_once_mutex_unlock ();
4495   }
4496   ex->arrays[ORC_VAR_A2] = c;
4497   ex->program = 0;
4498
4499   ex->n = n;
4500   ex->arrays[ORC_VAR_D1] = d1;
4501   ex->arrays[ORC_VAR_S1] = (void *) s1;
4502   ex->params[ORC_VAR_P1] = p1;
4503
4504   func = c->exec;
4505   func (ex);
4506 }
4507 #endif
4508
4509
4510 /* audio_convert_orc_pack_u32 */
4511 #ifdef DISABLE_ORC
4512 void
4513 audio_convert_orc_pack_u32 (guint8 * ORC_RESTRICT d1,
4514     const gint32 * ORC_RESTRICT s1, int p1, int n)
4515 {
4516   int i;
4517   orc_union32 *ORC_RESTRICT ptr0;
4518   const orc_union32 *ORC_RESTRICT ptr4;
4519   orc_union32 var33;
4520   orc_union32 var34;
4521   orc_union32 var35;
4522   orc_union32 var36;
4523
4524   ptr0 = (orc_union32 *) d1;
4525   ptr4 = (orc_union32 *) s1;
4526
4527   /* 1: loadpl */
4528   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
4529
4530   for (i = 0; i < n; i++) {
4531     /* 0: loadl */
4532     var33 = ptr4[i];
4533     /* 2: xorl */
4534     var36.i = var33.i ^ var34.i;
4535     /* 3: shrul */
4536     var35.i = ((orc_uint32) var36.i) >> p1;
4537     /* 4: storel */
4538     ptr0[i] = var35;
4539   }
4540
4541 }
4542
4543 #else
4544 static void
4545 _backup_audio_convert_orc_pack_u32 (OrcExecutor * ORC_RESTRICT ex)
4546 {
4547   int i;
4548   int n = ex->n;
4549   orc_union32 *ORC_RESTRICT ptr0;
4550   const orc_union32 *ORC_RESTRICT ptr4;
4551   orc_union32 var33;
4552   orc_union32 var34;
4553   orc_union32 var35;
4554   orc_union32 var36;
4555
4556   ptr0 = (orc_union32 *) ex->arrays[0];
4557   ptr4 = (orc_union32 *) ex->arrays[4];
4558
4559   /* 1: loadpl */
4560   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
4561
4562   for (i = 0; i < n; i++) {
4563     /* 0: loadl */
4564     var33 = ptr4[i];
4565     /* 2: xorl */
4566     var36.i = var33.i ^ var34.i;
4567     /* 3: shrul */
4568     var35.i = ((orc_uint32) var36.i) >> ex->params[24];
4569     /* 4: storel */
4570     ptr0[i] = var35;
4571   }
4572
4573 }
4574
4575 void
4576 audio_convert_orc_pack_u32 (guint8 * ORC_RESTRICT d1,
4577     const gint32 * ORC_RESTRICT s1, int p1, int n)
4578 {
4579   OrcExecutor _ex, *ex = &_ex;
4580   static volatile int p_inited = 0;
4581   static OrcCode *c = 0;
4582   void (*func) (OrcExecutor *);
4583
4584   if (!p_inited) {
4585     orc_once_mutex_lock ();
4586     if (!p_inited) {
4587       OrcProgram *p;
4588
4589       p = orc_program_new ();
4590       orc_program_set_name (p, "audio_convert_orc_pack_u32");
4591       orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_u32);
4592       orc_program_add_destination (p, 4, "d1");
4593       orc_program_add_source (p, 4, "s1");
4594       orc_program_add_constant (p, 4, 0x80000000, "c1");
4595       orc_program_add_parameter (p, 4, "p1");
4596       orc_program_add_temporary (p, 4, "t1");
4597
4598       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
4599           ORC_VAR_D1);
4600       orc_program_append_2 (p, "shrul", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_P1,
4601           ORC_VAR_D1);
4602
4603       orc_program_compile (p);
4604       c = orc_program_take_code (p);
4605       orc_program_free (p);
4606     }
4607     p_inited = TRUE;
4608     orc_once_mutex_unlock ();
4609   }
4610   ex->arrays[ORC_VAR_A2] = c;
4611   ex->program = 0;
4612
4613   ex->n = n;
4614   ex->arrays[ORC_VAR_D1] = d1;
4615   ex->arrays[ORC_VAR_S1] = (void *) s1;
4616   ex->params[ORC_VAR_P1] = p1;
4617
4618   func = c->exec;
4619   func (ex);
4620 }
4621 #endif
4622
4623
4624 /* audio_convert_orc_pack_s32 */
4625 #ifdef DISABLE_ORC
4626 void
4627 audio_convert_orc_pack_s32 (guint8 * ORC_RESTRICT d1,
4628     const gint32 * ORC_RESTRICT s1, int p1, int n)
4629 {
4630   int i;
4631   orc_union32 *ORC_RESTRICT ptr0;
4632   const orc_union32 *ORC_RESTRICT ptr4;
4633   orc_union32 var32;
4634   orc_union32 var33;
4635
4636   ptr0 = (orc_union32 *) d1;
4637   ptr4 = (orc_union32 *) s1;
4638
4639
4640   for (i = 0; i < n; i++) {
4641     /* 0: loadl */
4642     var32 = ptr4[i];
4643     /* 1: shrsl */
4644     var33.i = var32.i >> p1;
4645     /* 2: storel */
4646     ptr0[i] = var33;
4647   }
4648
4649 }
4650
4651 #else
4652 static void
4653 _backup_audio_convert_orc_pack_s32 (OrcExecutor * ORC_RESTRICT ex)
4654 {
4655   int i;
4656   int n = ex->n;
4657   orc_union32 *ORC_RESTRICT ptr0;
4658   const orc_union32 *ORC_RESTRICT ptr4;
4659   orc_union32 var32;
4660   orc_union32 var33;
4661
4662   ptr0 = (orc_union32 *) ex->arrays[0];
4663   ptr4 = (orc_union32 *) ex->arrays[4];
4664
4665
4666   for (i = 0; i < n; i++) {
4667     /* 0: loadl */
4668     var32 = ptr4[i];
4669     /* 1: shrsl */
4670     var33.i = var32.i >> ex->params[24];
4671     /* 2: storel */
4672     ptr0[i] = var33;
4673   }
4674
4675 }
4676
4677 void
4678 audio_convert_orc_pack_s32 (guint8 * ORC_RESTRICT d1,
4679     const gint32 * ORC_RESTRICT s1, int p1, int n)
4680 {
4681   OrcExecutor _ex, *ex = &_ex;
4682   static volatile int p_inited = 0;
4683   static OrcCode *c = 0;
4684   void (*func) (OrcExecutor *);
4685
4686   if (!p_inited) {
4687     orc_once_mutex_lock ();
4688     if (!p_inited) {
4689       OrcProgram *p;
4690
4691       p = orc_program_new ();
4692       orc_program_set_name (p, "audio_convert_orc_pack_s32");
4693       orc_program_set_backup_function (p, _backup_audio_convert_orc_pack_s32);
4694       orc_program_add_destination (p, 4, "d1");
4695       orc_program_add_source (p, 4, "s1");
4696       orc_program_add_parameter (p, 4, "p1");
4697
4698       orc_program_append_2 (p, "shrsl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_P1,
4699           ORC_VAR_D1);
4700
4701       orc_program_compile (p);
4702       c = orc_program_take_code (p);
4703       orc_program_free (p);
4704     }
4705     p_inited = TRUE;
4706     orc_once_mutex_unlock ();
4707   }
4708   ex->arrays[ORC_VAR_A2] = c;
4709   ex->program = 0;
4710
4711   ex->n = n;
4712   ex->arrays[ORC_VAR_D1] = d1;
4713   ex->arrays[ORC_VAR_S1] = (void *) s1;
4714   ex->params[ORC_VAR_P1] = p1;
4715
4716   func = c->exec;
4717   func (ex);
4718 }
4719 #endif
4720
4721
4722 /* audio_convert_orc_pack_u32_swap */
4723 #ifdef DISABLE_ORC
4724 void
4725 audio_convert_orc_pack_u32_swap (guint8 * ORC_RESTRICT d1,
4726     const gint32 * ORC_RESTRICT s1, int p1, int n)
4727 {
4728   int i;
4729   orc_union32 *ORC_RESTRICT ptr0;
4730   const orc_union32 *ORC_RESTRICT ptr4;
4731   orc_union32 var33;
4732   orc_union32 var34;
4733   orc_union32 var35;
4734   orc_union32 var36;
4735   orc_union32 var37;
4736
4737   ptr0 = (orc_union32 *) d1;
4738   ptr4 = (orc_union32 *) s1;
4739
4740   /* 1: loadpl */
4741   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
4742
4743   for (i = 0; i < n; i++) {
4744     /* 0: loadl */
4745     var33 = ptr4[i];
4746     /* 2: xorl */
4747     var36.i = var33.i ^ var34.i;
4748     /* 3: shrul */
4749     var37.i = ((orc_uint32) var36.i) >> p1;
4750     /* 4: swapl */
4751     var35.i = ORC_SWAP_L (var37.i);
4752     /* 5: storel */
4753     ptr0[i] = var35;
4754   }
4755
4756 }
4757
4758 #else
4759 static void
4760 _backup_audio_convert_orc_pack_u32_swap (OrcExecutor * ORC_RESTRICT ex)
4761 {
4762   int i;
4763   int n = ex->n;
4764   orc_union32 *ORC_RESTRICT ptr0;
4765   const orc_union32 *ORC_RESTRICT ptr4;
4766   orc_union32 var33;
4767   orc_union32 var34;
4768   orc_union32 var35;
4769   orc_union32 var36;
4770   orc_union32 var37;
4771
4772   ptr0 = (orc_union32 *) ex->arrays[0];
4773   ptr4 = (orc_union32 *) ex->arrays[4];
4774
4775   /* 1: loadpl */
4776   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
4777
4778   for (i = 0; i < n; i++) {
4779     /* 0: loadl */
4780     var33 = ptr4[i];
4781     /* 2: xorl */
4782     var36.i = var33.i ^ var34.i;
4783     /* 3: shrul */
4784     var37.i = ((orc_uint32) var36.i) >> ex->params[24];
4785     /* 4: swapl */
4786     var35.i = ORC_SWAP_L (var37.i);
4787     /* 5: storel */
4788     ptr0[i] = var35;
4789   }
4790
4791 }
4792
4793 void
4794 audio_convert_orc_pack_u32_swap (guint8 * ORC_RESTRICT d1,
4795     const gint32 * ORC_RESTRICT s1, int p1, int n)
4796 {
4797   OrcExecutor _ex, *ex = &_ex;
4798   static volatile int p_inited = 0;
4799   static OrcCode *c = 0;
4800   void (*func) (OrcExecutor *);
4801
4802   if (!p_inited) {
4803     orc_once_mutex_lock ();
4804     if (!p_inited) {
4805       OrcProgram *p;
4806
4807       p = orc_program_new ();
4808       orc_program_set_name (p, "audio_convert_orc_pack_u32_swap");
4809       orc_program_set_backup_function (p,
4810           _backup_audio_convert_orc_pack_u32_swap);
4811       orc_program_add_destination (p, 4, "d1");
4812       orc_program_add_source (p, 4, "s1");
4813       orc_program_add_constant (p, 4, 0x80000000, "c1");
4814       orc_program_add_parameter (p, 4, "p1");
4815       orc_program_add_temporary (p, 4, "t1");
4816
4817       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
4818           ORC_VAR_D1);
4819       orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
4820           ORC_VAR_D1);
4821       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
4822           ORC_VAR_D1);
4823
4824       orc_program_compile (p);
4825       c = orc_program_take_code (p);
4826       orc_program_free (p);
4827     }
4828     p_inited = TRUE;
4829     orc_once_mutex_unlock ();
4830   }
4831   ex->arrays[ORC_VAR_A2] = c;
4832   ex->program = 0;
4833
4834   ex->n = n;
4835   ex->arrays[ORC_VAR_D1] = d1;
4836   ex->arrays[ORC_VAR_S1] = (void *) s1;
4837   ex->params[ORC_VAR_P1] = p1;
4838
4839   func = c->exec;
4840   func (ex);
4841 }
4842 #endif
4843
4844
4845 /* audio_convert_orc_pack_s32_swap */
4846 #ifdef DISABLE_ORC
4847 void
4848 audio_convert_orc_pack_s32_swap (guint8 * ORC_RESTRICT d1,
4849     const gint32 * ORC_RESTRICT s1, int p1, int n)
4850 {
4851   int i;
4852   orc_union32 *ORC_RESTRICT ptr0;
4853   const orc_union32 *ORC_RESTRICT ptr4;
4854   orc_union32 var33;
4855   orc_union32 var34;
4856   orc_union32 var35;
4857
4858   ptr0 = (orc_union32 *) d1;
4859   ptr4 = (orc_union32 *) s1;
4860
4861
4862   for (i = 0; i < n; i++) {
4863     /* 0: loadl */
4864     var33 = ptr4[i];
4865     /* 1: shrsl */
4866     var35.i = var33.i >> p1;
4867     /* 2: swapl */
4868     var34.i = ORC_SWAP_L (var35.i);
4869     /* 3: storel */
4870     ptr0[i] = var34;
4871   }
4872
4873 }
4874
4875 #else
4876 static void
4877 _backup_audio_convert_orc_pack_s32_swap (OrcExecutor * ORC_RESTRICT ex)
4878 {
4879   int i;
4880   int n = ex->n;
4881   orc_union32 *ORC_RESTRICT ptr0;
4882   const orc_union32 *ORC_RESTRICT ptr4;
4883   orc_union32 var33;
4884   orc_union32 var34;
4885   orc_union32 var35;
4886
4887   ptr0 = (orc_union32 *) ex->arrays[0];
4888   ptr4 = (orc_union32 *) ex->arrays[4];
4889
4890
4891   for (i = 0; i < n; i++) {
4892     /* 0: loadl */
4893     var33 = ptr4[i];
4894     /* 1: shrsl */
4895     var35.i = var33.i >> ex->params[24];
4896     /* 2: swapl */
4897     var34.i = ORC_SWAP_L (var35.i);
4898     /* 3: storel */
4899     ptr0[i] = var34;
4900   }
4901
4902 }
4903
4904 void
4905 audio_convert_orc_pack_s32_swap (guint8 * ORC_RESTRICT d1,
4906     const gint32 * ORC_RESTRICT s1, int p1, int n)
4907 {
4908   OrcExecutor _ex, *ex = &_ex;
4909   static volatile int p_inited = 0;
4910   static OrcCode *c = 0;
4911   void (*func) (OrcExecutor *);
4912
4913   if (!p_inited) {
4914     orc_once_mutex_lock ();
4915     if (!p_inited) {
4916       OrcProgram *p;
4917
4918       p = orc_program_new ();
4919       orc_program_set_name (p, "audio_convert_orc_pack_s32_swap");
4920       orc_program_set_backup_function (p,
4921           _backup_audio_convert_orc_pack_s32_swap);
4922       orc_program_add_destination (p, 4, "d1");
4923       orc_program_add_source (p, 4, "s1");
4924       orc_program_add_parameter (p, 4, "p1");
4925       orc_program_add_temporary (p, 4, "t1");
4926
4927       orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_P1,
4928           ORC_VAR_D1);
4929       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
4930           ORC_VAR_D1);
4931
4932       orc_program_compile (p);
4933       c = orc_program_take_code (p);
4934       orc_program_free (p);
4935     }
4936     p_inited = TRUE;
4937     orc_once_mutex_unlock ();
4938   }
4939   ex->arrays[ORC_VAR_A2] = c;
4940   ex->program = 0;
4941
4942   ex->n = n;
4943   ex->arrays[ORC_VAR_D1] = d1;
4944   ex->arrays[ORC_VAR_S1] = (void *) s1;
4945   ex->params[ORC_VAR_P1] = p1;
4946
4947   func = c->exec;
4948   func (ex);
4949 }
4950 #endif
4951
4952
4953 /* audio_convert_orc_pack_s32_float */
4954 #ifdef DISABLE_ORC
4955 void
4956 audio_convert_orc_pack_s32_float (gfloat * ORC_RESTRICT d1,
4957     const gint32 * ORC_RESTRICT s1, int n)
4958 {
4959   int i;
4960   orc_union32 *ORC_RESTRICT ptr0;
4961   const orc_union32 *ORC_RESTRICT ptr4;
4962   orc_union32 var33;
4963   orc_union32 var34;
4964   orc_union32 var35;
4965   orc_union32 var36;
4966
4967   ptr0 = (orc_union32 *) d1;
4968   ptr4 = (orc_union32 *) s1;
4969
4970   /* 2: loadpl */
4971   var34.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
4972
4973   for (i = 0; i < n; i++) {
4974     /* 0: loadl */
4975     var33 = ptr4[i];
4976     /* 1: convlf */
4977     var35.f = var33.i;
4978     /* 3: divf */
4979     {
4980       orc_union32 _src1;
4981       orc_union32 _src2;
4982       orc_union32 _dest1;
4983       _src1.i = ORC_DENORMAL (var35.i);
4984       _src2.i = ORC_DENORMAL (var34.i);
4985       _dest1.f = _src1.f / _src2.f;
4986       var36.i = ORC_DENORMAL (_dest1.i);
4987     }
4988     /* 4: storel */
4989     ptr0[i] = var36;
4990   }
4991
4992 }
4993
4994 #else
4995 static void
4996 _backup_audio_convert_orc_pack_s32_float (OrcExecutor * ORC_RESTRICT ex)
4997 {
4998   int i;
4999   int n = ex->n;
5000   orc_union32 *ORC_RESTRICT ptr0;
5001   const orc_union32 *ORC_RESTRICT ptr4;
5002   orc_union32 var33;
5003   orc_union32 var34;
5004   orc_union32 var35;
5005   orc_union32 var36;
5006
5007   ptr0 = (orc_union32 *) ex->arrays[0];
5008   ptr4 = (orc_union32 *) ex->arrays[4];
5009
5010   /* 2: loadpl */
5011   var34.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
5012
5013   for (i = 0; i < n; i++) {
5014     /* 0: loadl */
5015     var33 = ptr4[i];
5016     /* 1: convlf */
5017     var35.f = var33.i;
5018     /* 3: divf */
5019     {
5020       orc_union32 _src1;
5021       orc_union32 _src2;
5022       orc_union32 _dest1;
5023       _src1.i = ORC_DENORMAL (var35.i);
5024       _src2.i = ORC_DENORMAL (var34.i);
5025       _dest1.f = _src1.f / _src2.f;
5026       var36.i = ORC_DENORMAL (_dest1.i);
5027     }
5028     /* 4: storel */
5029     ptr0[i] = var36;
5030   }
5031
5032 }
5033
5034 void
5035 audio_convert_orc_pack_s32_float (gfloat * ORC_RESTRICT d1,
5036     const gint32 * ORC_RESTRICT s1, int n)
5037 {
5038   OrcExecutor _ex, *ex = &_ex;
5039   static volatile int p_inited = 0;
5040   static OrcCode *c = 0;
5041   void (*func) (OrcExecutor *);
5042
5043   if (!p_inited) {
5044     orc_once_mutex_lock ();
5045     if (!p_inited) {
5046       OrcProgram *p;
5047
5048       p = orc_program_new ();
5049       orc_program_set_name (p, "audio_convert_orc_pack_s32_float");
5050       orc_program_set_backup_function (p,
5051           _backup_audio_convert_orc_pack_s32_float);
5052       orc_program_add_destination (p, 4, "d1");
5053       orc_program_add_source (p, 4, "s1");
5054       orc_program_add_constant (p, 4, 0x4f000000, "c1");
5055       orc_program_add_temporary (p, 4, "t1");
5056
5057       orc_program_append_2 (p, "convlf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
5058           ORC_VAR_D1);
5059       orc_program_append_2 (p, "divf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
5060           ORC_VAR_D1);
5061       orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
5062           ORC_VAR_D1);
5063
5064       orc_program_compile (p);
5065       c = orc_program_take_code (p);
5066       orc_program_free (p);
5067     }
5068     p_inited = TRUE;
5069     orc_once_mutex_unlock ();
5070   }
5071   ex->arrays[ORC_VAR_A2] = c;
5072   ex->program = 0;
5073
5074   ex->n = n;
5075   ex->arrays[ORC_VAR_D1] = d1;
5076   ex->arrays[ORC_VAR_S1] = (void *) s1;
5077
5078   func = c->exec;
5079   func (ex);
5080 }
5081 #endif
5082
5083
5084 /* audio_convert_orc_pack_s32_float_swap */
5085 #ifdef DISABLE_ORC
5086 void
5087 audio_convert_orc_pack_s32_float_swap (gfloat * ORC_RESTRICT d1,
5088     const gint32 * ORC_RESTRICT s1, int n)
5089 {
5090   int i;
5091   orc_union32 *ORC_RESTRICT ptr0;
5092   const orc_union32 *ORC_RESTRICT ptr4;
5093   orc_union32 var33;
5094   orc_union32 var34;
5095   orc_union32 var35;
5096   orc_union32 var36;
5097   orc_union32 var37;
5098
5099   ptr0 = (orc_union32 *) d1;
5100   ptr4 = (orc_union32 *) s1;
5101
5102   /* 2: loadpl */
5103   var34.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
5104
5105   for (i = 0; i < n; i++) {
5106     /* 0: loadl */
5107     var33 = ptr4[i];
5108     /* 1: convlf */
5109     var36.f = var33.i;
5110     /* 3: divf */
5111     {
5112       orc_union32 _src1;
5113       orc_union32 _src2;
5114       orc_union32 _dest1;
5115       _src1.i = ORC_DENORMAL (var36.i);
5116       _src2.i = ORC_DENORMAL (var34.i);
5117       _dest1.f = _src1.f / _src2.f;
5118       var37.i = ORC_DENORMAL (_dest1.i);
5119     }
5120     /* 4: swapl */
5121     var35.i = ORC_SWAP_L (var37.i);
5122     /* 5: storel */
5123     ptr0[i] = var35;
5124   }
5125
5126 }
5127
5128 #else
5129 static void
5130 _backup_audio_convert_orc_pack_s32_float_swap (OrcExecutor * ORC_RESTRICT ex)
5131 {
5132   int i;
5133   int n = ex->n;
5134   orc_union32 *ORC_RESTRICT ptr0;
5135   const orc_union32 *ORC_RESTRICT ptr4;
5136   orc_union32 var33;
5137   orc_union32 var34;
5138   orc_union32 var35;
5139   orc_union32 var36;
5140   orc_union32 var37;
5141
5142   ptr0 = (orc_union32 *) ex->arrays[0];
5143   ptr4 = (orc_union32 *) ex->arrays[4];
5144
5145   /* 2: loadpl */
5146   var34.i = (int) 0x4f000000;   /* 1325400064 or 6.54835e-315f */
5147
5148   for (i = 0; i < n; i++) {
5149     /* 0: loadl */
5150     var33 = ptr4[i];
5151     /* 1: convlf */
5152     var36.f = var33.i;
5153     /* 3: divf */
5154     {
5155       orc_union32 _src1;
5156       orc_union32 _src2;
5157       orc_union32 _dest1;
5158       _src1.i = ORC_DENORMAL (var36.i);
5159       _src2.i = ORC_DENORMAL (var34.i);
5160       _dest1.f = _src1.f / _src2.f;
5161       var37.i = ORC_DENORMAL (_dest1.i);
5162     }
5163     /* 4: swapl */
5164     var35.i = ORC_SWAP_L (var37.i);
5165     /* 5: storel */
5166     ptr0[i] = var35;
5167   }
5168
5169 }
5170
5171 void
5172 audio_convert_orc_pack_s32_float_swap (gfloat * ORC_RESTRICT d1,
5173     const gint32 * ORC_RESTRICT s1, int n)
5174 {
5175   OrcExecutor _ex, *ex = &_ex;
5176   static volatile int p_inited = 0;
5177   static OrcCode *c = 0;
5178   void (*func) (OrcExecutor *);
5179
5180   if (!p_inited) {
5181     orc_once_mutex_lock ();
5182     if (!p_inited) {
5183       OrcProgram *p;
5184
5185       p = orc_program_new ();
5186       orc_program_set_name (p, "audio_convert_orc_pack_s32_float_swap");
5187       orc_program_set_backup_function (p,
5188           _backup_audio_convert_orc_pack_s32_float_swap);
5189       orc_program_add_destination (p, 4, "d1");
5190       orc_program_add_source (p, 4, "s1");
5191       orc_program_add_constant (p, 4, 0x4f000000, "c1");
5192       orc_program_add_temporary (p, 4, "t1");
5193
5194       orc_program_append_2 (p, "convlf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
5195           ORC_VAR_D1);
5196       orc_program_append_2 (p, "divf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
5197           ORC_VAR_D1);
5198       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
5199           ORC_VAR_D1);
5200
5201       orc_program_compile (p);
5202       c = orc_program_take_code (p);
5203       orc_program_free (p);
5204     }
5205     p_inited = TRUE;
5206     orc_once_mutex_unlock ();
5207   }
5208   ex->arrays[ORC_VAR_A2] = c;
5209   ex->program = 0;
5210
5211   ex->n = n;
5212   ex->arrays[ORC_VAR_D1] = d1;
5213   ex->arrays[ORC_VAR_S1] = (void *) s1;
5214
5215   func = c->exec;
5216   func (ex);
5217 }
5218 #endif
5219
5220
5221 /* audio_convert_orc_pack_s32_double */
5222 #ifdef DISABLE_ORC
5223 void
5224 audio_convert_orc_pack_s32_double (gdouble * ORC_RESTRICT d1,
5225     const gint32 * ORC_RESTRICT s1, int n)
5226 {
5227   int i;
5228   orc_union64 *ORC_RESTRICT ptr0;
5229   const orc_union32 *ORC_RESTRICT ptr4;
5230   orc_union32 var33;
5231   orc_union64 var34;
5232   orc_union64 var35;
5233   orc_union64 var36;
5234
5235   ptr0 = (orc_union64 *) d1;
5236   ptr4 = (orc_union32 *) s1;
5237
5238   /* 2: loadpq */
5239   var34.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
5240
5241   for (i = 0; i < n; i++) {
5242     /* 0: loadl */
5243     var33 = ptr4[i];
5244     /* 1: convld */
5245     var35.f = var33.i;
5246     /* 3: divd */
5247     {
5248       orc_union64 _src1;
5249       orc_union64 _src2;
5250       orc_union64 _dest1;
5251       _src1.i = ORC_DENORMAL_DOUBLE (var35.i);
5252       _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
5253       _dest1.f = _src1.f / _src2.f;
5254       var36.i = ORC_DENORMAL_DOUBLE (_dest1.i);
5255     }
5256     /* 4: storeq */
5257     ptr0[i] = var36;
5258   }
5259
5260 }
5261
5262 #else
5263 static void
5264 _backup_audio_convert_orc_pack_s32_double (OrcExecutor * ORC_RESTRICT ex)
5265 {
5266   int i;
5267   int n = ex->n;
5268   orc_union64 *ORC_RESTRICT ptr0;
5269   const orc_union32 *ORC_RESTRICT ptr4;
5270   orc_union32 var33;
5271   orc_union64 var34;
5272   orc_union64 var35;
5273   orc_union64 var36;
5274
5275   ptr0 = (orc_union64 *) ex->arrays[0];
5276   ptr4 = (orc_union32 *) ex->arrays[4];
5277
5278   /* 2: loadpq */
5279   var34.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
5280
5281   for (i = 0; i < n; i++) {
5282     /* 0: loadl */
5283     var33 = ptr4[i];
5284     /* 1: convld */
5285     var35.f = var33.i;
5286     /* 3: divd */
5287     {
5288       orc_union64 _src1;
5289       orc_union64 _src2;
5290       orc_union64 _dest1;
5291       _src1.i = ORC_DENORMAL_DOUBLE (var35.i);
5292       _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
5293       _dest1.f = _src1.f / _src2.f;
5294       var36.i = ORC_DENORMAL_DOUBLE (_dest1.i);
5295     }
5296     /* 4: storeq */
5297     ptr0[i] = var36;
5298   }
5299
5300 }
5301
5302 void
5303 audio_convert_orc_pack_s32_double (gdouble * ORC_RESTRICT d1,
5304     const gint32 * ORC_RESTRICT s1, int n)
5305 {
5306   OrcExecutor _ex, *ex = &_ex;
5307   static volatile int p_inited = 0;
5308   static OrcCode *c = 0;
5309   void (*func) (OrcExecutor *);
5310
5311   if (!p_inited) {
5312     orc_once_mutex_lock ();
5313     if (!p_inited) {
5314       OrcProgram *p;
5315
5316       p = orc_program_new ();
5317       orc_program_set_name (p, "audio_convert_orc_pack_s32_double");
5318       orc_program_set_backup_function (p,
5319           _backup_audio_convert_orc_pack_s32_double);
5320       orc_program_add_destination (p, 8, "d1");
5321       orc_program_add_source (p, 4, "s1");
5322       orc_program_add_constant_int64 (p, 8, 0x41dfffffffc00000ULL, "c1");
5323       orc_program_add_temporary (p, 8, "t1");
5324
5325       orc_program_append_2 (p, "convld", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
5326           ORC_VAR_D1);
5327       orc_program_append_2 (p, "divd", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
5328           ORC_VAR_D1);
5329       orc_program_append_2 (p, "storeq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
5330           ORC_VAR_D1);
5331
5332       orc_program_compile (p);
5333       c = orc_program_take_code (p);
5334       orc_program_free (p);
5335     }
5336     p_inited = TRUE;
5337     orc_once_mutex_unlock ();
5338   }
5339   ex->arrays[ORC_VAR_A2] = c;
5340   ex->program = 0;
5341
5342   ex->n = n;
5343   ex->arrays[ORC_VAR_D1] = d1;
5344   ex->arrays[ORC_VAR_S1] = (void *) s1;
5345
5346   func = c->exec;
5347   func (ex);
5348 }
5349 #endif
5350
5351
5352 /* audio_convert_orc_pack_s32_double_swap */
5353 #ifdef DISABLE_ORC
5354 void
5355 audio_convert_orc_pack_s32_double_swap (gdouble * ORC_RESTRICT d1,
5356     const gint32 * ORC_RESTRICT s1, int n)
5357 {
5358   int i;
5359   orc_union64 *ORC_RESTRICT ptr0;
5360   const orc_union32 *ORC_RESTRICT ptr4;
5361   orc_union32 var33;
5362   orc_union64 var34;
5363   orc_union64 var35;
5364   orc_union64 var36;
5365   orc_union64 var37;
5366
5367   ptr0 = (orc_union64 *) d1;
5368   ptr4 = (orc_union32 *) s1;
5369
5370   /* 2: loadpq */
5371   var34.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
5372
5373   for (i = 0; i < n; i++) {
5374     /* 0: loadl */
5375     var33 = ptr4[i];
5376     /* 1: convld */
5377     var36.f = var33.i;
5378     /* 3: divd */
5379     {
5380       orc_union64 _src1;
5381       orc_union64 _src2;
5382       orc_union64 _dest1;
5383       _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
5384       _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
5385       _dest1.f = _src1.f / _src2.f;
5386       var37.i = ORC_DENORMAL_DOUBLE (_dest1.i);
5387     }
5388     /* 4: swapq */
5389     var35.i = ORC_SWAP_Q (var37.i);
5390     /* 5: storeq */
5391     ptr0[i] = var35;
5392   }
5393
5394 }
5395
5396 #else
5397 static void
5398 _backup_audio_convert_orc_pack_s32_double_swap (OrcExecutor * ORC_RESTRICT ex)
5399 {
5400   int i;
5401   int n = ex->n;
5402   orc_union64 *ORC_RESTRICT ptr0;
5403   const orc_union32 *ORC_RESTRICT ptr4;
5404   orc_union32 var33;
5405   orc_union64 var34;
5406   orc_union64 var35;
5407   orc_union64 var36;
5408   orc_union64 var37;
5409
5410   ptr0 = (orc_union64 *) ex->arrays[0];
5411   ptr4 = (orc_union32 *) ex->arrays[4];
5412
5413   /* 2: loadpq */
5414   var34.i = ORC_UINT64_C (0x41dfffffffc00000);  /* 2.14748e+09f */
5415
5416   for (i = 0; i < n; i++) {
5417     /* 0: loadl */
5418     var33 = ptr4[i];
5419     /* 1: convld */
5420     var36.f = var33.i;
5421     /* 3: divd */
5422     {
5423       orc_union64 _src1;
5424       orc_union64 _src2;
5425       orc_union64 _dest1;
5426       _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
5427       _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
5428       _dest1.f = _src1.f / _src2.f;
5429       var37.i = ORC_DENORMAL_DOUBLE (_dest1.i);
5430     }
5431     /* 4: swapq */
5432     var35.i = ORC_SWAP_Q (var37.i);
5433     /* 5: storeq */
5434     ptr0[i] = var35;
5435   }
5436
5437 }
5438
5439 void
5440 audio_convert_orc_pack_s32_double_swap (gdouble * ORC_RESTRICT d1,
5441     const gint32 * ORC_RESTRICT s1, int n)
5442 {
5443   OrcExecutor _ex, *ex = &_ex;
5444   static volatile int p_inited = 0;
5445   static OrcCode *c = 0;
5446   void (*func) (OrcExecutor *);
5447
5448   if (!p_inited) {
5449     orc_once_mutex_lock ();
5450     if (!p_inited) {
5451       OrcProgram *p;
5452
5453       p = orc_program_new ();
5454       orc_program_set_name (p, "audio_convert_orc_pack_s32_double_swap");
5455       orc_program_set_backup_function (p,
5456           _backup_audio_convert_orc_pack_s32_double_swap);
5457       orc_program_add_destination (p, 8, "d1");
5458       orc_program_add_source (p, 4, "s1");
5459       orc_program_add_constant_int64 (p, 8, 0x41dfffffffc00000ULL, "c1");
5460       orc_program_add_temporary (p, 8, "t1");
5461
5462       orc_program_append_2 (p, "convld", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
5463           ORC_VAR_D1);
5464       orc_program_append_2 (p, "divd", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
5465           ORC_VAR_D1);
5466       orc_program_append_2 (p, "swapq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
5467           ORC_VAR_D1);
5468
5469       orc_program_compile (p);
5470       c = orc_program_take_code (p);
5471       orc_program_free (p);
5472     }
5473     p_inited = TRUE;
5474     orc_once_mutex_unlock ();
5475   }
5476   ex->arrays[ORC_VAR_A2] = c;
5477   ex->program = 0;
5478
5479   ex->n = n;
5480   ex->arrays[ORC_VAR_D1] = d1;
5481   ex->arrays[ORC_VAR_S1] = (void *) s1;
5482
5483   func = c->exec;
5484   func (ex);
5485 }
5486 #endif
5487
5488
5489 /* audio_convert_orc_pack_double_float */
5490 #ifdef DISABLE_ORC
5491 void
5492 audio_convert_orc_pack_double_float (gfloat * ORC_RESTRICT d1,
5493     const gdouble * ORC_RESTRICT s1, int n)
5494 {
5495   int i;
5496   orc_union32 *ORC_RESTRICT ptr0;
5497   const orc_union64 *ORC_RESTRICT ptr4;
5498   orc_union64 var32;
5499   orc_union32 var33;
5500
5501   ptr0 = (orc_union32 *) d1;
5502   ptr4 = (orc_union64 *) s1;
5503
5504
5505   for (i = 0; i < n; i++) {
5506     /* 0: loadq */
5507     var32 = ptr4[i];
5508     /* 1: convdf */
5509     {
5510       orc_union64 _src1;
5511       orc_union32 _dest;
5512       _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
5513       _dest.f = _src1.f;
5514       var33.i = ORC_DENORMAL (_dest.i);
5515     }
5516     /* 2: storel */
5517     ptr0[i] = var33;
5518   }
5519
5520 }
5521
5522 #else
5523 static void
5524 _backup_audio_convert_orc_pack_double_float (OrcExecutor * ORC_RESTRICT ex)
5525 {
5526   int i;
5527   int n = ex->n;
5528   orc_union32 *ORC_RESTRICT ptr0;
5529   const orc_union64 *ORC_RESTRICT ptr4;
5530   orc_union64 var32;
5531   orc_union32 var33;
5532
5533   ptr0 = (orc_union32 *) ex->arrays[0];
5534   ptr4 = (orc_union64 *) ex->arrays[4];
5535
5536
5537   for (i = 0; i < n; i++) {
5538     /* 0: loadq */
5539     var32 = ptr4[i];
5540     /* 1: convdf */
5541     {
5542       orc_union64 _src1;
5543       orc_union32 _dest;
5544       _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
5545       _dest.f = _src1.f;
5546       var33.i = ORC_DENORMAL (_dest.i);
5547     }
5548     /* 2: storel */
5549     ptr0[i] = var33;
5550   }
5551
5552 }
5553
5554 void
5555 audio_convert_orc_pack_double_float (gfloat * ORC_RESTRICT d1,
5556     const gdouble * ORC_RESTRICT s1, int n)
5557 {
5558   OrcExecutor _ex, *ex = &_ex;
5559   static volatile int p_inited = 0;
5560   static OrcCode *c = 0;
5561   void (*func) (OrcExecutor *);
5562
5563   if (!p_inited) {
5564     orc_once_mutex_lock ();
5565     if (!p_inited) {
5566       OrcProgram *p;
5567
5568       p = orc_program_new ();
5569       orc_program_set_name (p, "audio_convert_orc_pack_double_float");
5570       orc_program_set_backup_function (p,
5571           _backup_audio_convert_orc_pack_double_float);
5572       orc_program_add_destination (p, 4, "d1");
5573       orc_program_add_source (p, 8, "s1");
5574
5575       orc_program_append_2 (p, "convdf", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
5576           ORC_VAR_D1);
5577
5578       orc_program_compile (p);
5579       c = orc_program_take_code (p);
5580       orc_program_free (p);
5581     }
5582     p_inited = TRUE;
5583     orc_once_mutex_unlock ();
5584   }
5585   ex->arrays[ORC_VAR_A2] = c;
5586   ex->program = 0;
5587
5588   ex->n = n;
5589   ex->arrays[ORC_VAR_D1] = d1;
5590   ex->arrays[ORC_VAR_S1] = (void *) s1;
5591
5592   func = c->exec;
5593   func (ex);
5594 }
5595 #endif
5596
5597
5598 /* audio_convert_orc_pack_double_float_swap */
5599 #ifdef DISABLE_ORC
5600 void
5601 audio_convert_orc_pack_double_float_swap (gfloat * ORC_RESTRICT d1,
5602     const gdouble * ORC_RESTRICT s1, int n)
5603 {
5604   int i;
5605   orc_union32 *ORC_RESTRICT ptr0;
5606   const orc_union64 *ORC_RESTRICT ptr4;
5607   orc_union64 var33;
5608   orc_union32 var34;
5609   orc_union32 var35;
5610
5611   ptr0 = (orc_union32 *) d1;
5612   ptr4 = (orc_union64 *) s1;
5613
5614
5615   for (i = 0; i < n; i++) {
5616     /* 0: loadq */
5617     var33 = ptr4[i];
5618     /* 1: convdf */
5619     {
5620       orc_union64 _src1;
5621       orc_union32 _dest;
5622       _src1.i = ORC_DENORMAL_DOUBLE (var33.i);
5623       _dest.f = _src1.f;
5624       var35.i = ORC_DENORMAL (_dest.i);
5625     }
5626     /* 2: swapl */
5627     var34.i = ORC_SWAP_L (var35.i);
5628     /* 3: storel */
5629     ptr0[i] = var34;
5630   }
5631
5632 }
5633
5634 #else
5635 static void
5636 _backup_audio_convert_orc_pack_double_float_swap (OrcExecutor * ORC_RESTRICT ex)
5637 {
5638   int i;
5639   int n = ex->n;
5640   orc_union32 *ORC_RESTRICT ptr0;
5641   const orc_union64 *ORC_RESTRICT ptr4;
5642   orc_union64 var33;
5643   orc_union32 var34;
5644   orc_union32 var35;
5645
5646   ptr0 = (orc_union32 *) ex->arrays[0];
5647   ptr4 = (orc_union64 *) ex->arrays[4];
5648
5649
5650   for (i = 0; i < n; i++) {
5651     /* 0: loadq */
5652     var33 = ptr4[i];
5653     /* 1: convdf */
5654     {
5655       orc_union64 _src1;
5656       orc_union32 _dest;
5657       _src1.i = ORC_DENORMAL_DOUBLE (var33.i);
5658       _dest.f = _src1.f;
5659       var35.i = ORC_DENORMAL (_dest.i);
5660     }
5661     /* 2: swapl */
5662     var34.i = ORC_SWAP_L (var35.i);
5663     /* 3: storel */
5664     ptr0[i] = var34;
5665   }
5666
5667 }
5668
5669 void
5670 audio_convert_orc_pack_double_float_swap (gfloat * ORC_RESTRICT d1,
5671     const gdouble * ORC_RESTRICT s1, int n)
5672 {
5673   OrcExecutor _ex, *ex = &_ex;
5674   static volatile int p_inited = 0;
5675   static OrcCode *c = 0;
5676   void (*func) (OrcExecutor *);
5677
5678   if (!p_inited) {
5679     orc_once_mutex_lock ();
5680     if (!p_inited) {
5681       OrcProgram *p;
5682
5683       p = orc_program_new ();
5684       orc_program_set_name (p, "audio_convert_orc_pack_double_float_swap");
5685       orc_program_set_backup_function (p,
5686           _backup_audio_convert_orc_pack_double_float_swap);
5687       orc_program_add_destination (p, 4, "d1");
5688       orc_program_add_source (p, 8, "s1");
5689       orc_program_add_temporary (p, 4, "t1");
5690
5691       orc_program_append_2 (p, "convdf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
5692           ORC_VAR_D1);
5693       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
5694           ORC_VAR_D1);
5695
5696       orc_program_compile (p);
5697       c = orc_program_take_code (p);
5698       orc_program_free (p);
5699     }
5700     p_inited = TRUE;
5701     orc_once_mutex_unlock ();
5702   }
5703   ex->arrays[ORC_VAR_A2] = c;
5704   ex->program = 0;
5705
5706   ex->n = n;
5707   ex->arrays[ORC_VAR_D1] = d1;
5708   ex->arrays[ORC_VAR_S1] = (void *) s1;
5709
5710   func = c->exec;
5711   func (ex);
5712 }
5713 #endif
5714
5715
5716 /* audio_convert_orc_pack_double_u8 */
5717 #ifdef DISABLE_ORC
5718 void
5719 audio_convert_orc_pack_double_u8 (guint8 * ORC_RESTRICT d1,
5720     const gdouble * ORC_RESTRICT s1, int p1, int n)
5721 {
5722   int i;
5723   orc_int8 *ORC_RESTRICT ptr0;
5724   const orc_union64 *ORC_RESTRICT ptr4;
5725   orc_union64 var34;
5726   orc_union32 var35;
5727   orc_int8 var36;
5728   orc_union32 var37;
5729   orc_union32 var38;
5730   orc_union32 var39;
5731   orc_union16 var40;
5732
5733   ptr0 = (orc_int8 *) d1;
5734   ptr4 = (orc_union64 *) s1;
5735
5736   /* 2: loadpl */
5737   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
5738
5739   for (i = 0; i < n; i++) {
5740     /* 0: loadq */
5741     var34 = ptr4[i];
5742     /* 1: convdl */
5743     {
5744       int tmp;
5745       tmp = var34.f;
5746       if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
5747         tmp = 0x7fffffff;
5748       var37.i = tmp;
5749     }
5750     /* 3: xorl */
5751     var38.i = var37.i ^ var35.i;
5752     /* 4: shrul */
5753     var39.i = ((orc_uint32) var38.i) >> p1;
5754     /* 5: convlw */
5755     var40.i = var39.i;
5756     /* 6: convwb */
5757     var36 = var40.i;
5758     /* 7: storeb */
5759     ptr0[i] = var36;
5760   }
5761
5762 }
5763
5764 #else
5765 static void
5766 _backup_audio_convert_orc_pack_double_u8 (OrcExecutor * ORC_RESTRICT ex)
5767 {
5768   int i;
5769   int n = ex->n;
5770   orc_int8 *ORC_RESTRICT ptr0;
5771   const orc_union64 *ORC_RESTRICT ptr4;
5772   orc_union64 var34;
5773   orc_union32 var35;
5774   orc_int8 var36;
5775   orc_union32 var37;
5776   orc_union32 var38;
5777   orc_union32 var39;
5778   orc_union16 var40;
5779
5780   ptr0 = (orc_int8 *) ex->arrays[0];
5781   ptr4 = (orc_union64 *) ex->arrays[4];
5782
5783   /* 2: loadpl */
5784   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
5785
5786   for (i = 0; i < n; i++) {
5787     /* 0: loadq */
5788     var34 = ptr4[i];
5789     /* 1: convdl */
5790     {
5791       int tmp;
5792       tmp = var34.f;
5793       if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
5794         tmp = 0x7fffffff;
5795       var37.i = tmp;
5796     }
5797     /* 3: xorl */
5798     var38.i = var37.i ^ var35.i;
5799     /* 4: shrul */
5800     var39.i = ((orc_uint32) var38.i) >> ex->params[24];
5801     /* 5: convlw */
5802     var40.i = var39.i;
5803     /* 6: convwb */
5804     var36 = var40.i;
5805     /* 7: storeb */
5806     ptr0[i] = var36;
5807   }
5808
5809 }
5810
5811 void
5812 audio_convert_orc_pack_double_u8 (guint8 * ORC_RESTRICT d1,
5813     const gdouble * ORC_RESTRICT s1, int p1, int n)
5814 {
5815   OrcExecutor _ex, *ex = &_ex;
5816   static volatile int p_inited = 0;
5817   static OrcCode *c = 0;
5818   void (*func) (OrcExecutor *);
5819
5820   if (!p_inited) {
5821     orc_once_mutex_lock ();
5822     if (!p_inited) {
5823       OrcProgram *p;
5824
5825       p = orc_program_new ();
5826       orc_program_set_name (p, "audio_convert_orc_pack_double_u8");
5827       orc_program_set_backup_function (p,
5828           _backup_audio_convert_orc_pack_double_u8);
5829       orc_program_add_destination (p, 1, "d1");
5830       orc_program_add_source (p, 8, "s1");
5831       orc_program_add_constant (p, 4, 0x80000000, "c1");
5832       orc_program_add_parameter (p, 4, "p1");
5833       orc_program_add_temporary (p, 4, "t1");
5834       orc_program_add_temporary (p, 2, "t2");
5835
5836       orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
5837           ORC_VAR_D1);
5838       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
5839           ORC_VAR_D1);
5840       orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
5841           ORC_VAR_D1);
5842       orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
5843           ORC_VAR_D1);
5844       orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
5845           ORC_VAR_D1);
5846
5847       orc_program_compile (p);
5848       c = orc_program_take_code (p);
5849       orc_program_free (p);
5850     }
5851     p_inited = TRUE;
5852     orc_once_mutex_unlock ();
5853   }
5854   ex->arrays[ORC_VAR_A2] = c;
5855   ex->program = 0;
5856
5857   ex->n = n;
5858   ex->arrays[ORC_VAR_D1] = d1;
5859   ex->arrays[ORC_VAR_S1] = (void *) s1;
5860   ex->params[ORC_VAR_P1] = p1;
5861
5862   func = c->exec;
5863   func (ex);
5864 }
5865 #endif
5866
5867
5868 /* audio_convert_orc_pack_double_s8 */
5869 #ifdef DISABLE_ORC
5870 void
5871 audio_convert_orc_pack_double_s8 (guint8 * ORC_RESTRICT d1,
5872     const gdouble * ORC_RESTRICT s1, int p1, int n)
5873 {
5874   int i;
5875   orc_int8 *ORC_RESTRICT ptr0;
5876   const orc_union64 *ORC_RESTRICT ptr4;
5877   orc_union64 var34;
5878   orc_int8 var35;
5879   orc_union32 var36;
5880   orc_union32 var37;
5881   orc_union16 var38;
5882
5883   ptr0 = (orc_int8 *) d1;
5884   ptr4 = (orc_union64 *) s1;
5885
5886
5887   for (i = 0; i < n; i++) {
5888     /* 0: loadq */
5889     var34 = ptr4[i];
5890     /* 1: convdl */
5891     {
5892       int tmp;
5893       tmp = var34.f;
5894       if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
5895         tmp = 0x7fffffff;
5896       var36.i = tmp;
5897     }
5898     /* 2: shrsl */
5899     var37.i = var36.i >> p1;
5900     /* 3: convlw */
5901     var38.i = var37.i;
5902     /* 4: convwb */
5903     var35 = var38.i;
5904     /* 5: storeb */
5905     ptr0[i] = var35;
5906   }
5907
5908 }
5909
5910 #else
5911 static void
5912 _backup_audio_convert_orc_pack_double_s8 (OrcExecutor * ORC_RESTRICT ex)
5913 {
5914   int i;
5915   int n = ex->n;
5916   orc_int8 *ORC_RESTRICT ptr0;
5917   const orc_union64 *ORC_RESTRICT ptr4;
5918   orc_union64 var34;
5919   orc_int8 var35;
5920   orc_union32 var36;
5921   orc_union32 var37;
5922   orc_union16 var38;
5923
5924   ptr0 = (orc_int8 *) ex->arrays[0];
5925   ptr4 = (orc_union64 *) ex->arrays[4];
5926
5927
5928   for (i = 0; i < n; i++) {
5929     /* 0: loadq */
5930     var34 = ptr4[i];
5931     /* 1: convdl */
5932     {
5933       int tmp;
5934       tmp = var34.f;
5935       if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
5936         tmp = 0x7fffffff;
5937       var36.i = tmp;
5938     }
5939     /* 2: shrsl */
5940     var37.i = var36.i >> ex->params[24];
5941     /* 3: convlw */
5942     var38.i = var37.i;
5943     /* 4: convwb */
5944     var35 = var38.i;
5945     /* 5: storeb */
5946     ptr0[i] = var35;
5947   }
5948
5949 }
5950
5951 void
5952 audio_convert_orc_pack_double_s8 (guint8 * ORC_RESTRICT d1,
5953     const gdouble * ORC_RESTRICT s1, int p1, int n)
5954 {
5955   OrcExecutor _ex, *ex = &_ex;
5956   static volatile int p_inited = 0;
5957   static OrcCode *c = 0;
5958   void (*func) (OrcExecutor *);
5959
5960   if (!p_inited) {
5961     orc_once_mutex_lock ();
5962     if (!p_inited) {
5963       OrcProgram *p;
5964
5965       p = orc_program_new ();
5966       orc_program_set_name (p, "audio_convert_orc_pack_double_s8");
5967       orc_program_set_backup_function (p,
5968           _backup_audio_convert_orc_pack_double_s8);
5969       orc_program_add_destination (p, 1, "d1");
5970       orc_program_add_source (p, 8, "s1");
5971       orc_program_add_parameter (p, 4, "p1");
5972       orc_program_add_temporary (p, 4, "t1");
5973       orc_program_add_temporary (p, 2, "t2");
5974
5975       orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
5976           ORC_VAR_D1);
5977       orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
5978           ORC_VAR_D1);
5979       orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
5980           ORC_VAR_D1);
5981       orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
5982           ORC_VAR_D1);
5983
5984       orc_program_compile (p);
5985       c = orc_program_take_code (p);
5986       orc_program_free (p);
5987     }
5988     p_inited = TRUE;
5989     orc_once_mutex_unlock ();
5990   }
5991   ex->arrays[ORC_VAR_A2] = c;
5992   ex->program = 0;
5993
5994   ex->n = n;
5995   ex->arrays[ORC_VAR_D1] = d1;
5996   ex->arrays[ORC_VAR_S1] = (void *) s1;
5997   ex->params[ORC_VAR_P1] = p1;
5998
5999   func = c->exec;
6000   func (ex);
6001 }
6002 #endif
6003
6004
6005 /* audio_convert_orc_pack_double_u16 */
6006 #ifdef DISABLE_ORC
6007 void
6008 audio_convert_orc_pack_double_u16 (guint8 * ORC_RESTRICT d1,
6009     const gdouble * ORC_RESTRICT s1, int p1, int n)
6010 {
6011   int i;
6012   orc_union16 *ORC_RESTRICT ptr0;
6013   const orc_union64 *ORC_RESTRICT ptr4;
6014   orc_union64 var33;
6015   orc_union32 var34;
6016   orc_union16 var35;
6017   orc_union32 var36;
6018   orc_union32 var37;
6019   orc_union32 var38;
6020
6021   ptr0 = (orc_union16 *) d1;
6022   ptr4 = (orc_union64 *) s1;
6023
6024   /* 2: loadpl */
6025   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
6026
6027   for (i = 0; i < n; i++) {
6028     /* 0: loadq */
6029     var33 = ptr4[i];
6030     /* 1: convdl */
6031     {
6032       int tmp;
6033       tmp = var33.f;
6034       if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
6035         tmp = 0x7fffffff;
6036       var36.i = tmp;
6037     }
6038     /* 3: xorl */
6039     var37.i = var36.i ^ var34.i;
6040     /* 4: shrul */
6041     var38.i = ((orc_uint32) var37.i) >> p1;
6042     /* 5: convlw */
6043     var35.i = var38.i;
6044     /* 6: storew */
6045     ptr0[i] = var35;
6046   }
6047
6048 }
6049
6050 #else
6051 static void
6052 _backup_audio_convert_orc_pack_double_u16 (OrcExecutor * ORC_RESTRICT ex)
6053 {
6054   int i;
6055   int n = ex->n;
6056   orc_union16 *ORC_RESTRICT ptr0;
6057   const orc_union64 *ORC_RESTRICT ptr4;
6058   orc_union64 var33;
6059   orc_union32 var34;
6060   orc_union16 var35;
6061   orc_union32 var36;
6062   orc_union32 var37;
6063   orc_union32 var38;
6064
6065   ptr0 = (orc_union16 *) ex->arrays[0];
6066   ptr4 = (orc_union64 *) ex->arrays[4];
6067
6068   /* 2: loadpl */
6069   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
6070
6071   for (i = 0; i < n; i++) {
6072     /* 0: loadq */
6073     var33 = ptr4[i];
6074     /* 1: convdl */
6075     {
6076       int tmp;
6077       tmp = var33.f;
6078       if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
6079         tmp = 0x7fffffff;
6080       var36.i = tmp;
6081     }
6082     /* 3: xorl */
6083     var37.i = var36.i ^ var34.i;
6084     /* 4: shrul */
6085     var38.i = ((orc_uint32) var37.i) >> ex->params[24];
6086     /* 5: convlw */
6087     var35.i = var38.i;
6088     /* 6: storew */
6089     ptr0[i] = var35;
6090   }
6091
6092 }
6093
6094 void
6095 audio_convert_orc_pack_double_u16 (guint8 * ORC_RESTRICT d1,
6096     const gdouble * ORC_RESTRICT s1, int p1, int n)
6097 {
6098   OrcExecutor _ex, *ex = &_ex;
6099   static volatile int p_inited = 0;
6100   static OrcCode *c = 0;
6101   void (*func) (OrcExecutor *);
6102
6103   if (!p_inited) {
6104     orc_once_mutex_lock ();
6105     if (!p_inited) {
6106       OrcProgram *p;
6107
6108       p = orc_program_new ();
6109       orc_program_set_name (p, "audio_convert_orc_pack_double_u16");
6110       orc_program_set_backup_function (p,
6111           _backup_audio_convert_orc_pack_double_u16);
6112       orc_program_add_destination (p, 2, "d1");
6113       orc_program_add_source (p, 8, "s1");
6114       orc_program_add_constant (p, 4, 0x80000000, "c1");
6115       orc_program_add_parameter (p, 4, "p1");
6116       orc_program_add_temporary (p, 4, "t1");
6117
6118       orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
6119           ORC_VAR_D1);
6120       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
6121           ORC_VAR_D1);
6122       orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
6123           ORC_VAR_D1);
6124       orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
6125           ORC_VAR_D1);
6126
6127       orc_program_compile (p);
6128       c = orc_program_take_code (p);
6129       orc_program_free (p);
6130     }
6131     p_inited = TRUE;
6132     orc_once_mutex_unlock ();
6133   }
6134   ex->arrays[ORC_VAR_A2] = c;
6135   ex->program = 0;
6136
6137   ex->n = n;
6138   ex->arrays[ORC_VAR_D1] = d1;
6139   ex->arrays[ORC_VAR_S1] = (void *) s1;
6140   ex->params[ORC_VAR_P1] = p1;
6141
6142   func = c->exec;
6143   func (ex);
6144 }
6145 #endif
6146
6147
6148 /* audio_convert_orc_pack_double_s16 */
6149 #ifdef DISABLE_ORC
6150 void
6151 audio_convert_orc_pack_double_s16 (guint8 * ORC_RESTRICT d1,
6152     const gdouble * ORC_RESTRICT s1, int p1, int n)
6153 {
6154   int i;
6155   orc_union16 *ORC_RESTRICT ptr0;
6156   const orc_union64 *ORC_RESTRICT ptr4;
6157   orc_union64 var33;
6158   orc_union16 var34;
6159   orc_union32 var35;
6160   orc_union32 var36;
6161
6162   ptr0 = (orc_union16 *) d1;
6163   ptr4 = (orc_union64 *) s1;
6164
6165
6166   for (i = 0; i < n; i++) {
6167     /* 0: loadq */
6168     var33 = ptr4[i];
6169     /* 1: convdl */
6170     {
6171       int tmp;
6172       tmp = var33.f;
6173       if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
6174         tmp = 0x7fffffff;
6175       var35.i = tmp;
6176     }
6177     /* 2: shrsl */
6178     var36.i = var35.i >> p1;
6179     /* 3: convlw */
6180     var34.i = var36.i;
6181     /* 4: storew */
6182     ptr0[i] = var34;
6183   }
6184
6185 }
6186
6187 #else
6188 static void
6189 _backup_audio_convert_orc_pack_double_s16 (OrcExecutor * ORC_RESTRICT ex)
6190 {
6191   int i;
6192   int n = ex->n;
6193   orc_union16 *ORC_RESTRICT ptr0;
6194   const orc_union64 *ORC_RESTRICT ptr4;
6195   orc_union64 var33;
6196   orc_union16 var34;
6197   orc_union32 var35;
6198   orc_union32 var36;
6199
6200   ptr0 = (orc_union16 *) ex->arrays[0];
6201   ptr4 = (orc_union64 *) ex->arrays[4];
6202
6203
6204   for (i = 0; i < n; i++) {
6205     /* 0: loadq */
6206     var33 = ptr4[i];
6207     /* 1: convdl */
6208     {
6209       int tmp;
6210       tmp = var33.f;
6211       if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
6212         tmp = 0x7fffffff;
6213       var35.i = tmp;
6214     }
6215     /* 2: shrsl */
6216     var36.i = var35.i >> ex->params[24];
6217     /* 3: convlw */
6218     var34.i = var36.i;
6219     /* 4: storew */
6220     ptr0[i] = var34;
6221   }
6222
6223 }
6224
6225 void
6226 audio_convert_orc_pack_double_s16 (guint8 * ORC_RESTRICT d1,
6227     const gdouble * ORC_RESTRICT s1, int p1, int n)
6228 {
6229   OrcExecutor _ex, *ex = &_ex;
6230   static volatile int p_inited = 0;
6231   static OrcCode *c = 0;
6232   void (*func) (OrcExecutor *);
6233
6234   if (!p_inited) {
6235     orc_once_mutex_lock ();
6236     if (!p_inited) {
6237       OrcProgram *p;
6238
6239       p = orc_program_new ();
6240       orc_program_set_name (p, "audio_convert_orc_pack_double_s16");
6241       orc_program_set_backup_function (p,
6242           _backup_audio_convert_orc_pack_double_s16);
6243       orc_program_add_destination (p, 2, "d1");
6244       orc_program_add_source (p, 8, "s1");
6245       orc_program_add_parameter (p, 4, "p1");
6246       orc_program_add_temporary (p, 4, "t1");
6247
6248       orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
6249           ORC_VAR_D1);
6250       orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
6251           ORC_VAR_D1);
6252       orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
6253           ORC_VAR_D1);
6254
6255       orc_program_compile (p);
6256       c = orc_program_take_code (p);
6257       orc_program_free (p);
6258     }
6259     p_inited = TRUE;
6260     orc_once_mutex_unlock ();
6261   }
6262   ex->arrays[ORC_VAR_A2] = c;
6263   ex->program = 0;
6264
6265   ex->n = n;
6266   ex->arrays[ORC_VAR_D1] = d1;
6267   ex->arrays[ORC_VAR_S1] = (void *) s1;
6268   ex->params[ORC_VAR_P1] = p1;
6269
6270   func = c->exec;
6271   func (ex);
6272 }
6273 #endif
6274
6275
6276 /* audio_convert_orc_pack_double_u16_swap */
6277 #ifdef DISABLE_ORC
6278 void
6279 audio_convert_orc_pack_double_u16_swap (guint8 * ORC_RESTRICT d1,
6280     const gdouble * ORC_RESTRICT s1, int p1, int n)
6281 {
6282   int i;
6283   orc_union16 *ORC_RESTRICT ptr0;
6284   const orc_union64 *ORC_RESTRICT ptr4;
6285   orc_union64 var34;
6286   orc_union32 var35;
6287   orc_union16 var36;
6288   orc_union32 var37;
6289   orc_union32 var38;
6290   orc_union32 var39;
6291   orc_union16 var40;
6292
6293   ptr0 = (orc_union16 *) d1;
6294   ptr4 = (orc_union64 *) s1;
6295
6296   /* 2: loadpl */
6297   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
6298
6299   for (i = 0; i < n; i++) {
6300     /* 0: loadq */
6301     var34 = ptr4[i];
6302     /* 1: convdl */
6303     {
6304       int tmp;
6305       tmp = var34.f;
6306       if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
6307         tmp = 0x7fffffff;
6308       var37.i = tmp;
6309     }
6310     /* 3: xorl */
6311     var38.i = var37.i ^ var35.i;
6312     /* 4: shrul */
6313     var39.i = ((orc_uint32) var38.i) >> p1;
6314     /* 5: convlw */
6315     var40.i = var39.i;
6316     /* 6: swapw */
6317     var36.i = ORC_SWAP_W (var40.i);
6318     /* 7: storew */
6319     ptr0[i] = var36;
6320   }
6321
6322 }
6323
6324 #else
6325 static void
6326 _backup_audio_convert_orc_pack_double_u16_swap (OrcExecutor * ORC_RESTRICT ex)
6327 {
6328   int i;
6329   int n = ex->n;
6330   orc_union16 *ORC_RESTRICT ptr0;
6331   const orc_union64 *ORC_RESTRICT ptr4;
6332   orc_union64 var34;
6333   orc_union32 var35;
6334   orc_union16 var36;
6335   orc_union32 var37;
6336   orc_union32 var38;
6337   orc_union32 var39;
6338   orc_union16 var40;
6339
6340   ptr0 = (orc_union16 *) ex->arrays[0];
6341   ptr4 = (orc_union64 *) ex->arrays[4];
6342
6343   /* 2: loadpl */
6344   var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
6345
6346   for (i = 0; i < n; i++) {
6347     /* 0: loadq */
6348     var34 = ptr4[i];
6349     /* 1: convdl */
6350     {
6351       int tmp;
6352       tmp = var34.f;
6353       if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
6354         tmp = 0x7fffffff;
6355       var37.i = tmp;
6356     }
6357     /* 3: xorl */
6358     var38.i = var37.i ^ var35.i;
6359     /* 4: shrul */
6360     var39.i = ((orc_uint32) var38.i) >> ex->params[24];
6361     /* 5: convlw */
6362     var40.i = var39.i;
6363     /* 6: swapw */
6364     var36.i = ORC_SWAP_W (var40.i);
6365     /* 7: storew */
6366     ptr0[i] = var36;
6367   }
6368
6369 }
6370
6371 void
6372 audio_convert_orc_pack_double_u16_swap (guint8 * ORC_RESTRICT d1,
6373     const gdouble * ORC_RESTRICT s1, int p1, int n)
6374 {
6375   OrcExecutor _ex, *ex = &_ex;
6376   static volatile int p_inited = 0;
6377   static OrcCode *c = 0;
6378   void (*func) (OrcExecutor *);
6379
6380   if (!p_inited) {
6381     orc_once_mutex_lock ();
6382     if (!p_inited) {
6383       OrcProgram *p;
6384
6385       p = orc_program_new ();
6386       orc_program_set_name (p, "audio_convert_orc_pack_double_u16_swap");
6387       orc_program_set_backup_function (p,
6388           _backup_audio_convert_orc_pack_double_u16_swap);
6389       orc_program_add_destination (p, 2, "d1");
6390       orc_program_add_source (p, 8, "s1");
6391       orc_program_add_constant (p, 4, 0x80000000, "c1");
6392       orc_program_add_parameter (p, 4, "p1");
6393       orc_program_add_temporary (p, 4, "t1");
6394       orc_program_add_temporary (p, 2, "t2");
6395
6396       orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
6397           ORC_VAR_D1);
6398       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
6399           ORC_VAR_D1);
6400       orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
6401           ORC_VAR_D1);
6402       orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
6403           ORC_VAR_D1);
6404       orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
6405           ORC_VAR_D1);
6406
6407       orc_program_compile (p);
6408       c = orc_program_take_code (p);
6409       orc_program_free (p);
6410     }
6411     p_inited = TRUE;
6412     orc_once_mutex_unlock ();
6413   }
6414   ex->arrays[ORC_VAR_A2] = c;
6415   ex->program = 0;
6416
6417   ex->n = n;
6418   ex->arrays[ORC_VAR_D1] = d1;
6419   ex->arrays[ORC_VAR_S1] = (void *) s1;
6420   ex->params[ORC_VAR_P1] = p1;
6421
6422   func = c->exec;
6423   func (ex);
6424 }
6425 #endif
6426
6427
6428 /* audio_convert_orc_pack_double_s16_swap */
6429 #ifdef DISABLE_ORC
6430 void
6431 audio_convert_orc_pack_double_s16_swap (guint8 * ORC_RESTRICT d1,
6432     const gdouble * ORC_RESTRICT s1, int p1, int n)
6433 {
6434   int i;
6435   orc_union16 *ORC_RESTRICT ptr0;
6436   const orc_union64 *ORC_RESTRICT ptr4;
6437   orc_union64 var34;
6438   orc_union16 var35;
6439   orc_union32 var36;
6440   orc_union32 var37;
6441   orc_union16 var38;
6442
6443   ptr0 = (orc_union16 *) d1;
6444   ptr4 = (orc_union64 *) s1;
6445
6446
6447   for (i = 0; i < n; i++) {
6448     /* 0: loadq */
6449     var34 = ptr4[i];
6450     /* 1: convdl */
6451     {
6452       int tmp;
6453       tmp = var34.f;
6454       if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
6455         tmp = 0x7fffffff;
6456       var36.i = tmp;
6457     }
6458     /* 2: shrsl */
6459     var37.i = var36.i >> p1;
6460     /* 3: convlw */
6461     var38.i = var37.i;
6462     /* 4: swapw */
6463     var35.i = ORC_SWAP_W (var38.i);
6464     /* 5: storew */
6465     ptr0[i] = var35;
6466   }
6467
6468 }
6469
6470 #else
6471 static void
6472 _backup_audio_convert_orc_pack_double_s16_swap (OrcExecutor * ORC_RESTRICT ex)
6473 {
6474   int i;
6475   int n = ex->n;
6476   orc_union16 *ORC_RESTRICT ptr0;
6477   const orc_union64 *ORC_RESTRICT ptr4;
6478   orc_union64 var34;
6479   orc_union16 var35;
6480   orc_union32 var36;
6481   orc_union32 var37;
6482   orc_union16 var38;
6483
6484   ptr0 = (orc_union16 *) ex->arrays[0];
6485   ptr4 = (orc_union64 *) ex->arrays[4];
6486
6487
6488   for (i = 0; i < n; i++) {
6489     /* 0: loadq */
6490     var34 = ptr4[i];
6491     /* 1: convdl */
6492     {
6493       int tmp;
6494       tmp = var34.f;
6495       if (tmp == 0x80000000 && !(var34.i & ORC_UINT64_C (0x8000000000000000)))
6496         tmp = 0x7fffffff;
6497       var36.i = tmp;
6498     }
6499     /* 2: shrsl */
6500     var37.i = var36.i >> ex->params[24];
6501     /* 3: convlw */
6502     var38.i = var37.i;
6503     /* 4: swapw */
6504     var35.i = ORC_SWAP_W (var38.i);
6505     /* 5: storew */
6506     ptr0[i] = var35;
6507   }
6508
6509 }
6510
6511 void
6512 audio_convert_orc_pack_double_s16_swap (guint8 * ORC_RESTRICT d1,
6513     const gdouble * ORC_RESTRICT s1, int p1, int n)
6514 {
6515   OrcExecutor _ex, *ex = &_ex;
6516   static volatile int p_inited = 0;
6517   static OrcCode *c = 0;
6518   void (*func) (OrcExecutor *);
6519
6520   if (!p_inited) {
6521     orc_once_mutex_lock ();
6522     if (!p_inited) {
6523       OrcProgram *p;
6524
6525       p = orc_program_new ();
6526       orc_program_set_name (p, "audio_convert_orc_pack_double_s16_swap");
6527       orc_program_set_backup_function (p,
6528           _backup_audio_convert_orc_pack_double_s16_swap);
6529       orc_program_add_destination (p, 2, "d1");
6530       orc_program_add_source (p, 8, "s1");
6531       orc_program_add_parameter (p, 4, "p1");
6532       orc_program_add_temporary (p, 4, "t1");
6533       orc_program_add_temporary (p, 2, "t2");
6534
6535       orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
6536           ORC_VAR_D1);
6537       orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
6538           ORC_VAR_D1);
6539       orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
6540           ORC_VAR_D1);
6541       orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
6542           ORC_VAR_D1);
6543
6544       orc_program_compile (p);
6545       c = orc_program_take_code (p);
6546       orc_program_free (p);
6547     }
6548     p_inited = TRUE;
6549     orc_once_mutex_unlock ();
6550   }
6551   ex->arrays[ORC_VAR_A2] = c;
6552   ex->program = 0;
6553
6554   ex->n = n;
6555   ex->arrays[ORC_VAR_D1] = d1;
6556   ex->arrays[ORC_VAR_S1] = (void *) s1;
6557   ex->params[ORC_VAR_P1] = p1;
6558
6559   func = c->exec;
6560   func (ex);
6561 }
6562 #endif
6563
6564
6565 /* audio_convert_orc_pack_double_u32 */
6566 #ifdef DISABLE_ORC
6567 void
6568 audio_convert_orc_pack_double_u32 (guint8 * ORC_RESTRICT d1,
6569     const gdouble * ORC_RESTRICT s1, int p1, int n)
6570 {
6571   int i;
6572   orc_union32 *ORC_RESTRICT ptr0;
6573   const orc_union64 *ORC_RESTRICT ptr4;
6574   orc_union64 var33;
6575   orc_union32 var34;
6576   orc_union32 var35;
6577   orc_union32 var36;
6578   orc_union32 var37;
6579
6580   ptr0 = (orc_union32 *) d1;
6581   ptr4 = (orc_union64 *) s1;
6582
6583   /* 2: loadpl */
6584   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
6585
6586   for (i = 0; i < n; i++) {
6587     /* 0: loadq */
6588     var33 = ptr4[i];
6589     /* 1: convdl */
6590     {
6591       int tmp;
6592       tmp = var33.f;
6593       if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
6594         tmp = 0x7fffffff;
6595       var36.i = tmp;
6596     }
6597     /* 3: xorl */
6598     var37.i = var36.i ^ var34.i;
6599     /* 4: shrul */
6600     var35.i = ((orc_uint32) var37.i) >> p1;
6601     /* 5: storel */
6602     ptr0[i] = var35;
6603   }
6604
6605 }
6606
6607 #else
6608 static void
6609 _backup_audio_convert_orc_pack_double_u32 (OrcExecutor * ORC_RESTRICT ex)
6610 {
6611   int i;
6612   int n = ex->n;
6613   orc_union32 *ORC_RESTRICT ptr0;
6614   const orc_union64 *ORC_RESTRICT ptr4;
6615   orc_union64 var33;
6616   orc_union32 var34;
6617   orc_union32 var35;
6618   orc_union32 var36;
6619   orc_union32 var37;
6620
6621   ptr0 = (orc_union32 *) ex->arrays[0];
6622   ptr4 = (orc_union64 *) ex->arrays[4];
6623
6624   /* 2: loadpl */
6625   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
6626
6627   for (i = 0; i < n; i++) {
6628     /* 0: loadq */
6629     var33 = ptr4[i];
6630     /* 1: convdl */
6631     {
6632       int tmp;
6633       tmp = var33.f;
6634       if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
6635         tmp = 0x7fffffff;
6636       var36.i = tmp;
6637     }
6638     /* 3: xorl */
6639     var37.i = var36.i ^ var34.i;
6640     /* 4: shrul */
6641     var35.i = ((orc_uint32) var37.i) >> ex->params[24];
6642     /* 5: storel */
6643     ptr0[i] = var35;
6644   }
6645
6646 }
6647
6648 void
6649 audio_convert_orc_pack_double_u32 (guint8 * ORC_RESTRICT d1,
6650     const gdouble * ORC_RESTRICT s1, int p1, int n)
6651 {
6652   OrcExecutor _ex, *ex = &_ex;
6653   static volatile int p_inited = 0;
6654   static OrcCode *c = 0;
6655   void (*func) (OrcExecutor *);
6656
6657   if (!p_inited) {
6658     orc_once_mutex_lock ();
6659     if (!p_inited) {
6660       OrcProgram *p;
6661
6662       p = orc_program_new ();
6663       orc_program_set_name (p, "audio_convert_orc_pack_double_u32");
6664       orc_program_set_backup_function (p,
6665           _backup_audio_convert_orc_pack_double_u32);
6666       orc_program_add_destination (p, 4, "d1");
6667       orc_program_add_source (p, 8, "s1");
6668       orc_program_add_constant (p, 4, 0x80000000, "c1");
6669       orc_program_add_parameter (p, 4, "p1");
6670       orc_program_add_temporary (p, 4, "t1");
6671
6672       orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
6673           ORC_VAR_D1);
6674       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
6675           ORC_VAR_D1);
6676       orc_program_append_2 (p, "shrul", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_P1,
6677           ORC_VAR_D1);
6678
6679       orc_program_compile (p);
6680       c = orc_program_take_code (p);
6681       orc_program_free (p);
6682     }
6683     p_inited = TRUE;
6684     orc_once_mutex_unlock ();
6685   }
6686   ex->arrays[ORC_VAR_A2] = c;
6687   ex->program = 0;
6688
6689   ex->n = n;
6690   ex->arrays[ORC_VAR_D1] = d1;
6691   ex->arrays[ORC_VAR_S1] = (void *) s1;
6692   ex->params[ORC_VAR_P1] = p1;
6693
6694   func = c->exec;
6695   func (ex);
6696 }
6697 #endif
6698
6699
6700 /* audio_convert_orc_pack_double_s32 */
6701 #ifdef DISABLE_ORC
6702 void
6703 audio_convert_orc_pack_double_s32 (guint8 * ORC_RESTRICT d1,
6704     const gdouble * ORC_RESTRICT s1, int p1, int n)
6705 {
6706   int i;
6707   orc_union32 *ORC_RESTRICT ptr0;
6708   const orc_union64 *ORC_RESTRICT ptr4;
6709   orc_union64 var33;
6710   orc_union32 var34;
6711   orc_union32 var35;
6712
6713   ptr0 = (orc_union32 *) d1;
6714   ptr4 = (orc_union64 *) s1;
6715
6716
6717   for (i = 0; i < n; i++) {
6718     /* 0: loadq */
6719     var33 = ptr4[i];
6720     /* 1: convdl */
6721     {
6722       int tmp;
6723       tmp = var33.f;
6724       if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
6725         tmp = 0x7fffffff;
6726       var35.i = tmp;
6727     }
6728     /* 2: shrsl */
6729     var34.i = var35.i >> p1;
6730     /* 3: storel */
6731     ptr0[i] = var34;
6732   }
6733
6734 }
6735
6736 #else
6737 static void
6738 _backup_audio_convert_orc_pack_double_s32 (OrcExecutor * ORC_RESTRICT ex)
6739 {
6740   int i;
6741   int n = ex->n;
6742   orc_union32 *ORC_RESTRICT ptr0;
6743   const orc_union64 *ORC_RESTRICT ptr4;
6744   orc_union64 var33;
6745   orc_union32 var34;
6746   orc_union32 var35;
6747
6748   ptr0 = (orc_union32 *) ex->arrays[0];
6749   ptr4 = (orc_union64 *) ex->arrays[4];
6750
6751
6752   for (i = 0; i < n; i++) {
6753     /* 0: loadq */
6754     var33 = ptr4[i];
6755     /* 1: convdl */
6756     {
6757       int tmp;
6758       tmp = var33.f;
6759       if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
6760         tmp = 0x7fffffff;
6761       var35.i = tmp;
6762     }
6763     /* 2: shrsl */
6764     var34.i = var35.i >> ex->params[24];
6765     /* 3: storel */
6766     ptr0[i] = var34;
6767   }
6768
6769 }
6770
6771 void
6772 audio_convert_orc_pack_double_s32 (guint8 * ORC_RESTRICT d1,
6773     const gdouble * ORC_RESTRICT s1, int p1, int n)
6774 {
6775   OrcExecutor _ex, *ex = &_ex;
6776   static volatile int p_inited = 0;
6777   static OrcCode *c = 0;
6778   void (*func) (OrcExecutor *);
6779
6780   if (!p_inited) {
6781     orc_once_mutex_lock ();
6782     if (!p_inited) {
6783       OrcProgram *p;
6784
6785       p = orc_program_new ();
6786       orc_program_set_name (p, "audio_convert_orc_pack_double_s32");
6787       orc_program_set_backup_function (p,
6788           _backup_audio_convert_orc_pack_double_s32);
6789       orc_program_add_destination (p, 4, "d1");
6790       orc_program_add_source (p, 8, "s1");
6791       orc_program_add_parameter (p, 4, "p1");
6792       orc_program_add_temporary (p, 4, "t1");
6793
6794       orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
6795           ORC_VAR_D1);
6796       orc_program_append_2 (p, "shrsl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_P1,
6797           ORC_VAR_D1);
6798
6799       orc_program_compile (p);
6800       c = orc_program_take_code (p);
6801       orc_program_free (p);
6802     }
6803     p_inited = TRUE;
6804     orc_once_mutex_unlock ();
6805   }
6806   ex->arrays[ORC_VAR_A2] = c;
6807   ex->program = 0;
6808
6809   ex->n = n;
6810   ex->arrays[ORC_VAR_D1] = d1;
6811   ex->arrays[ORC_VAR_S1] = (void *) s1;
6812   ex->params[ORC_VAR_P1] = p1;
6813
6814   func = c->exec;
6815   func (ex);
6816 }
6817 #endif
6818
6819
6820 /* audio_convert_orc_pack_double_u32_swap */
6821 #ifdef DISABLE_ORC
6822 void
6823 audio_convert_orc_pack_double_u32_swap (guint8 * ORC_RESTRICT d1,
6824     const gdouble * ORC_RESTRICT s1, int p1, int n)
6825 {
6826   int i;
6827   orc_union32 *ORC_RESTRICT ptr0;
6828   const orc_union64 *ORC_RESTRICT ptr4;
6829   orc_union64 var33;
6830   orc_union32 var34;
6831   orc_union32 var35;
6832   orc_union32 var36;
6833   orc_union32 var37;
6834   orc_union32 var38;
6835
6836   ptr0 = (orc_union32 *) d1;
6837   ptr4 = (orc_union64 *) s1;
6838
6839   /* 2: loadpl */
6840   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
6841
6842   for (i = 0; i < n; i++) {
6843     /* 0: loadq */
6844     var33 = ptr4[i];
6845     /* 1: convdl */
6846     {
6847       int tmp;
6848       tmp = var33.f;
6849       if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
6850         tmp = 0x7fffffff;
6851       var36.i = tmp;
6852     }
6853     /* 3: xorl */
6854     var37.i = var36.i ^ var34.i;
6855     /* 4: shrul */
6856     var38.i = ((orc_uint32) var37.i) >> p1;
6857     /* 5: swapl */
6858     var35.i = ORC_SWAP_L (var38.i);
6859     /* 6: storel */
6860     ptr0[i] = var35;
6861   }
6862
6863 }
6864
6865 #else
6866 static void
6867 _backup_audio_convert_orc_pack_double_u32_swap (OrcExecutor * ORC_RESTRICT ex)
6868 {
6869   int i;
6870   int n = ex->n;
6871   orc_union32 *ORC_RESTRICT ptr0;
6872   const orc_union64 *ORC_RESTRICT ptr4;
6873   orc_union64 var33;
6874   orc_union32 var34;
6875   orc_union32 var35;
6876   orc_union32 var36;
6877   orc_union32 var37;
6878   orc_union32 var38;
6879
6880   ptr0 = (orc_union32 *) ex->arrays[0];
6881   ptr4 = (orc_union64 *) ex->arrays[4];
6882
6883   /* 2: loadpl */
6884   var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
6885
6886   for (i = 0; i < n; i++) {
6887     /* 0: loadq */
6888     var33 = ptr4[i];
6889     /* 1: convdl */
6890     {
6891       int tmp;
6892       tmp = var33.f;
6893       if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
6894         tmp = 0x7fffffff;
6895       var36.i = tmp;
6896     }
6897     /* 3: xorl */
6898     var37.i = var36.i ^ var34.i;
6899     /* 4: shrul */
6900     var38.i = ((orc_uint32) var37.i) >> ex->params[24];
6901     /* 5: swapl */
6902     var35.i = ORC_SWAP_L (var38.i);
6903     /* 6: storel */
6904     ptr0[i] = var35;
6905   }
6906
6907 }
6908
6909 void
6910 audio_convert_orc_pack_double_u32_swap (guint8 * ORC_RESTRICT d1,
6911     const gdouble * ORC_RESTRICT s1, int p1, int n)
6912 {
6913   OrcExecutor _ex, *ex = &_ex;
6914   static volatile int p_inited = 0;
6915   static OrcCode *c = 0;
6916   void (*func) (OrcExecutor *);
6917
6918   if (!p_inited) {
6919     orc_once_mutex_lock ();
6920     if (!p_inited) {
6921       OrcProgram *p;
6922
6923       p = orc_program_new ();
6924       orc_program_set_name (p, "audio_convert_orc_pack_double_u32_swap");
6925       orc_program_set_backup_function (p,
6926           _backup_audio_convert_orc_pack_double_u32_swap);
6927       orc_program_add_destination (p, 4, "d1");
6928       orc_program_add_source (p, 8, "s1");
6929       orc_program_add_constant (p, 4, 0x80000000, "c1");
6930       orc_program_add_parameter (p, 4, "p1");
6931       orc_program_add_temporary (p, 4, "t1");
6932
6933       orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
6934           ORC_VAR_D1);
6935       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
6936           ORC_VAR_D1);
6937       orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
6938           ORC_VAR_D1);
6939       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
6940           ORC_VAR_D1);
6941
6942       orc_program_compile (p);
6943       c = orc_program_take_code (p);
6944       orc_program_free (p);
6945     }
6946     p_inited = TRUE;
6947     orc_once_mutex_unlock ();
6948   }
6949   ex->arrays[ORC_VAR_A2] = c;
6950   ex->program = 0;
6951
6952   ex->n = n;
6953   ex->arrays[ORC_VAR_D1] = d1;
6954   ex->arrays[ORC_VAR_S1] = (void *) s1;
6955   ex->params[ORC_VAR_P1] = p1;
6956
6957   func = c->exec;
6958   func (ex);
6959 }
6960 #endif
6961
6962
6963 /* audio_convert_orc_pack_double_s32_swap */
6964 #ifdef DISABLE_ORC
6965 void
6966 audio_convert_orc_pack_double_s32_swap (guint8 * ORC_RESTRICT d1,
6967     const gdouble * ORC_RESTRICT s1, int p1, int n)
6968 {
6969   int i;
6970   orc_union32 *ORC_RESTRICT ptr0;
6971   const orc_union64 *ORC_RESTRICT ptr4;
6972   orc_union64 var33;
6973   orc_union32 var34;
6974   orc_union32 var35;
6975   orc_union32 var36;
6976
6977   ptr0 = (orc_union32 *) d1;
6978   ptr4 = (orc_union64 *) s1;
6979
6980
6981   for (i = 0; i < n; i++) {
6982     /* 0: loadq */
6983     var33 = ptr4[i];
6984     /* 1: convdl */
6985     {
6986       int tmp;
6987       tmp = var33.f;
6988       if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
6989         tmp = 0x7fffffff;
6990       var35.i = tmp;
6991     }
6992     /* 2: shrsl */
6993     var36.i = var35.i >> p1;
6994     /* 3: swapl */
6995     var34.i = ORC_SWAP_L (var36.i);
6996     /* 4: storel */
6997     ptr0[i] = var34;
6998   }
6999
7000 }
7001
7002 #else
7003 static void
7004 _backup_audio_convert_orc_pack_double_s32_swap (OrcExecutor * ORC_RESTRICT ex)
7005 {
7006   int i;
7007   int n = ex->n;
7008   orc_union32 *ORC_RESTRICT ptr0;
7009   const orc_union64 *ORC_RESTRICT ptr4;
7010   orc_union64 var33;
7011   orc_union32 var34;
7012   orc_union32 var35;
7013   orc_union32 var36;
7014
7015   ptr0 = (orc_union32 *) ex->arrays[0];
7016   ptr4 = (orc_union64 *) ex->arrays[4];
7017
7018
7019   for (i = 0; i < n; i++) {
7020     /* 0: loadq */
7021     var33 = ptr4[i];
7022     /* 1: convdl */
7023     {
7024       int tmp;
7025       tmp = var33.f;
7026       if (tmp == 0x80000000 && !(var33.i & ORC_UINT64_C (0x8000000000000000)))
7027         tmp = 0x7fffffff;
7028       var35.i = tmp;
7029     }
7030     /* 2: shrsl */
7031     var36.i = var35.i >> ex->params[24];
7032     /* 3: swapl */
7033     var34.i = ORC_SWAP_L (var36.i);
7034     /* 4: storel */
7035     ptr0[i] = var34;
7036   }
7037
7038 }
7039
7040 void
7041 audio_convert_orc_pack_double_s32_swap (guint8 * ORC_RESTRICT d1,
7042     const gdouble * ORC_RESTRICT s1, int p1, int n)
7043 {
7044   OrcExecutor _ex, *ex = &_ex;
7045   static volatile int p_inited = 0;
7046   static OrcCode *c = 0;
7047   void (*func) (OrcExecutor *);
7048
7049   if (!p_inited) {
7050     orc_once_mutex_lock ();
7051     if (!p_inited) {
7052       OrcProgram *p;
7053
7054       p = orc_program_new ();
7055       orc_program_set_name (p, "audio_convert_orc_pack_double_s32_swap");
7056       orc_program_set_backup_function (p,
7057           _backup_audio_convert_orc_pack_double_s32_swap);
7058       orc_program_add_destination (p, 4, "d1");
7059       orc_program_add_source (p, 8, "s1");
7060       orc_program_add_parameter (p, 4, "p1");
7061       orc_program_add_temporary (p, 4, "t1");
7062
7063       orc_program_append_2 (p, "convdl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
7064           ORC_VAR_D1);
7065       orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
7066           ORC_VAR_D1);
7067       orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
7068           ORC_VAR_D1);
7069
7070       orc_program_compile (p);
7071       c = orc_program_take_code (p);
7072       orc_program_free (p);
7073     }
7074     p_inited = TRUE;
7075     orc_once_mutex_unlock ();
7076   }
7077   ex->arrays[ORC_VAR_A2] = c;
7078   ex->program = 0;
7079
7080   ex->n = n;
7081   ex->arrays[ORC_VAR_D1] = d1;
7082   ex->arrays[ORC_VAR_S1] = (void *) s1;
7083   ex->params[ORC_VAR_P1] = p1;
7084
7085   func = c->exec;
7086   func (ex);
7087 }
7088 #endif