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