2 /* autogenerated from gstvolumeorc.orc */
9 #ifndef _ORC_INTEGER_TYPEDEFS_
10 #define _ORC_INTEGER_TYPEDEFS_
11 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
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
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)
46 typedef long orc_int64;
47 typedef unsigned long orc_uint64;
48 #define ORC_UINT64_C(x) (x##UL)
73 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
74 #define ORC_RESTRICT restrict
75 #elif defined(__GNUC__) && __GNUC__ >= 4
76 #define ORC_RESTRICT __restrict__
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);
113 void gst_volume_orc_init (void);
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
125 #define ORC_SW_MAX 32767
126 #define ORC_SW_MIN (-1-ORC_SW_MAX)
127 #define ORC_UW_MAX 65535
129 #define ORC_SL_MAX 2147483647
130 #define ORC_SL_MIN (-1-ORC_SL_MAX)
131 #define ORC_UL_MAX 4294967295U
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))
148 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
149 #define ORC_RESTRICT restrict
150 #elif defined(__GNUC__) && __GNUC__ >= 4
151 #define ORC_RESTRICT __restrict__
156 /* end Orc C target preamble */
160 /* orc_scalarmultiply_f64_ns */
163 orc_scalarmultiply_f64_ns (double *ORC_RESTRICT d1, double p1, int n)
166 orc_union64 *ORC_RESTRICT ptr0;
171 ptr0 = (orc_union64 *) d1;
176 for (i = 0; i < n; i++) {
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);
197 _backup_orc_scalarmultiply_f64_ns (OrcExecutor * ORC_RESTRICT ex)
201 orc_union64 *ORC_RESTRICT ptr0;
206 ptr0 = (orc_union64 *) ex->arrays[0];
210 (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
211 (ORC_VAR_T1 - ORC_VAR_P1)]) << 32);
213 for (i = 0; i < n; i++) {
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);
232 static OrcProgram *_orc_program_orc_scalarmultiply_f64_ns;
234 orc_scalarmultiply_f64_ns (double *ORC_RESTRICT d1, double p1, int n)
236 OrcExecutor _ex, *ex = &_ex;
237 OrcProgram *p = _orc_program_orc_scalarmultiply_f64_ns;
238 void (*func) (OrcExecutor *);
243 ex->arrays[ORC_VAR_D1] = d1;
247 ex->params[ORC_VAR_P1] = tmp.x2[0];
248 ex->params[ORC_VAR_T1] = tmp.x2[1];
257 /* orc_scalarmultiply_f32_ns */
260 orc_scalarmultiply_f32_ns (float *ORC_RESTRICT d1, float p1, int n)
263 orc_union32 *ORC_RESTRICT ptr0;
268 ptr0 = (orc_union32 *) d1;
273 for (i = 0; i < n; i++) {
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);
294 _backup_orc_scalarmultiply_f32_ns (OrcExecutor * ORC_RESTRICT ex)
298 orc_union32 *ORC_RESTRICT ptr0;
303 ptr0 = (orc_union32 *) ex->arrays[0];
306 var33.i = ex->params[24];
308 for (i = 0; i < n; i++) {
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);
327 static OrcProgram *_orc_program_orc_scalarmultiply_f32_ns;
329 orc_scalarmultiply_f32_ns (float *ORC_RESTRICT d1, float p1, int n)
331 OrcExecutor _ex, *ex = &_ex;
332 OrcProgram *p = _orc_program_orc_scalarmultiply_f32_ns;
333 void (*func) (OrcExecutor *);
338 ex->arrays[ORC_VAR_D1] = d1;
342 ex->params[ORC_VAR_P1] = tmp.i;
351 /* orc_process_int32 */
354 orc_process_int32 (gint32 * ORC_RESTRICT d1, int p1, int n)
357 orc_union32 *ORC_RESTRICT ptr0;
364 ptr0 = (orc_union32 *) d1;
369 for (i = 0; i < n; i++) {
373 var36.i = ((orc_int64) var33.i) * ((orc_int64) var34.i);
375 var37.i = var36.i >> 27;
386 _backup_orc_process_int32 (OrcExecutor * ORC_RESTRICT ex)
390 orc_union32 *ORC_RESTRICT ptr0;
397 ptr0 = (orc_union32 *) ex->arrays[0];
400 var34.i = ex->params[24];
402 for (i = 0; i < n; i++) {
406 var36.i = ((orc_int64) var33.i) * ((orc_int64) var34.i);
408 var37.i = var36.i >> 27;
417 static OrcProgram *_orc_program_orc_process_int32;
419 orc_process_int32 (gint32 * ORC_RESTRICT d1, int p1, int n)
421 OrcExecutor _ex, *ex = &_ex;
422 OrcProgram *p = _orc_program_orc_process_int32;
423 void (*func) (OrcExecutor *);
428 ex->arrays[ORC_VAR_D1] = d1;
429 ex->params[ORC_VAR_P1] = p1;
437 /* orc_process_int32_clamp */
440 orc_process_int32_clamp (gint32 * ORC_RESTRICT d1, int p1, int n)
443 orc_union32 *ORC_RESTRICT ptr0;
450 ptr0 = (orc_union32 *) d1;
455 for (i = 0; i < n; i++) {
459 var36.i = ((orc_int64) var33.i) * ((orc_int64) var34.i);
461 var37.i = var36.i >> 27;
463 var35.i = ORC_CLAMP_SL (var37.i);
472 _backup_orc_process_int32_clamp (OrcExecutor * ORC_RESTRICT ex)
476 orc_union32 *ORC_RESTRICT ptr0;
483 ptr0 = (orc_union32 *) ex->arrays[0];
486 var34.i = ex->params[24];
488 for (i = 0; i < n; i++) {
492 var36.i = ((orc_int64) var33.i) * ((orc_int64) var34.i);
494 var37.i = var36.i >> 27;
496 var35.i = ORC_CLAMP_SL (var37.i);
503 static OrcProgram *_orc_program_orc_process_int32_clamp;
505 orc_process_int32_clamp (gint32 * ORC_RESTRICT d1, int p1, int n)
507 OrcExecutor _ex, *ex = &_ex;
508 OrcProgram *p = _orc_program_orc_process_int32_clamp;
509 void (*func) (OrcExecutor *);
514 ex->arrays[ORC_VAR_D1] = d1;
515 ex->params[ORC_VAR_P1] = p1;
523 /* orc_process_int16 */
526 orc_process_int16 (gint16 * ORC_RESTRICT d1, int p1, int n)
529 orc_union16 *ORC_RESTRICT ptr0;
536 ptr0 = (orc_union16 *) d1;
541 for (i = 0; i < n; i++) {
545 var36.i = var33.i * var34.i;
547 var37.i = var36.i >> 11;
558 _backup_orc_process_int16 (OrcExecutor * ORC_RESTRICT ex)
562 orc_union16 *ORC_RESTRICT ptr0;
569 ptr0 = (orc_union16 *) ex->arrays[0];
572 var34.i = ex->params[24];
574 for (i = 0; i < n; i++) {
578 var36.i = var33.i * var34.i;
580 var37.i = var36.i >> 11;
589 static OrcProgram *_orc_program_orc_process_int16;
591 orc_process_int16 (gint16 * ORC_RESTRICT d1, int p1, int n)
593 OrcExecutor _ex, *ex = &_ex;
594 OrcProgram *p = _orc_program_orc_process_int16;
595 void (*func) (OrcExecutor *);
600 ex->arrays[ORC_VAR_D1] = d1;
601 ex->params[ORC_VAR_P1] = p1;
609 /* orc_process_int16_clamp */
612 orc_process_int16_clamp (gint16 * ORC_RESTRICT d1, int p1, int n)
615 orc_union16 *ORC_RESTRICT ptr0;
622 ptr0 = (orc_union16 *) d1;
627 for (i = 0; i < n; i++) {
631 var36.i = var33.i * var34.i;
633 var37.i = var36.i >> 11;
635 var35.i = ORC_CLAMP_SW (var37.i);
644 _backup_orc_process_int16_clamp (OrcExecutor * ORC_RESTRICT ex)
648 orc_union16 *ORC_RESTRICT ptr0;
655 ptr0 = (orc_union16 *) ex->arrays[0];
658 var34.i = ex->params[24];
660 for (i = 0; i < n; i++) {
664 var36.i = var33.i * var34.i;
666 var37.i = var36.i >> 11;
668 var35.i = ORC_CLAMP_SW (var37.i);
675 static OrcProgram *_orc_program_orc_process_int16_clamp;
677 orc_process_int16_clamp (gint16 * ORC_RESTRICT d1, int p1, int n)
679 OrcExecutor _ex, *ex = &_ex;
680 OrcProgram *p = _orc_program_orc_process_int16_clamp;
681 void (*func) (OrcExecutor *);
686 ex->arrays[ORC_VAR_D1] = d1;
687 ex->params[ORC_VAR_P1] = p1;
695 /* orc_process_int8 */
698 orc_process_int8 (gint8 * ORC_RESTRICT d1, int p1, int n)
701 orc_int8 *ORC_RESTRICT ptr0;
708 ptr0 = (orc_int8 *) d1;
713 for (i = 0; i < n; i++) {
717 var36.i = var33 * var34;
719 var37.i = var36.i >> 3;
730 _backup_orc_process_int8 (OrcExecutor * ORC_RESTRICT ex)
734 orc_int8 *ORC_RESTRICT ptr0;
741 ptr0 = (orc_int8 *) ex->arrays[0];
744 var34 = ex->params[24];
746 for (i = 0; i < n; i++) {
750 var36.i = var33 * var34;
752 var37.i = var36.i >> 3;
761 static OrcProgram *_orc_program_orc_process_int8;
763 orc_process_int8 (gint8 * ORC_RESTRICT d1, int p1, int n)
765 OrcExecutor _ex, *ex = &_ex;
766 OrcProgram *p = _orc_program_orc_process_int8;
767 void (*func) (OrcExecutor *);
772 ex->arrays[ORC_VAR_D1] = d1;
773 ex->params[ORC_VAR_P1] = p1;
781 /* orc_process_int8_clamp */
784 orc_process_int8_clamp (gint8 * ORC_RESTRICT d1, int p1, int n)
787 orc_int8 *ORC_RESTRICT ptr0;
794 ptr0 = (orc_int8 *) d1;
799 for (i = 0; i < n; i++) {
803 var36.i = var33 * var34;
805 var37.i = var36.i >> 3;
807 var35 = ORC_CLAMP_SB (var37.i);
816 _backup_orc_process_int8_clamp (OrcExecutor * ORC_RESTRICT ex)
820 orc_int8 *ORC_RESTRICT ptr0;
827 ptr0 = (orc_int8 *) ex->arrays[0];
830 var34 = ex->params[24];
832 for (i = 0; i < n; i++) {
836 var36.i = var33 * var34;
838 var37.i = var36.i >> 3;
840 var35 = ORC_CLAMP_SB (var37.i);
847 static OrcProgram *_orc_program_orc_process_int8_clamp;
849 orc_process_int8_clamp (gint8 * ORC_RESTRICT d1, int p1, int n)
851 OrcExecutor _ex, *ex = &_ex;
852 OrcProgram *p = _orc_program_orc_process_int8_clamp;
853 void (*func) (OrcExecutor *);
858 ex->arrays[ORC_VAR_D1] = d1;
859 ex->params[ORC_VAR_P1] = p1;
870 orc_memset_f64 (gdouble * ORC_RESTRICT d1, double p1, int n)
873 orc_union64 *ORC_RESTRICT ptr0;
877 ptr0 = (orc_union64 *) d1;
882 for (i = 0; i < n; i++) {
893 _backup_orc_memset_f64 (OrcExecutor * ORC_RESTRICT ex)
897 orc_union64 *ORC_RESTRICT ptr0;
901 ptr0 = (orc_union64 *) ex->arrays[0];
905 (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
906 (ORC_VAR_T1 - ORC_VAR_P1)]) << 32);
908 for (i = 0; i < n; i++) {
917 static OrcProgram *_orc_program_orc_memset_f64;
919 orc_memset_f64 (gdouble * ORC_RESTRICT d1, double p1, int n)
921 OrcExecutor _ex, *ex = &_ex;
922 OrcProgram *p = _orc_program_orc_memset_f64;
923 void (*func) (OrcExecutor *);
928 ex->arrays[ORC_VAR_D1] = d1;
932 ex->params[ORC_VAR_P1] = tmp.x2[0];
933 ex->params[ORC_VAR_T1] = tmp.x2[1];
942 /* orc_prepare_volumes */
945 orc_prepare_volumes (gdouble * ORC_RESTRICT d1,
946 const gboolean * ORC_RESTRICT s1, int n)
949 orc_union64 *ORC_RESTRICT ptr0;
950 const orc_union32 *ORC_RESTRICT ptr4;
958 ptr0 = (orc_union64 *) d1;
959 ptr4 = (orc_union32 *) s1;
962 var34.i = ORC_UINT64_C (0x3ff0000000000000); /* 1f */
964 for (i = 0; i < n; i++) {
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);
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);
999 _backup_orc_prepare_volumes (OrcExecutor * ORC_RESTRICT ex)
1003 orc_union64 *ORC_RESTRICT ptr0;
1004 const orc_union32 *ORC_RESTRICT ptr4;
1012 ptr0 = (orc_union64 *) ex->arrays[0];
1013 ptr4 = (orc_union32 *) ex->arrays[4];
1016 var34.i = ORC_UINT64_C (0x3ff0000000000000); /* 1f */
1018 for (i = 0; i < n; i++) {
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);
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);
1051 static OrcProgram *_orc_program_orc_prepare_volumes;
1053 orc_prepare_volumes (gdouble * ORC_RESTRICT d1,
1054 const gboolean * ORC_RESTRICT s1, int n)
1056 OrcExecutor _ex, *ex = &_ex;
1057 OrcProgram *p = _orc_program_orc_prepare_volumes;
1058 void (*func) (OrcExecutor *);
1063 ex->arrays[ORC_VAR_D1] = d1;
1064 ex->arrays[ORC_VAR_S1] = (void *) s1;
1066 func = p->code_exec;
1072 /* orc_process_controlled_f64_1ch */
1075 orc_process_controlled_f64_1ch (gdouble * ORC_RESTRICT d1,
1076 const gdouble * ORC_RESTRICT s1, int n)
1079 orc_union64 *ORC_RESTRICT ptr0;
1080 const orc_union64 *ORC_RESTRICT ptr4;
1085 ptr0 = (orc_union64 *) d1;
1086 ptr4 = (orc_union64 *) s1;
1089 for (i = 0; i < n; i++) {
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);
1112 _backup_orc_process_controlled_f64_1ch (OrcExecutor * ORC_RESTRICT ex)
1116 orc_union64 *ORC_RESTRICT ptr0;
1117 const orc_union64 *ORC_RESTRICT ptr4;
1122 ptr0 = (orc_union64 *) ex->arrays[0];
1123 ptr4 = (orc_union64 *) ex->arrays[4];
1126 for (i = 0; i < n; i++) {
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);
1147 static OrcProgram *_orc_program_orc_process_controlled_f64_1ch;
1149 orc_process_controlled_f64_1ch (gdouble * ORC_RESTRICT d1,
1150 const gdouble * ORC_RESTRICT s1, int n)
1152 OrcExecutor _ex, *ex = &_ex;
1153 OrcProgram *p = _orc_program_orc_process_controlled_f64_1ch;
1154 void (*func) (OrcExecutor *);
1159 ex->arrays[ORC_VAR_D1] = d1;
1160 ex->arrays[ORC_VAR_S1] = (void *) s1;
1162 func = p->code_exec;
1168 /* orc_process_controlled_f32_1ch */
1171 orc_process_controlled_f32_1ch (gfloat * ORC_RESTRICT d1,
1172 const gdouble * ORC_RESTRICT s1, int n)
1175 orc_union32 *ORC_RESTRICT ptr0;
1176 const orc_union64 *ORC_RESTRICT ptr4;
1182 ptr0 = (orc_union32 *) d1;
1183 ptr4 = (orc_union64 *) s1;
1186 for (i = 0; i < n; i++) {
1193 _src1.i = ORC_DENORMAL_DOUBLE (var33.i);
1195 var36.i = ORC_DENORMAL (_dest.i);
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);
1217 _backup_orc_process_controlled_f32_1ch (OrcExecutor * ORC_RESTRICT ex)
1221 orc_union32 *ORC_RESTRICT ptr0;
1222 const orc_union64 *ORC_RESTRICT ptr4;
1228 ptr0 = (orc_union32 *) ex->arrays[0];
1229 ptr4 = (orc_union64 *) ex->arrays[4];
1232 for (i = 0; i < n; i++) {
1239 _src1.i = ORC_DENORMAL_DOUBLE (var33.i);
1241 var36.i = ORC_DENORMAL (_dest.i);
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);
1261 static OrcProgram *_orc_program_orc_process_controlled_f32_1ch;
1263 orc_process_controlled_f32_1ch (gfloat * ORC_RESTRICT d1,
1264 const gdouble * ORC_RESTRICT s1, int n)
1266 OrcExecutor _ex, *ex = &_ex;
1267 OrcProgram *p = _orc_program_orc_process_controlled_f32_1ch;
1268 void (*func) (OrcExecutor *);
1273 ex->arrays[ORC_VAR_D1] = d1;
1274 ex->arrays[ORC_VAR_S1] = (void *) s1;
1276 func = p->code_exec;
1282 /* orc_process_controlled_f32_2ch */
1285 orc_process_controlled_f32_2ch (gfloat * ORC_RESTRICT d1,
1286 const gdouble * ORC_RESTRICT s1, int n)
1289 orc_union64 *ORC_RESTRICT ptr0;
1290 const orc_union64 *ORC_RESTRICT ptr4;
1297 ptr0 = (orc_union64 *) d1;
1298 ptr4 = (orc_union64 *) s1;
1301 for (i = 0; i < n; i++) {
1308 _src1.i = ORC_DENORMAL_DOUBLE (var34.i);
1310 var37.i = ORC_DENORMAL (_dest.i);
1315 _dest.x2[0] = var37.i;
1316 _dest.x2[1] = var37.i;
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);
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);
1348 _backup_orc_process_controlled_f32_2ch (OrcExecutor * ORC_RESTRICT ex)
1352 orc_union64 *ORC_RESTRICT ptr0;
1353 const orc_union64 *ORC_RESTRICT ptr4;
1360 ptr0 = (orc_union64 *) ex->arrays[0];
1361 ptr4 = (orc_union64 *) ex->arrays[4];
1364 for (i = 0; i < n; i++) {
1371 _src1.i = ORC_DENORMAL_DOUBLE (var34.i);
1373 var37.i = ORC_DENORMAL (_dest.i);
1378 _dest.x2[0] = var37.i;
1379 _dest.x2[1] = var37.i;
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);
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);
1409 static OrcProgram *_orc_program_orc_process_controlled_f32_2ch;
1411 orc_process_controlled_f32_2ch (gfloat * ORC_RESTRICT d1,
1412 const gdouble * ORC_RESTRICT s1, int n)
1414 OrcExecutor _ex, *ex = &_ex;
1415 OrcProgram *p = _orc_program_orc_process_controlled_f32_2ch;
1416 void (*func) (OrcExecutor *);
1421 ex->arrays[ORC_VAR_D1] = d1;
1422 ex->arrays[ORC_VAR_S1] = (void *) s1;
1424 func = p->code_exec;
1430 /* orc_process_controlled_int32_1ch */
1433 orc_process_controlled_int32_1ch (gint32 * ORC_RESTRICT d1,
1434 const gdouble * ORC_RESTRICT s1, int n)
1437 orc_union32 *ORC_RESTRICT ptr0;
1438 const orc_union64 *ORC_RESTRICT ptr4;
1445 ptr0 = (orc_union32 *) d1;
1446 ptr4 = (orc_union64 *) s1;
1449 for (i = 0; i < n; i++) {
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);
1470 if (tmp == 0x80000000 && !(var37.i & ORC_UINT64_C (0x8000000000000000)))
1482 _backup_orc_process_controlled_int32_1ch (OrcExecutor * ORC_RESTRICT ex)
1486 orc_union32 *ORC_RESTRICT ptr0;
1487 const orc_union64 *ORC_RESTRICT ptr4;
1494 ptr0 = (orc_union32 *) ex->arrays[0];
1495 ptr4 = (orc_union64 *) ex->arrays[4];
1498 for (i = 0; i < n; i++) {
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);
1519 if (tmp == 0x80000000 && !(var37.i & ORC_UINT64_C (0x8000000000000000)))
1529 static OrcProgram *_orc_program_orc_process_controlled_int32_1ch;
1531 orc_process_controlled_int32_1ch (gint32 * ORC_RESTRICT d1,
1532 const gdouble * ORC_RESTRICT s1, int n)
1534 OrcExecutor _ex, *ex = &_ex;
1535 OrcProgram *p = _orc_program_orc_process_controlled_int32_1ch;
1536 void (*func) (OrcExecutor *);
1541 ex->arrays[ORC_VAR_D1] = d1;
1542 ex->arrays[ORC_VAR_S1] = (void *) s1;
1544 func = p->code_exec;
1550 /* orc_process_controlled_int16_1ch */
1553 orc_process_controlled_int16_1ch (gint16 * ORC_RESTRICT d1,
1554 const gdouble * ORC_RESTRICT s1, int n)
1557 orc_union16 *ORC_RESTRICT ptr0;
1558 const orc_union64 *ORC_RESTRICT ptr4;
1568 ptr0 = (orc_union16 *) d1;
1569 ptr4 = (orc_union64 *) s1;
1572 for (i = 0; i < n; i++) {
1585 _src1.i = ORC_DENORMAL_DOUBLE (var35.i);
1587 var39.i = ORC_DENORMAL (_dest.i);
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);
1602 tmp = (int) var40.f;
1603 if (tmp == 0x80000000 && !(var40.i & 0x80000000))
1608 var36.i = ORC_CLAMP_SW (var41.i);
1617 _backup_orc_process_controlled_int16_1ch (OrcExecutor * ORC_RESTRICT ex)
1621 orc_union16 *ORC_RESTRICT ptr0;
1622 const orc_union64 *ORC_RESTRICT ptr4;
1632 ptr0 = (orc_union16 *) ex->arrays[0];
1633 ptr4 = (orc_union64 *) ex->arrays[4];
1636 for (i = 0; i < n; i++) {
1649 _src1.i = ORC_DENORMAL_DOUBLE (var35.i);
1651 var39.i = ORC_DENORMAL (_dest.i);
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);
1666 tmp = (int) var40.f;
1667 if (tmp == 0x80000000 && !(var40.i & 0x80000000))
1672 var36.i = ORC_CLAMP_SW (var41.i);
1679 static OrcProgram *_orc_program_orc_process_controlled_int16_1ch;
1681 orc_process_controlled_int16_1ch (gint16 * ORC_RESTRICT d1,
1682 const gdouble * ORC_RESTRICT s1, int n)
1684 OrcExecutor _ex, *ex = &_ex;
1685 OrcProgram *p = _orc_program_orc_process_controlled_int16_1ch;
1686 void (*func) (OrcExecutor *);
1691 ex->arrays[ORC_VAR_D1] = d1;
1692 ex->arrays[ORC_VAR_S1] = (void *) s1;
1694 func = p->code_exec;
1700 /* orc_process_controlled_int16_2ch */
1703 orc_process_controlled_int16_2ch (gint16 * ORC_RESTRICT d1,
1704 const gdouble * ORC_RESTRICT s1, int n)
1707 orc_union32 *ORC_RESTRICT ptr0;
1708 const orc_union64 *ORC_RESTRICT ptr4;
1719 ptr0 = (orc_union32 *) d1;
1720 ptr4 = (orc_union64 *) s1;
1723 for (i = 0; i < n; i++) {
1727 var38.x2[0] = var35.x2[0];
1728 var38.x2[1] = var35.x2[1];
1730 var39.x2f[0] = var38.x2[0];
1731 var39.x2f[1] = var38.x2[1];
1738 _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
1740 var40.i = ORC_DENORMAL (_dest.i);
1745 _dest.x2[0] = var40.i;
1746 _dest.x2[1] = var40.i;
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);
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);
1771 tmp = (int) var42.x2f[0];
1772 if (tmp == 0x80000000 && !(var42.x2[0] & 0x80000000))
1778 tmp = (int) var42.x2f[1];
1779 if (tmp == 0x80000000 && !(var42.x2[1] & 0x80000000))
1784 var37.x2[0] = ORC_CLAMP_SW (var43.x2[0]);
1785 var37.x2[1] = ORC_CLAMP_SW (var43.x2[1]);
1794 _backup_orc_process_controlled_int16_2ch (OrcExecutor * ORC_RESTRICT ex)
1798 orc_union32 *ORC_RESTRICT ptr0;
1799 const orc_union64 *ORC_RESTRICT ptr4;
1810 ptr0 = (orc_union32 *) ex->arrays[0];
1811 ptr4 = (orc_union64 *) ex->arrays[4];
1814 for (i = 0; i < n; i++) {
1818 var38.x2[0] = var35.x2[0];
1819 var38.x2[1] = var35.x2[1];
1821 var39.x2f[0] = var38.x2[0];
1822 var39.x2f[1] = var38.x2[1];
1829 _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
1831 var40.i = ORC_DENORMAL (_dest.i);
1836 _dest.x2[0] = var40.i;
1837 _dest.x2[1] = var40.i;
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);
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);
1862 tmp = (int) var42.x2f[0];
1863 if (tmp == 0x80000000 && !(var42.x2[0] & 0x80000000))
1869 tmp = (int) var42.x2f[1];
1870 if (tmp == 0x80000000 && !(var42.x2[1] & 0x80000000))
1875 var37.x2[0] = ORC_CLAMP_SW (var43.x2[0]);
1876 var37.x2[1] = ORC_CLAMP_SW (var43.x2[1]);
1883 static OrcProgram *_orc_program_orc_process_controlled_int16_2ch;
1885 orc_process_controlled_int16_2ch (gint16 * ORC_RESTRICT d1,
1886 const gdouble * ORC_RESTRICT s1, int n)
1888 OrcExecutor _ex, *ex = &_ex;
1889 OrcProgram *p = _orc_program_orc_process_controlled_int16_2ch;
1890 void (*func) (OrcExecutor *);
1895 ex->arrays[ORC_VAR_D1] = d1;
1896 ex->arrays[ORC_VAR_S1] = (void *) s1;
1898 func = p->code_exec;
1904 /* orc_process_controlled_int8_1ch */
1907 orc_process_controlled_int8_1ch (gint8 * ORC_RESTRICT d1,
1908 const gdouble * ORC_RESTRICT s1, int n)
1911 orc_int8 *ORC_RESTRICT ptr0;
1912 const orc_union64 *ORC_RESTRICT ptr4;
1924 ptr0 = (orc_int8 *) d1;
1925 ptr4 = (orc_union64 *) s1;
1928 for (i = 0; i < n; i++) {
1943 _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
1945 var41.i = ORC_DENORMAL (_dest.i);
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);
1960 tmp = (int) var42.f;
1961 if (tmp == 0x80000000 && !(var42.i & 0x80000000))
1968 var37 = ORC_CLAMP_SB (var44.i);
1977 _backup_orc_process_controlled_int8_1ch (OrcExecutor * ORC_RESTRICT ex)
1981 orc_int8 *ORC_RESTRICT ptr0;
1982 const orc_union64 *ORC_RESTRICT ptr4;
1994 ptr0 = (orc_int8 *) ex->arrays[0];
1995 ptr4 = (orc_union64 *) ex->arrays[4];
1998 for (i = 0; i < n; i++) {
2013 _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
2015 var41.i = ORC_DENORMAL (_dest.i);
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);
2030 tmp = (int) var42.f;
2031 if (tmp == 0x80000000 && !(var42.i & 0x80000000))
2038 var37 = ORC_CLAMP_SB (var44.i);
2045 static OrcProgram *_orc_program_orc_process_controlled_int8_1ch;
2047 orc_process_controlled_int8_1ch (gint8 * ORC_RESTRICT d1,
2048 const gdouble * ORC_RESTRICT s1, int n)
2050 OrcExecutor _ex, *ex = &_ex;
2051 OrcProgram *p = _orc_program_orc_process_controlled_int8_1ch;
2052 void (*func) (OrcExecutor *);
2057 ex->arrays[ORC_VAR_D1] = d1;
2058 ex->arrays[ORC_VAR_S1] = (void *) s1;
2060 func = p->code_exec;
2066 /* orc_process_controlled_int8_2ch */
2069 orc_process_controlled_int8_2ch (gint8 * ORC_RESTRICT d1,
2070 const gdouble * ORC_RESTRICT s1, int n)
2073 orc_union16 *ORC_RESTRICT ptr0;
2074 const orc_union64 *ORC_RESTRICT ptr4;
2087 ptr0 = (orc_union16 *) d1;
2088 ptr4 = (orc_union64 *) s1;
2091 for (i = 0; i < n; i++) {
2095 var38.x2[0] = var35.x2[0];
2096 var38.x2[1] = var35.x2[1];
2098 var39.x2[0] = var38.x2[0];
2099 var39.x2[1] = var38.x2[1];
2101 var40.x2f[0] = var39.x2[0];
2102 var40.x2f[1] = var39.x2[1];
2109 _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
2111 var41.i = ORC_DENORMAL (_dest.i);
2116 _dest.x2[0] = var41.i;
2117 _dest.x2[1] = var41.i;
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);
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);
2142 tmp = (int) var43.x2f[0];
2143 if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000))
2149 tmp = (int) var43.x2f[1];
2150 if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000))
2155 var45.x2[0] = var44.x2[0];
2156 var45.x2[1] = var44.x2[1];
2158 var37.x2[0] = ORC_CLAMP_SB (var45.x2[0]);
2159 var37.x2[1] = ORC_CLAMP_SB (var45.x2[1]);
2168 _backup_orc_process_controlled_int8_2ch (OrcExecutor * ORC_RESTRICT ex)
2172 orc_union16 *ORC_RESTRICT ptr0;
2173 const orc_union64 *ORC_RESTRICT ptr4;
2186 ptr0 = (orc_union16 *) ex->arrays[0];
2187 ptr4 = (orc_union64 *) ex->arrays[4];
2190 for (i = 0; i < n; i++) {
2194 var38.x2[0] = var35.x2[0];
2195 var38.x2[1] = var35.x2[1];
2197 var39.x2[0] = var38.x2[0];
2198 var39.x2[1] = var38.x2[1];
2200 var40.x2f[0] = var39.x2[0];
2201 var40.x2f[1] = var39.x2[1];
2208 _src1.i = ORC_DENORMAL_DOUBLE (var36.i);
2210 var41.i = ORC_DENORMAL (_dest.i);
2215 _dest.x2[0] = var41.i;
2216 _dest.x2[1] = var41.i;
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);
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);
2241 tmp = (int) var43.x2f[0];
2242 if (tmp == 0x80000000 && !(var43.x2[0] & 0x80000000))
2248 tmp = (int) var43.x2f[1];
2249 if (tmp == 0x80000000 && !(var43.x2[1] & 0x80000000))
2254 var45.x2[0] = var44.x2[0];
2255 var45.x2[1] = var44.x2[1];
2257 var37.x2[0] = ORC_CLAMP_SB (var45.x2[0]);
2258 var37.x2[1] = ORC_CLAMP_SB (var45.x2[1]);
2265 static OrcProgram *_orc_program_orc_process_controlled_int8_2ch;
2267 orc_process_controlled_int8_2ch (gint8 * ORC_RESTRICT d1,
2268 const gdouble * ORC_RESTRICT s1, int n)
2270 OrcExecutor _ex, *ex = &_ex;
2271 OrcProgram *p = _orc_program_orc_process_controlled_int8_2ch;
2272 void (*func) (OrcExecutor *);
2277 ex->arrays[ORC_VAR_D1] = d1;
2278 ex->arrays[ORC_VAR_S1] = (void *) s1;
2280 func = p->code_exec;
2287 gst_volume_orc_init (void)
2291 /* orc_scalarmultiply_f64_ns */
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");
2300 orc_program_append_2 (p, "muld", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_P1,
2303 orc_program_compile (p);
2305 _orc_program_orc_scalarmultiply_f64_ns = p;
2308 /* orc_scalarmultiply_f32_ns */
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");
2317 orc_program_append_2 (p, "mulf", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_P1,
2320 orc_program_compile (p);
2322 _orc_program_orc_scalarmultiply_f32_ns = p;
2325 /* orc_process_int32 */
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");
2336 orc_program_append_2 (p, "mulslq", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
2338 orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2340 orc_program_append_2 (p, "convql", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2343 orc_program_compile (p);
2345 _orc_program_orc_process_int32 = p;
2348 /* orc_process_int32_clamp */
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");
2359 orc_program_append_2 (p, "mulslq", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
2361 orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2363 orc_program_append_2 (p, "convsssql", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2366 orc_program_compile (p);
2368 _orc_program_orc_process_int32_clamp = p;
2371 /* orc_process_int16 */
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, 0x0000000b, "c1");
2379 orc_program_add_parameter (p, 2, "p1");
2380 orc_program_add_temporary (p, 4, "t1");
2382 orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
2384 orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2386 orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2389 orc_program_compile (p);
2391 _orc_program_orc_process_int16 = p;
2394 /* orc_process_int16_clamp */
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, 0x0000000b, "c1");
2402 orc_program_add_parameter (p, 2, "p1");
2403 orc_program_add_temporary (p, 4, "t1");
2405 orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
2407 orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2409 orc_program_append_2 (p, "convssslw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2412 orc_program_compile (p);
2414 _orc_program_orc_process_int16_clamp = p;
2417 /* orc_process_int8 */
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, 0x00000003, "c1");
2425 orc_program_add_parameter (p, 1, "p1");
2426 orc_program_add_temporary (p, 2, "t1");
2428 orc_program_append_2 (p, "mulsbw", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
2430 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2432 orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2435 orc_program_compile (p);
2437 _orc_program_orc_process_int8 = p;
2440 /* orc_process_int8_clamp */
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, 0x00000003, "c1");
2448 orc_program_add_parameter (p, 1, "p1");
2449 orc_program_add_temporary (p, 2, "t1");
2451 orc_program_append_2 (p, "mulsbw", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_P1,
2453 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
2455 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2458 orc_program_compile (p);
2460 _orc_program_orc_process_int8_clamp = p;
2463 /* orc_memset_f64 */
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");
2472 orc_program_append_2 (p, "copyq", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
2475 orc_program_compile (p);
2477 _orc_program_orc_memset_f64 = p;
2480 /* orc_prepare_volumes */
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");
2491 orc_program_append_2 (p, "convld", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2493 orc_program_append_2 (p, "subd", 0, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_T1,
2495 orc_program_append_2 (p, "muld", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1,
2498 orc_program_compile (p);
2500 _orc_program_orc_prepare_volumes = p;
2503 /* orc_process_controlled_f64_1ch */
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");
2512 orc_program_append_2 (p, "muld", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_S1,
2515 orc_program_compile (p);
2517 _orc_program_orc_process_controlled_f64_1ch = p;
2520 /* orc_process_controlled_f32_1ch */
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");
2530 orc_program_append_2 (p, "convdf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2532 orc_program_append_2 (p, "mulf", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T1,
2535 orc_program_compile (p);
2537 _orc_program_orc_process_controlled_f32_1ch = p;
2540 /* orc_process_controlled_f32_2ch */
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");
2551 orc_program_append_2 (p, "convdf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2553 orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T1,
2555 orc_program_append_2 (p, "mulf", 1, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
2558 orc_program_compile (p);
2560 _orc_program_orc_process_controlled_f32_2ch = p;
2563 /* orc_process_controlled_int32_1ch */
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");
2574 orc_program_append_2 (p, "convld", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
2576 orc_program_append_2 (p, "muld", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_S1,
2578 orc_program_append_2 (p, "convdl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2581 orc_program_compile (p);
2583 _orc_program_orc_process_controlled_int32_1ch = p;
2586 /* orc_process_controlled_int16_1ch */
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");
2598 orc_program_append_2 (p, "convswl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
2600 orc_program_append_2 (p, "convlf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
2602 orc_program_append_2 (p, "convdf", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
2604 orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
2606 orc_program_append_2 (p, "convfl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
2608 orc_program_append_2 (p, "convssslw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2611 orc_program_compile (p);
2613 _orc_program_orc_process_controlled_int16_1ch = p;
2616 /* orc_process_controlled_int16_2ch */
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");
2629 orc_program_append_2 (p, "convswl", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
2631 orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
2633 orc_program_append_2 (p, "convdf", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
2635 orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T2,
2637 orc_program_append_2 (p, "mulf", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T1,
2639 orc_program_append_2 (p, "convfl", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_D1,
2641 orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
2644 orc_program_compile (p);
2646 _orc_program_orc_process_controlled_int16_2ch = p;
2649 /* orc_process_controlled_int8_1ch */
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");
2662 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
2664 orc_program_append_2 (p, "convswl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
2666 orc_program_append_2 (p, "convlf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1,
2668 orc_program_append_2 (p, "convdf", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_D1,
2670 orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
2672 orc_program_append_2 (p, "convfl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1,
2674 orc_program_append_2 (p, "convlw", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1,
2676 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2679 orc_program_compile (p);
2681 _orc_program_orc_process_controlled_int8_1ch = p;
2684 /* orc_process_controlled_int8_2ch */
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");
2697 orc_program_append_2 (p, "convsbw", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
2699 orc_program_append_2 (p, "convswl", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
2701 orc_program_append_2 (p, "convlf", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1,
2703 orc_program_append_2 (p, "convdf", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
2705 orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
2707 orc_program_append_2 (p, "mulf", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
2709 orc_program_append_2 (p, "convfl", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1,
2711 orc_program_append_2 (p, "convlw", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1,
2713 orc_program_append_2 (p, "convssswb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
2716 orc_program_compile (p);
2718 _orc_program_orc_process_controlled_int8_2ch = p;