Added gst-plugins-base-subtitles0.10-0.10.34 for Meego Harmattan 1.2
[mafwsubrenderer] / gst-plugins-base-subtitles0.10 / gst / volume / gstvolumeorc-dist.c
1
2 /* autogenerated from gstvolumeorc.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_scalarmultiply_f64_ns (double *ORC_RESTRICT d1, double p1, int n);
86 void orc_scalarmultiply_f32_ns (float *ORC_RESTRICT d1, float p1, int n);
87 void orc_process_int32 (gint32 * ORC_RESTRICT d1, int p1, int n);
88 void orc_process_int32_clamp (gint32 * ORC_RESTRICT d1, int p1, int n);
89 void orc_process_int16 (gint16 * ORC_RESTRICT d1, int p1, int n);
90 void orc_process_int16_clamp (gint16 * ORC_RESTRICT d1, int p1, int n);
91 void orc_process_int8 (gint8 * ORC_RESTRICT d1, int p1, int n);
92 void orc_process_int8_clamp (gint8 * ORC_RESTRICT d1, int p1, int n);
93 void orc_memset_f64 (gdouble * ORC_RESTRICT d1, double p1, int n);
94 void orc_prepare_volumes (gdouble * ORC_RESTRICT d1,
95     const gboolean * ORC_RESTRICT s1, int n);
96 void orc_process_controlled_f64_1ch (gdouble * ORC_RESTRICT d1,
97     const gdouble * ORC_RESTRICT s1, int n);
98 void orc_process_controlled_f32_1ch (gfloat * ORC_RESTRICT d1,
99     const gdouble * ORC_RESTRICT s1, int n);
100 void orc_process_controlled_f32_2ch (gfloat * ORC_RESTRICT d1,
101     const gdouble * ORC_RESTRICT s1, int n);
102 void orc_process_controlled_int32_1ch (gint32 * ORC_RESTRICT d1,
103     const gdouble * ORC_RESTRICT s1, int n);
104 void orc_process_controlled_int16_1ch (gint16 * ORC_RESTRICT d1,
105     const gdouble * ORC_RESTRICT s1, int n);
106 void orc_process_controlled_int16_2ch (gint16 * ORC_RESTRICT d1,
107     const gdouble * ORC_RESTRICT s1, int n);
108 void orc_process_controlled_int8_1ch (gint8 * ORC_RESTRICT d1,
109     const gdouble * ORC_RESTRICT s1, int n);
110 void orc_process_controlled_int8_2ch (gint8 * ORC_RESTRICT d1,
111     const gdouble * ORC_RESTRICT s1, int n);
112
113 void gst_volume_orc_init (void);
114
115
116 /* begin Orc C target preamble */
117 #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
118 #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
119 #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
120 #define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
121 #define ORC_SB_MAX 127
122 #define ORC_SB_MIN (-1-ORC_SB_MAX)
123 #define ORC_UB_MAX 255
124 #define ORC_UB_MIN 0
125 #define ORC_SW_MAX 32767
126 #define ORC_SW_MIN (-1-ORC_SW_MAX)
127 #define ORC_UW_MAX 65535
128 #define ORC_UW_MIN 0
129 #define ORC_SL_MAX 2147483647
130 #define ORC_SL_MIN (-1-ORC_SL_MAX)
131 #define ORC_UL_MAX 4294967295U
132 #define ORC_UL_MIN 0
133 #define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
134 #define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
135 #define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
136 #define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
137 #define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
138 #define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
139 #define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))
140 #define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))
141 #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))
142 #define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
143 #define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
144 #define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
145 #define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
146 #define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
147 #ifndef ORC_RESTRICT
148 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
149 #define ORC_RESTRICT restrict
150 #elif defined(__GNUC__) && __GNUC__ >= 4
151 #define ORC_RESTRICT __restrict__
152 #else
153 #define ORC_RESTRICT
154 #endif
155 #endif
156 /* end Orc C target preamble */
157
158
159
160 /* orc_scalarmultiply_f64_ns */
161 #ifdef DISABLE_ORC
162 void
163 orc_scalarmultiply_f64_ns (double *ORC_RESTRICT d1, double p1, int n)
164 {
165   int i;
166   orc_union64 *ORC_RESTRICT ptr0;
167   orc_union64 var32;
168   orc_union64 var33;
169   orc_union64 var34;
170
171   ptr0 = (orc_union64 *) d1;
172
173   /* 1: loadpq */
174   var33.f = p1;
175
176   for (i = 0; i < n; i++) {
177     /* 0: loadq */
178     var32 = ptr0[i];
179     /* 2: muld */
180     {
181       orc_union64 _src1;
182       orc_union64 _src2;
183       orc_union64 _dest1;
184       _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
185       _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
186       _dest1.f = _src1.f * _src2.f;
187       var34.i = ORC_DENORMAL_DOUBLE (_dest1.i);
188     }
189     /* 3: storeq */
190     ptr0[i] = var34;
191   }
192
193 }
194
195 #else
196 static void
197 _backup_orc_scalarmultiply_f64_ns (OrcExecutor * ORC_RESTRICT ex)
198 {
199   int i;
200   int n = ex->n;
201   orc_union64 *ORC_RESTRICT ptr0;
202   orc_union64 var32;
203   orc_union64 var33;
204   orc_union64 var34;
205
206   ptr0 = (orc_union64 *) ex->arrays[0];
207
208   /* 1: loadpq */
209   var33.i =
210       (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
211               (ORC_VAR_T1 - ORC_VAR_P1)]) << 32);
212
213   for (i = 0; i < n; i++) {
214     /* 0: loadq */
215     var32 = ptr0[i];
216     /* 2: muld */
217     {
218       orc_union64 _src1;
219       orc_union64 _src2;
220       orc_union64 _dest1;
221       _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
222       _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
223       _dest1.f = _src1.f * _src2.f;
224       var34.i = ORC_DENORMAL_DOUBLE (_dest1.i);
225     }
226     /* 3: storeq */
227     ptr0[i] = var34;
228   }
229
230 }
231
232 static OrcProgram *_orc_program_orc_scalarmultiply_f64_ns;
233 void
234 orc_scalarmultiply_f64_ns (double *ORC_RESTRICT d1, double p1, int n)
235 {
236   OrcExecutor _ex, *ex = &_ex;
237   OrcProgram *p = _orc_program_orc_scalarmultiply_f64_ns;
238   void (*func) (OrcExecutor *);
239
240   ex->program = p;
241
242   ex->n = n;
243   ex->arrays[ORC_VAR_D1] = d1;
244   {
245     orc_union64 tmp;
246     tmp.f = p1;
247     ex->params[ORC_VAR_P1] = tmp.x2[0];
248     ex->params[ORC_VAR_T1] = tmp.x2[1];
249   }
250
251   func = p->code_exec;
252   func (ex);
253 }
254 #endif
255
256
257 /* orc_scalarmultiply_f32_ns */
258 #ifdef DISABLE_ORC
259 void
260 orc_scalarmultiply_f32_ns (float *ORC_RESTRICT d1, float p1, int n)
261 {
262   int i;
263   orc_union32 *ORC_RESTRICT ptr0;
264   orc_union32 var32;
265   orc_union32 var33;
266   orc_union32 var34;
267
268   ptr0 = (orc_union32 *) d1;
269
270   /* 1: loadpl */
271   var33.f = p1;
272
273   for (i = 0; i < n; i++) {
274     /* 0: loadl */
275     var32 = ptr0[i];
276     /* 2: mulf */
277     {
278       orc_union32 _src1;
279       orc_union32 _src2;
280       orc_union32 _dest1;
281       _src1.i = ORC_DENORMAL (var32.i);
282       _src2.i = ORC_DENORMAL (var33.i);
283       _dest1.f = _src1.f * _src2.f;
284       var34.i = ORC_DENORMAL (_dest1.i);
285     }
286     /* 3: storel */
287     ptr0[i] = var34;
288   }
289
290 }
291
292 #else
293 static void
294 _backup_orc_scalarmultiply_f32_ns (OrcExecutor * ORC_RESTRICT ex)
295 {
296   int i;
297   int n = ex->n;
298   orc_union32 *ORC_RESTRICT ptr0;
299   orc_union32 var32;
300   orc_union32 var33;
301   orc_union32 var34;
302
303   ptr0 = (orc_union32 *) ex->arrays[0];
304
305   /* 1: loadpl */
306   var33.i = ex->params[24];
307
308   for (i = 0; i < n; i++) {
309     /* 0: loadl */
310     var32 = ptr0[i];
311     /* 2: mulf */
312     {
313       orc_union32 _src1;
314       orc_union32 _src2;
315       orc_union32 _dest1;
316       _src1.i = ORC_DENORMAL (var32.i);
317       _src2.i = ORC_DENORMAL (var33.i);
318       _dest1.f = _src1.f * _src2.f;
319       var34.i = ORC_DENORMAL (_dest1.i);
320     }
321     /* 3: storel */
322     ptr0[i] = var34;
323   }
324
325 }
326
327 static OrcProgram *_orc_program_orc_scalarmultiply_f32_ns;
328 void
329 orc_scalarmultiply_f32_ns (float *ORC_RESTRICT d1, float p1, int n)
330 {
331   OrcExecutor _ex, *ex = &_ex;
332   OrcProgram *p = _orc_program_orc_scalarmultiply_f32_ns;
333   void (*func) (OrcExecutor *);
334
335   ex->program = p;
336
337   ex->n = n;
338   ex->arrays[ORC_VAR_D1] = d1;
339   {
340     orc_union32 tmp;
341     tmp.f = p1;
342     ex->params[ORC_VAR_P1] = tmp.i;
343   }
344
345   func = p->code_exec;
346   func (ex);
347 }
348 #endif
349
350
351 /* orc_process_int32 */
352 #ifdef DISABLE_ORC
353 void
354 orc_process_int32 (gint32 * ORC_RESTRICT d1, int p1, int n)
355 {
356   int i;
357   orc_union32 *ORC_RESTRICT ptr0;
358   orc_union32 var33;
359   orc_union32 var34;
360   orc_union32 var35;
361   orc_union64 var36;
362   orc_union64 var37;
363
364   ptr0 = (orc_union32 *) d1;
365
366   /* 1: loadpl */
367   var34.i = p1;
368
369   for (i = 0; i < n; i++) {
370     /* 0: loadl */
371     var33 = ptr0[i];
372     /* 2: mulslq */
373     var36.i = ((orc_int64) var33.i) * ((orc_int64) var34.i);
374     /* 3: shrsq */
375     var37.i = var36.i >> 27;
376     /* 4: convql */
377     var35.i = var37.i;
378     /* 5: storel */
379     ptr0[i] = var35;
380   }
381
382 }
383
384 #else
385 static void
386 _backup_orc_process_int32 (OrcExecutor * ORC_RESTRICT ex)
387 {
388   int i;
389   int n = ex->n;
390   orc_union32 *ORC_RESTRICT ptr0;
391   orc_union32 var33;
392   orc_union32 var34;
393   orc_union32 var35;
394   orc_union64 var36;
395   orc_union64 var37;
396
397   ptr0 = (orc_union32 *) ex->arrays[0];
398
399   /* 1: loadpl */
400   var34.i = ex->params[24];
401
402   for (i = 0; i < n; i++) {
403     /* 0: loadl */
404     var33 = ptr0[i];
405     /* 2: mulslq */
406     var36.i = ((orc_int64) var33.i) * ((orc_int64) var34.i);
407     /* 3: shrsq */
408     var37.i = var36.i >> 27;
409     /* 4: convql */
410     var35.i = var37.i;
411     /* 5: storel */
412     ptr0[i] = var35;
413   }
414
415 }
416
417 static OrcProgram *_orc_program_orc_process_int32;
418 void
419 orc_process_int32 (gint32 * ORC_RESTRICT d1, int p1, int n)
420 {
421   OrcExecutor _ex, *ex = &_ex;
422   OrcProgram *p = _orc_program_orc_process_int32;
423   void (*func) (OrcExecutor *);
424
425   ex->program = p;
426
427   ex->n = n;
428   ex->arrays[ORC_VAR_D1] = d1;
429   ex->params[ORC_VAR_P1] = p1;
430
431   func = p->code_exec;
432   func (ex);
433 }
434 #endif
435
436
437 /* orc_process_int32_clamp */
438 #ifdef DISABLE_ORC
439 void
440 orc_process_int32_clamp (gint32 * ORC_RESTRICT d1, int p1, int n)
441 {
442   int i;
443   orc_union32 *ORC_RESTRICT ptr0;
444   orc_union32 var33;
445   orc_union32 var34;
446   orc_union32 var35;
447   orc_union64 var36;
448   orc_union64 var37;
449
450   ptr0 = (orc_union32 *) d1;
451
452   /* 1: loadpl */
453   var34.i = p1;
454
455   for (i = 0; i < n; i++) {
456     /* 0: loadl */
457     var33 = ptr0[i];
458     /* 2: mulslq */
459     var36.i = ((orc_int64) var33.i) * ((orc_int64) var34.i);
460     /* 3: shrsq */
461     var37.i = var36.i >> 27;
462     /* 4: convsssql */
463     var35.i = ORC_CLAMP_SL (var37.i);
464     /* 5: storel */
465     ptr0[i] = var35;
466   }
467
468 }
469
470 #else
471 static void
472 _backup_orc_process_int32_clamp (OrcExecutor * ORC_RESTRICT ex)
473 {
474   int i;
475   int n = ex->n;
476   orc_union32 *ORC_RESTRICT ptr0;
477   orc_union32 var33;
478   orc_union32 var34;
479   orc_union32 var35;
480   orc_union64 var36;
481   orc_union64 var37;
482
483   ptr0 = (orc_union32 *) ex->arrays[0];
484
485   /* 1: loadpl */
486   var34.i = ex->params[24];
487
488   for (i = 0; i < n; i++) {
489     /* 0: loadl */
490     var33 = ptr0[i];
491     /* 2: mulslq */
492     var36.i = ((orc_int64) var33.i) * ((orc_int64) var34.i);
493     /* 3: shrsq */
494     var37.i = var36.i >> 27;
495     /* 4: convsssql */
496     var35.i = ORC_CLAMP_SL (var37.i);
497     /* 5: storel */
498     ptr0[i] = var35;
499   }
500
501 }
502
503 static OrcProgram *_orc_program_orc_process_int32_clamp;
504 void
505 orc_process_int32_clamp (gint32 * ORC_RESTRICT d1, int p1, int n)
506 {
507   OrcExecutor _ex, *ex = &_ex;
508   OrcProgram *p = _orc_program_orc_process_int32_clamp;
509   void (*func) (OrcExecutor *);
510
511   ex->program = p;
512
513   ex->n = n;
514   ex->arrays[ORC_VAR_D1] = d1;
515   ex->params[ORC_VAR_P1] = p1;
516
517   func = p->code_exec;
518   func (ex);
519 }
520 #endif
521
522
523 /* orc_process_int16 */
524 #ifdef DISABLE_ORC
525 void
526 orc_process_int16 (gint16 * ORC_RESTRICT d1, int p1, int n)
527 {
528   int i;
529   orc_union16 *ORC_RESTRICT ptr0;
530   orc_union16 var33;
531   orc_union16 var34;
532   orc_union16 var35;
533   orc_union32 var36;
534   orc_union32 var37;
535
536   ptr0 = (orc_union16 *) d1;
537
538   /* 1: loadpw */
539   var34.i = p1;
540
541   for (i = 0; i < n; i++) {
542     /* 0: loadw */
543     var33 = ptr0[i];
544     /* 2: mulswl */
545     var36.i = var33.i * var34.i;
546     /* 3: shrsl */
547     var37.i = var36.i >> 13;
548     /* 4: convlw */
549     var35.i = var37.i;
550     /* 5: storew */
551     ptr0[i] = var35;
552   }
553
554 }
555
556 #else
557 static void
558 _backup_orc_process_int16 (OrcExecutor * ORC_RESTRICT ex)
559 {
560   int i;
561   int n = ex->n;
562   orc_union16 *ORC_RESTRICT ptr0;
563   orc_union16 var33;
564   orc_union16 var34;
565   orc_union16 var35;
566   orc_union32 var36;
567   orc_union32 var37;
568
569   ptr0 = (orc_union16 *) ex->arrays[0];
570
571   /* 1: loadpw */
572   var34.i = ex->params[24];
573
574   for (i = 0; i < n; i++) {
575     /* 0: loadw */
576     var33 = ptr0[i];
577     /* 2: mulswl */
578     var36.i = var33.i * var34.i;
579     /* 3: shrsl */
580     var37.i = var36.i >> 13;
581     /* 4: convlw */
582     var35.i = var37.i;
583     /* 5: storew */
584     ptr0[i] = var35;
585   }
586
587 }
588
589 static OrcProgram *_orc_program_orc_process_int16;
590 void
591 orc_process_int16 (gint16 * ORC_RESTRICT d1, int p1, int n)
592 {
593   OrcExecutor _ex, *ex = &_ex;
594   OrcProgram *p = _orc_program_orc_process_int16;
595   void (*func) (OrcExecutor *);
596
597   ex->program = p;
598
599   ex->n = n;
600   ex->arrays[ORC_VAR_D1] = d1;
601   ex->params[ORC_VAR_P1] = p1;
602
603   func = p->code_exec;
604   func (ex);
605 }
606 #endif
607
608
609 /* orc_process_int16_clamp */
610 #ifdef DISABLE_ORC
611 void
612 orc_process_int16_clamp (gint16 * ORC_RESTRICT d1, int p1, int n)
613 {
614   int i;
615   orc_union16 *ORC_RESTRICT ptr0;
616   orc_union16 var33;
617   orc_union16 var34;
618   orc_union16 var35;
619   orc_union32 var36;
620   orc_union32 var37;
621
622   ptr0 = (orc_union16 *) d1;
623
624   /* 1: loadpw */
625   var34.i = p1;
626
627   for (i = 0; i < n; i++) {
628     /* 0: loadw */
629     var33 = ptr0[i];
630     /* 2: mulswl */
631     var36.i = var33.i * var34.i;
632     /* 3: shrsl */
633     var37.i = var36.i >> 13;
634     /* 4: convssslw */
635     var35.i = ORC_CLAMP_SW (var37.i);
636     /* 5: storew */
637     ptr0[i] = var35;
638   }
639
640 }
641
642 #else
643 static void
644 _backup_orc_process_int16_clamp (OrcExecutor * ORC_RESTRICT ex)
645 {
646   int i;
647   int n = ex->n;
648   orc_union16 *ORC_RESTRICT ptr0;
649   orc_union16 var33;
650   orc_union16 var34;
651   orc_union16 var35;
652   orc_union32 var36;
653   orc_union32 var37;
654
655   ptr0 = (orc_union16 *) ex->arrays[0];
656
657   /* 1: loadpw */
658   var34.i = ex->params[24];
659
660   for (i = 0; i < n; i++) {
661     /* 0: loadw */
662     var33 = ptr0[i];
663     /* 2: mulswl */
664     var36.i = var33.i * var34.i;
665     /* 3: shrsl */
666     var37.i = var36.i >> 13;
667     /* 4: convssslw */
668     var35.i = ORC_CLAMP_SW (var37.i);
669     /* 5: storew */
670     ptr0[i] = var35;
671   }
672
673 }
674
675 static OrcProgram *_orc_program_orc_process_int16_clamp;
676 void
677 orc_process_int16_clamp (gint16 * ORC_RESTRICT d1, int p1, int n)
678 {
679   OrcExecutor _ex, *ex = &_ex;
680   OrcProgram *p = _orc_program_orc_process_int16_clamp;
681   void (*func) (OrcExecutor *);
682
683   ex->program = p;
684
685   ex->n = n;
686   ex->arrays[ORC_VAR_D1] = d1;
687   ex->params[ORC_VAR_P1] = p1;
688
689   func = p->code_exec;
690   func (ex);
691 }
692 #endif
693
694
695 /* orc_process_int8 */
696 #ifdef DISABLE_ORC
697 void
698 orc_process_int8 (gint8 * ORC_RESTRICT d1, int p1, int n)
699 {
700   int i;
701   orc_int8 *ORC_RESTRICT ptr0;
702   orc_int8 var33;
703   orc_int8 var34;
704   orc_int8 var35;
705   orc_union16 var36;
706   orc_union16 var37;
707
708   ptr0 = (orc_int8 *) d1;
709
710   /* 1: loadpb */
711   var34 = p1;
712
713   for (i = 0; i < n; i++) {
714     /* 0: loadb */
715     var33 = ptr0[i];
716     /* 2: mulsbw */
717     var36.i = var33 * var34;
718     /* 3: shrsw */
719     var37.i = var36.i >> 5;
720     /* 4: convwb */
721     var35 = var37.i;
722     /* 5: storeb */
723     ptr0[i] = var35;
724   }
725
726 }
727
728 #else
729 static void
730 _backup_orc_process_int8 (OrcExecutor * ORC_RESTRICT ex)
731 {
732   int i;
733   int n = ex->n;
734   orc_int8 *ORC_RESTRICT ptr0;
735   orc_int8 var33;
736   orc_int8 var34;
737   orc_int8 var35;
738   orc_union16 var36;
739   orc_union16 var37;
740
741   ptr0 = (orc_int8 *) ex->arrays[0];
742
743   /* 1: loadpb */
744   var34 = ex->params[24];
745
746   for (i = 0; i < n; i++) {
747     /* 0: loadb */
748     var33 = ptr0[i];
749     /* 2: mulsbw */
750     var36.i = var33 * var34;
751     /* 3: shrsw */
752     var37.i = var36.i >> 5;
753     /* 4: convwb */
754     var35 = var37.i;
755     /* 5: storeb */
756     ptr0[i] = var35;
757   }
758
759 }
760
761 static OrcProgram *_orc_program_orc_process_int8;
762 void
763 orc_process_int8 (gint8 * ORC_RESTRICT d1, int p1, int n)
764 {
765   OrcExecutor _ex, *ex = &_ex;
766   OrcProgram *p = _orc_program_orc_process_int8;
767   void (*func) (OrcExecutor *);
768
769   ex->program = p;
770
771   ex->n = n;
772   ex->arrays[ORC_VAR_D1] = d1;
773   ex->params[ORC_VAR_P1] = p1;
774
775   func = p->code_exec;
776   func (ex);
777 }
778 #endif
779
780
781 /* orc_process_int8_clamp */
782 #ifdef DISABLE_ORC
783 void
784 orc_process_int8_clamp (gint8 * ORC_RESTRICT d1, int p1, int n)
785 {
786   int i;
787   orc_int8 *ORC_RESTRICT ptr0;
788   orc_int8 var33;
789   orc_int8 var34;
790   orc_int8 var35;
791   orc_union16 var36;
792   orc_union16 var37;
793
794   ptr0 = (orc_int8 *) d1;
795
796   /* 1: loadpb */
797   var34 = p1;
798
799   for (i = 0; i < n; i++) {
800     /* 0: loadb */
801     var33 = ptr0[i];
802     /* 2: mulsbw */
803     var36.i = var33 * var34;
804     /* 3: shrsw */
805     var37.i = var36.i >> 5;
806     /* 4: convssswb */
807     var35 = ORC_CLAMP_SB (var37.i);
808     /* 5: storeb */
809     ptr0[i] = var35;
810   }
811
812 }
813
814 #else
815 static void
816 _backup_orc_process_int8_clamp (OrcExecutor * ORC_RESTRICT ex)
817 {
818   int i;
819   int n = ex->n;
820   orc_int8 *ORC_RESTRICT ptr0;
821   orc_int8 var33;
822   orc_int8 var34;
823   orc_int8 var35;
824   orc_union16 var36;
825   orc_union16 var37;
826
827   ptr0 = (orc_int8 *) ex->arrays[0];
828
829   /* 1: loadpb */
830   var34 = ex->params[24];
831
832   for (i = 0; i < n; i++) {
833     /* 0: loadb */
834     var33 = ptr0[i];
835     /* 2: mulsbw */
836     var36.i = var33 * var34;
837     /* 3: shrsw */
838     var37.i = var36.i >> 5;
839     /* 4: convssswb */
840     var35 = ORC_CLAMP_SB (var37.i);
841     /* 5: storeb */
842     ptr0[i] = var35;
843   }
844
845 }
846
847 static OrcProgram *_orc_program_orc_process_int8_clamp;
848 void
849 orc_process_int8_clamp (gint8 * ORC_RESTRICT d1, int p1, int n)
850 {
851   OrcExecutor _ex, *ex = &_ex;
852   OrcProgram *p = _orc_program_orc_process_int8_clamp;
853   void (*func) (OrcExecutor *);
854
855   ex->program = p;
856
857   ex->n = n;
858   ex->arrays[ORC_VAR_D1] = d1;
859   ex->params[ORC_VAR_P1] = p1;
860
861   func = p->code_exec;
862   func (ex);
863 }
864 #endif
865
866
867 /* orc_memset_f64 */
868 #ifdef DISABLE_ORC
869 void
870 orc_memset_f64 (gdouble * ORC_RESTRICT d1, double p1, int n)
871 {
872   int i;
873   orc_union64 *ORC_RESTRICT ptr0;
874   orc_union64 var32;
875   orc_union64 var33;
876
877   ptr0 = (orc_union64 *) d1;
878
879   /* 0: loadpq */
880   var32.f = p1;
881
882   for (i = 0; i < n; i++) {
883     /* 1: copyq */
884     var33.i = var32.i;
885     /* 2: storeq */
886     ptr0[i] = var33;
887   }
888
889 }
890
891 #else
892 static void
893 _backup_orc_memset_f64 (OrcExecutor * ORC_RESTRICT ex)
894 {
895   int i;
896   int n = ex->n;
897   orc_union64 *ORC_RESTRICT ptr0;
898   orc_union64 var32;
899   orc_union64 var33;
900
901   ptr0 = (orc_union64 *) ex->arrays[0];
902
903   /* 0: loadpq */
904   var32.i =
905       (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
906               (ORC_VAR_T1 - ORC_VAR_P1)]) << 32);
907
908   for (i = 0; i < n; i++) {
909     /* 1: copyq */
910     var33.i = var32.i;
911     /* 2: storeq */
912     ptr0[i] = var33;
913   }
914
915 }
916
917 static OrcProgram *_orc_program_orc_memset_f64;
918 void
919 orc_memset_f64 (gdouble * ORC_RESTRICT d1, double p1, int n)
920 {
921   OrcExecutor _ex, *ex = &_ex;
922   OrcProgram *p = _orc_program_orc_memset_f64;
923   void (*func) (OrcExecutor *);
924
925   ex->program = p;
926
927   ex->n = n;
928   ex->arrays[ORC_VAR_D1] = d1;
929   {
930     orc_union64 tmp;
931     tmp.f = p1;
932     ex->params[ORC_VAR_P1] = tmp.x2[0];
933     ex->params[ORC_VAR_T1] = tmp.x2[1];
934   }
935
936   func = p->code_exec;
937   func (ex);
938 }
939 #endif
940
941
942 /* orc_prepare_volumes */
943 #ifdef DISABLE_ORC
944 void
945 orc_prepare_volumes (gdouble * ORC_RESTRICT d1,
946     const gboolean * ORC_RESTRICT s1, int n)
947 {
948   int i;
949   orc_union64 *ORC_RESTRICT ptr0;
950   const orc_union32 *ORC_RESTRICT ptr4;
951   orc_union32 var33;
952   orc_union64 var34;
953   orc_union64 var35;
954   orc_union64 var36;
955   orc_union64 var37;
956   orc_union64 var38;
957
958   ptr0 = (orc_union64 *) d1;
959   ptr4 = (orc_union32 *) s1;
960
961   /* 2: loadpq */
962   var34.i = ORC_UINT64_C (0x3ff0000000000000);  /* 1f */
963
964   for (i = 0; i < n; i++) {
965     /* 0: loadl */
966     var33 = ptr4[i];
967     /* 1: convld */
968     var37.f = var33.i;
969     /* 3: subd */
970     {
971       orc_union64 _src1;
972       orc_union64 _src2;
973       orc_union64 _dest1;
974       _src1.i = ORC_DENORMAL_DOUBLE (var34.i);
975       _src2.i = ORC_DENORMAL_DOUBLE (var37.i);
976       _dest1.f = _src1.f - _src2.f;
977       var38.i = ORC_DENORMAL_DOUBLE (_dest1.i);
978     }
979     /* 4: loadq */
980     var35 = ptr0[i];
981     /* 5: muld */
982     {
983       orc_union64 _src1;
984       orc_union64 _src2;
985       orc_union64 _dest1;
986       _src1.i = ORC_DENORMAL_DOUBLE (var35.i);
987       _src2.i = ORC_DENORMAL_DOUBLE (var38.i);
988       _dest1.f = _src1.f * _src2.f;
989       var36.i = ORC_DENORMAL_DOUBLE (_dest1.i);
990     }
991     /* 6: storeq */
992     ptr0[i] = var36;
993   }
994
995 }
996
997 #else
998 static void
999 _backup_orc_prepare_volumes (OrcExecutor * ORC_RESTRICT ex)
1000 {
1001   int i;
1002   int n = ex->n;
1003   orc_union64 *ORC_RESTRICT ptr0;
1004   const orc_union32 *ORC_RESTRICT ptr4;
1005   orc_union32 var33;
1006   orc_union64 var34;
1007   orc_union64 var35;
1008   orc_union64 var36;
1009   orc_union64 var37;
1010   orc_union64 var38;
1011
1012   ptr0 = (orc_union64 *) ex->arrays[0];
1013   ptr4 = (orc_union32 *) ex->arrays[4];
1014
1015   /* 2: loadpq */
1016   var34.i = ORC_UINT64_C (0x3ff0000000000000);  /* 1f */
1017
1018   for (i = 0; i < n; i++) {
1019     /* 0: loadl */
1020     var33 = ptr4[i];
1021     /* 1: convld */
1022     var37.f = var33.i;
1023     /* 3: subd */
1024     {
1025       orc_union64 _src1;
1026       orc_union64 _src2;
1027       orc_union64 _dest1;
1028       _src1.i = ORC_DENORMAL_DOUBLE (var34.i);
1029       _src2.i = ORC_DENORMAL_DOUBLE (var37.i);
1030       _dest1.f = _src1.f - _src2.f;
1031       var38.i = ORC_DENORMAL_DOUBLE (_dest1.i);
1032     }
1033     /* 4: loadq */
1034     var35 = ptr0[i];
1035     /* 5: muld */
1036     {
1037       orc_union64 _src1;
1038       orc_union64 _src2;
1039       orc_union64 _dest1;
1040       _src1.i = ORC_DENORMAL_DOUBLE (var35.i);
1041       _src2.i = ORC_DENORMAL_DOUBLE (var38.i);
1042       _dest1.f = _src1.f * _src2.f;
1043       var36.i = ORC_DENORMAL_DOUBLE (_dest1.i);
1044     }
1045     /* 6: storeq */
1046     ptr0[i] = var36;
1047   }
1048
1049 }
1050
1051 static OrcProgram *_orc_program_orc_prepare_volumes;
1052 void
1053 orc_prepare_volumes (gdouble * ORC_RESTRICT d1,
1054     const gboolean * ORC_RESTRICT s1, int n)
1055 {
1056   OrcExecutor _ex, *ex = &_ex;
1057   OrcProgram *p = _orc_program_orc_prepare_volumes;
1058   void (*func) (OrcExecutor *);
1059
1060   ex->program = p;
1061
1062   ex->n = n;
1063   ex->arrays[ORC_VAR_D1] = d1;
1064   ex->arrays[ORC_VAR_S1] = (void *) s1;
1065
1066   func = p->code_exec;
1067   func (ex);
1068 }
1069 #endif
1070
1071
1072 /* orc_process_controlled_f64_1ch */
1073 #ifdef DISABLE_ORC
1074 void
1075 orc_process_controlled_f64_1ch (gdouble * ORC_RESTRICT d1,
1076     const gdouble * ORC_RESTRICT s1, int n)
1077 {
1078   int i;
1079   orc_union64 *ORC_RESTRICT ptr0;
1080   const orc_union64 *ORC_RESTRICT ptr4;
1081   orc_union64 var32;
1082   orc_union64 var33;
1083   orc_union64 var34;
1084
1085   ptr0 = (orc_union64 *) d1;
1086   ptr4 = (orc_union64 *) s1;
1087
1088
1089   for (i = 0; i < n; i++) {
1090     /* 0: loadq */
1091     var32 = ptr0[i];
1092     /* 1: loadq */
1093     var33 = ptr4[i];
1094     /* 2: muld */
1095     {
1096       orc_union64 _src1;
1097       orc_union64 _src2;
1098       orc_union64 _dest1;
1099       _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
1100       _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
1101       _dest1.f = _src1.f * _src2.f;
1102       var34.i = ORC_DENORMAL_DOUBLE (_dest1.i);
1103     }
1104     /* 3: storeq */
1105     ptr0[i] = var34;
1106   }
1107
1108 }
1109
1110 #else
1111 static void
1112 _backup_orc_process_controlled_f64_1ch (OrcExecutor * ORC_RESTRICT ex)
1113 {
1114   int i;
1115   int n = ex->n;
1116   orc_union64 *ORC_RESTRICT ptr0;
1117   const orc_union64 *ORC_RESTRICT ptr4;
1118   orc_union64 var32;
1119   orc_union64 var33;
1120   orc_union64 var34;
1121
1122   ptr0 = (orc_union64 *) ex->arrays[0];
1123   ptr4 = (orc_union64 *) ex->arrays[4];
1124
1125
1126   for (i = 0; i < n; i++) {
1127     /* 0: loadq */
1128     var32 = ptr0[i];
1129     /* 1: loadq */
1130     var33 = ptr4[i];
1131     /* 2: muld */
1132     {
1133       orc_union64 _src1;
1134       orc_union64 _src2;
1135       orc_union64 _dest1;
1136       _src1.i = ORC_DENORMAL_DOUBLE (var32.i);
1137       _src2.i = ORC_DENORMAL_DOUBLE (var33.i);
1138       _dest1.f = _src1.f * _src2.f;
1139       var34.i = ORC_DENORMAL_DOUBLE (_dest1.i);
1140     }
1141     /* 3: storeq */
1142     ptr0[i] = var34;
1143   }
1144
1145 }
1146
1147 static OrcProgram *_orc_program_orc_process_controlled_f64_1ch;
1148 void
1149 orc_process_controlled_f64_1ch (gdouble * ORC_RESTRICT d1,
1150     const gdouble * ORC_RESTRICT s1, int n)
1151 {
1152   OrcExecutor _ex, *ex = &_ex;
1153   OrcProgram *p = _orc_program_orc_process_controlled_f64_1ch;
1154   void (*func) (OrcExecutor *);
1155
1156   ex->program = p;
1157
1158   ex->n = n;
1159   ex->arrays[ORC_VAR_D1] = d1;
1160   ex->arrays[ORC_VAR_S1] = (void *) s1;
1161
1162   func = p->code_exec;
1163   func (ex);
1164 }
1165 #endif
1166
1167
1168 /* orc_process_controlled_f32_1ch */
1169 #ifdef DISABLE_ORC
1170 void
1171 orc_process_controlled_f32_1ch (gfloat * ORC_RESTRICT d1,
1172     const gdouble * ORC_RESTRICT s1, int n)
1173 {
1174   int i;
1175   orc_union32 *ORC_RESTRICT ptr0;
1176   const orc_union64 *ORC_RESTRICT ptr4;
1177   orc_union64 var33;
1178   orc_union32 var34;
1179   orc_union32 var35;
1180   orc_union32 var36;
1181
1182   ptr0 = (orc_union32 *) d1;
1183   ptr4 = (orc_union64 *) s1;
1184
1185
1186   for (i = 0; i < n; i++) {
1187     /* 0: loadq */
1188     var33 = ptr4[i];
1189     /* 1: convdf */
1190     {
1191       orc_union64 _src1;
1192       orc_union32 _dest;
1193       _src1.i = ORC_DENORMAL_DOUBLE (var33.i);
1194       _dest.f = _src1.f;
1195       var36.i = ORC_DENORMAL (_dest.i);
1196     }
1197     /* 2: loadl */
1198     var34 = ptr0[i];
1199     /* 3: mulf */
1200     {
1201       orc_union32 _src1;
1202       orc_union32 _src2;
1203       orc_union32 _dest1;
1204       _src1.i = ORC_DENORMAL (var34.i);
1205       _src2.i = ORC_DENORMAL (var36.i);
1206       _dest1.f = _src1.f * _src2.f;
1207       var35.i = ORC_DENORMAL (_dest1.i);
1208     }
1209     /* 4: storel */
1210     ptr0[i] = var35;
1211   }
1212
1213 }
1214
1215 #else
1216 static void
1217 _backup_orc_process_controlled_f32_1ch (OrcExecutor * ORC_RESTRICT ex)
1218 {
1219   int i;
1220   int n = ex->n;
1221   orc_union32 *ORC_RESTRICT ptr0;
1222   const orc_union64 *ORC_RESTRICT ptr4;
1223   orc_union64 var33;
1224   orc_union32 var34;
1225   orc_union32 var35;
1226   orc_union32 var36;
1227
1228   ptr0 = (orc_union32 *) ex->arrays[0];
1229   ptr4 = (orc_union64 *) ex->arrays[4];
1230
1231
1232   for (i = 0; i < n; i++) {
1233     /* 0: loadq */
1234     var33 = ptr4[i];
1235     /* 1: convdf */
1236     {
1237       orc_union64 _src1;
1238       orc_union32 _dest;
1239       _src1.i = ORC_DENORMAL_DOUBLE (var33.i);
1240       _dest.f = _src1.f;
1241       var36.i = ORC_DENORMAL (_dest.i);
1242     }
1243     /* 2: loadl */
1244     var34 = ptr0[i];
1245     /* 3: mulf */
1246     {
1247       orc_union32 _src1;
1248       orc_union32 _src2;
1249       orc_union32 _dest1;
1250       _src1.i = ORC_DENORMAL (var34.i);
1251       _src2.i = ORC_DENORMAL (var36.i);
1252       _dest1.f = _src1.f * _src2.f;
1253       var35.i = ORC_DENORMAL (_dest1.i);
1254     }
1255     /* 4: storel */
1256     ptr0[i] = var35;
1257   }
1258
1259 }
1260
1261 static OrcProgram *_orc_program_orc_process_controlled_f32_1ch;
1262 void
1263 orc_process_controlled_f32_1ch (gfloat * ORC_RESTRICT d1,
1264     const gdouble * ORC_RESTRICT s1, int n)
1265 {
1266   OrcExecutor _ex, *ex = &_ex;
1267   OrcProgram *p = _orc_program_orc_process_controlled_f32_1ch;
1268   void (*func) (OrcExecutor *);
1269
1270   ex->program = p;
1271
1272   ex->n = n;
1273   ex->arrays[ORC_VAR_D1] = d1;
1274   ex->arrays[ORC_VAR_S1] = (void *) s1;
1275
1276   func = p->code_exec;
1277   func (ex);
1278 }
1279 #endif
1280
1281
1282 /* orc_process_controlled_f32_2ch */
1283 #ifdef DISABLE_ORC
1284 void
1285 orc_process_controlled_f32_2ch (gfloat * ORC_RESTRICT d1,
1286     const gdouble * ORC_RESTRICT s1, int n)
1287 {
1288   int i;
1289   orc_union64 *ORC_RESTRICT ptr0;
1290   const orc_union64 *ORC_RESTRICT ptr4;
1291   orc_union64 var34;
1292   orc_union64 var35;
1293   orc_union64 var36;
1294   orc_union32 var37;
1295   orc_union64 var38;
1296
1297   ptr0 = (orc_union64 *) d1;
1298   ptr4 = (orc_union64 *) s1;
1299
1300
1301   for (i = 0; i < n; i++) {
1302     /* 0: loadq */
1303     var34 = ptr4[i];
1304     /* 1: convdf */
1305     {
1306       orc_union64 _src1;
1307       orc_union32 _dest;
1308       _src1.i = ORC_DENORMAL_DOUBLE (var34.i);
1309       _dest.f = _src1.f;
1310       var37.i = ORC_DENORMAL (_dest.i);
1311     }
1312     /* 2: mergelq */
1313     {
1314       orc_union64 _dest;
1315       _dest.x2[0] = var37.i;
1316       _dest.x2[1] = var37.i;
1317       var38.i = _dest.i;
1318     }
1319     /* 3: loadq */
1320     var35 = ptr0[i];
1321     /* 4: mulf */
1322     {
1323       orc_union32 _src1;
1324       orc_union32 _src2;
1325       orc_union32 _dest1;
1326       _src1.i = ORC_DENORMAL (var35.x2[0]);
1327       _src2.i = ORC_DENORMAL (var38.x2[0]);
1328       _dest1.f = _src1.f * _src2.f;
1329       var36.x2[0] = ORC_DENORMAL (_dest1.i);
1330     }
1331     {
1332       orc_union32 _src1;
1333       orc_union32 _src2;
1334       orc_union32 _dest1;
1335       _src1.i = ORC_DENORMAL (var35.x2[1]);
1336       _src2.i = ORC_DENORMAL (var38.x2[1]);
1337       _dest1.f = _src1.f * _src2.f;
1338       var36.x2[1] = ORC_DENORMAL (_dest1.i);
1339     }
1340     /* 5: storeq */
1341     ptr0[i] = var36;
1342   }
1343
1344 }
1345
1346 #else
1347 static void
1348 _backup_orc_process_controlled_f32_2ch (OrcExecutor * ORC_RESTRICT ex)
1349 {
1350   int i;
1351   int n = ex->n;
1352   orc_union64 *ORC_RESTRICT ptr0;
1353   const orc_union64 *ORC_RESTRICT ptr4;
1354   orc_union64 var34;
1355   orc_union64 var35;
1356   orc_union64 var36;
1357   orc_union32 var37;
1358   orc_union64 var38;
1359
1360   ptr0 = (orc_union64 *) ex->arrays[0];
1361   ptr4 = (orc_union64 *) ex->arrays[4];
1362
1363
1364   for (i = 0; i < n; i++) {
1365     /* 0: loadq */
1366     var34 = ptr4[i];
1367     /* 1: convdf */
1368     {
1369       orc_union64 _src1;
1370       orc_union32 _dest;
1371       _src1.i = ORC_DENORMAL_DOUBLE (var34.i);
1372       _dest.f = _src1.f;
1373       var37.i = ORC_DENORMAL (_dest.i);
1374     }
1375     /* 2: mergelq */
1376     {
1377       orc_union64 _dest;
1378       _dest.x2[0] = var37.i;
1379       _dest.x2[1] = var37.i;
1380       var38.i = _dest.i;
1381     }
1382     /* 3: loadq */
1383     var35 = ptr0[i];
1384     /* 4: mulf */
1385     {
1386       orc_union32 _src1;
1387       orc_union32 _src2;
1388       orc_union32 _dest1;
1389       _src1.i = ORC_DENORMAL (var35.x2[0]);
1390       _src2.i = ORC_DENORMAL (var38.x2[0]);
1391       _dest1.f = _src1.f * _src2.f;
1392       var36.x2[0] = ORC_DENORMAL (_dest1.i);
1393     }
1394     {
1395       orc_union32 _src1;
1396       orc_union32 _src2;
1397       orc_union32 _dest1;
1398       _src1.i = ORC_DENORMAL (var35.x2[1]);
1399       _src2.i = ORC_DENORMAL (var38.x2[1]);
1400       _dest1.f = _src1.f * _src2.f;
1401       var36.x2[1] = ORC_DENORMAL (_dest1.i);
1402     }
1403     /* 5: storeq */
1404     ptr0[i] = var36;
1405   }
1406
1407 }
1408
1409 static OrcProgram *_orc_program_orc_process_controlled_f32_2ch;
1410 void
1411 orc_process_controlled_f32_2ch (gfloat * ORC_RESTRICT d1,
1412     const gdouble * ORC_RESTRICT s1, int n)
1413 {
1414   OrcExecutor _ex, *ex = &_ex;
1415   OrcProgram *p = _orc_program_orc_process_controlled_f32_2ch;
1416   void (*func) (OrcExecutor *);
1417
1418   ex->program = p;
1419
1420   ex->n = n;
1421   ex->arrays[ORC_VAR_D1] = d1;
1422   ex->arrays[ORC_VAR_S1] = (void *) s1;
1423
1424   func = p->code_exec;
1425   func (ex);
1426 }
1427 #endif
1428
1429
1430 /* orc_process_controlled_int32_1ch */
1431 #ifdef DISABLE_ORC
1432 void
1433 orc_process_controlled_int32_1ch (gint32 * ORC_RESTRICT d1,
1434     const gdouble * ORC_RESTRICT s1, int n)
1435 {
1436   int i;
1437   orc_union32 *ORC_RESTRICT ptr0;
1438   const orc_union64 *ORC_RESTRICT ptr4;
1439   orc_union32 var33;
1440   orc_union64 var34;
1441   orc_union32 var35;
1442   orc_union64 var36;
1443   orc_union64 var37;
1444
1445   ptr0 = (orc_union32 *) d1;
1446   ptr4 = (orc_union64 *) s1;
1447
1448
1449   for (i = 0; i < n; i++) {
1450     /* 0: loadl */
1451     var33 = ptr0[i];
1452     /* 1: convld */
1453     var36.f = var33.i;
1454     /* 2: loadq */
1455     var34 = ptr4[i];
1456     /* 3: muld */
1457     {
1458       orc_union64 _src1;
1459       orc_union64 _src2;
1460       orc_union64 _dest1;
1461       _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
1462       _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
1463       _dest1.f = _src1.f * _src2.f;
1464       var37.i = ORC_DENORMAL_DOUBLE (_dest1.i);
1465     }
1466     /* 4: convdl */
1467     {
1468       int tmp;
1469       tmp = var37.f;
1470       if (tmp == 0x80000000 && !(var37.i & ORC_UINT64_C (0x8000000000000000)))
1471         tmp = 0x7fffffff;
1472       var35.i = tmp;
1473     }
1474     /* 5: storel */
1475     ptr0[i] = var35;
1476   }
1477
1478 }
1479
1480 #else
1481 static void
1482 _backup_orc_process_controlled_int32_1ch (OrcExecutor * ORC_RESTRICT ex)
1483 {
1484   int i;
1485   int n = ex->n;
1486   orc_union32 *ORC_RESTRICT ptr0;
1487   const orc_union64 *ORC_RESTRICT ptr4;
1488   orc_union32 var33;
1489   orc_union64 var34;
1490   orc_union32 var35;
1491   orc_union64 var36;
1492   orc_union64 var37;
1493
1494   ptr0 = (orc_union32 *) ex->arrays[0];
1495   ptr4 = (orc_union64 *) ex->arrays[4];
1496
1497
1498   for (i = 0; i < n; i++) {
1499     /* 0: loadl */
1500     var33 = ptr0[i];
1501     /* 1: convld */
1502     var36.f = var33.i;
1503     /* 2: loadq */
1504     var34 = ptr4[i];
1505     /* 3: muld */
1506     {
1507       orc_union64 _src1;
1508       orc_union64 _src2;
1509       orc_union64 _dest1;
1510       _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
1511       _src2.i = ORC_DENORMAL_DOUBLE (var34.i);
1512       _dest1.f = _src1.f * _src2.f;
1513       var37.i = ORC_DENORMAL_DOUBLE (_dest1.i);
1514     }
1515     /* 4: convdl */
1516     {
1517       int tmp;
1518       tmp = var37.f;
1519       if (tmp == 0x80000000 && !(var37.i & ORC_UINT64_C (0x8000000000000000)))
1520         tmp = 0x7fffffff;
1521       var35.i = tmp;
1522     }
1523     /* 5: storel */
1524     ptr0[i] = var35;
1525   }
1526
1527 }
1528
1529 static OrcProgram *_orc_program_orc_process_controlled_int32_1ch;
1530 void
1531 orc_process_controlled_int32_1ch (gint32 * ORC_RESTRICT d1,
1532     const gdouble * ORC_RESTRICT s1, int n)
1533 {
1534   OrcExecutor _ex, *ex = &_ex;
1535   OrcProgram *p = _orc_program_orc_process_controlled_int32_1ch;
1536   void (*func) (OrcExecutor *);
1537
1538   ex->program = p;
1539
1540   ex->n = n;
1541   ex->arrays[ORC_VAR_D1] = d1;
1542   ex->arrays[ORC_VAR_S1] = (void *) s1;
1543
1544   func = p->code_exec;
1545   func (ex);
1546 }
1547 #endif
1548
1549
1550 /* orc_process_controlled_int16_1ch */
1551 #ifdef DISABLE_ORC
1552 void
1553 orc_process_controlled_int16_1ch (gint16 * ORC_RESTRICT d1,
1554     const gdouble * ORC_RESTRICT s1, int n)
1555 {
1556   int i;
1557   orc_union16 *ORC_RESTRICT ptr0;
1558   const orc_union64 *ORC_RESTRICT ptr4;
1559   orc_union16 var34;
1560   orc_union64 var35;
1561   orc_union16 var36;
1562   orc_union32 var37;
1563   orc_union32 var38;
1564   orc_union32 var39;
1565   orc_union32 var40;
1566   orc_union32 var41;
1567
1568   ptr0 = (orc_union16 *) d1;
1569   ptr4 = (orc_union64 *) s1;
1570
1571
1572   for (i = 0; i < n; i++) {
1573     /* 0: loadw */
1574     var34 = ptr0[i];
1575     /* 1: convswl */
1576     var37.i = var34.i;
1577     /* 2: convlf */
1578     var38.f = var37.i;
1579     /* 3: loadq */
1580     var35 = ptr4[i];
1581     /* 4: convdf */
1582     {
1583       orc_union64 _src1;
1584       orc_union32 _dest;
1585       _src1.i = ORC_DENORMAL_DOUBLE (var35.i);
1586       _dest.f = _src1.f;
1587       var39.i = ORC_DENORMAL (_dest.i);
1588     }
1589     /* 5: mulf */
1590     {
1591       orc_union32 _src1;
1592       orc_union32 _src2;
1593       orc_union32 _dest1;
1594       _src1.i = ORC_DENORMAL (var38.i);
1595       _src2.i = ORC_DENORMAL (var39.i);
1596       _dest1.f = _src1.f * _src2.f;
1597       var40.i = ORC_DENORMAL (_dest1.i);
1598     }
1599     /* 6: convfl */
1600     {
1601       int tmp;
1602       tmp = (int) var40.f;
1603       if (tmp == 0x80000000 && !(var40.i & 0x80000000))
1604         tmp = 0x7fffffff;
1605       var41.i = tmp;
1606     }
1607     /* 7: convssslw */
1608     var36.i = ORC_CLAMP_SW (var41.i);
1609     /* 8: storew */
1610     ptr0[i] = var36;
1611   }
1612
1613 }
1614
1615 #else
1616 static void
1617 _backup_orc_process_controlled_int16_1ch (OrcExecutor * ORC_RESTRICT ex)
1618 {
1619   int i;
1620   int n = ex->n;
1621   orc_union16 *ORC_RESTRICT ptr0;
1622   const orc_union64 *ORC_RESTRICT ptr4;
1623   orc_union16 var34;
1624   orc_union64 var35;
1625   orc_union16 var36;
1626   orc_union32 var37;
1627   orc_union32 var38;
1628   orc_union32 var39;
1629   orc_union32 var40;
1630   orc_union32 var41;
1631
1632   ptr0 = (orc_union16 *) ex->arrays[0];
1633   ptr4 = (orc_union64 *) ex->arrays[4];
1634
1635
1636   for (i = 0; i < n; i++) {
1637     /* 0: loadw */
1638     var34 = ptr0[i];
1639     /* 1: convswl */
1640     var37.i = var34.i;
1641     /* 2: convlf */
1642     var38.f = var37.i;
1643     /* 3: loadq */
1644     var35 = ptr4[i];
1645     /* 4: convdf */
1646     {
1647       orc_union64 _src1;
1648       orc_union32 _dest;
1649       _src1.i = ORC_DENORMAL_DOUBLE (var35.i);
1650       _dest.f = _src1.f;
1651       var39.i = ORC_DENORMAL (_dest.i);
1652     }
1653     /* 5: mulf */
1654     {
1655       orc_union32 _src1;
1656       orc_union32 _src2;
1657       orc_union32 _dest1;
1658       _src1.i = ORC_DENORMAL (var38.i);
1659       _src2.i = ORC_DENORMAL (var39.i);
1660       _dest1.f = _src1.f * _src2.f;
1661       var40.i = ORC_DENORMAL (_dest1.i);
1662     }
1663     /* 6: convfl */
1664     {
1665       int tmp;
1666       tmp = (int) var40.f;
1667       if (tmp == 0x80000000 && !(var40.i & 0x80000000))
1668         tmp = 0x7fffffff;
1669       var41.i = tmp;
1670     }
1671     /* 7: convssslw */
1672     var36.i = ORC_CLAMP_SW (var41.i);
1673     /* 8: storew */
1674     ptr0[i] = var36;
1675   }
1676
1677 }
1678
1679 static OrcProgram *_orc_program_orc_process_controlled_int16_1ch;
1680 void
1681 orc_process_controlled_int16_1ch (gint16 * ORC_RESTRICT d1,
1682     const gdouble * ORC_RESTRICT s1, int n)
1683 {
1684   OrcExecutor _ex, *ex = &_ex;
1685   OrcProgram *p = _orc_program_orc_process_controlled_int16_1ch;
1686   void (*func) (OrcExecutor *);
1687
1688   ex->program = p;
1689
1690   ex->n = n;
1691   ex->arrays[ORC_VAR_D1] = d1;
1692   ex->arrays[ORC_VAR_S1] = (void *) s1;
1693
1694   func = p->code_exec;
1695   func (ex);
1696 }
1697 #endif
1698
1699
1700 /* orc_process_controlled_int16_2ch */
1701 #ifdef DISABLE_ORC
1702 void
1703 orc_process_controlled_int16_2ch (gint16 * ORC_RESTRICT d1,
1704     const gdouble * ORC_RESTRICT s1, int n)
1705 {
1706   int i;
1707   orc_union32 *ORC_RESTRICT ptr0;
1708   const orc_union64 *ORC_RESTRICT ptr4;
1709   orc_union32 var35;
1710   orc_union64 var36;
1711   orc_union32 var37;
1712   orc_union64 var38;
1713   orc_union64 var39;
1714   orc_union32 var40;
1715   orc_union64 var41;
1716   orc_union64 var42;
1717   orc_union64 var43;
1718
1719   ptr0 = (orc_union32 *) d1;
1720   ptr4 = (orc_union64 *) s1;
1721
1722
1723   for (i = 0; i < n; i++) {
1724     /* 0: loadl */
1725     var35 = ptr0[i];
1726     /* 1: convswl */
1727     var38.x2[0] = var35.x2[0];
1728     var38.x2[1] = var35.x2[1];
1729     /* 2: convlf */
1730     var39.x2f[0] = var38.x2[0];
1731     var39.x2f[1] = var38.x2[1];
1732     /* 3: loadq */
1733     var36 = ptr4[i];
1734     /* 4: convdf */
1735     {
1736       orc_union64 _src1;
1737       orc_union32 _dest;
1738       _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
1739       _dest.f = _src1.f;
1740       var40.i = ORC_DENORMAL (_dest.i);
1741     }
1742     /* 5: mergelq */
1743     {
1744       orc_union64 _dest;
1745       _dest.x2[0] = var40.i;
1746       _dest.x2[1] = var40.i;
1747       var41.i = _dest.i;
1748     }
1749     /* 6: mulf */
1750     {
1751       orc_union32 _src1;
1752       orc_union32 _src2;
1753       orc_union32 _dest1;
1754       _src1.i = ORC_DENORMAL (var41.x2[0]);
1755       _src2.i = ORC_DENORMAL (var39.x2[0]);
1756       _dest1.f = _src1.f * _src2.f;
1757       var42.x2[0] = ORC_DENORMAL (_dest1.i);
1758     }
1759     {
1760       orc_union32 _src1;
1761       orc_union32 _src2;
1762       orc_union32 _dest1;
1763       _src1.i = ORC_DENORMAL (var41.x2[1]);
1764       _src2.i = ORC_DENORMAL (var39.x2[1]);
1765       _dest1.f = _src1.f * _src2.f;
1766       var42.x2[1] = ORC_DENORMAL (_dest1.i);
1767     }
1768     /* 7: convfl */
1769     {
1770       int tmp;
1771       tmp = (int) var42.x2f[0];
1772       if (tmp == 0x80000000 && !(var42.x2[0] & 0x80000000))
1773         tmp = 0x7fffffff;
1774       var43.x2[0] = tmp;
1775     }
1776     {
1777       int tmp;
1778       tmp = (int) var42.x2f[1];
1779       if (tmp == 0x80000000 && !(var42.x2[1] & 0x80000000))
1780         tmp = 0x7fffffff;
1781       var43.x2[1] = tmp;
1782     }
1783     /* 8: convssslw */
1784     var37.x2[0] = ORC_CLAMP_SW (var43.x2[0]);
1785     var37.x2[1] = ORC_CLAMP_SW (var43.x2[1]);
1786     /* 9: storel */
1787     ptr0[i] = var37;
1788   }
1789
1790 }
1791
1792 #else
1793 static void
1794 _backup_orc_process_controlled_int16_2ch (OrcExecutor * ORC_RESTRICT ex)
1795 {
1796   int i;
1797   int n = ex->n;
1798   orc_union32 *ORC_RESTRICT ptr0;
1799   const orc_union64 *ORC_RESTRICT ptr4;
1800   orc_union32 var35;
1801   orc_union64 var36;
1802   orc_union32 var37;
1803   orc_union64 var38;
1804   orc_union64 var39;
1805   orc_union32 var40;
1806   orc_union64 var41;
1807   orc_union64 var42;
1808   orc_union64 var43;
1809
1810   ptr0 = (orc_union32 *) ex->arrays[0];
1811   ptr4 = (orc_union64 *) ex->arrays[4];
1812
1813
1814   for (i = 0; i < n; i++) {
1815     /* 0: loadl */
1816     var35 = ptr0[i];
1817     /* 1: convswl */
1818     var38.x2[0] = var35.x2[0];
1819     var38.x2[1] = var35.x2[1];
1820     /* 2: convlf */
1821     var39.x2f[0] = var38.x2[0];
1822     var39.x2f[1] = var38.x2[1];
1823     /* 3: loadq */
1824     var36 = ptr4[i];
1825     /* 4: convdf */
1826     {
1827       orc_union64 _src1;
1828       orc_union32 _dest;
1829       _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
1830       _dest.f = _src1.f;
1831       var40.i = ORC_DENORMAL (_dest.i);
1832     }
1833     /* 5: mergelq */
1834     {
1835       orc_union64 _dest;
1836       _dest.x2[0] = var40.i;
1837       _dest.x2[1] = var40.i;
1838       var41.i = _dest.i;
1839     }
1840     /* 6: mulf */
1841     {
1842       orc_union32 _src1;
1843       orc_union32 _src2;
1844       orc_union32 _dest1;
1845       _src1.i = ORC_DENORMAL (var41.x2[0]);
1846       _src2.i = ORC_DENORMAL (var39.x2[0]);
1847       _dest1.f = _src1.f * _src2.f;
1848       var42.x2[0] = ORC_DENORMAL (_dest1.i);
1849     }
1850     {
1851       orc_union32 _src1;
1852       orc_union32 _src2;
1853       orc_union32 _dest1;
1854       _src1.i = ORC_DENORMAL (var41.x2[1]);
1855       _src2.i = ORC_DENORMAL (var39.x2[1]);
1856       _dest1.f = _src1.f * _src2.f;
1857       var42.x2[1] = ORC_DENORMAL (_dest1.i);
1858     }
1859     /* 7: convfl */
1860     {
1861       int tmp;
1862       tmp = (int) var42.x2f[0];
1863       if (tmp == 0x80000000 && !(var42.x2[0] & 0x80000000))
1864         tmp = 0x7fffffff;
1865       var43.x2[0] = tmp;
1866     }
1867     {
1868       int tmp;
1869       tmp = (int) var42.x2f[1];
1870       if (tmp == 0x80000000 && !(var42.x2[1] & 0x80000000))
1871         tmp = 0x7fffffff;
1872       var43.x2[1] = tmp;
1873     }
1874     /* 8: convssslw */
1875     var37.x2[0] = ORC_CLAMP_SW (var43.x2[0]);
1876     var37.x2[1] = ORC_CLAMP_SW (var43.x2[1]);
1877     /* 9: storel */
1878     ptr0[i] = var37;
1879   }
1880
1881 }
1882
1883 static OrcProgram *_orc_program_orc_process_controlled_int16_2ch;
1884 void
1885 orc_process_controlled_int16_2ch (gint16 * ORC_RESTRICT d1,
1886     const gdouble * ORC_RESTRICT s1, int n)
1887 {
1888   OrcExecutor _ex, *ex = &_ex;
1889   OrcProgram *p = _orc_program_orc_process_controlled_int16_2ch;
1890   void (*func) (OrcExecutor *);
1891
1892   ex->program = p;
1893
1894   ex->n = n;
1895   ex->arrays[ORC_VAR_D1] = d1;
1896   ex->arrays[ORC_VAR_S1] = (void *) s1;
1897
1898   func = p->code_exec;
1899   func (ex);
1900 }
1901 #endif
1902
1903
1904 /* orc_process_controlled_int8_1ch */
1905 #ifdef DISABLE_ORC
1906 void
1907 orc_process_controlled_int8_1ch (gint8 * ORC_RESTRICT d1,
1908     const gdouble * ORC_RESTRICT s1, int n)
1909 {
1910   int i;
1911   orc_int8 *ORC_RESTRICT ptr0;
1912   const orc_union64 *ORC_RESTRICT ptr4;
1913   orc_int8 var35;
1914   orc_union64 var36;
1915   orc_int8 var37;
1916   orc_union16 var38;
1917   orc_union32 var39;
1918   orc_union32 var40;
1919   orc_union32 var41;
1920   orc_union32 var42;
1921   orc_union32 var43;
1922   orc_union16 var44;
1923
1924   ptr0 = (orc_int8 *) d1;
1925   ptr4 = (orc_union64 *) s1;
1926
1927
1928   for (i = 0; i < n; i++) {
1929     /* 0: loadb */
1930     var35 = ptr0[i];
1931     /* 1: convsbw */
1932     var38.i = var35;
1933     /* 2: convswl */
1934     var39.i = var38.i;
1935     /* 3: convlf */
1936     var40.f = var39.i;
1937     /* 4: loadq */
1938     var36 = ptr4[i];
1939     /* 5: convdf */
1940     {
1941       orc_union64 _src1;
1942       orc_union32 _dest;
1943       _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
1944       _dest.f = _src1.f;
1945       var41.i = ORC_DENORMAL (_dest.i);
1946     }
1947     /* 6: mulf */
1948     {
1949       orc_union32 _src1;
1950       orc_union32 _src2;
1951       orc_union32 _dest1;
1952       _src1.i = ORC_DENORMAL (var40.i);
1953       _src2.i = ORC_DENORMAL (var41.i);
1954       _dest1.f = _src1.f * _src2.f;
1955       var42.i = ORC_DENORMAL (_dest1.i);
1956     }
1957     /* 7: convfl */
1958     {
1959       int tmp;
1960       tmp = (int) var42.f;
1961       if (tmp == 0x80000000 && !(var42.i & 0x80000000))
1962         tmp = 0x7fffffff;
1963       var43.i = tmp;
1964     }
1965     /* 8: convlw */
1966     var44.i = var43.i;
1967     /* 9: convssswb */
1968     var37 = ORC_CLAMP_SB (var44.i);
1969     /* 10: storeb */
1970     ptr0[i] = var37;
1971   }
1972
1973 }
1974
1975 #else
1976 static void
1977 _backup_orc_process_controlled_int8_1ch (OrcExecutor * ORC_RESTRICT ex)
1978 {
1979   int i;
1980   int n = ex->n;
1981   orc_int8 *ORC_RESTRICT ptr0;
1982   const orc_union64 *ORC_RESTRICT ptr4;
1983   orc_int8 var35;
1984   orc_union64 var36;
1985   orc_int8 var37;
1986   orc_union16 var38;
1987   orc_union32 var39;
1988   orc_union32 var40;
1989   orc_union32 var41;
1990   orc_union32 var42;
1991   orc_union32 var43;
1992   orc_union16 var44;
1993
1994   ptr0 = (orc_int8 *) ex->arrays[0];
1995   ptr4 = (orc_union64 *) ex->arrays[4];
1996
1997
1998   for (i = 0; i < n; i++) {
1999     /* 0: loadb */
2000     var35 = ptr0[i];
2001     /* 1: convsbw */
2002     var38.i = var35;
2003     /* 2: convswl */
2004     var39.i = var38.i;
2005     /* 3: convlf */
2006     var40.f = var39.i;
2007     /* 4: loadq */
2008     var36 = ptr4[i];
2009     /* 5: convdf */
2010     {
2011       orc_union64 _src1;
2012       orc_union32 _dest;
2013       _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
2014       _dest.f = _src1.f;
2015       var41.i = ORC_DENORMAL (_dest.i);
2016     }
2017     /* 6: mulf */
2018     {
2019       orc_union32 _src1;
2020       orc_union32 _src2;
2021       orc_union32 _dest1;
2022       _src1.i = ORC_DENORMAL (var40.i);
2023       _src2.i = ORC_DENORMAL (var41.i);
2024       _dest1.f = _src1.f * _src2.f;
2025       var42.i = ORC_DENORMAL (_dest1.i);
2026     }
2027     /* 7: convfl */
2028     {
2029       int tmp;
2030       tmp = (int) var42.f;
2031       if (tmp == 0x80000000 && !(var42.i & 0x80000000))
2032         tmp = 0x7fffffff;
2033       var43.i = tmp;
2034     }
2035     /* 8: convlw */
2036     var44.i = var43.i;
2037     /* 9: convssswb */
2038     var37 = ORC_CLAMP_SB (var44.i);
2039     /* 10: storeb */
2040     ptr0[i] = var37;
2041   }
2042
2043 }
2044
2045 static OrcProgram *_orc_program_orc_process_controlled_int8_1ch;
2046 void
2047 orc_process_controlled_int8_1ch (gint8 * ORC_RESTRICT d1,
2048     const gdouble * ORC_RESTRICT s1, int n)
2049 {
2050   OrcExecutor _ex, *ex = &_ex;
2051   OrcProgram *p = _orc_program_orc_process_controlled_int8_1ch;
2052   void (*func) (OrcExecutor *);
2053
2054   ex->program = p;
2055
2056   ex->n = n;
2057   ex->arrays[ORC_VAR_D1] = d1;
2058   ex->arrays[ORC_VAR_S1] = (void *) s1;
2059
2060   func = p->code_exec;
2061   func (ex);
2062 }
2063 #endif
2064
2065
2066 /* orc_process_controlled_int8_2ch */
2067 #ifdef DISABLE_ORC
2068 void
2069 orc_process_controlled_int8_2ch (gint8 * ORC_RESTRICT d1,
2070     const gdouble * ORC_RESTRICT s1, int n)
2071 {
2072   int i;
2073   orc_union16 *ORC_RESTRICT ptr0;
2074   const orc_union64 *ORC_RESTRICT ptr4;
2075   orc_union16 var35;
2076   orc_union64 var36;
2077   orc_union16 var37;
2078   orc_union32 var38;
2079   orc_union64 var39;
2080   orc_union64 var40;
2081   orc_union32 var41;
2082   orc_union64 var42;
2083   orc_union64 var43;
2084   orc_union64 var44;
2085   orc_union32 var45;
2086
2087   ptr0 = (orc_union16 *) d1;
2088   ptr4 = (orc_union64 *) s1;
2089
2090
2091   for (i = 0; i < n; i++) {
2092     /* 0: loadw */
2093     var35 = ptr0[i];
2094     /* 1: convsbw */
2095     var38.x2[0] = var35.x2[0];
2096     var38.x2[1] = var35.x2[1];
2097     /* 2: convswl */
2098     var39.x2[0] = var38.x2[0];
2099     var39.x2[1] = var38.x2[1];
2100     /* 3: convlf */
2101     var40.x2f[0] = var39.x2[0];
2102     var40.x2f[1] = var39.x2[1];
2103     /* 4: loadq */
2104     var36 = ptr4[i];
2105     /* 5: convdf */
2106     {
2107       orc_union64 _src1;
2108       orc_union32 _dest;
2109       _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
2110       _dest.f = _src1.f;
2111       var41.i = ORC_DENORMAL (_dest.i);
2112     }
2113     /* 6: mergelq */
2114     {
2115       orc_union64 _dest;
2116       _dest.x2[0] = var41.i;
2117       _dest.x2[1] = var41.i;
2118       var42.i = _dest.i;
2119     }
2120     /* 7: mulf */
2121     {
2122       orc_union32 _src1;
2123       orc_union32 _src2;
2124       orc_union32 _dest1;
2125       _src1.i = ORC_DENORMAL (var40.x2[0]);
2126       _src2.i = ORC_DENORMAL (var42.x2[0]);
2127       _dest1.f = _src1.f * _src2.f;
2128       var43.x2[0] = ORC_DENORMAL (_dest1.i);
2129     }
2130     {
2131       orc_union32 _src1;
2132       orc_union32 _src2;
2133       orc_union32 _dest1;
2134       _src1.i = ORC_DENORMAL (var40.x2[1]);
2135       _src2.i = ORC_DENORMAL (var42.x2[1]);
2136       _dest1.f = _src1.f * _src2.f;
2137       var43.x2[1] = ORC_DENORMAL (_dest1.i);
2138     }
2139     /* 8: convfl */
2140     {
2141       int tmp;
2142       tmp = (int) var43.x2f[0];
2143       if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000))
2144         tmp = 0x7fffffff;
2145       var44.x2[0] = tmp;
2146     }
2147     {
2148       int tmp;
2149       tmp = (int) var43.x2f[1];
2150       if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000))
2151         tmp = 0x7fffffff;
2152       var44.x2[1] = tmp;
2153     }
2154     /* 9: convlw */
2155     var45.x2[0] = var44.x2[0];
2156     var45.x2[1] = var44.x2[1];
2157     /* 10: convssswb */
2158     var37.x2[0] = ORC_CLAMP_SB (var45.x2[0]);
2159     var37.x2[1] = ORC_CLAMP_SB (var45.x2[1]);
2160     /* 11: storew */
2161     ptr0[i] = var37;
2162   }
2163
2164 }
2165
2166 #else
2167 static void
2168 _backup_orc_process_controlled_int8_2ch (OrcExecutor * ORC_RESTRICT ex)
2169 {
2170   int i;
2171   int n = ex->n;
2172   orc_union16 *ORC_RESTRICT ptr0;
2173   const orc_union64 *ORC_RESTRICT ptr4;
2174   orc_union16 var35;
2175   orc_union64 var36;
2176   orc_union16 var37;
2177   orc_union32 var38;
2178   orc_union64 var39;
2179   orc_union64 var40;
2180   orc_union32 var41;
2181   orc_union64 var42;
2182   orc_union64 var43;
2183   orc_union64 var44;
2184   orc_union32 var45;
2185
2186   ptr0 = (orc_union16 *) ex->arrays[0];
2187   ptr4 = (orc_union64 *) ex->arrays[4];
2188
2189
2190   for (i = 0; i < n; i++) {
2191     /* 0: loadw */
2192     var35 = ptr0[i];
2193     /* 1: convsbw */
2194     var38.x2[0] = var35.x2[0];
2195     var38.x2[1] = var35.x2[1];
2196     /* 2: convswl */
2197     var39.x2[0] = var38.x2[0];
2198     var39.x2[1] = var38.x2[1];
2199     /* 3: convlf */
2200     var40.x2f[0] = var39.x2[0];
2201     var40.x2f[1] = var39.x2[1];
2202     /* 4: loadq */
2203     var36 = ptr4[i];
2204     /* 5: convdf */
2205     {
2206       orc_union64 _src1;
2207       orc_union32 _dest;
2208       _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
2209       _dest.f = _src1.f;
2210       var41.i = ORC_DENORMAL (_dest.i);
2211     }
2212     /* 6: mergelq */
2213     {
2214       orc_union64 _dest;
2215       _dest.x2[0] = var41.i;
2216       _dest.x2[1] = var41.i;
2217       var42.i = _dest.i;
2218     }
2219     /* 7: mulf */
2220     {
2221       orc_union32 _src1;
2222       orc_union32 _src2;
2223       orc_union32 _dest1;
2224       _src1.i = ORC_DENORMAL (var40.x2[0]);
2225       _src2.i = ORC_DENORMAL (var42.x2[0]);
2226       _dest1.f = _src1.f * _src2.f;
2227       var43.x2[0] = ORC_DENORMAL (_dest1.i);
2228     }
2229     {
2230       orc_union32 _src1;
2231       orc_union32 _src2;
2232       orc_union32 _dest1;
2233       _src1.i = ORC_DENORMAL (var40.x2[1]);
2234       _src2.i = ORC_DENORMAL (var42.x2[1]);
2235       _dest1.f = _src1.f * _src2.f;
2236       var43.x2[1] = ORC_DENORMAL (_dest1.i);
2237     }
2238     /* 8: convfl */
2239     {
2240       int tmp;
2241       tmp = (int) var43.x2f[0];
2242       if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000))
2243         tmp = 0x7fffffff;
2244       var44.x2[0] = tmp;
2245     }
2246     {
2247       int tmp;
2248       tmp = (int) var43.x2f[1];
2249       if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000))
2250         tmp = 0x7fffffff;
2251       var44.x2[1] = tmp;
2252     }
2253     /* 9: convlw */
2254     var45.x2[0] = var44.x2[0];
2255     var45.x2[1] = var44.x2[1];
2256     /* 10: convssswb */
2257     var37.x2[0] = ORC_CLAMP_SB (var45.x2[0]);
2258     var37.x2[1] = ORC_CLAMP_SB (var45.x2[1]);
2259     /* 11: storew */
2260     ptr0[i] = var37;
2261   }
2262
2263 }
2264
2265 static OrcProgram *_orc_program_orc_process_controlled_int8_2ch;
2266 void
2267 orc_process_controlled_int8_2ch (gint8 * ORC_RESTRICT d1,
2268     const gdouble * ORC_RESTRICT s1, int n)
2269 {
2270   OrcExecutor _ex, *ex = &_ex;
2271   OrcProgram *p = _orc_program_orc_process_controlled_int8_2ch;
2272   void (*func) (OrcExecutor *);
2273
2274   ex->program = p;
2275
2276   ex->n = n;
2277   ex->arrays[ORC_VAR_D1] = d1;
2278   ex->arrays[ORC_VAR_S1] = (void *) s1;
2279
2280   func = p->code_exec;
2281   func (ex);
2282 }
2283 #endif
2284
2285
2286 void
2287 gst_volume_orc_init (void)
2288 {
2289 #ifndef DISABLE_ORC
2290   {
2291     /* orc_scalarmultiply_f64_ns */
2292     OrcProgram *p;
2293
2294     p = orc_program_new ();
2295     orc_program_set_name (p, "orc_scalarmultiply_f64_ns");
2296     orc_program_set_backup_function (p, _backup_orc_scalarmultiply_f64_ns);
2297     orc_program_add_destination (p, 8, "d1");
2298     orc_program_add_parameter_double (p, 8, "p1");
2299
2300     orc_program_append_2 (p, "muld", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_P1,
2301         ORC_VAR_D1);
2302
2303     orc_program_compile (p);
2304
2305     _orc_program_orc_scalarmultiply_f64_ns = p;
2306   }
2307   {
2308     /* orc_scalarmultiply_f32_ns */
2309     OrcProgram *p;
2310
2311     p = orc_program_new ();
2312     orc_program_set_name (p, "orc_scalarmultiply_f32_ns");
2313     orc_program_set_backup_function (p, _backup_orc_scalarmultiply_f32_ns);
2314     orc_program_add_destination (p, 4, "d1");
2315     orc_program_add_parameter_float (p, 4, "p1");
2316
2317     orc_program_append_2 (p, "mulf", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_P1,
2318         ORC_VAR_D1);
2319
2320     orc_program_compile (p);
2321
2322     _orc_program_orc_scalarmultiply_f32_ns = p;
2323   }
2324   {
2325     /* orc_process_int32 */
2326     OrcProgram *p;
2327
2328     p = orc_program_new ();
2329     orc_program_set_name (p, "orc_process_int32");
2330     orc_program_set_backup_function (p, _backup_orc_process_int32);
2331     orc_program_add_destination (p, 4, "d1");
2332     orc_program_add_constant (p, 4, 0x0000001b, "c1");
2333     orc_program_add_parameter (p, 4, "p1");
2334     orc_program_add_temporary (p, 8, "t1");
2335
2336     orc_program_append_2 (p, "mulslq", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
2337         ORC_VAR_D1);
2338     orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2339         ORC_VAR_D1);
2340     orc_program_append_2 (p, "convql", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2341         ORC_VAR_D1);
2342
2343     orc_program_compile (p);
2344
2345     _orc_program_orc_process_int32 = p;
2346   }
2347   {
2348     /* orc_process_int32_clamp */
2349     OrcProgram *p;
2350
2351     p = orc_program_new ();
2352     orc_program_set_name (p, "orc_process_int32_clamp");
2353     orc_program_set_backup_function (p, _backup_orc_process_int32_clamp);
2354     orc_program_add_destination (p, 4, "d1");
2355     orc_program_add_constant (p, 4, 0x0000001b, "c1");
2356     orc_program_add_parameter (p, 4, "p1");
2357     orc_program_add_temporary (p, 8, "t1");
2358
2359     orc_program_append_2 (p, "mulslq", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
2360         ORC_VAR_D1);
2361     orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2362         ORC_VAR_D1);
2363     orc_program_append_2 (p, "convsssql", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2364         ORC_VAR_D1);
2365
2366     orc_program_compile (p);
2367
2368     _orc_program_orc_process_int32_clamp = p;
2369   }
2370   {
2371     /* orc_process_int16 */
2372     OrcProgram *p;
2373
2374     p = orc_program_new ();
2375     orc_program_set_name (p, "orc_process_int16");
2376     orc_program_set_backup_function (p, _backup_orc_process_int16);
2377     orc_program_add_destination (p, 2, "d1");
2378     orc_program_add_constant (p, 4, 0x0000000d, "c1");
2379     orc_program_add_parameter (p, 2, "p1");
2380     orc_program_add_temporary (p, 4, "t1");
2381
2382     orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
2383         ORC_VAR_D1);
2384     orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2385         ORC_VAR_D1);
2386     orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2387         ORC_VAR_D1);
2388
2389     orc_program_compile (p);
2390
2391     _orc_program_orc_process_int16 = p;
2392   }
2393   {
2394     /* orc_process_int16_clamp */
2395     OrcProgram *p;
2396
2397     p = orc_program_new ();
2398     orc_program_set_name (p, "orc_process_int16_clamp");
2399     orc_program_set_backup_function (p, _backup_orc_process_int16_clamp);
2400     orc_program_add_destination (p, 2, "d1");
2401     orc_program_add_constant (p, 4, 0x0000000d, "c1");
2402     orc_program_add_parameter (p, 2, "p1");
2403     orc_program_add_temporary (p, 4, "t1");
2404
2405     orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
2406         ORC_VAR_D1);
2407     orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2408         ORC_VAR_D1);
2409     orc_program_append_2 (p, "convssslw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2410         ORC_VAR_D1);
2411
2412     orc_program_compile (p);
2413
2414     _orc_program_orc_process_int16_clamp = p;
2415   }
2416   {
2417     /* orc_process_int8 */
2418     OrcProgram *p;
2419
2420     p = orc_program_new ();
2421     orc_program_set_name (p, "orc_process_int8");
2422     orc_program_set_backup_function (p, _backup_orc_process_int8);
2423     orc_program_add_destination (p, 1, "d1");
2424     orc_program_add_constant (p, 4, 0x00000005, "c1");
2425     orc_program_add_parameter (p, 1, "p1");
2426     orc_program_add_temporary (p, 2, "t1");
2427
2428     orc_program_append_2 (p, "mulsbw", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
2429         ORC_VAR_D1);
2430     orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2431         ORC_VAR_D1);
2432     orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2433         ORC_VAR_D1);
2434
2435     orc_program_compile (p);
2436
2437     _orc_program_orc_process_int8 = p;
2438   }
2439   {
2440     /* orc_process_int8_clamp */
2441     OrcProgram *p;
2442
2443     p = orc_program_new ();
2444     orc_program_set_name (p, "orc_process_int8_clamp");
2445     orc_program_set_backup_function (p, _backup_orc_process_int8_clamp);
2446     orc_program_add_destination (p, 1, "d1");
2447     orc_program_add_constant (p, 4, 0x00000005, "c1");
2448     orc_program_add_parameter (p, 1, "p1");
2449     orc_program_add_temporary (p, 2, "t1");
2450
2451     orc_program_append_2 (p, "mulsbw", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
2452         ORC_VAR_D1);
2453     orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2454         ORC_VAR_D1);
2455     orc_program_append_2 (p, "convssswb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2456         ORC_VAR_D1);
2457
2458     orc_program_compile (p);
2459
2460     _orc_program_orc_process_int8_clamp = p;
2461   }
2462   {
2463     /* orc_memset_f64 */
2464     OrcProgram *p;
2465
2466     p = orc_program_new ();
2467     orc_program_set_name (p, "orc_memset_f64");
2468     orc_program_set_backup_function (p, _backup_orc_memset_f64);
2469     orc_program_add_destination (p, 8, "d1");
2470     orc_program_add_parameter_double (p, 8, "p1");
2471
2472     orc_program_append_2 (p, "copyq", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
2473         ORC_VAR_D1);
2474
2475     orc_program_compile (p);
2476
2477     _orc_program_orc_memset_f64 = p;
2478   }
2479   {
2480     /* orc_prepare_volumes */
2481     OrcProgram *p;
2482
2483     p = orc_program_new ();
2484     orc_program_set_name (p, "orc_prepare_volumes");
2485     orc_program_set_backup_function (p, _backup_orc_prepare_volumes);
2486     orc_program_add_destination (p, 8, "d1");
2487     orc_program_add_source (p, 4, "s1");
2488     orc_program_add_constant_int64 (p, 8, 0x3ff0000000000000ULL, "c1");
2489     orc_program_add_temporary (p, 8, "t1");
2490
2491     orc_program_append_2 (p, "convld", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2492         ORC_VAR_D1);
2493     orc_program_append_2 (p, "subd", 0, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_T1,
2494         ORC_VAR_D1);
2495     orc_program_append_2 (p, "muld", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1,
2496         ORC_VAR_D1);
2497
2498     orc_program_compile (p);
2499
2500     _orc_program_orc_prepare_volumes = p;
2501   }
2502   {
2503     /* orc_process_controlled_f64_1ch */
2504     OrcProgram *p;
2505
2506     p = orc_program_new ();
2507     orc_program_set_name (p, "orc_process_controlled_f64_1ch");
2508     orc_program_set_backup_function (p, _backup_orc_process_controlled_f64_1ch);
2509     orc_program_add_destination (p, 8, "d1");
2510     orc_program_add_source (p, 8, "s1");
2511
2512     orc_program_append_2 (p, "muld", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_S1,
2513         ORC_VAR_D1);
2514
2515     orc_program_compile (p);
2516
2517     _orc_program_orc_process_controlled_f64_1ch = p;
2518   }
2519   {
2520     /* orc_process_controlled_f32_1ch */
2521     OrcProgram *p;
2522
2523     p = orc_program_new ();
2524     orc_program_set_name (p, "orc_process_controlled_f32_1ch");
2525     orc_program_set_backup_function (p, _backup_orc_process_controlled_f32_1ch);
2526     orc_program_add_destination (p, 4, "d1");
2527     orc_program_add_source (p, 8, "s1");
2528     orc_program_add_temporary (p, 4, "t1");
2529
2530     orc_program_append_2 (p, "convdf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2531         ORC_VAR_D1);
2532     orc_program_append_2 (p, "mulf", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1,
2533         ORC_VAR_D1);
2534
2535     orc_program_compile (p);
2536
2537     _orc_program_orc_process_controlled_f32_1ch = p;
2538   }
2539   {
2540     /* orc_process_controlled_f32_2ch */
2541     OrcProgram *p;
2542
2543     p = orc_program_new ();
2544     orc_program_set_name (p, "orc_process_controlled_f32_2ch");
2545     orc_program_set_backup_function (p, _backup_orc_process_controlled_f32_2ch);
2546     orc_program_add_destination (p, 8, "d1");
2547     orc_program_add_source (p, 8, "s1");
2548     orc_program_add_temporary (p, 4, "t1");
2549     orc_program_add_temporary (p, 8, "t2");
2550
2551     orc_program_append_2 (p, "convdf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2552         ORC_VAR_D1);
2553     orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T1,
2554         ORC_VAR_D1);
2555     orc_program_append_2 (p, "mulf", 1, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
2556         ORC_VAR_D1);
2557
2558     orc_program_compile (p);
2559
2560     _orc_program_orc_process_controlled_f32_2ch = p;
2561   }
2562   {
2563     /* orc_process_controlled_int32_1ch */
2564     OrcProgram *p;
2565
2566     p = orc_program_new ();
2567     orc_program_set_name (p, "orc_process_controlled_int32_1ch");
2568     orc_program_set_backup_function (p,
2569         _backup_orc_process_controlled_int32_1ch);
2570     orc_program_add_destination (p, 4, "d1");
2571     orc_program_add_source (p, 8, "s1");
2572     orc_program_add_temporary (p, 8, "t1");
2573
2574     orc_program_append_2 (p, "convld", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
2575         ORC_VAR_D1);
2576     orc_program_append_2 (p, "muld", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_S1,
2577         ORC_VAR_D1);
2578     orc_program_append_2 (p, "convdl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2579         ORC_VAR_D1);
2580
2581     orc_program_compile (p);
2582
2583     _orc_program_orc_process_controlled_int32_1ch = p;
2584   }
2585   {
2586     /* orc_process_controlled_int16_1ch */
2587     OrcProgram *p;
2588
2589     p = orc_program_new ();
2590     orc_program_set_name (p, "orc_process_controlled_int16_1ch");
2591     orc_program_set_backup_function (p,
2592         _backup_orc_process_controlled_int16_1ch);
2593     orc_program_add_destination (p, 2, "d1");
2594     orc_program_add_source (p, 8, "s1");
2595     orc_program_add_temporary (p, 4, "t1");
2596     orc_program_add_temporary (p, 4, "t2");
2597
2598     orc_program_append_2 (p, "convswl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
2599         ORC_VAR_D1);
2600     orc_program_append_2 (p, "convlf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
2601         ORC_VAR_D1);
2602     orc_program_append_2 (p, "convdf", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
2603         ORC_VAR_D1);
2604     orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
2605         ORC_VAR_D1);
2606     orc_program_append_2 (p, "convfl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
2607         ORC_VAR_D1);
2608     orc_program_append_2 (p, "convssslw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2609         ORC_VAR_D1);
2610
2611     orc_program_compile (p);
2612
2613     _orc_program_orc_process_controlled_int16_1ch = p;
2614   }
2615   {
2616     /* orc_process_controlled_int16_2ch */
2617     OrcProgram *p;
2618
2619     p = orc_program_new ();
2620     orc_program_set_name (p, "orc_process_controlled_int16_2ch");
2621     orc_program_set_backup_function (p,
2622         _backup_orc_process_controlled_int16_2ch);
2623     orc_program_add_destination (p, 4, "d1");
2624     orc_program_add_source (p, 8, "s1");
2625     orc_program_add_temporary (p, 8, "t1");
2626     orc_program_add_temporary (p, 4, "t2");
2627     orc_program_add_temporary (p, 8, "t3");
2628
2629     orc_program_append_2 (p, "convswl", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
2630         ORC_VAR_D1);
2631     orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
2632         ORC_VAR_D1);
2633     orc_program_append_2 (p, "convdf", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
2634         ORC_VAR_D1);
2635     orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T2,
2636         ORC_VAR_D1);
2637     orc_program_append_2 (p, "mulf", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T1,
2638         ORC_VAR_D1);
2639     orc_program_append_2 (p, "convfl", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_D1,
2640         ORC_VAR_D1);
2641     orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
2642         ORC_VAR_D1);
2643
2644     orc_program_compile (p);
2645
2646     _orc_program_orc_process_controlled_int16_2ch = p;
2647   }
2648   {
2649     /* orc_process_controlled_int8_1ch */
2650     OrcProgram *p;
2651
2652     p = orc_program_new ();
2653     orc_program_set_name (p, "orc_process_controlled_int8_1ch");
2654     orc_program_set_backup_function (p,
2655         _backup_orc_process_controlled_int8_1ch);
2656     orc_program_add_destination (p, 1, "d1");
2657     orc_program_add_source (p, 8, "s1");
2658     orc_program_add_temporary (p, 2, "t1");
2659     orc_program_add_temporary (p, 4, "t2");
2660     orc_program_add_temporary (p, 4, "t3");
2661
2662     orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
2663         ORC_VAR_D1);
2664     orc_program_append_2 (p, "convswl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
2665         ORC_VAR_D1);
2666     orc_program_append_2 (p, "convlf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1,
2667         ORC_VAR_D1);
2668     orc_program_append_2 (p, "convdf", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_D1,
2669         ORC_VAR_D1);
2670     orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
2671         ORC_VAR_D1);
2672     orc_program_append_2 (p, "convfl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1,
2673         ORC_VAR_D1);
2674     orc_program_append_2 (p, "convlw", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1,
2675         ORC_VAR_D1);
2676     orc_program_append_2 (p, "convssswb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2677         ORC_VAR_D1);
2678
2679     orc_program_compile (p);
2680
2681     _orc_program_orc_process_controlled_int8_1ch = p;
2682   }
2683   {
2684     /* orc_process_controlled_int8_2ch */
2685     OrcProgram *p;
2686
2687     p = orc_program_new ();
2688     orc_program_set_name (p, "orc_process_controlled_int8_2ch");
2689     orc_program_set_backup_function (p,
2690         _backup_orc_process_controlled_int8_2ch);
2691     orc_program_add_destination (p, 2, "d1");
2692     orc_program_add_source (p, 8, "s1");
2693     orc_program_add_temporary (p, 4, "t1");
2694     orc_program_add_temporary (p, 8, "t2");
2695     orc_program_add_temporary (p, 8, "t3");
2696
2697     orc_program_append_2 (p, "convsbw", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
2698         ORC_VAR_D1);
2699     orc_program_append_2 (p, "convswl", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
2700         ORC_VAR_D1);
2701     orc_program_append_2 (p, "convlf", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1,
2702         ORC_VAR_D1);
2703     orc_program_append_2 (p, "convdf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2704         ORC_VAR_D1);
2705     orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
2706         ORC_VAR_D1);
2707     orc_program_append_2 (p, "mulf", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
2708         ORC_VAR_D1);
2709     orc_program_append_2 (p, "convfl", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1,
2710         ORC_VAR_D1);
2711     orc_program_append_2 (p, "convlw", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1,
2712         ORC_VAR_D1);
2713     orc_program_append_2 (p, "convssswb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2714         ORC_VAR_D1);
2715
2716     orc_program_compile (p);
2717
2718     _orc_program_orc_process_controlled_int8_2ch = p;
2719   }
2720 #endif
2721 }