2 /* autogenerated from gstcogorc.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 cogorc_memcpy_2d (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
86 const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
87 void cogorc_downsample_horiz_cosite_1tap (orc_uint8 * ORC_RESTRICT d1,
88 const orc_uint16 * ORC_RESTRICT s1, int n);
89 void cogorc_downsample_horiz_cosite_3tap (orc_uint8 * ORC_RESTRICT d1,
90 const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2,
92 void cogorc_downsample_420_jpeg (orc_uint8 * ORC_RESTRICT d1,
93 const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2,
95 void cogorc_downsample_vert_halfsite_2tap (orc_uint8 * ORC_RESTRICT d1,
96 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
98 void cogorc_downsample_vert_cosite_3tap (orc_uint8 * ORC_RESTRICT d1,
99 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
100 const orc_uint8 * ORC_RESTRICT s3, int n);
101 void cogorc_downsample_vert_halfsite_4tap (orc_uint8 * ORC_RESTRICT d1,
102 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
103 const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4,
105 void cogorc_upsample_horiz_cosite_1tap (guint8 * ORC_RESTRICT d1,
106 const orc_uint8 * ORC_RESTRICT s1, int n);
107 void cogorc_upsample_horiz_cosite (guint8 * ORC_RESTRICT d1,
108 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
110 void cogorc_upsample_vert_avgub (orc_uint8 * ORC_RESTRICT d1,
111 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
113 void orc_unpack_yuyv_y (orc_uint8 * ORC_RESTRICT d1,
114 const orc_uint16 * ORC_RESTRICT s1, int n);
115 void orc_unpack_yuyv_u (orc_uint8 * ORC_RESTRICT d1,
116 const orc_uint32 * ORC_RESTRICT s1, int n);
117 void orc_unpack_yuyv_v (orc_uint8 * ORC_RESTRICT d1,
118 const orc_uint32 * ORC_RESTRICT s1, int n);
119 void orc_pack_yuyv (orc_uint32 * ORC_RESTRICT d1,
120 const guint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
121 const orc_uint8 * ORC_RESTRICT s3, int n);
122 void orc_unpack_uyvy_y (orc_uint8 * ORC_RESTRICT d1,
123 const orc_uint16 * ORC_RESTRICT s1, int n);
124 void orc_unpack_uyvy_u (orc_uint8 * ORC_RESTRICT d1,
125 const orc_uint32 * ORC_RESTRICT s1, int n);
126 void orc_unpack_uyvy_v (orc_uint8 * ORC_RESTRICT d1,
127 const orc_uint32 * ORC_RESTRICT s1, int n);
128 void orc_pack_uyvy (orc_uint32 * ORC_RESTRICT d1,
129 const guint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
130 const orc_uint8 * ORC_RESTRICT s3, int n);
131 void orc_addc_convert_u8_s16 (orc_uint8 * ORC_RESTRICT d1,
132 const gint16 * ORC_RESTRICT s1, int n);
133 void orc_subc_convert_s16_u8 (gint16 * ORC_RESTRICT d1,
134 const orc_uint8 * ORC_RESTRICT s1, int n);
135 void orc_splat_u8_ns (orc_uint8 * ORC_RESTRICT d1, int p1, int n);
136 void orc_splat_s16_ns (gint16 * ORC_RESTRICT d1, int p1, int n);
137 void orc_matrix2_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
138 const guint8 * ORC_RESTRICT s2, int p1, int p2, int p3, int n);
139 void orc_matrix2_11_u8 (guint8 * ORC_RESTRICT d1,
140 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1,
142 void orc_matrix2_12_u8 (guint8 * ORC_RESTRICT d1,
143 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1,
145 void orc_matrix3_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
146 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1,
147 int p2, int p3, int p4, int n);
148 void orc_matrix3_100_u8 (guint8 * ORC_RESTRICT d1,
149 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
150 const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int n);
151 void orc_matrix3_100_offset_u8 (guint8 * ORC_RESTRICT d1,
152 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
153 const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
155 void orc_matrix3_000_u8 (guint8 * ORC_RESTRICT d1,
156 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
157 const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
159 void orc_pack_123x (guint32 * ORC_RESTRICT d1,
160 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
161 const orc_uint8 * ORC_RESTRICT s3, int p1, int n);
162 void orc_pack_x123 (guint32 * ORC_RESTRICT d1,
163 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
164 const orc_uint8 * ORC_RESTRICT s3, int p1, int n);
165 void cogorc_combine2_u8 (orc_uint8 * ORC_RESTRICT d1,
166 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
167 int p1, int p2, int n);
168 void cogorc_combine4_u8 (orc_uint8 * ORC_RESTRICT d1,
169 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
170 const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4,
171 int p1, int p2, int p3, int p4, int n);
172 void cogorc_unpack_axyz_0 (orc_uint8 * ORC_RESTRICT d1,
173 const orc_uint32 * ORC_RESTRICT s1, int n);
174 void cogorc_unpack_axyz_1 (orc_uint8 * ORC_RESTRICT d1,
175 const orc_uint32 * ORC_RESTRICT s1, int n);
176 void cogorc_unpack_axyz_2 (orc_uint8 * ORC_RESTRICT d1,
177 const orc_uint32 * ORC_RESTRICT s1, int n);
178 void cogorc_unpack_axyz_3 (orc_uint8 * ORC_RESTRICT d1,
179 const orc_uint32 * ORC_RESTRICT s1, int n);
180 void cogorc_resample_horiz_1tap (orc_uint8 * ORC_RESTRICT d1,
181 const orc_uint8 * ORC_RESTRICT s1, int p1, int p2, int n);
182 void cogorc_resample_horiz_2tap (orc_uint8 * ORC_RESTRICT d1,
183 const orc_uint8 * ORC_RESTRICT s1, int p1, int p2, int n);
184 void cogorc_convert_I420_UYVY (orc_uint32 * ORC_RESTRICT d1,
185 orc_uint32 * ORC_RESTRICT d2, const orc_uint16 * ORC_RESTRICT s1,
186 const orc_uint16 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3,
187 const orc_uint8 * ORC_RESTRICT s4, int n);
188 void cogorc_convert_I420_YUY2 (orc_uint32 * ORC_RESTRICT d1,
189 orc_uint32 * ORC_RESTRICT d2, const orc_uint16 * ORC_RESTRICT s1,
190 const orc_uint16 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3,
191 const orc_uint8 * ORC_RESTRICT s4, int n);
192 void cogorc_convert_I420_AYUV (orc_uint32 * ORC_RESTRICT d1,
193 orc_uint32 * ORC_RESTRICT d2, const orc_uint8 * ORC_RESTRICT s1,
194 const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3,
195 const orc_uint8 * ORC_RESTRICT s4, int n);
196 void cogorc_convert_YUY2_I420 (orc_uint16 * ORC_RESTRICT d1,
197 orc_uint16 * ORC_RESTRICT d2, orc_uint8 * ORC_RESTRICT d3,
198 orc_uint8 * ORC_RESTRICT d4, const orc_uint32 * ORC_RESTRICT s1,
199 const orc_uint32 * ORC_RESTRICT s2, int n);
200 void cogorc_convert_UYVY_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
201 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m);
202 void cogorc_planar_chroma_420_422 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
203 orc_uint8 * ORC_RESTRICT d2, int d2_stride,
204 const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
205 void cogorc_planar_chroma_420_444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
206 orc_uint16 * ORC_RESTRICT d2, int d2_stride,
207 const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
208 void cogorc_planar_chroma_422_444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
209 const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m);
210 void cogorc_planar_chroma_444_422 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
211 const orc_uint16 * ORC_RESTRICT s1, int s1_stride, int n, int m);
212 void cogorc_planar_chroma_444_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
213 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
214 const orc_uint16 * ORC_RESTRICT s2, int s2_stride, int n, int m);
215 void cogorc_planar_chroma_422_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
216 const orc_uint8 * ORC_RESTRICT s1, int s1_stride,
217 const orc_uint8 * ORC_RESTRICT s2, int s2_stride, int n, int m);
218 void cogorc_convert_YUY2_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride,
219 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m);
220 void cogorc_convert_UYVY_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride,
221 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m);
222 void cogorc_convert_YUY2_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
223 orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
224 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
226 void cogorc_convert_UYVY_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
227 orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
228 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
230 void cogorc_convert_YUY2_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
231 orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint16 * ORC_RESTRICT d3,
232 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
234 void cogorc_convert_UYVY_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
235 orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint16 * ORC_RESTRICT d3,
236 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
238 void cogorc_convert_UYVY_I420 (orc_uint16 * ORC_RESTRICT d1,
239 orc_uint16 * ORC_RESTRICT d2, orc_uint8 * ORC_RESTRICT d3,
240 orc_uint8 * ORC_RESTRICT d4, const orc_uint32 * ORC_RESTRICT s1,
241 const orc_uint32 * ORC_RESTRICT s2, int n);
242 void cogorc_convert_AYUV_I420 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
243 orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
244 int d3_stride, orc_uint8 * ORC_RESTRICT d4, int d4_stride,
245 const orc_uint64 * ORC_RESTRICT s1, int s1_stride,
246 const orc_uint64 * ORC_RESTRICT s2, int s2_stride, int n, int m);
247 void cogorc_convert_AYUV_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
248 const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m);
249 void cogorc_convert_AYUV_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
250 const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m);
251 void cogorc_convert_AYUV_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
252 orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
253 int d3_stride, const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n,
255 void cogorc_convert_AYUV_Y444 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
256 orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
257 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
259 void cogorc_convert_Y42B_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
260 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
261 const orc_uint8 * ORC_RESTRICT s2, int s2_stride,
262 const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
263 void cogorc_convert_Y42B_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
264 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
265 const orc_uint8 * ORC_RESTRICT s2, int s2_stride,
266 const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
267 void cogorc_convert_Y42B_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride,
268 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
269 const orc_uint8 * ORC_RESTRICT s2, int s2_stride,
270 const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
271 void cogorc_convert_Y444_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
272 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
273 const orc_uint16 * ORC_RESTRICT s2, int s2_stride,
274 const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m);
275 void cogorc_convert_Y444_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
276 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
277 const orc_uint16 * ORC_RESTRICT s2, int s2_stride,
278 const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m);
279 void cogorc_convert_Y444_AYUV (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
280 const orc_uint8 * ORC_RESTRICT s1, int s1_stride,
281 const orc_uint8 * ORC_RESTRICT s2, int s2_stride,
282 const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m);
283 void cogorc_convert_AYUV_ARGB (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
284 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m);
285 void cogorc_convert_AYUV_BGRA (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
286 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m);
287 void cogorc_convert_AYUV_ABGR (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
288 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m);
289 void cogorc_convert_AYUV_RGBA (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
290 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m);
291 void cogorc_convert_I420_BGRA (orc_uint32 * ORC_RESTRICT d1,
292 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
293 const orc_uint8 * ORC_RESTRICT s3, int n);
294 void cogorc_convert_I420_BGRA_avg (orc_uint32 * ORC_RESTRICT d1,
295 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
296 const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4,
297 const orc_uint8 * ORC_RESTRICT s5, int n);
300 /* begin Orc C target preamble */
301 #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
302 #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
303 #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
304 #define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
305 #define ORC_SB_MAX 127
306 #define ORC_SB_MIN (-1-ORC_SB_MAX)
307 #define ORC_UB_MAX 255
309 #define ORC_SW_MAX 32767
310 #define ORC_SW_MIN (-1-ORC_SW_MAX)
311 #define ORC_UW_MAX 65535
313 #define ORC_SL_MAX 2147483647
314 #define ORC_SL_MIN (-1-ORC_SL_MAX)
315 #define ORC_UL_MAX 4294967295U
317 #define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
318 #define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
319 #define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
320 #define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
321 #define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
322 #define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
323 #define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))
324 #define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))
325 #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))
326 #define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
327 #define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
328 #define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
329 #define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
330 #define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
332 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
333 #define ORC_RESTRICT restrict
334 #elif defined(__GNUC__) && __GNUC__ >= 4
335 #define ORC_RESTRICT __restrict__
340 /* end Orc C target preamble */
344 /* cogorc_memcpy_2d */
347 cogorc_memcpy_2d (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
348 const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
352 orc_int8 *ORC_RESTRICT ptr0;
353 const orc_int8 *ORC_RESTRICT ptr4;
357 for (j = 0; j < m; j++) {
358 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
359 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
362 for (i = 0; i < n; i++) {
376 _backup_cogorc_memcpy_2d (OrcExecutor * ORC_RESTRICT ex)
381 int m = ex->params[ORC_VAR_A1];
382 orc_int8 *ORC_RESTRICT ptr0;
383 const orc_int8 *ORC_RESTRICT ptr4;
387 for (j = 0; j < m; j++) {
388 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
389 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
392 for (i = 0; i < n; i++) {
405 cogorc_memcpy_2d (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
406 const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
408 OrcExecutor _ex, *ex = &_ex;
409 static volatile int p_inited = 0;
410 static OrcProgram *p = 0;
411 void (*func) (OrcExecutor *);
414 orc_once_mutex_lock ();
417 p = orc_program_new ();
418 orc_program_set_2d (p);
419 orc_program_set_name (p, "cogorc_memcpy_2d");
420 orc_program_set_backup_function (p, _backup_cogorc_memcpy_2d);
421 orc_program_add_destination (p, 1, "d1");
422 orc_program_add_source (p, 1, "s1");
424 orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
427 orc_program_compile (p);
430 orc_once_mutex_unlock ();
435 ORC_EXECUTOR_M (ex) = m;
436 ex->arrays[ORC_VAR_D1] = d1;
437 ex->params[ORC_VAR_D1] = d1_stride;
438 ex->arrays[ORC_VAR_S1] = (void *) s1;
439 ex->params[ORC_VAR_S1] = s1_stride;
447 /* cogorc_downsample_horiz_cosite_1tap */
450 cogorc_downsample_horiz_cosite_1tap (orc_uint8 * ORC_RESTRICT d1,
451 const orc_uint16 * ORC_RESTRICT s1, int n)
454 orc_int8 *ORC_RESTRICT ptr0;
455 const orc_union16 *ORC_RESTRICT ptr4;
459 ptr0 = (orc_int8 *) d1;
460 ptr4 = (orc_union16 *) s1;
463 for (i = 0; i < n; i++) {
480 _backup_cogorc_downsample_horiz_cosite_1tap (OrcExecutor * ORC_RESTRICT ex)
484 orc_int8 *ORC_RESTRICT ptr0;
485 const orc_union16 *ORC_RESTRICT ptr4;
489 ptr0 = (orc_int8 *) ex->arrays[0];
490 ptr4 = (orc_union16 *) ex->arrays[4];
493 for (i = 0; i < n; i++) {
509 cogorc_downsample_horiz_cosite_1tap (orc_uint8 * ORC_RESTRICT d1,
510 const orc_uint16 * ORC_RESTRICT s1, int n)
512 OrcExecutor _ex, *ex = &_ex;
513 static volatile int p_inited = 0;
514 static OrcProgram *p = 0;
515 void (*func) (OrcExecutor *);
518 orc_once_mutex_lock ();
521 p = orc_program_new ();
522 orc_program_set_name (p, "cogorc_downsample_horiz_cosite_1tap");
523 orc_program_set_backup_function (p,
524 _backup_cogorc_downsample_horiz_cosite_1tap);
525 orc_program_add_destination (p, 1, "d1");
526 orc_program_add_source (p, 2, "s1");
528 orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D1, ORC_VAR_S1,
529 ORC_VAR_D1, ORC_VAR_D1);
531 orc_program_compile (p);
534 orc_once_mutex_unlock ();
539 ex->arrays[ORC_VAR_D1] = d1;
540 ex->arrays[ORC_VAR_S1] = (void *) s1;
548 /* cogorc_downsample_horiz_cosite_3tap */
551 cogorc_downsample_horiz_cosite_3tap (orc_uint8 * ORC_RESTRICT d1,
552 const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2,
556 orc_int8 *ORC_RESTRICT ptr0;
557 const orc_union16 *ORC_RESTRICT ptr4;
558 const orc_union16 *ORC_RESTRICT ptr5;
577 ptr0 = (orc_int8 *) d1;
578 ptr4 = (orc_union16 *) s1;
579 ptr5 = (orc_union16 *) s2;
582 var40.i = (int) 0x00000002; /* 2 or 9.88131e-324f */
584 var41.i = (int) 0x00000002; /* 2 or 9.88131e-324f */
586 for (i = 0; i < n; i++) {
612 var47.i = (orc_uint8) var44;
614 var48.i = (orc_uint8) var45;
616 var49.i = (orc_uint8) var46;
618 var50.i = (var48.i * var40.i) & 0xffff;
620 var51.i = var47.i + var49.i;
622 var52.i = var51.i + var50.i;
624 var53.i = var52.i + var41.i;
626 var54.i = var53.i >> 2;
628 var42 = ORC_CLAMP_UB (var54.i);
637 _backup_cogorc_downsample_horiz_cosite_3tap (OrcExecutor * ORC_RESTRICT ex)
641 orc_int8 *ORC_RESTRICT ptr0;
642 const orc_union16 *ORC_RESTRICT ptr4;
643 const orc_union16 *ORC_RESTRICT ptr5;
662 ptr0 = (orc_int8 *) ex->arrays[0];
663 ptr4 = (orc_union16 *) ex->arrays[4];
664 ptr5 = (orc_union16 *) ex->arrays[5];
667 var40.i = (int) 0x00000002; /* 2 or 9.88131e-324f */
669 var41.i = (int) 0x00000002; /* 2 or 9.88131e-324f */
671 for (i = 0; i < n; i++) {
697 var47.i = (orc_uint8) var44;
699 var48.i = (orc_uint8) var45;
701 var49.i = (orc_uint8) var46;
703 var50.i = (var48.i * var40.i) & 0xffff;
705 var51.i = var47.i + var49.i;
707 var52.i = var51.i + var50.i;
709 var53.i = var52.i + var41.i;
711 var54.i = var53.i >> 2;
713 var42 = ORC_CLAMP_UB (var54.i);
721 cogorc_downsample_horiz_cosite_3tap (orc_uint8 * ORC_RESTRICT d1,
722 const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2,
725 OrcExecutor _ex, *ex = &_ex;
726 static volatile int p_inited = 0;
727 static OrcProgram *p = 0;
728 void (*func) (OrcExecutor *);
731 orc_once_mutex_lock ();
734 p = orc_program_new ();
735 orc_program_set_name (p, "cogorc_downsample_horiz_cosite_3tap");
736 orc_program_set_backup_function (p,
737 _backup_cogorc_downsample_horiz_cosite_3tap);
738 orc_program_add_destination (p, 1, "d1");
739 orc_program_add_source (p, 2, "s1");
740 orc_program_add_source (p, 2, "s2");
741 orc_program_add_constant (p, 4, 0x00000002, "c1");
742 orc_program_add_temporary (p, 1, "t1");
743 orc_program_add_temporary (p, 1, "t2");
744 orc_program_add_temporary (p, 1, "t3");
745 orc_program_add_temporary (p, 2, "t4");
746 orc_program_add_temporary (p, 2, "t5");
747 orc_program_add_temporary (p, 2, "t6");
749 orc_program_append_2 (p, "copyw", 0, ORC_VAR_T4, ORC_VAR_S1, ORC_VAR_D1,
751 orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T1, ORC_VAR_T4,
752 ORC_VAR_D1, ORC_VAR_D1);
753 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T2, ORC_VAR_T4,
754 ORC_VAR_D1, ORC_VAR_D1);
755 orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T3, ORC_VAR_S2,
756 ORC_VAR_D1, ORC_VAR_D1);
757 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_D1,
759 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1,
761 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
763 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C1,
765 orc_program_append_2 (p, "addw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T6,
767 orc_program_append_2 (p, "addw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T5,
769 orc_program_append_2 (p, "addw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C1,
771 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C1,
773 orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T4,
774 ORC_VAR_D1, ORC_VAR_D1);
776 orc_program_compile (p);
779 orc_once_mutex_unlock ();
784 ex->arrays[ORC_VAR_D1] = d1;
785 ex->arrays[ORC_VAR_S1] = (void *) s1;
786 ex->arrays[ORC_VAR_S2] = (void *) s2;
794 /* cogorc_downsample_420_jpeg */
797 cogorc_downsample_420_jpeg (orc_uint8 * ORC_RESTRICT d1,
798 const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2,
802 orc_int8 *ORC_RESTRICT ptr0;
803 const orc_union16 *ORC_RESTRICT ptr4;
804 const orc_union16 *ORC_RESTRICT ptr5;
817 ptr0 = (orc_int8 *) d1;
818 ptr4 = (orc_union16 *) s1;
819 ptr5 = (orc_union16 *) s2;
822 for (i = 0; i < n; i++) {
840 var43 = ((orc_uint8) var41 + (orc_uint8) var42 + 1) >> 1;
858 var47 = ((orc_uint8) var45 + (orc_uint8) var46 + 1) >> 1;
860 var39 = ((orc_uint8) var43 + (orc_uint8) var47 + 1) >> 1;
869 _backup_cogorc_downsample_420_jpeg (OrcExecutor * ORC_RESTRICT ex)
873 orc_int8 *ORC_RESTRICT ptr0;
874 const orc_union16 *ORC_RESTRICT ptr4;
875 const orc_union16 *ORC_RESTRICT ptr5;
888 ptr0 = (orc_int8 *) ex->arrays[0];
889 ptr4 = (orc_union16 *) ex->arrays[4];
890 ptr5 = (orc_union16 *) ex->arrays[5];
893 for (i = 0; i < n; i++) {
911 var43 = ((orc_uint8) var41 + (orc_uint8) var42 + 1) >> 1;
929 var47 = ((orc_uint8) var45 + (orc_uint8) var46 + 1) >> 1;
931 var39 = ((orc_uint8) var43 + (orc_uint8) var47 + 1) >> 1;
939 cogorc_downsample_420_jpeg (orc_uint8 * ORC_RESTRICT d1,
940 const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2,
943 OrcExecutor _ex, *ex = &_ex;
944 static volatile int p_inited = 0;
945 static OrcProgram *p = 0;
946 void (*func) (OrcExecutor *);
949 orc_once_mutex_lock ();
952 p = orc_program_new ();
953 orc_program_set_name (p, "cogorc_downsample_420_jpeg");
954 orc_program_set_backup_function (p, _backup_cogorc_downsample_420_jpeg);
955 orc_program_add_destination (p, 1, "d1");
956 orc_program_add_source (p, 2, "s1");
957 orc_program_add_source (p, 2, "s2");
958 orc_program_add_temporary (p, 2, "t1");
959 orc_program_add_temporary (p, 1, "t2");
960 orc_program_add_temporary (p, 1, "t3");
961 orc_program_add_temporary (p, 1, "t4");
962 orc_program_add_temporary (p, 1, "t5");
964 orc_program_append_2 (p, "copyw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
966 orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T2, ORC_VAR_T1,
967 ORC_VAR_D1, ORC_VAR_D1);
968 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T3, ORC_VAR_T1,
969 ORC_VAR_D1, ORC_VAR_D1);
970 orc_program_append_2 (p, "avgub", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
972 orc_program_append_2 (p, "copyw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_D1,
974 orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T4, ORC_VAR_T1,
975 ORC_VAR_D1, ORC_VAR_D1);
976 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T5, ORC_VAR_T1,
977 ORC_VAR_D1, ORC_VAR_D1);
978 orc_program_append_2 (p, "avgub", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T5,
980 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T4,
983 orc_program_compile (p);
986 orc_once_mutex_unlock ();
991 ex->arrays[ORC_VAR_D1] = d1;
992 ex->arrays[ORC_VAR_S1] = (void *) s1;
993 ex->arrays[ORC_VAR_S2] = (void *) s2;
1001 /* cogorc_downsample_vert_halfsite_2tap */
1004 cogorc_downsample_vert_halfsite_2tap (orc_uint8 * ORC_RESTRICT d1,
1005 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n)
1008 orc_int8 *ORC_RESTRICT ptr0;
1009 const orc_int8 *ORC_RESTRICT ptr4;
1010 const orc_int8 *ORC_RESTRICT ptr5;
1015 ptr0 = (orc_int8 *) d1;
1016 ptr4 = (orc_int8 *) s1;
1017 ptr5 = (orc_int8 *) s2;
1020 for (i = 0; i < n; i++) {
1026 var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
1035 _backup_cogorc_downsample_vert_halfsite_2tap (OrcExecutor * ORC_RESTRICT ex)
1039 orc_int8 *ORC_RESTRICT ptr0;
1040 const orc_int8 *ORC_RESTRICT ptr4;
1041 const orc_int8 *ORC_RESTRICT ptr5;
1046 ptr0 = (orc_int8 *) ex->arrays[0];
1047 ptr4 = (orc_int8 *) ex->arrays[4];
1048 ptr5 = (orc_int8 *) ex->arrays[5];
1051 for (i = 0; i < n; i++) {
1057 var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
1065 cogorc_downsample_vert_halfsite_2tap (orc_uint8 * ORC_RESTRICT d1,
1066 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n)
1068 OrcExecutor _ex, *ex = &_ex;
1069 static volatile int p_inited = 0;
1070 static OrcProgram *p = 0;
1071 void (*func) (OrcExecutor *);
1074 orc_once_mutex_lock ();
1077 p = orc_program_new ();
1078 orc_program_set_name (p, "cogorc_downsample_vert_halfsite_2tap");
1079 orc_program_set_backup_function (p,
1080 _backup_cogorc_downsample_vert_halfsite_2tap);
1081 orc_program_add_destination (p, 1, "d1");
1082 orc_program_add_source (p, 1, "s1");
1083 orc_program_add_source (p, 1, "s2");
1085 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2,
1088 orc_program_compile (p);
1091 orc_once_mutex_unlock ();
1096 ex->arrays[ORC_VAR_D1] = d1;
1097 ex->arrays[ORC_VAR_S1] = (void *) s1;
1098 ex->arrays[ORC_VAR_S2] = (void *) s2;
1100 func = p->code_exec;
1106 /* cogorc_downsample_vert_cosite_3tap */
1109 cogorc_downsample_vert_cosite_3tap (orc_uint8 * ORC_RESTRICT d1,
1110 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
1111 const orc_uint8 * ORC_RESTRICT s3, int n)
1114 orc_int8 *ORC_RESTRICT ptr0;
1115 const orc_int8 *ORC_RESTRICT ptr4;
1116 const orc_int8 *ORC_RESTRICT ptr5;
1117 const orc_int8 *ORC_RESTRICT ptr6;
1133 ptr0 = (orc_int8 *) d1;
1134 ptr4 = (orc_int8 *) s1;
1135 ptr5 = (orc_int8 *) s2;
1136 ptr6 = (orc_int8 *) s3;
1139 var38.i = (int) 0x00000002; /* 2 or 9.88131e-324f */
1141 var39.i = (int) 0x00000002; /* 2 or 9.88131e-324f */
1143 for (i = 0; i < n; i++) {
1147 var41.i = (orc_uint8) var35;
1151 var42.i = (orc_uint8) var36;
1155 var43.i = (orc_uint8) var37;
1157 var44.i = (var42.i * var38.i) & 0xffff;
1159 var45.i = var41.i + var43.i;
1161 var46.i = var45.i + var44.i;
1163 var47.i = var46.i + var39.i;
1165 var48.i = var47.i >> 2;
1167 var40 = ORC_CLAMP_UB (var48.i);
1176 _backup_cogorc_downsample_vert_cosite_3tap (OrcExecutor * ORC_RESTRICT ex)
1180 orc_int8 *ORC_RESTRICT ptr0;
1181 const orc_int8 *ORC_RESTRICT ptr4;
1182 const orc_int8 *ORC_RESTRICT ptr5;
1183 const orc_int8 *ORC_RESTRICT ptr6;
1199 ptr0 = (orc_int8 *) ex->arrays[0];
1200 ptr4 = (orc_int8 *) ex->arrays[4];
1201 ptr5 = (orc_int8 *) ex->arrays[5];
1202 ptr6 = (orc_int8 *) ex->arrays[6];
1205 var38.i = (int) 0x00000002; /* 2 or 9.88131e-324f */
1207 var39.i = (int) 0x00000002; /* 2 or 9.88131e-324f */
1209 for (i = 0; i < n; i++) {
1213 var41.i = (orc_uint8) var35;
1217 var42.i = (orc_uint8) var36;
1221 var43.i = (orc_uint8) var37;
1223 var44.i = (var42.i * var38.i) & 0xffff;
1225 var45.i = var41.i + var43.i;
1227 var46.i = var45.i + var44.i;
1229 var47.i = var46.i + var39.i;
1231 var48.i = var47.i >> 2;
1233 var40 = ORC_CLAMP_UB (var48.i);
1241 cogorc_downsample_vert_cosite_3tap (orc_uint8 * ORC_RESTRICT d1,
1242 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
1243 const orc_uint8 * ORC_RESTRICT s3, int n)
1245 OrcExecutor _ex, *ex = &_ex;
1246 static volatile int p_inited = 0;
1247 static OrcProgram *p = 0;
1248 void (*func) (OrcExecutor *);
1251 orc_once_mutex_lock ();
1254 p = orc_program_new ();
1255 orc_program_set_name (p, "cogorc_downsample_vert_cosite_3tap");
1256 orc_program_set_backup_function (p,
1257 _backup_cogorc_downsample_vert_cosite_3tap);
1258 orc_program_add_destination (p, 1, "d1");
1259 orc_program_add_source (p, 1, "s1");
1260 orc_program_add_source (p, 1, "s2");
1261 orc_program_add_source (p, 1, "s3");
1262 orc_program_add_constant (p, 4, 0x00000002, "c1");
1263 orc_program_add_temporary (p, 2, "t1");
1264 orc_program_add_temporary (p, 2, "t2");
1265 orc_program_add_temporary (p, 2, "t3");
1267 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
1269 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
1271 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T3, ORC_VAR_S3, ORC_VAR_D1,
1273 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
1275 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T3,
1277 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
1279 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
1281 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
1283 orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
1284 ORC_VAR_D1, ORC_VAR_D1);
1286 orc_program_compile (p);
1289 orc_once_mutex_unlock ();
1294 ex->arrays[ORC_VAR_D1] = d1;
1295 ex->arrays[ORC_VAR_S1] = (void *) s1;
1296 ex->arrays[ORC_VAR_S2] = (void *) s2;
1297 ex->arrays[ORC_VAR_S3] = (void *) s3;
1299 func = p->code_exec;
1305 /* cogorc_downsample_vert_halfsite_4tap */
1308 cogorc_downsample_vert_halfsite_4tap (orc_uint8 * ORC_RESTRICT d1,
1309 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
1310 const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, int n)
1313 orc_int8 *ORC_RESTRICT ptr0;
1314 const orc_int8 *ORC_RESTRICT ptr4;
1315 const orc_int8 *ORC_RESTRICT ptr5;
1316 const orc_int8 *ORC_RESTRICT ptr6;
1317 const orc_int8 *ORC_RESTRICT ptr7;
1338 ptr0 = (orc_int8 *) d1;
1339 ptr4 = (orc_int8 *) s1;
1340 ptr5 = (orc_int8 *) s2;
1341 ptr6 = (orc_int8 *) s3;
1342 ptr7 = (orc_int8 *) s4;
1345 var40.i = (int) 0x0000001a; /* 26 or 1.28457e-322f */
1347 var41.i = (int) 0x00000006; /* 6 or 2.96439e-323f */
1349 var42.i = (int) 0x00000020; /* 32 or 1.58101e-322f */
1351 for (i = 0; i < n; i++) {
1355 var44.i = (orc_uint8) var36;
1359 var45.i = (orc_uint8) var37;
1363 var46.i = (orc_uint8) var38;
1367 var47.i = (orc_uint8) var39;
1369 var48.i = var45.i + var46.i;
1371 var49.i = (var48.i * var40.i) & 0xffff;
1373 var50.i = var44.i + var47.i;
1375 var51.i = (var50.i * var41.i) & 0xffff;
1377 var52.i = var49.i + var51.i;
1379 var53.i = var52.i + var42.i;
1381 var54.i = var53.i >> 6;
1383 var43 = ORC_CLAMP_UB (var54.i);
1392 _backup_cogorc_downsample_vert_halfsite_4tap (OrcExecutor * ORC_RESTRICT ex)
1396 orc_int8 *ORC_RESTRICT ptr0;
1397 const orc_int8 *ORC_RESTRICT ptr4;
1398 const orc_int8 *ORC_RESTRICT ptr5;
1399 const orc_int8 *ORC_RESTRICT ptr6;
1400 const orc_int8 *ORC_RESTRICT ptr7;
1421 ptr0 = (orc_int8 *) ex->arrays[0];
1422 ptr4 = (orc_int8 *) ex->arrays[4];
1423 ptr5 = (orc_int8 *) ex->arrays[5];
1424 ptr6 = (orc_int8 *) ex->arrays[6];
1425 ptr7 = (orc_int8 *) ex->arrays[7];
1428 var40.i = (int) 0x0000001a; /* 26 or 1.28457e-322f */
1430 var41.i = (int) 0x00000006; /* 6 or 2.96439e-323f */
1432 var42.i = (int) 0x00000020; /* 32 or 1.58101e-322f */
1434 for (i = 0; i < n; i++) {
1438 var44.i = (orc_uint8) var36;
1442 var45.i = (orc_uint8) var37;
1446 var46.i = (orc_uint8) var38;
1450 var47.i = (orc_uint8) var39;
1452 var48.i = var45.i + var46.i;
1454 var49.i = (var48.i * var40.i) & 0xffff;
1456 var50.i = var44.i + var47.i;
1458 var51.i = (var50.i * var41.i) & 0xffff;
1460 var52.i = var49.i + var51.i;
1462 var53.i = var52.i + var42.i;
1464 var54.i = var53.i >> 6;
1466 var43 = ORC_CLAMP_UB (var54.i);
1474 cogorc_downsample_vert_halfsite_4tap (orc_uint8 * ORC_RESTRICT d1,
1475 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
1476 const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, int n)
1478 OrcExecutor _ex, *ex = &_ex;
1479 static volatile int p_inited = 0;
1480 static OrcProgram *p = 0;
1481 void (*func) (OrcExecutor *);
1484 orc_once_mutex_lock ();
1487 p = orc_program_new ();
1488 orc_program_set_name (p, "cogorc_downsample_vert_halfsite_4tap");
1489 orc_program_set_backup_function (p,
1490 _backup_cogorc_downsample_vert_halfsite_4tap);
1491 orc_program_add_destination (p, 1, "d1");
1492 orc_program_add_source (p, 1, "s1");
1493 orc_program_add_source (p, 1, "s2");
1494 orc_program_add_source (p, 1, "s3");
1495 orc_program_add_source (p, 1, "s4");
1496 orc_program_add_constant (p, 4, 0x0000001a, "c1");
1497 orc_program_add_constant (p, 4, 0x00000006, "c2");
1498 orc_program_add_constant (p, 4, 0x00000020, "c3");
1499 orc_program_add_temporary (p, 2, "t1");
1500 orc_program_add_temporary (p, 2, "t2");
1501 orc_program_add_temporary (p, 2, "t3");
1502 orc_program_add_temporary (p, 2, "t4");
1504 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
1506 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
1508 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T3, ORC_VAR_S3, ORC_VAR_D1,
1510 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T4, ORC_VAR_S4, ORC_VAR_D1,
1512 orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
1514 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
1516 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T4,
1518 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
1520 orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
1522 orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C3,
1524 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
1526 orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2,
1527 ORC_VAR_D1, ORC_VAR_D1);
1529 orc_program_compile (p);
1532 orc_once_mutex_unlock ();
1537 ex->arrays[ORC_VAR_D1] = d1;
1538 ex->arrays[ORC_VAR_S1] = (void *) s1;
1539 ex->arrays[ORC_VAR_S2] = (void *) s2;
1540 ex->arrays[ORC_VAR_S3] = (void *) s3;
1541 ex->arrays[ORC_VAR_S4] = (void *) s4;
1543 func = p->code_exec;
1549 /* cogorc_upsample_horiz_cosite_1tap */
1552 cogorc_upsample_horiz_cosite_1tap (guint8 * ORC_RESTRICT d1,
1553 const orc_uint8 * ORC_RESTRICT s1, int n)
1556 orc_union16 *ORC_RESTRICT ptr0;
1557 const orc_int8 *ORC_RESTRICT ptr4;
1562 ptr0 = (orc_union16 *) d1;
1563 ptr4 = (orc_int8 *) s1;
1566 for (i = 0; i < n; i++) {
1574 _dest.x2[0] = var35;
1575 _dest.x2[1] = var35;
1586 _backup_cogorc_upsample_horiz_cosite_1tap (OrcExecutor * ORC_RESTRICT ex)
1590 orc_union16 *ORC_RESTRICT ptr0;
1591 const orc_int8 *ORC_RESTRICT ptr4;
1596 ptr0 = (orc_union16 *) ex->arrays[0];
1597 ptr4 = (orc_int8 *) ex->arrays[4];
1600 for (i = 0; i < n; i++) {
1608 _dest.x2[0] = var35;
1609 _dest.x2[1] = var35;
1619 cogorc_upsample_horiz_cosite_1tap (guint8 * ORC_RESTRICT d1,
1620 const orc_uint8 * ORC_RESTRICT s1, int n)
1622 OrcExecutor _ex, *ex = &_ex;
1623 static volatile int p_inited = 0;
1624 static OrcProgram *p = 0;
1625 void (*func) (OrcExecutor *);
1628 orc_once_mutex_lock ();
1631 p = orc_program_new ();
1632 orc_program_set_name (p, "cogorc_upsample_horiz_cosite_1tap");
1633 orc_program_set_backup_function (p,
1634 _backup_cogorc_upsample_horiz_cosite_1tap);
1635 orc_program_add_destination (p, 2, "d1");
1636 orc_program_add_source (p, 1, "s1");
1637 orc_program_add_temporary (p, 1, "t1");
1639 orc_program_append_2 (p, "copyb", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
1641 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T1,
1644 orc_program_compile (p);
1647 orc_once_mutex_unlock ();
1652 ex->arrays[ORC_VAR_D1] = d1;
1653 ex->arrays[ORC_VAR_S1] = (void *) s1;
1655 func = p->code_exec;
1661 /* cogorc_upsample_horiz_cosite */
1664 cogorc_upsample_horiz_cosite (guint8 * ORC_RESTRICT d1,
1665 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n)
1668 orc_union16 *ORC_RESTRICT ptr0;
1669 const orc_int8 *ORC_RESTRICT ptr4;
1670 const orc_int8 *ORC_RESTRICT ptr5;
1677 ptr0 = (orc_union16 *) d1;
1678 ptr4 = (orc_int8 *) s1;
1679 ptr5 = (orc_int8 *) s2;
1682 for (i = 0; i < n; i++) {
1690 var38 = ((orc_uint8) var37 + (orc_uint8) var35 + 1) >> 1;
1694 _dest.x2[0] = var37;
1695 _dest.x2[1] = var38;
1706 _backup_cogorc_upsample_horiz_cosite (OrcExecutor * ORC_RESTRICT ex)
1710 orc_union16 *ORC_RESTRICT ptr0;
1711 const orc_int8 *ORC_RESTRICT ptr4;
1712 const orc_int8 *ORC_RESTRICT ptr5;
1719 ptr0 = (orc_union16 *) ex->arrays[0];
1720 ptr4 = (orc_int8 *) ex->arrays[4];
1721 ptr5 = (orc_int8 *) ex->arrays[5];
1724 for (i = 0; i < n; i++) {
1732 var38 = ((orc_uint8) var37 + (orc_uint8) var35 + 1) >> 1;
1736 _dest.x2[0] = var37;
1737 _dest.x2[1] = var38;
1747 cogorc_upsample_horiz_cosite (guint8 * ORC_RESTRICT d1,
1748 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n)
1750 OrcExecutor _ex, *ex = &_ex;
1751 static volatile int p_inited = 0;
1752 static OrcProgram *p = 0;
1753 void (*func) (OrcExecutor *);
1756 orc_once_mutex_lock ();
1759 p = orc_program_new ();
1760 orc_program_set_name (p, "cogorc_upsample_horiz_cosite");
1761 orc_program_set_backup_function (p, _backup_cogorc_upsample_horiz_cosite);
1762 orc_program_add_destination (p, 2, "d1");
1763 orc_program_add_source (p, 1, "s1");
1764 orc_program_add_source (p, 1, "s2");
1765 orc_program_add_temporary (p, 1, "t1");
1766 orc_program_add_temporary (p, 1, "t2");
1768 orc_program_append_2 (p, "copyb", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
1770 orc_program_append_2 (p, "avgub", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S2,
1772 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
1775 orc_program_compile (p);
1778 orc_once_mutex_unlock ();
1783 ex->arrays[ORC_VAR_D1] = d1;
1784 ex->arrays[ORC_VAR_S1] = (void *) s1;
1785 ex->arrays[ORC_VAR_S2] = (void *) s2;
1787 func = p->code_exec;
1793 /* cogorc_upsample_vert_avgub */
1796 cogorc_upsample_vert_avgub (orc_uint8 * ORC_RESTRICT d1,
1797 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n)
1800 orc_int8 *ORC_RESTRICT ptr0;
1801 const orc_int8 *ORC_RESTRICT ptr4;
1802 const orc_int8 *ORC_RESTRICT ptr5;
1807 ptr0 = (orc_int8 *) d1;
1808 ptr4 = (orc_int8 *) s1;
1809 ptr5 = (orc_int8 *) s2;
1812 for (i = 0; i < n; i++) {
1818 var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
1827 _backup_cogorc_upsample_vert_avgub (OrcExecutor * ORC_RESTRICT ex)
1831 orc_int8 *ORC_RESTRICT ptr0;
1832 const orc_int8 *ORC_RESTRICT ptr4;
1833 const orc_int8 *ORC_RESTRICT ptr5;
1838 ptr0 = (orc_int8 *) ex->arrays[0];
1839 ptr4 = (orc_int8 *) ex->arrays[4];
1840 ptr5 = (orc_int8 *) ex->arrays[5];
1843 for (i = 0; i < n; i++) {
1849 var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
1857 cogorc_upsample_vert_avgub (orc_uint8 * ORC_RESTRICT d1,
1858 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n)
1860 OrcExecutor _ex, *ex = &_ex;
1861 static volatile int p_inited = 0;
1862 static OrcProgram *p = 0;
1863 void (*func) (OrcExecutor *);
1866 orc_once_mutex_lock ();
1869 p = orc_program_new ();
1870 orc_program_set_name (p, "cogorc_upsample_vert_avgub");
1871 orc_program_set_backup_function (p, _backup_cogorc_upsample_vert_avgub);
1872 orc_program_add_destination (p, 1, "d1");
1873 orc_program_add_source (p, 1, "s1");
1874 orc_program_add_source (p, 1, "s2");
1876 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2,
1879 orc_program_compile (p);
1882 orc_once_mutex_unlock ();
1887 ex->arrays[ORC_VAR_D1] = d1;
1888 ex->arrays[ORC_VAR_S1] = (void *) s1;
1889 ex->arrays[ORC_VAR_S2] = (void *) s2;
1891 func = p->code_exec;
1897 /* orc_unpack_yuyv_y */
1900 orc_unpack_yuyv_y (orc_uint8 * ORC_RESTRICT d1,
1901 const orc_uint16 * ORC_RESTRICT s1, int n)
1904 orc_int8 *ORC_RESTRICT ptr0;
1905 const orc_union16 *ORC_RESTRICT ptr4;
1909 ptr0 = (orc_int8 *) d1;
1910 ptr4 = (orc_union16 *) s1;
1913 for (i = 0; i < n; i++) {
1930 _backup_orc_unpack_yuyv_y (OrcExecutor * ORC_RESTRICT ex)
1934 orc_int8 *ORC_RESTRICT ptr0;
1935 const orc_union16 *ORC_RESTRICT ptr4;
1939 ptr0 = (orc_int8 *) ex->arrays[0];
1940 ptr4 = (orc_union16 *) ex->arrays[4];
1943 for (i = 0; i < n; i++) {
1959 orc_unpack_yuyv_y (orc_uint8 * ORC_RESTRICT d1,
1960 const orc_uint16 * ORC_RESTRICT s1, int n)
1962 OrcExecutor _ex, *ex = &_ex;
1963 static volatile int p_inited = 0;
1964 static OrcProgram *p = 0;
1965 void (*func) (OrcExecutor *);
1968 orc_once_mutex_lock ();
1971 p = orc_program_new ();
1972 orc_program_set_name (p, "orc_unpack_yuyv_y");
1973 orc_program_set_backup_function (p, _backup_orc_unpack_yuyv_y);
1974 orc_program_add_destination (p, 1, "d1");
1975 orc_program_add_source (p, 2, "s1");
1977 orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D1, ORC_VAR_S1,
1978 ORC_VAR_D1, ORC_VAR_D1);
1980 orc_program_compile (p);
1983 orc_once_mutex_unlock ();
1988 ex->arrays[ORC_VAR_D1] = d1;
1989 ex->arrays[ORC_VAR_S1] = (void *) s1;
1991 func = p->code_exec;
1997 /* orc_unpack_yuyv_u */
2000 orc_unpack_yuyv_u (orc_uint8 * ORC_RESTRICT d1,
2001 const orc_uint32 * ORC_RESTRICT s1, int n)
2004 orc_int8 *ORC_RESTRICT ptr0;
2005 const orc_union32 *ORC_RESTRICT ptr4;
2010 ptr0 = (orc_int8 *) d1;
2011 ptr4 = (orc_union32 *) s1;
2014 for (i = 0; i < n; i++) {
2021 var35.i = _src.x2[0];
2037 _backup_orc_unpack_yuyv_u (OrcExecutor * ORC_RESTRICT ex)
2041 orc_int8 *ORC_RESTRICT ptr0;
2042 const orc_union32 *ORC_RESTRICT ptr4;
2047 ptr0 = (orc_int8 *) ex->arrays[0];
2048 ptr4 = (orc_union32 *) ex->arrays[4];
2051 for (i = 0; i < n; i++) {
2058 var35.i = _src.x2[0];
2073 orc_unpack_yuyv_u (orc_uint8 * ORC_RESTRICT d1,
2074 const orc_uint32 * ORC_RESTRICT s1, int n)
2076 OrcExecutor _ex, *ex = &_ex;
2077 static volatile int p_inited = 0;
2078 static OrcProgram *p = 0;
2079 void (*func) (OrcExecutor *);
2082 orc_once_mutex_lock ();
2085 p = orc_program_new ();
2086 orc_program_set_name (p, "orc_unpack_yuyv_u");
2087 orc_program_set_backup_function (p, _backup_orc_unpack_yuyv_u);
2088 orc_program_add_destination (p, 1, "d1");
2089 orc_program_add_source (p, 4, "s1");
2090 orc_program_add_temporary (p, 2, "t1");
2092 orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
2093 ORC_VAR_D1, ORC_VAR_D1);
2094 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
2095 ORC_VAR_D1, ORC_VAR_D1);
2097 orc_program_compile (p);
2100 orc_once_mutex_unlock ();
2105 ex->arrays[ORC_VAR_D1] = d1;
2106 ex->arrays[ORC_VAR_S1] = (void *) s1;
2108 func = p->code_exec;
2114 /* orc_unpack_yuyv_v */
2117 orc_unpack_yuyv_v (orc_uint8 * ORC_RESTRICT d1,
2118 const orc_uint32 * ORC_RESTRICT s1, int n)
2121 orc_int8 *ORC_RESTRICT ptr0;
2122 const orc_union32 *ORC_RESTRICT ptr4;
2127 ptr0 = (orc_int8 *) d1;
2128 ptr4 = (orc_union32 *) s1;
2131 for (i = 0; i < n; i++) {
2138 var35.i = _src.x2[1];
2154 _backup_orc_unpack_yuyv_v (OrcExecutor * ORC_RESTRICT ex)
2158 orc_int8 *ORC_RESTRICT ptr0;
2159 const orc_union32 *ORC_RESTRICT ptr4;
2164 ptr0 = (orc_int8 *) ex->arrays[0];
2165 ptr4 = (orc_union32 *) ex->arrays[4];
2168 for (i = 0; i < n; i++) {
2175 var35.i = _src.x2[1];
2190 orc_unpack_yuyv_v (orc_uint8 * ORC_RESTRICT d1,
2191 const orc_uint32 * ORC_RESTRICT s1, int n)
2193 OrcExecutor _ex, *ex = &_ex;
2194 static volatile int p_inited = 0;
2195 static OrcProgram *p = 0;
2196 void (*func) (OrcExecutor *);
2199 orc_once_mutex_lock ();
2202 p = orc_program_new ();
2203 orc_program_set_name (p, "orc_unpack_yuyv_v");
2204 orc_program_set_backup_function (p, _backup_orc_unpack_yuyv_v);
2205 orc_program_add_destination (p, 1, "d1");
2206 orc_program_add_source (p, 4, "s1");
2207 orc_program_add_temporary (p, 2, "t1");
2209 orc_program_append_2 (p, "select1lw", 0, ORC_VAR_T1, ORC_VAR_S1,
2210 ORC_VAR_D1, ORC_VAR_D1);
2211 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
2212 ORC_VAR_D1, ORC_VAR_D1);
2214 orc_program_compile (p);
2217 orc_once_mutex_unlock ();
2222 ex->arrays[ORC_VAR_D1] = d1;
2223 ex->arrays[ORC_VAR_S1] = (void *) s1;
2225 func = p->code_exec;
2234 orc_pack_yuyv (orc_uint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
2235 const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, int n)
2238 orc_union32 *ORC_RESTRICT ptr0;
2239 const orc_union16 *ORC_RESTRICT ptr4;
2240 const orc_int8 *ORC_RESTRICT ptr5;
2241 const orc_int8 *ORC_RESTRICT ptr6;
2252 ptr0 = (orc_union32 *) d1;
2253 ptr4 = (orc_union16 *) s1;
2254 ptr5 = (orc_int8 *) s2;
2255 ptr6 = (orc_int8 *) s3;
2258 for (i = 0; i < n; i++) {
2280 _dest.x2[0] = var42;
2281 _dest.x2[1] = var38;
2289 _dest.x2[0] = var43;
2290 _dest.x2[1] = var39;
2296 _dest.x2[0] = var44.i;
2297 _dest.x2[1] = var45.i;
2308 _backup_orc_pack_yuyv (OrcExecutor * ORC_RESTRICT ex)
2312 orc_union32 *ORC_RESTRICT ptr0;
2313 const orc_union16 *ORC_RESTRICT ptr4;
2314 const orc_int8 *ORC_RESTRICT ptr5;
2315 const orc_int8 *ORC_RESTRICT ptr6;
2326 ptr0 = (orc_union32 *) ex->arrays[0];
2327 ptr4 = (orc_union16 *) ex->arrays[4];
2328 ptr5 = (orc_int8 *) ex->arrays[5];
2329 ptr6 = (orc_int8 *) ex->arrays[6];
2332 for (i = 0; i < n; i++) {
2354 _dest.x2[0] = var42;
2355 _dest.x2[1] = var38;
2363 _dest.x2[0] = var43;
2364 _dest.x2[1] = var39;
2370 _dest.x2[0] = var44.i;
2371 _dest.x2[1] = var45.i;
2381 orc_pack_yuyv (orc_uint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
2382 const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, int n)
2384 OrcExecutor _ex, *ex = &_ex;
2385 static volatile int p_inited = 0;
2386 static OrcProgram *p = 0;
2387 void (*func) (OrcExecutor *);
2390 orc_once_mutex_lock ();
2393 p = orc_program_new ();
2394 orc_program_set_name (p, "orc_pack_yuyv");
2395 orc_program_set_backup_function (p, _backup_orc_pack_yuyv);
2396 orc_program_add_destination (p, 4, "d1");
2397 orc_program_add_source (p, 2, "s1");
2398 orc_program_add_source (p, 1, "s2");
2399 orc_program_add_source (p, 1, "s3");
2400 orc_program_add_temporary (p, 1, "t1");
2401 orc_program_add_temporary (p, 1, "t2");
2402 orc_program_add_temporary (p, 2, "t3");
2403 orc_program_add_temporary (p, 2, "t4");
2404 orc_program_add_temporary (p, 2, "t5");
2406 orc_program_append_2 (p, "copyw", 0, ORC_VAR_T5, ORC_VAR_S1, ORC_VAR_D1,
2408 orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T1, ORC_VAR_T5,
2409 ORC_VAR_D1, ORC_VAR_D1);
2410 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T2, ORC_VAR_T5,
2411 ORC_VAR_D1, ORC_VAR_D1);
2412 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S2,
2414 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_S3,
2416 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
2419 orc_program_compile (p);
2422 orc_once_mutex_unlock ();
2427 ex->arrays[ORC_VAR_D1] = d1;
2428 ex->arrays[ORC_VAR_S1] = (void *) s1;
2429 ex->arrays[ORC_VAR_S2] = (void *) s2;
2430 ex->arrays[ORC_VAR_S3] = (void *) s3;
2432 func = p->code_exec;
2438 /* orc_unpack_uyvy_y */
2441 orc_unpack_uyvy_y (orc_uint8 * ORC_RESTRICT d1,
2442 const orc_uint16 * ORC_RESTRICT s1, int n)
2445 orc_int8 *ORC_RESTRICT ptr0;
2446 const orc_union16 *ORC_RESTRICT ptr4;
2450 ptr0 = (orc_int8 *) d1;
2451 ptr4 = (orc_union16 *) s1;
2454 for (i = 0; i < n; i++) {
2471 _backup_orc_unpack_uyvy_y (OrcExecutor * ORC_RESTRICT ex)
2475 orc_int8 *ORC_RESTRICT ptr0;
2476 const orc_union16 *ORC_RESTRICT ptr4;
2480 ptr0 = (orc_int8 *) ex->arrays[0];
2481 ptr4 = (orc_union16 *) ex->arrays[4];
2484 for (i = 0; i < n; i++) {
2500 orc_unpack_uyvy_y (orc_uint8 * ORC_RESTRICT d1,
2501 const orc_uint16 * ORC_RESTRICT s1, int n)
2503 OrcExecutor _ex, *ex = &_ex;
2504 static volatile int p_inited = 0;
2505 static OrcProgram *p = 0;
2506 void (*func) (OrcExecutor *);
2509 orc_once_mutex_lock ();
2512 p = orc_program_new ();
2513 orc_program_set_name (p, "orc_unpack_uyvy_y");
2514 orc_program_set_backup_function (p, _backup_orc_unpack_uyvy_y);
2515 orc_program_add_destination (p, 1, "d1");
2516 orc_program_add_source (p, 2, "s1");
2518 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_S1,
2519 ORC_VAR_D1, ORC_VAR_D1);
2521 orc_program_compile (p);
2524 orc_once_mutex_unlock ();
2529 ex->arrays[ORC_VAR_D1] = d1;
2530 ex->arrays[ORC_VAR_S1] = (void *) s1;
2532 func = p->code_exec;
2538 /* orc_unpack_uyvy_u */
2541 orc_unpack_uyvy_u (orc_uint8 * ORC_RESTRICT d1,
2542 const orc_uint32 * ORC_RESTRICT s1, int n)
2545 orc_int8 *ORC_RESTRICT ptr0;
2546 const orc_union32 *ORC_RESTRICT ptr4;
2551 ptr0 = (orc_int8 *) d1;
2552 ptr4 = (orc_union32 *) s1;
2555 for (i = 0; i < n; i++) {
2562 var35.i = _src.x2[0];
2578 _backup_orc_unpack_uyvy_u (OrcExecutor * ORC_RESTRICT ex)
2582 orc_int8 *ORC_RESTRICT ptr0;
2583 const orc_union32 *ORC_RESTRICT ptr4;
2588 ptr0 = (orc_int8 *) ex->arrays[0];
2589 ptr4 = (orc_union32 *) ex->arrays[4];
2592 for (i = 0; i < n; i++) {
2599 var35.i = _src.x2[0];
2614 orc_unpack_uyvy_u (orc_uint8 * ORC_RESTRICT d1,
2615 const orc_uint32 * ORC_RESTRICT s1, int n)
2617 OrcExecutor _ex, *ex = &_ex;
2618 static volatile int p_inited = 0;
2619 static OrcProgram *p = 0;
2620 void (*func) (OrcExecutor *);
2623 orc_once_mutex_lock ();
2626 p = orc_program_new ();
2627 orc_program_set_name (p, "orc_unpack_uyvy_u");
2628 orc_program_set_backup_function (p, _backup_orc_unpack_uyvy_u);
2629 orc_program_add_destination (p, 1, "d1");
2630 orc_program_add_source (p, 4, "s1");
2631 orc_program_add_temporary (p, 2, "t1");
2633 orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
2634 ORC_VAR_D1, ORC_VAR_D1);
2635 orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D1, ORC_VAR_T1,
2636 ORC_VAR_D1, ORC_VAR_D1);
2638 orc_program_compile (p);
2641 orc_once_mutex_unlock ();
2646 ex->arrays[ORC_VAR_D1] = d1;
2647 ex->arrays[ORC_VAR_S1] = (void *) s1;
2649 func = p->code_exec;
2655 /* orc_unpack_uyvy_v */
2658 orc_unpack_uyvy_v (orc_uint8 * ORC_RESTRICT d1,
2659 const orc_uint32 * ORC_RESTRICT s1, int n)
2662 orc_int8 *ORC_RESTRICT ptr0;
2663 const orc_union32 *ORC_RESTRICT ptr4;
2668 ptr0 = (orc_int8 *) d1;
2669 ptr4 = (orc_union32 *) s1;
2672 for (i = 0; i < n; i++) {
2679 var35.i = _src.x2[1];
2695 _backup_orc_unpack_uyvy_v (OrcExecutor * ORC_RESTRICT ex)
2699 orc_int8 *ORC_RESTRICT ptr0;
2700 const orc_union32 *ORC_RESTRICT ptr4;
2705 ptr0 = (orc_int8 *) ex->arrays[0];
2706 ptr4 = (orc_union32 *) ex->arrays[4];
2709 for (i = 0; i < n; i++) {
2716 var35.i = _src.x2[1];
2731 orc_unpack_uyvy_v (orc_uint8 * ORC_RESTRICT d1,
2732 const orc_uint32 * ORC_RESTRICT s1, int n)
2734 OrcExecutor _ex, *ex = &_ex;
2735 static volatile int p_inited = 0;
2736 static OrcProgram *p = 0;
2737 void (*func) (OrcExecutor *);
2740 orc_once_mutex_lock ();
2743 p = orc_program_new ();
2744 orc_program_set_name (p, "orc_unpack_uyvy_v");
2745 orc_program_set_backup_function (p, _backup_orc_unpack_uyvy_v);
2746 orc_program_add_destination (p, 1, "d1");
2747 orc_program_add_source (p, 4, "s1");
2748 orc_program_add_temporary (p, 2, "t1");
2750 orc_program_append_2 (p, "select1lw", 0, ORC_VAR_T1, ORC_VAR_S1,
2751 ORC_VAR_D1, ORC_VAR_D1);
2752 orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D1, ORC_VAR_T1,
2753 ORC_VAR_D1, ORC_VAR_D1);
2755 orc_program_compile (p);
2758 orc_once_mutex_unlock ();
2763 ex->arrays[ORC_VAR_D1] = d1;
2764 ex->arrays[ORC_VAR_S1] = (void *) s1;
2766 func = p->code_exec;
2775 orc_pack_uyvy (orc_uint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
2776 const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, int n)
2779 orc_union32 *ORC_RESTRICT ptr0;
2780 const orc_union16 *ORC_RESTRICT ptr4;
2781 const orc_int8 *ORC_RESTRICT ptr5;
2782 const orc_int8 *ORC_RESTRICT ptr6;
2793 ptr0 = (orc_union32 *) d1;
2794 ptr4 = (orc_union16 *) s1;
2795 ptr5 = (orc_int8 *) s2;
2796 ptr6 = (orc_int8 *) s3;
2799 for (i = 0; i < n; i++) {
2821 _dest.x2[0] = var38;
2822 _dest.x2[1] = var42;
2830 _dest.x2[0] = var39;
2831 _dest.x2[1] = var43;
2837 _dest.x2[0] = var44.i;
2838 _dest.x2[1] = var45.i;
2849 _backup_orc_pack_uyvy (OrcExecutor * ORC_RESTRICT ex)
2853 orc_union32 *ORC_RESTRICT ptr0;
2854 const orc_union16 *ORC_RESTRICT ptr4;
2855 const orc_int8 *ORC_RESTRICT ptr5;
2856 const orc_int8 *ORC_RESTRICT ptr6;
2867 ptr0 = (orc_union32 *) ex->arrays[0];
2868 ptr4 = (orc_union16 *) ex->arrays[4];
2869 ptr5 = (orc_int8 *) ex->arrays[5];
2870 ptr6 = (orc_int8 *) ex->arrays[6];
2873 for (i = 0; i < n; i++) {
2895 _dest.x2[0] = var38;
2896 _dest.x2[1] = var42;
2904 _dest.x2[0] = var39;
2905 _dest.x2[1] = var43;
2911 _dest.x2[0] = var44.i;
2912 _dest.x2[1] = var45.i;
2922 orc_pack_uyvy (orc_uint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
2923 const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, int n)
2925 OrcExecutor _ex, *ex = &_ex;
2926 static volatile int p_inited = 0;
2927 static OrcProgram *p = 0;
2928 void (*func) (OrcExecutor *);
2931 orc_once_mutex_lock ();
2934 p = orc_program_new ();
2935 orc_program_set_name (p, "orc_pack_uyvy");
2936 orc_program_set_backup_function (p, _backup_orc_pack_uyvy);
2937 orc_program_add_destination (p, 4, "d1");
2938 orc_program_add_source (p, 2, "s1");
2939 orc_program_add_source (p, 1, "s2");
2940 orc_program_add_source (p, 1, "s3");
2941 orc_program_add_temporary (p, 1, "t1");
2942 orc_program_add_temporary (p, 1, "t2");
2943 orc_program_add_temporary (p, 2, "t3");
2944 orc_program_add_temporary (p, 2, "t4");
2945 orc_program_add_temporary (p, 2, "t5");
2947 orc_program_append_2 (p, "copyw", 0, ORC_VAR_T5, ORC_VAR_S1, ORC_VAR_D1,
2949 orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T1, ORC_VAR_T5,
2950 ORC_VAR_D1, ORC_VAR_D1);
2951 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T2, ORC_VAR_T5,
2952 ORC_VAR_D1, ORC_VAR_D1);
2953 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T3, ORC_VAR_S2, ORC_VAR_T1,
2955 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T4, ORC_VAR_S3, ORC_VAR_T2,
2957 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
2960 orc_program_compile (p);
2963 orc_once_mutex_unlock ();
2968 ex->arrays[ORC_VAR_D1] = d1;
2969 ex->arrays[ORC_VAR_S1] = (void *) s1;
2970 ex->arrays[ORC_VAR_S2] = (void *) s2;
2971 ex->arrays[ORC_VAR_S3] = (void *) s3;
2973 func = p->code_exec;
2979 /* orc_addc_convert_u8_s16 */
2982 orc_addc_convert_u8_s16 (orc_uint8 * ORC_RESTRICT d1,
2983 const gint16 * ORC_RESTRICT s1, int n)
2986 orc_int8 *ORC_RESTRICT ptr0;
2987 const orc_union16 *ORC_RESTRICT ptr4;
2993 ptr0 = (orc_int8 *) d1;
2994 ptr4 = (orc_union16 *) s1;
2997 var34.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
2999 for (i = 0; i < n; i++) {
3003 var36.i = var33.i + var34.i;
3005 var35 = ORC_CLAMP_UB (var36.i);
3014 _backup_orc_addc_convert_u8_s16 (OrcExecutor * ORC_RESTRICT ex)
3018 orc_int8 *ORC_RESTRICT ptr0;
3019 const orc_union16 *ORC_RESTRICT ptr4;
3025 ptr0 = (orc_int8 *) ex->arrays[0];
3026 ptr4 = (orc_union16 *) ex->arrays[4];
3029 var34.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
3031 for (i = 0; i < n; i++) {
3035 var36.i = var33.i + var34.i;
3037 var35 = ORC_CLAMP_UB (var36.i);
3045 orc_addc_convert_u8_s16 (orc_uint8 * ORC_RESTRICT d1,
3046 const gint16 * ORC_RESTRICT s1, int n)
3048 OrcExecutor _ex, *ex = &_ex;
3049 static volatile int p_inited = 0;
3050 static OrcProgram *p = 0;
3051 void (*func) (OrcExecutor *);
3054 orc_once_mutex_lock ();
3057 p = orc_program_new ();
3058 orc_program_set_name (p, "orc_addc_convert_u8_s16");
3059 orc_program_set_backup_function (p, _backup_orc_addc_convert_u8_s16);
3060 orc_program_add_destination (p, 1, "d1");
3061 orc_program_add_source (p, 2, "s1");
3062 orc_program_add_constant (p, 4, 0x00000080, "c1");
3063 orc_program_add_temporary (p, 2, "t1");
3065 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
3067 orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
3068 ORC_VAR_D1, ORC_VAR_D1);
3070 orc_program_compile (p);
3073 orc_once_mutex_unlock ();
3078 ex->arrays[ORC_VAR_D1] = d1;
3079 ex->arrays[ORC_VAR_S1] = (void *) s1;
3081 func = p->code_exec;
3087 /* orc_subc_convert_s16_u8 */
3090 orc_subc_convert_s16_u8 (gint16 * ORC_RESTRICT d1,
3091 const orc_uint8 * ORC_RESTRICT s1, int n)
3094 orc_union16 *ORC_RESTRICT ptr0;
3095 const orc_int8 *ORC_RESTRICT ptr4;
3101 ptr0 = (orc_union16 *) d1;
3102 ptr4 = (orc_int8 *) s1;
3105 var34.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
3107 for (i = 0; i < n; i++) {
3111 var36.i = (orc_uint8) var33;
3113 var35.i = var36.i - var34.i;
3122 _backup_orc_subc_convert_s16_u8 (OrcExecutor * ORC_RESTRICT ex)
3126 orc_union16 *ORC_RESTRICT ptr0;
3127 const orc_int8 *ORC_RESTRICT ptr4;
3133 ptr0 = (orc_union16 *) ex->arrays[0];
3134 ptr4 = (orc_int8 *) ex->arrays[4];
3137 var34.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
3139 for (i = 0; i < n; i++) {
3143 var36.i = (orc_uint8) var33;
3145 var35.i = var36.i - var34.i;
3153 orc_subc_convert_s16_u8 (gint16 * ORC_RESTRICT d1,
3154 const orc_uint8 * ORC_RESTRICT s1, int n)
3156 OrcExecutor _ex, *ex = &_ex;
3157 static volatile int p_inited = 0;
3158 static OrcProgram *p = 0;
3159 void (*func) (OrcExecutor *);
3162 orc_once_mutex_lock ();
3165 p = orc_program_new ();
3166 orc_program_set_name (p, "orc_subc_convert_s16_u8");
3167 orc_program_set_backup_function (p, _backup_orc_subc_convert_s16_u8);
3168 orc_program_add_destination (p, 2, "d1");
3169 orc_program_add_source (p, 1, "s1");
3170 orc_program_add_constant (p, 4, 0x00000080, "c1");
3171 orc_program_add_temporary (p, 2, "t1");
3173 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
3175 orc_program_append_2 (p, "subw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
3178 orc_program_compile (p);
3181 orc_once_mutex_unlock ();
3186 ex->arrays[ORC_VAR_D1] = d1;
3187 ex->arrays[ORC_VAR_S1] = (void *) s1;
3189 func = p->code_exec;
3195 /* orc_splat_u8_ns */
3198 orc_splat_u8_ns (orc_uint8 * ORC_RESTRICT d1, int p1, int n)
3201 orc_int8 *ORC_RESTRICT ptr0;
3205 ptr0 = (orc_int8 *) d1;
3210 for (i = 0; i < n; i++) {
3221 _backup_orc_splat_u8_ns (OrcExecutor * ORC_RESTRICT ex)
3225 orc_int8 *ORC_RESTRICT ptr0;
3229 ptr0 = (orc_int8 *) ex->arrays[0];
3232 var32 = ex->params[24];
3234 for (i = 0; i < n; i++) {
3244 orc_splat_u8_ns (orc_uint8 * ORC_RESTRICT d1, int p1, int n)
3246 OrcExecutor _ex, *ex = &_ex;
3247 static volatile int p_inited = 0;
3248 static OrcProgram *p = 0;
3249 void (*func) (OrcExecutor *);
3252 orc_once_mutex_lock ();
3255 p = orc_program_new ();
3256 orc_program_set_name (p, "orc_splat_u8_ns");
3257 orc_program_set_backup_function (p, _backup_orc_splat_u8_ns);
3258 orc_program_add_destination (p, 1, "d1");
3259 orc_program_add_parameter (p, 1, "p1");
3261 orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
3264 orc_program_compile (p);
3267 orc_once_mutex_unlock ();
3272 ex->arrays[ORC_VAR_D1] = d1;
3273 ex->params[ORC_VAR_P1] = p1;
3275 func = p->code_exec;
3281 /* orc_splat_s16_ns */
3284 orc_splat_s16_ns (gint16 * ORC_RESTRICT d1, int p1, int n)
3287 orc_union16 *ORC_RESTRICT ptr0;
3291 ptr0 = (orc_union16 *) d1;
3296 for (i = 0; i < n; i++) {
3307 _backup_orc_splat_s16_ns (OrcExecutor * ORC_RESTRICT ex)
3311 orc_union16 *ORC_RESTRICT ptr0;
3315 ptr0 = (orc_union16 *) ex->arrays[0];
3318 var32.i = ex->params[24];
3320 for (i = 0; i < n; i++) {
3330 orc_splat_s16_ns (gint16 * ORC_RESTRICT d1, int p1, int n)
3332 OrcExecutor _ex, *ex = &_ex;
3333 static volatile int p_inited = 0;
3334 static OrcProgram *p = 0;
3335 void (*func) (OrcExecutor *);
3338 orc_once_mutex_lock ();
3341 p = orc_program_new ();
3342 orc_program_set_name (p, "orc_splat_s16_ns");
3343 orc_program_set_backup_function (p, _backup_orc_splat_s16_ns);
3344 orc_program_add_destination (p, 2, "d1");
3345 orc_program_add_parameter (p, 2, "p1");
3347 orc_program_append_2 (p, "copyw", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1,
3350 orc_program_compile (p);
3353 orc_once_mutex_unlock ();
3358 ex->arrays[ORC_VAR_D1] = d1;
3359 ex->params[ORC_VAR_P1] = p1;
3361 func = p->code_exec;
3367 /* orc_matrix2_u8 */
3370 orc_matrix2_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3371 const guint8 * ORC_RESTRICT s2, int p1, int p2, int p3, int n)
3374 orc_int8 *ORC_RESTRICT ptr0;
3375 const orc_int8 *ORC_RESTRICT ptr4;
3376 const orc_int8 *ORC_RESTRICT ptr5;
3391 ptr0 = (orc_int8 *) d1;
3392 ptr4 = (orc_int8 *) s1;
3393 ptr5 = (orc_int8 *) s2;
3402 for (i = 0; i < n; i++) {
3406 var40.i = (orc_uint8) var34;
3408 var41.i = (var40.i * var35.i) & 0xffff;
3412 var42.i = (orc_uint8) var36;
3414 var43.i = (var42.i * var37.i) & 0xffff;
3416 var44.i = var41.i + var43.i;
3418 var45.i = var44.i + var38.i;
3420 var46.i = var45.i >> 6;
3422 var39 = ORC_CLAMP_UB (var46.i);
3431 _backup_orc_matrix2_u8 (OrcExecutor * ORC_RESTRICT ex)
3435 orc_int8 *ORC_RESTRICT ptr0;
3436 const orc_int8 *ORC_RESTRICT ptr4;
3437 const orc_int8 *ORC_RESTRICT ptr5;
3452 ptr0 = (orc_int8 *) ex->arrays[0];
3453 ptr4 = (orc_int8 *) ex->arrays[4];
3454 ptr5 = (orc_int8 *) ex->arrays[5];
3457 var35.i = ex->params[24];
3459 var37.i = ex->params[25];
3461 var38.i = ex->params[26];
3463 for (i = 0; i < n; i++) {
3467 var40.i = (orc_uint8) var34;
3469 var41.i = (var40.i * var35.i) & 0xffff;
3473 var42.i = (orc_uint8) var36;
3475 var43.i = (var42.i * var37.i) & 0xffff;
3477 var44.i = var41.i + var43.i;
3479 var45.i = var44.i + var38.i;
3481 var46.i = var45.i >> 6;
3483 var39 = ORC_CLAMP_UB (var46.i);
3491 orc_matrix2_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3492 const guint8 * ORC_RESTRICT s2, int p1, int p2, int p3, int n)
3494 OrcExecutor _ex, *ex = &_ex;
3495 static volatile int p_inited = 0;
3496 static OrcProgram *p = 0;
3497 void (*func) (OrcExecutor *);
3500 orc_once_mutex_lock ();
3503 p = orc_program_new ();
3504 orc_program_set_name (p, "orc_matrix2_u8");
3505 orc_program_set_backup_function (p, _backup_orc_matrix2_u8);
3506 orc_program_add_destination (p, 1, "d1");
3507 orc_program_add_source (p, 1, "s1");
3508 orc_program_add_source (p, 1, "s2");
3509 orc_program_add_constant (p, 4, 0x00000006, "c1");
3510 orc_program_add_parameter (p, 2, "p1");
3511 orc_program_add_parameter (p, 2, "p2");
3512 orc_program_add_parameter (p, 2, "p3");
3513 orc_program_add_temporary (p, 2, "t1");
3514 orc_program_add_temporary (p, 2, "t2");
3516 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
3518 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
3520 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
3522 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2,
3524 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
3526 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P3,
3528 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
3530 orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
3531 ORC_VAR_D1, ORC_VAR_D1);
3533 orc_program_compile (p);
3536 orc_once_mutex_unlock ();
3541 ex->arrays[ORC_VAR_D1] = d1;
3542 ex->arrays[ORC_VAR_S1] = (void *) s1;
3543 ex->arrays[ORC_VAR_S2] = (void *) s2;
3544 ex->params[ORC_VAR_P1] = p1;
3545 ex->params[ORC_VAR_P2] = p2;
3546 ex->params[ORC_VAR_P3] = p3;
3548 func = p->code_exec;
3554 /* orc_matrix2_11_u8 */
3557 orc_matrix2_11_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3558 const guint8 * ORC_RESTRICT s2, int p1, int p2, int n)
3561 orc_int8 *ORC_RESTRICT ptr0;
3562 const orc_int8 *ORC_RESTRICT ptr4;
3563 const orc_int8 *ORC_RESTRICT ptr5;
3584 ptr0 = (orc_int8 *) d1;
3585 ptr4 = (orc_int8 *) s1;
3586 ptr5 = (orc_int8 *) s2;
3589 var37.i = (int) 0x00000010; /* 16 or 7.90505e-323f */
3593 var40.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
3597 var42.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
3599 for (i = 0; i < n; i++) {
3603 var44.i = (orc_uint8) var36;
3605 var45.i = var44.i - var37.i;
3607 var46.i = (var45.i * var38.i) & 0xffff;
3611 var47.i = (orc_uint8) var39;
3613 var48.i = var47.i - var40.i;
3615 var49.i = (var48.i * var41.i) & 0xffff;
3617 var50.i = var46.i + var49.i;
3619 var51.i = var50.i + var42.i;
3621 var52.i = var51.i >> 8;
3623 var53.i = var52.i + var45.i;
3625 var54.i = var53.i + var48.i;
3627 var43 = ORC_CLAMP_UB (var54.i);
3636 _backup_orc_matrix2_11_u8 (OrcExecutor * ORC_RESTRICT ex)
3640 orc_int8 *ORC_RESTRICT ptr0;
3641 const orc_int8 *ORC_RESTRICT ptr4;
3642 const orc_int8 *ORC_RESTRICT ptr5;
3663 ptr0 = (orc_int8 *) ex->arrays[0];
3664 ptr4 = (orc_int8 *) ex->arrays[4];
3665 ptr5 = (orc_int8 *) ex->arrays[5];
3668 var37.i = (int) 0x00000010; /* 16 or 7.90505e-323f */
3670 var38.i = ex->params[24];
3672 var40.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
3674 var41.i = ex->params[25];
3676 var42.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
3678 for (i = 0; i < n; i++) {
3682 var44.i = (orc_uint8) var36;
3684 var45.i = var44.i - var37.i;
3686 var46.i = (var45.i * var38.i) & 0xffff;
3690 var47.i = (orc_uint8) var39;
3692 var48.i = var47.i - var40.i;
3694 var49.i = (var48.i * var41.i) & 0xffff;
3696 var50.i = var46.i + var49.i;
3698 var51.i = var50.i + var42.i;
3700 var52.i = var51.i >> 8;
3702 var53.i = var52.i + var45.i;
3704 var54.i = var53.i + var48.i;
3706 var43 = ORC_CLAMP_UB (var54.i);
3714 orc_matrix2_11_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3715 const guint8 * ORC_RESTRICT s2, int p1, int p2, int n)
3717 OrcExecutor _ex, *ex = &_ex;
3718 static volatile int p_inited = 0;
3719 static OrcProgram *p = 0;
3720 void (*func) (OrcExecutor *);
3723 orc_once_mutex_lock ();
3726 p = orc_program_new ();
3727 orc_program_set_name (p, "orc_matrix2_11_u8");
3728 orc_program_set_backup_function (p, _backup_orc_matrix2_11_u8);
3729 orc_program_add_destination (p, 1, "d1");
3730 orc_program_add_source (p, 1, "s1");
3731 orc_program_add_source (p, 1, "s2");
3732 orc_program_add_constant (p, 4, 0x00000010, "c1");
3733 orc_program_add_constant (p, 4, 0x00000080, "c2");
3734 orc_program_add_constant (p, 4, 0x00000008, "c3");
3735 orc_program_add_parameter (p, 2, "p1");
3736 orc_program_add_parameter (p, 2, "p2");
3737 orc_program_add_temporary (p, 2, "t1");
3738 orc_program_add_temporary (p, 2, "t2");
3739 orc_program_add_temporary (p, 2, "t3");
3740 orc_program_add_temporary (p, 2, "t4");
3742 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
3744 orc_program_append_2 (p, "subw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
3746 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_P1,
3748 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
3750 orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
3752 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_P2,
3754 orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
3756 orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2,
3758 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C3,
3760 orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T1,
3762 orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T2,
3764 orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T3,
3765 ORC_VAR_D1, ORC_VAR_D1);
3767 orc_program_compile (p);
3770 orc_once_mutex_unlock ();
3775 ex->arrays[ORC_VAR_D1] = d1;
3776 ex->arrays[ORC_VAR_S1] = (void *) s1;
3777 ex->arrays[ORC_VAR_S2] = (void *) s2;
3778 ex->params[ORC_VAR_P1] = p1;
3779 ex->params[ORC_VAR_P2] = p2;
3781 func = p->code_exec;
3787 /* orc_matrix2_12_u8 */
3790 orc_matrix2_12_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3791 const guint8 * ORC_RESTRICT s2, int p1, int p2, int n)
3794 orc_int8 *ORC_RESTRICT ptr0;
3795 const orc_int8 *ORC_RESTRICT ptr4;
3796 const orc_int8 *ORC_RESTRICT ptr5;
3818 ptr0 = (orc_int8 *) d1;
3819 ptr4 = (orc_int8 *) s1;
3820 ptr5 = (orc_int8 *) s2;
3823 var37.i = (int) 0x00000010; /* 16 or 7.90505e-323f */
3827 var40.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
3831 var42.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
3833 for (i = 0; i < n; i++) {
3837 var44.i = (orc_uint8) var36;
3839 var45.i = var44.i - var37.i;
3841 var46.i = (var45.i * var38.i) & 0xffff;
3845 var47.i = (orc_uint8) var39;
3847 var48.i = var47.i - var40.i;
3849 var49.i = (var48.i * var41.i) & 0xffff;
3851 var50.i = var46.i + var49.i;
3853 var51.i = var50.i + var42.i;
3855 var52.i = var51.i >> 8;
3857 var53.i = var52.i + var45.i;
3859 var54.i = var53.i + var48.i;
3861 var55.i = var54.i + var48.i;
3863 var43 = ORC_CLAMP_UB (var55.i);
3872 _backup_orc_matrix2_12_u8 (OrcExecutor * ORC_RESTRICT ex)
3876 orc_int8 *ORC_RESTRICT ptr0;
3877 const orc_int8 *ORC_RESTRICT ptr4;
3878 const orc_int8 *ORC_RESTRICT ptr5;
3900 ptr0 = (orc_int8 *) ex->arrays[0];
3901 ptr4 = (orc_int8 *) ex->arrays[4];
3902 ptr5 = (orc_int8 *) ex->arrays[5];
3905 var37.i = (int) 0x00000010; /* 16 or 7.90505e-323f */
3907 var38.i = ex->params[24];
3909 var40.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
3911 var41.i = ex->params[25];
3913 var42.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
3915 for (i = 0; i < n; i++) {
3919 var44.i = (orc_uint8) var36;
3921 var45.i = var44.i - var37.i;
3923 var46.i = (var45.i * var38.i) & 0xffff;
3927 var47.i = (orc_uint8) var39;
3929 var48.i = var47.i - var40.i;
3931 var49.i = (var48.i * var41.i) & 0xffff;
3933 var50.i = var46.i + var49.i;
3935 var51.i = var50.i + var42.i;
3937 var52.i = var51.i >> 8;
3939 var53.i = var52.i + var45.i;
3941 var54.i = var53.i + var48.i;
3943 var55.i = var54.i + var48.i;
3945 var43 = ORC_CLAMP_UB (var55.i);
3953 orc_matrix2_12_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
3954 const guint8 * ORC_RESTRICT s2, int p1, int p2, int n)
3956 OrcExecutor _ex, *ex = &_ex;
3957 static volatile int p_inited = 0;
3958 static OrcProgram *p = 0;
3959 void (*func) (OrcExecutor *);
3962 orc_once_mutex_lock ();
3965 p = orc_program_new ();
3966 orc_program_set_name (p, "orc_matrix2_12_u8");
3967 orc_program_set_backup_function (p, _backup_orc_matrix2_12_u8);
3968 orc_program_add_destination (p, 1, "d1");
3969 orc_program_add_source (p, 1, "s1");
3970 orc_program_add_source (p, 1, "s2");
3971 orc_program_add_constant (p, 4, 0x00000010, "c1");
3972 orc_program_add_constant (p, 4, 0x00000080, "c2");
3973 orc_program_add_constant (p, 4, 0x00000008, "c3");
3974 orc_program_add_parameter (p, 2, "p1");
3975 orc_program_add_parameter (p, 2, "p2");
3976 orc_program_add_temporary (p, 2, "t1");
3977 orc_program_add_temporary (p, 2, "t2");
3978 orc_program_add_temporary (p, 2, "t3");
3979 orc_program_add_temporary (p, 2, "t4");
3981 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
3983 orc_program_append_2 (p, "subw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
3985 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_P1,
3987 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
3989 orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
3991 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_P2,
3993 orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
3995 orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2,
3997 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C3,
3999 orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T1,
4001 orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T2,
4003 orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T2,
4005 orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T3,
4006 ORC_VAR_D1, ORC_VAR_D1);
4008 orc_program_compile (p);
4011 orc_once_mutex_unlock ();
4016 ex->arrays[ORC_VAR_D1] = d1;
4017 ex->arrays[ORC_VAR_S1] = (void *) s1;
4018 ex->arrays[ORC_VAR_S2] = (void *) s2;
4019 ex->params[ORC_VAR_P1] = p1;
4020 ex->params[ORC_VAR_P2] = p2;
4022 func = p->code_exec;
4028 /* orc_matrix3_u8 */
4031 orc_matrix3_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
4032 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1,
4033 int p2, int p3, int p4, int n)
4036 orc_int8 *ORC_RESTRICT ptr0;
4037 const orc_int8 *ORC_RESTRICT ptr4;
4038 const orc_int8 *ORC_RESTRICT ptr5;
4039 const orc_int8 *ORC_RESTRICT ptr6;
4059 ptr0 = (orc_int8 *) d1;
4060 ptr4 = (orc_int8 *) s1;
4061 ptr5 = (orc_int8 *) s2;
4062 ptr6 = (orc_int8 *) s3;
4073 for (i = 0; i < n; i++) {
4077 var42.i = (orc_uint8) var34;
4079 var43.i = (var42.i * var35.i) & 0xffff;
4083 var44.i = (orc_uint8) var36;
4085 var45.i = (var44.i * var37.i) & 0xffff;
4087 var46.i = var43.i + var45.i;
4091 var47.i = (orc_uint8) var38;
4093 var48.i = (var47.i * var39.i) & 0xffff;
4095 var49.i = var46.i + var48.i;
4097 var50.i = var49.i + var40.i;
4099 var51.i = var50.i >> 6;
4101 var41 = ORC_CLAMP_UB (var51.i);
4110 _backup_orc_matrix3_u8 (OrcExecutor * ORC_RESTRICT ex)
4114 orc_int8 *ORC_RESTRICT ptr0;
4115 const orc_int8 *ORC_RESTRICT ptr4;
4116 const orc_int8 *ORC_RESTRICT ptr5;
4117 const orc_int8 *ORC_RESTRICT ptr6;
4137 ptr0 = (orc_int8 *) ex->arrays[0];
4138 ptr4 = (orc_int8 *) ex->arrays[4];
4139 ptr5 = (orc_int8 *) ex->arrays[5];
4140 ptr6 = (orc_int8 *) ex->arrays[6];
4143 var35.i = ex->params[24];
4145 var37.i = ex->params[25];
4147 var39.i = ex->params[26];
4149 var40.i = ex->params[27];
4151 for (i = 0; i < n; i++) {
4155 var42.i = (orc_uint8) var34;
4157 var43.i = (var42.i * var35.i) & 0xffff;
4161 var44.i = (orc_uint8) var36;
4163 var45.i = (var44.i * var37.i) & 0xffff;
4165 var46.i = var43.i + var45.i;
4169 var47.i = (orc_uint8) var38;
4171 var48.i = (var47.i * var39.i) & 0xffff;
4173 var49.i = var46.i + var48.i;
4175 var50.i = var49.i + var40.i;
4177 var51.i = var50.i >> 6;
4179 var41 = ORC_CLAMP_UB (var51.i);
4187 orc_matrix3_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
4188 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1,
4189 int p2, int p3, int p4, int n)
4191 OrcExecutor _ex, *ex = &_ex;
4192 static volatile int p_inited = 0;
4193 static OrcProgram *p = 0;
4194 void (*func) (OrcExecutor *);
4197 orc_once_mutex_lock ();
4200 p = orc_program_new ();
4201 orc_program_set_name (p, "orc_matrix3_u8");
4202 orc_program_set_backup_function (p, _backup_orc_matrix3_u8);
4203 orc_program_add_destination (p, 1, "d1");
4204 orc_program_add_source (p, 1, "s1");
4205 orc_program_add_source (p, 1, "s2");
4206 orc_program_add_source (p, 1, "s3");
4207 orc_program_add_constant (p, 4, 0x00000006, "c1");
4208 orc_program_add_parameter (p, 2, "p1");
4209 orc_program_add_parameter (p, 2, "p2");
4210 orc_program_add_parameter (p, 2, "p3");
4211 orc_program_add_parameter (p, 2, "p4");
4212 orc_program_add_temporary (p, 2, "t1");
4213 orc_program_add_temporary (p, 2, "t2");
4215 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
4217 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
4219 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
4221 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2,
4223 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
4225 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1,
4227 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P3,
4229 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
4231 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P4,
4233 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
4235 orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
4236 ORC_VAR_D1, ORC_VAR_D1);
4238 orc_program_compile (p);
4241 orc_once_mutex_unlock ();
4246 ex->arrays[ORC_VAR_D1] = d1;
4247 ex->arrays[ORC_VAR_S1] = (void *) s1;
4248 ex->arrays[ORC_VAR_S2] = (void *) s2;
4249 ex->arrays[ORC_VAR_S3] = (void *) s3;
4250 ex->params[ORC_VAR_P1] = p1;
4251 ex->params[ORC_VAR_P2] = p2;
4252 ex->params[ORC_VAR_P3] = p3;
4253 ex->params[ORC_VAR_P4] = p4;
4255 func = p->code_exec;
4261 /* orc_matrix3_100_u8 */
4264 orc_matrix3_100_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
4265 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1,
4266 int p2, int p3, int n)
4269 orc_int8 *ORC_RESTRICT ptr0;
4270 const orc_int8 *ORC_RESTRICT ptr4;
4271 const orc_int8 *ORC_RESTRICT ptr5;
4272 const orc_int8 *ORC_RESTRICT ptr6;
4299 ptr0 = (orc_int8 *) d1;
4300 ptr4 = (orc_int8 *) s1;
4301 ptr5 = (orc_int8 *) s2;
4302 ptr6 = (orc_int8 *) s3;
4305 var36.i = (int) 0x00000010; /* 16 or 7.90505e-323f */
4309 var39.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
4313 var42.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
4317 var44.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
4319 for (i = 0; i < n; i++) {
4323 var46.i = (orc_uint8) var35;
4325 var47.i = var46.i - var36.i;
4327 var48.i = (var47.i * var37.i) & 0xffff;
4331 var49.i = (orc_uint8) var38;
4333 var50.i = var49.i - var39.i;
4335 var51.i = (var50.i * var40.i) & 0xffff;
4337 var52.i = var48.i + var51.i;
4341 var53.i = (orc_uint8) var41;
4343 var54.i = var53.i - var42.i;
4345 var55.i = (var54.i * var43.i) & 0xffff;
4347 var56.i = var52.i + var55.i;
4349 var57.i = var56.i + var44.i;
4351 var58.i = var57.i >> 8;
4353 var59.i = var58.i + var47.i;
4355 var45 = ORC_CLAMP_UB (var59.i);
4364 _backup_orc_matrix3_100_u8 (OrcExecutor * ORC_RESTRICT ex)
4368 orc_int8 *ORC_RESTRICT ptr0;
4369 const orc_int8 *ORC_RESTRICT ptr4;
4370 const orc_int8 *ORC_RESTRICT ptr5;
4371 const orc_int8 *ORC_RESTRICT ptr6;
4398 ptr0 = (orc_int8 *) ex->arrays[0];
4399 ptr4 = (orc_int8 *) ex->arrays[4];
4400 ptr5 = (orc_int8 *) ex->arrays[5];
4401 ptr6 = (orc_int8 *) ex->arrays[6];
4404 var36.i = (int) 0x00000010; /* 16 or 7.90505e-323f */
4406 var37.i = ex->params[24];
4408 var39.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
4410 var40.i = ex->params[25];
4412 var42.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
4414 var43.i = ex->params[26];
4416 var44.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
4418 for (i = 0; i < n; i++) {
4422 var46.i = (orc_uint8) var35;
4424 var47.i = var46.i - var36.i;
4426 var48.i = (var47.i * var37.i) & 0xffff;
4430 var49.i = (orc_uint8) var38;
4432 var50.i = var49.i - var39.i;
4434 var51.i = (var50.i * var40.i) & 0xffff;
4436 var52.i = var48.i + var51.i;
4440 var53.i = (orc_uint8) var41;
4442 var54.i = var53.i - var42.i;
4444 var55.i = (var54.i * var43.i) & 0xffff;
4446 var56.i = var52.i + var55.i;
4448 var57.i = var56.i + var44.i;
4450 var58.i = var57.i >> 8;
4452 var59.i = var58.i + var47.i;
4454 var45 = ORC_CLAMP_UB (var59.i);
4462 orc_matrix3_100_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
4463 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1,
4464 int p2, int p3, int n)
4466 OrcExecutor _ex, *ex = &_ex;
4467 static volatile int p_inited = 0;
4468 static OrcProgram *p = 0;
4469 void (*func) (OrcExecutor *);
4472 orc_once_mutex_lock ();
4475 p = orc_program_new ();
4476 orc_program_set_name (p, "orc_matrix3_100_u8");
4477 orc_program_set_backup_function (p, _backup_orc_matrix3_100_u8);
4478 orc_program_add_destination (p, 1, "d1");
4479 orc_program_add_source (p, 1, "s1");
4480 orc_program_add_source (p, 1, "s2");
4481 orc_program_add_source (p, 1, "s3");
4482 orc_program_add_constant (p, 4, 0x00000010, "c1");
4483 orc_program_add_constant (p, 4, 0x00000080, "c2");
4484 orc_program_add_constant (p, 4, 0x00000008, "c3");
4485 orc_program_add_parameter (p, 2, "p1");
4486 orc_program_add_parameter (p, 2, "p2");
4487 orc_program_add_parameter (p, 2, "p3");
4488 orc_program_add_temporary (p, 2, "t1");
4489 orc_program_add_temporary (p, 2, "t2");
4490 orc_program_add_temporary (p, 2, "t3");
4492 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
4494 orc_program_append_2 (p, "subw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
4496 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_P1,
4498 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
4500 orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
4502 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2,
4504 orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T2,
4506 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1,
4508 orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
4510 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P3,
4512 orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T2,
4514 orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2,
4516 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C3,
4518 orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T1,
4520 orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T3,
4521 ORC_VAR_D1, ORC_VAR_D1);
4523 orc_program_compile (p);
4526 orc_once_mutex_unlock ();
4531 ex->arrays[ORC_VAR_D1] = d1;
4532 ex->arrays[ORC_VAR_S1] = (void *) s1;
4533 ex->arrays[ORC_VAR_S2] = (void *) s2;
4534 ex->arrays[ORC_VAR_S3] = (void *) s3;
4535 ex->params[ORC_VAR_P1] = p1;
4536 ex->params[ORC_VAR_P2] = p2;
4537 ex->params[ORC_VAR_P3] = p3;
4539 func = p->code_exec;
4545 /* orc_matrix3_100_offset_u8 */
4548 orc_matrix3_100_offset_u8 (guint8 * ORC_RESTRICT d1,
4549 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
4550 const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
4554 orc_int8 *ORC_RESTRICT ptr0;
4555 const orc_int8 *ORC_RESTRICT ptr4;
4556 const orc_int8 *ORC_RESTRICT ptr5;
4557 const orc_int8 *ORC_RESTRICT ptr6;
4578 ptr0 = (orc_int8 *) d1;
4579 ptr4 = (orc_int8 *) s1;
4580 ptr5 = (orc_int8 *) s2;
4581 ptr6 = (orc_int8 *) s3;
4592 for (i = 0; i < n; i++) {
4596 var43.i = (orc_uint8) var35;
4598 var44.i = (var43.i * var36.i) & 0xffff;
4602 var45.i = (orc_uint8) var37;
4604 var46.i = (var45.i * var38.i) & 0xffff;
4606 var47.i = var44.i + var46.i;
4610 var48.i = (orc_uint8) var39;
4612 var49.i = (var48.i * var40.i) & 0xffff;
4614 var50.i = var47.i + var49.i;
4616 var51.i = var50.i + var41.i;
4618 var52.i = var51.i >> p5;
4620 var53.i = var52.i + var43.i;
4622 var42 = ORC_CLAMP_UB (var53.i);
4631 _backup_orc_matrix3_100_offset_u8 (OrcExecutor * ORC_RESTRICT ex)
4635 orc_int8 *ORC_RESTRICT ptr0;
4636 const orc_int8 *ORC_RESTRICT ptr4;
4637 const orc_int8 *ORC_RESTRICT ptr5;
4638 const orc_int8 *ORC_RESTRICT ptr6;
4659 ptr0 = (orc_int8 *) ex->arrays[0];
4660 ptr4 = (orc_int8 *) ex->arrays[4];
4661 ptr5 = (orc_int8 *) ex->arrays[5];
4662 ptr6 = (orc_int8 *) ex->arrays[6];
4665 var36.i = ex->params[24];
4667 var38.i = ex->params[25];
4669 var40.i = ex->params[26];
4671 var41.i = ex->params[27];
4673 for (i = 0; i < n; i++) {
4677 var43.i = (orc_uint8) var35;
4679 var44.i = (var43.i * var36.i) & 0xffff;
4683 var45.i = (orc_uint8) var37;
4685 var46.i = (var45.i * var38.i) & 0xffff;
4687 var47.i = var44.i + var46.i;
4691 var48.i = (orc_uint8) var39;
4693 var49.i = (var48.i * var40.i) & 0xffff;
4695 var50.i = var47.i + var49.i;
4697 var51.i = var50.i + var41.i;
4699 var52.i = var51.i >> ex->params[28];
4701 var53.i = var52.i + var43.i;
4703 var42 = ORC_CLAMP_UB (var53.i);
4711 orc_matrix3_100_offset_u8 (guint8 * ORC_RESTRICT d1,
4712 const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
4713 const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
4716 OrcExecutor _ex, *ex = &_ex;
4717 static volatile int p_inited = 0;
4718 static OrcProgram *p = 0;
4719 void (*func) (OrcExecutor *);
4722 orc_once_mutex_lock ();
4725 p = orc_program_new ();
4726 orc_program_set_name (p, "orc_matrix3_100_offset_u8");
4727 orc_program_set_backup_function (p, _backup_orc_matrix3_100_offset_u8);
4728 orc_program_add_destination (p, 1, "d1");
4729 orc_program_add_source (p, 1, "s1");
4730 orc_program_add_source (p, 1, "s2");
4731 orc_program_add_source (p, 1, "s3");
4732 orc_program_add_parameter (p, 2, "p1");
4733 orc_program_add_parameter (p, 2, "p2");
4734 orc_program_add_parameter (p, 2, "p3");
4735 orc_program_add_parameter (p, 2, "p4");
4736 orc_program_add_parameter (p, 2, "p5");
4737 orc_program_add_temporary (p, 2, "t1");
4738 orc_program_add_temporary (p, 2, "t2");
4739 orc_program_add_temporary (p, 2, "t3");
4741 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_D1,
4743 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_P1,
4745 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
4747 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2,
4749 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
4751 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1,
4753 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P3,
4755 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
4757 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P4,
4759 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P5,
4761 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T3,
4763 orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
4764 ORC_VAR_D1, ORC_VAR_D1);
4766 orc_program_compile (p);
4769 orc_once_mutex_unlock ();
4774 ex->arrays[ORC_VAR_D1] = d1;
4775 ex->arrays[ORC_VAR_S1] = (void *) s1;
4776 ex->arrays[ORC_VAR_S2] = (void *) s2;
4777 ex->arrays[ORC_VAR_S3] = (void *) s3;
4778 ex->params[ORC_VAR_P1] = p1;
4779 ex->params[ORC_VAR_P2] = p2;
4780 ex->params[ORC_VAR_P3] = p3;
4781 ex->params[ORC_VAR_P4] = p4;
4782 ex->params[ORC_VAR_P5] = p5;
4784 func = p->code_exec;
4790 /* orc_matrix3_000_u8 */
4793 orc_matrix3_000_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
4794 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1,
4795 int p2, int p3, int p4, int p5, int n)
4798 orc_int8 *ORC_RESTRICT ptr0;
4799 const orc_int8 *ORC_RESTRICT ptr4;
4800 const orc_int8 *ORC_RESTRICT ptr5;
4801 const orc_int8 *ORC_RESTRICT ptr6;
4821 ptr0 = (orc_int8 *) d1;
4822 ptr4 = (orc_int8 *) s1;
4823 ptr5 = (orc_int8 *) s2;
4824 ptr6 = (orc_int8 *) s3;
4835 for (i = 0; i < n; i++) {
4839 var42.i = (orc_uint8) var34;
4841 var43.i = (var42.i * var35.i) & 0xffff;
4845 var44.i = (orc_uint8) var36;
4847 var45.i = (var44.i * var37.i) & 0xffff;
4849 var46.i = var43.i + var45.i;
4853 var47.i = (orc_uint8) var38;
4855 var48.i = (var47.i * var39.i) & 0xffff;
4857 var49.i = var46.i + var48.i;
4859 var50.i = var49.i + var40.i;
4861 var51.i = var50.i >> p5;
4872 _backup_orc_matrix3_000_u8 (OrcExecutor * ORC_RESTRICT ex)
4876 orc_int8 *ORC_RESTRICT ptr0;
4877 const orc_int8 *ORC_RESTRICT ptr4;
4878 const orc_int8 *ORC_RESTRICT ptr5;
4879 const orc_int8 *ORC_RESTRICT ptr6;
4899 ptr0 = (orc_int8 *) ex->arrays[0];
4900 ptr4 = (orc_int8 *) ex->arrays[4];
4901 ptr5 = (orc_int8 *) ex->arrays[5];
4902 ptr6 = (orc_int8 *) ex->arrays[6];
4905 var35.i = ex->params[24];
4907 var37.i = ex->params[25];
4909 var39.i = ex->params[26];
4911 var40.i = ex->params[27];
4913 for (i = 0; i < n; i++) {
4917 var42.i = (orc_uint8) var34;
4919 var43.i = (var42.i * var35.i) & 0xffff;
4923 var44.i = (orc_uint8) var36;
4925 var45.i = (var44.i * var37.i) & 0xffff;
4927 var46.i = var43.i + var45.i;
4931 var47.i = (orc_uint8) var38;
4933 var48.i = (var47.i * var39.i) & 0xffff;
4935 var49.i = var46.i + var48.i;
4937 var50.i = var49.i + var40.i;
4939 var51.i = var50.i >> ex->params[28];
4949 orc_matrix3_000_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
4950 const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1,
4951 int p2, int p3, int p4, int p5, int n)
4953 OrcExecutor _ex, *ex = &_ex;
4954 static volatile int p_inited = 0;
4955 static OrcProgram *p = 0;
4956 void (*func) (OrcExecutor *);
4959 orc_once_mutex_lock ();
4962 p = orc_program_new ();
4963 orc_program_set_name (p, "orc_matrix3_000_u8");
4964 orc_program_set_backup_function (p, _backup_orc_matrix3_000_u8);
4965 orc_program_add_destination (p, 1, "d1");
4966 orc_program_add_source (p, 1, "s1");
4967 orc_program_add_source (p, 1, "s2");
4968 orc_program_add_source (p, 1, "s3");
4969 orc_program_add_parameter (p, 2, "p1");
4970 orc_program_add_parameter (p, 2, "p2");
4971 orc_program_add_parameter (p, 2, "p3");
4972 orc_program_add_parameter (p, 2, "p4");
4973 orc_program_add_parameter (p, 2, "p5");
4974 orc_program_add_temporary (p, 2, "t1");
4975 orc_program_add_temporary (p, 2, "t2");
4977 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
4979 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
4981 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
4983 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2,
4985 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
4987 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1,
4989 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P3,
4991 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
4993 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P4,
4995 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P5,
4997 orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
5000 orc_program_compile (p);
5003 orc_once_mutex_unlock ();
5008 ex->arrays[ORC_VAR_D1] = d1;
5009 ex->arrays[ORC_VAR_S1] = (void *) s1;
5010 ex->arrays[ORC_VAR_S2] = (void *) s2;
5011 ex->arrays[ORC_VAR_S3] = (void *) s3;
5012 ex->params[ORC_VAR_P1] = p1;
5013 ex->params[ORC_VAR_P2] = p2;
5014 ex->params[ORC_VAR_P3] = p3;
5015 ex->params[ORC_VAR_P4] = p4;
5016 ex->params[ORC_VAR_P5] = p5;
5018 func = p->code_exec;
5027 orc_pack_123x (guint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1,
5028 const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3,
5032 orc_union32 *ORC_RESTRICT ptr0;
5033 const orc_int8 *ORC_RESTRICT ptr4;
5034 const orc_int8 *ORC_RESTRICT ptr5;
5035 const orc_int8 *ORC_RESTRICT ptr6;
5044 ptr0 = (orc_union32 *) d1;
5045 ptr4 = (orc_int8 *) s1;
5046 ptr5 = (orc_int8 *) s2;
5047 ptr6 = (orc_int8 *) s3;
5052 for (i = 0; i < n; i++) {
5060 _dest.x2[0] = var34;
5061 _dest.x2[1] = var35;
5069 _dest.x2[0] = var36;
5070 _dest.x2[1] = var37;
5076 _dest.x2[0] = var39.i;
5077 _dest.x2[1] = var40.i;
5088 _backup_orc_pack_123x (OrcExecutor * ORC_RESTRICT ex)
5092 orc_union32 *ORC_RESTRICT ptr0;
5093 const orc_int8 *ORC_RESTRICT ptr4;
5094 const orc_int8 *ORC_RESTRICT ptr5;
5095 const orc_int8 *ORC_RESTRICT ptr6;
5104 ptr0 = (orc_union32 *) ex->arrays[0];
5105 ptr4 = (orc_int8 *) ex->arrays[4];
5106 ptr5 = (orc_int8 *) ex->arrays[5];
5107 ptr6 = (orc_int8 *) ex->arrays[6];
5110 var37 = ex->params[24];
5112 for (i = 0; i < n; i++) {
5120 _dest.x2[0] = var34;
5121 _dest.x2[1] = var35;
5129 _dest.x2[0] = var36;
5130 _dest.x2[1] = var37;
5136 _dest.x2[0] = var39.i;
5137 _dest.x2[1] = var40.i;
5147 orc_pack_123x (guint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1,
5148 const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3,
5151 OrcExecutor _ex, *ex = &_ex;
5152 static volatile int p_inited = 0;
5153 static OrcProgram *p = 0;
5154 void (*func) (OrcExecutor *);
5157 orc_once_mutex_lock ();
5160 p = orc_program_new ();
5161 orc_program_set_name (p, "orc_pack_123x");
5162 orc_program_set_backup_function (p, _backup_orc_pack_123x);
5163 orc_program_add_destination (p, 4, "d1");
5164 orc_program_add_source (p, 1, "s1");
5165 orc_program_add_source (p, 1, "s2");
5166 orc_program_add_source (p, 1, "s3");
5167 orc_program_add_parameter (p, 1, "p1");
5168 orc_program_add_temporary (p, 2, "t1");
5169 orc_program_add_temporary (p, 2, "t2");
5171 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S2,
5173 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_P1,
5175 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
5178 orc_program_compile (p);
5181 orc_once_mutex_unlock ();
5186 ex->arrays[ORC_VAR_D1] = d1;
5187 ex->arrays[ORC_VAR_S1] = (void *) s1;
5188 ex->arrays[ORC_VAR_S2] = (void *) s2;
5189 ex->arrays[ORC_VAR_S3] = (void *) s3;
5190 ex->params[ORC_VAR_P1] = p1;
5192 func = p->code_exec;
5201 orc_pack_x123 (guint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1,
5202 const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3,
5206 orc_union32 *ORC_RESTRICT ptr0;
5207 const orc_int8 *ORC_RESTRICT ptr4;
5208 const orc_int8 *ORC_RESTRICT ptr5;
5209 const orc_int8 *ORC_RESTRICT ptr6;
5218 ptr0 = (orc_union32 *) d1;
5219 ptr4 = (orc_int8 *) s1;
5220 ptr5 = (orc_int8 *) s2;
5221 ptr6 = (orc_int8 *) s3;
5226 for (i = 0; i < n; i++) {
5232 _dest.x2[0] = var34;
5233 _dest.x2[1] = var35;
5243 _dest.x2[0] = var36;
5244 _dest.x2[1] = var37;
5250 _dest.x2[0] = var39.i;
5251 _dest.x2[1] = var40.i;
5262 _backup_orc_pack_x123 (OrcExecutor * ORC_RESTRICT ex)
5266 orc_union32 *ORC_RESTRICT ptr0;
5267 const orc_int8 *ORC_RESTRICT ptr4;
5268 const orc_int8 *ORC_RESTRICT ptr5;
5269 const orc_int8 *ORC_RESTRICT ptr6;
5278 ptr0 = (orc_union32 *) ex->arrays[0];
5279 ptr4 = (orc_int8 *) ex->arrays[4];
5280 ptr5 = (orc_int8 *) ex->arrays[5];
5281 ptr6 = (orc_int8 *) ex->arrays[6];
5284 var34 = ex->params[24];
5286 for (i = 0; i < n; i++) {
5292 _dest.x2[0] = var34;
5293 _dest.x2[1] = var35;
5303 _dest.x2[0] = var36;
5304 _dest.x2[1] = var37;
5310 _dest.x2[0] = var39.i;
5311 _dest.x2[1] = var40.i;
5321 orc_pack_x123 (guint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1,
5322 const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3,
5325 OrcExecutor _ex, *ex = &_ex;
5326 static volatile int p_inited = 0;
5327 static OrcProgram *p = 0;
5328 void (*func) (OrcExecutor *);
5331 orc_once_mutex_lock ();
5334 p = orc_program_new ();
5335 orc_program_set_name (p, "orc_pack_x123");
5336 orc_program_set_backup_function (p, _backup_orc_pack_x123);
5337 orc_program_add_destination (p, 4, "d1");
5338 orc_program_add_source (p, 1, "s1");
5339 orc_program_add_source (p, 1, "s2");
5340 orc_program_add_source (p, 1, "s3");
5341 orc_program_add_parameter (p, 1, "p1");
5342 orc_program_add_temporary (p, 2, "t1");
5343 orc_program_add_temporary (p, 2, "t2");
5345 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_P1, ORC_VAR_S1,
5347 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3,
5349 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
5352 orc_program_compile (p);
5355 orc_once_mutex_unlock ();
5360 ex->arrays[ORC_VAR_D1] = d1;
5361 ex->arrays[ORC_VAR_S1] = (void *) s1;
5362 ex->arrays[ORC_VAR_S2] = (void *) s2;
5363 ex->arrays[ORC_VAR_S3] = (void *) s3;
5364 ex->params[ORC_VAR_P1] = p1;
5366 func = p->code_exec;
5372 /* cogorc_combine2_u8 */
5375 cogorc_combine2_u8 (orc_uint8 * ORC_RESTRICT d1,
5376 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
5377 int p1, int p2, int n)
5380 orc_int8 *ORC_RESTRICT ptr0;
5381 const orc_int8 *ORC_RESTRICT ptr4;
5382 const orc_int8 *ORC_RESTRICT ptr5;
5395 ptr0 = (orc_int8 *) d1;
5396 ptr4 = (orc_int8 *) s1;
5397 ptr5 = (orc_int8 *) s2;
5404 for (i = 0; i < n; i++) {
5408 var39.i = (orc_uint8) var34;
5410 var40.i = (var39.i * var35.i) & 0xffff;
5414 var41.i = (orc_uint8) var36;
5416 var42.i = (var41.i * var37.i) & 0xffff;
5418 var43.i = var40.i + var42.i;
5420 var44.i = ((orc_uint16) var43.i) >> 8;
5422 var38 = ORC_CLAMP_UB (var44.i);
5431 _backup_cogorc_combine2_u8 (OrcExecutor * ORC_RESTRICT ex)
5435 orc_int8 *ORC_RESTRICT ptr0;
5436 const orc_int8 *ORC_RESTRICT ptr4;
5437 const orc_int8 *ORC_RESTRICT ptr5;
5450 ptr0 = (orc_int8 *) ex->arrays[0];
5451 ptr4 = (orc_int8 *) ex->arrays[4];
5452 ptr5 = (orc_int8 *) ex->arrays[5];
5455 var35.i = ex->params[24];
5457 var37.i = ex->params[25];
5459 for (i = 0; i < n; i++) {
5463 var39.i = (orc_uint8) var34;
5465 var40.i = (var39.i * var35.i) & 0xffff;
5469 var41.i = (orc_uint8) var36;
5471 var42.i = (var41.i * var37.i) & 0xffff;
5473 var43.i = var40.i + var42.i;
5475 var44.i = ((orc_uint16) var43.i) >> 8;
5477 var38 = ORC_CLAMP_UB (var44.i);
5485 cogorc_combine2_u8 (orc_uint8 * ORC_RESTRICT d1,
5486 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
5487 int p1, int p2, int n)
5489 OrcExecutor _ex, *ex = &_ex;
5490 static volatile int p_inited = 0;
5491 static OrcProgram *p = 0;
5492 void (*func) (OrcExecutor *);
5495 orc_once_mutex_lock ();
5498 p = orc_program_new ();
5499 orc_program_set_name (p, "cogorc_combine2_u8");
5500 orc_program_set_backup_function (p, _backup_cogorc_combine2_u8);
5501 orc_program_add_destination (p, 1, "d1");
5502 orc_program_add_source (p, 1, "s1");
5503 orc_program_add_source (p, 1, "s2");
5504 orc_program_add_constant (p, 4, 0x00000008, "c1");
5505 orc_program_add_parameter (p, 2, "p1");
5506 orc_program_add_parameter (p, 2, "p2");
5507 orc_program_add_temporary (p, 2, "t1");
5508 orc_program_add_temporary (p, 2, "t2");
5510 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
5512 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
5514 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
5516 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2,
5518 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
5520 orc_program_append_2 (p, "shruw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
5522 orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
5523 ORC_VAR_D1, ORC_VAR_D1);
5525 orc_program_compile (p);
5528 orc_once_mutex_unlock ();
5533 ex->arrays[ORC_VAR_D1] = d1;
5534 ex->arrays[ORC_VAR_S1] = (void *) s1;
5535 ex->arrays[ORC_VAR_S2] = (void *) s2;
5536 ex->params[ORC_VAR_P1] = p1;
5537 ex->params[ORC_VAR_P2] = p2;
5539 func = p->code_exec;
5545 /* cogorc_combine4_u8 */
5548 cogorc_combine4_u8 (orc_uint8 * ORC_RESTRICT d1,
5549 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
5550 const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4,
5551 int p1, int p2, int p3, int p4, int n)
5554 orc_int8 *ORC_RESTRICT ptr0;
5555 const orc_int8 *ORC_RESTRICT ptr4;
5556 const orc_int8 *ORC_RESTRICT ptr5;
5557 const orc_int8 *ORC_RESTRICT ptr6;
5558 const orc_int8 *ORC_RESTRICT ptr7;
5583 ptr0 = (orc_int8 *) d1;
5584 ptr4 = (orc_int8 *) s1;
5585 ptr5 = (orc_int8 *) s2;
5586 ptr6 = (orc_int8 *) s3;
5587 ptr7 = (orc_int8 *) s4;
5598 var42.i = (int) 0x00000020; /* 32 or 1.58101e-322f */
5600 for (i = 0; i < n; i++) {
5604 var44.i = (orc_uint8) var34;
5606 var45.i = (var44.i * var35.i) & 0xffff;
5610 var46.i = (orc_uint8) var36;
5612 var47.i = (var46.i * var37.i) & 0xffff;
5614 var48.i = var45.i + var47.i;
5618 var49.i = (orc_uint8) var38;
5620 var50.i = (var49.i * var39.i) & 0xffff;
5622 var51.i = var48.i + var50.i;
5626 var52.i = (orc_uint8) var40;
5628 var53.i = (var52.i * var41.i) & 0xffff;
5630 var54.i = var51.i + var53.i;
5632 var55.i = var54.i + var42.i;
5634 var56.i = var55.i >> 6;
5636 var43 = ORC_CLAMP_UB (var56.i);
5645 _backup_cogorc_combine4_u8 (OrcExecutor * ORC_RESTRICT ex)
5649 orc_int8 *ORC_RESTRICT ptr0;
5650 const orc_int8 *ORC_RESTRICT ptr4;
5651 const orc_int8 *ORC_RESTRICT ptr5;
5652 const orc_int8 *ORC_RESTRICT ptr6;
5653 const orc_int8 *ORC_RESTRICT ptr7;
5678 ptr0 = (orc_int8 *) ex->arrays[0];
5679 ptr4 = (orc_int8 *) ex->arrays[4];
5680 ptr5 = (orc_int8 *) ex->arrays[5];
5681 ptr6 = (orc_int8 *) ex->arrays[6];
5682 ptr7 = (orc_int8 *) ex->arrays[7];
5685 var35.i = ex->params[24];
5687 var37.i = ex->params[25];
5689 var39.i = ex->params[26];
5691 var41.i = ex->params[27];
5693 var42.i = (int) 0x00000020; /* 32 or 1.58101e-322f */
5695 for (i = 0; i < n; i++) {
5699 var44.i = (orc_uint8) var34;
5701 var45.i = (var44.i * var35.i) & 0xffff;
5705 var46.i = (orc_uint8) var36;
5707 var47.i = (var46.i * var37.i) & 0xffff;
5709 var48.i = var45.i + var47.i;
5713 var49.i = (orc_uint8) var38;
5715 var50.i = (var49.i * var39.i) & 0xffff;
5717 var51.i = var48.i + var50.i;
5721 var52.i = (orc_uint8) var40;
5723 var53.i = (var52.i * var41.i) & 0xffff;
5725 var54.i = var51.i + var53.i;
5727 var55.i = var54.i + var42.i;
5729 var56.i = var55.i >> 6;
5731 var43 = ORC_CLAMP_UB (var56.i);
5739 cogorc_combine4_u8 (orc_uint8 * ORC_RESTRICT d1,
5740 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
5741 const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4,
5742 int p1, int p2, int p3, int p4, int n)
5744 OrcExecutor _ex, *ex = &_ex;
5745 static volatile int p_inited = 0;
5746 static OrcProgram *p = 0;
5747 void (*func) (OrcExecutor *);
5750 orc_once_mutex_lock ();
5753 p = orc_program_new ();
5754 orc_program_set_name (p, "cogorc_combine4_u8");
5755 orc_program_set_backup_function (p, _backup_cogorc_combine4_u8);
5756 orc_program_add_destination (p, 1, "d1");
5757 orc_program_add_source (p, 1, "s1");
5758 orc_program_add_source (p, 1, "s2");
5759 orc_program_add_source (p, 1, "s3");
5760 orc_program_add_source (p, 1, "s4");
5761 orc_program_add_constant (p, 4, 0x00000020, "c1");
5762 orc_program_add_constant (p, 4, 0x00000006, "c2");
5763 orc_program_add_parameter (p, 2, "p1");
5764 orc_program_add_parameter (p, 2, "p2");
5765 orc_program_add_parameter (p, 2, "p3");
5766 orc_program_add_parameter (p, 2, "p4");
5767 orc_program_add_temporary (p, 2, "t1");
5768 orc_program_add_temporary (p, 2, "t2");
5770 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
5772 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
5774 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
5776 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2,
5778 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
5780 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1,
5782 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P3,
5784 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
5786 orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S4, ORC_VAR_D1,
5788 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P4,
5790 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
5792 orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
5794 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
5796 orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1,
5797 ORC_VAR_D1, ORC_VAR_D1);
5799 orc_program_compile (p);
5802 orc_once_mutex_unlock ();
5807 ex->arrays[ORC_VAR_D1] = d1;
5808 ex->arrays[ORC_VAR_S1] = (void *) s1;
5809 ex->arrays[ORC_VAR_S2] = (void *) s2;
5810 ex->arrays[ORC_VAR_S3] = (void *) s3;
5811 ex->arrays[ORC_VAR_S4] = (void *) s4;
5812 ex->params[ORC_VAR_P1] = p1;
5813 ex->params[ORC_VAR_P2] = p2;
5814 ex->params[ORC_VAR_P3] = p3;
5815 ex->params[ORC_VAR_P4] = p4;
5817 func = p->code_exec;
5823 /* cogorc_unpack_axyz_0 */
5826 cogorc_unpack_axyz_0 (orc_uint8 * ORC_RESTRICT d1,
5827 const orc_uint32 * ORC_RESTRICT s1, int n)
5830 orc_int8 *ORC_RESTRICT ptr0;
5831 const orc_union32 *ORC_RESTRICT ptr4;
5836 ptr0 = (orc_int8 *) d1;
5837 ptr4 = (orc_union32 *) s1;
5840 for (i = 0; i < n; i++) {
5847 var35.i = _src.x2[0];
5863 _backup_cogorc_unpack_axyz_0 (OrcExecutor * ORC_RESTRICT ex)
5867 orc_int8 *ORC_RESTRICT ptr0;
5868 const orc_union32 *ORC_RESTRICT ptr4;
5873 ptr0 = (orc_int8 *) ex->arrays[0];
5874 ptr4 = (orc_union32 *) ex->arrays[4];
5877 for (i = 0; i < n; i++) {
5884 var35.i = _src.x2[0];
5899 cogorc_unpack_axyz_0 (orc_uint8 * ORC_RESTRICT d1,
5900 const orc_uint32 * ORC_RESTRICT s1, int n)
5902 OrcExecutor _ex, *ex = &_ex;
5903 static volatile int p_inited = 0;
5904 static OrcProgram *p = 0;
5905 void (*func) (OrcExecutor *);
5908 orc_once_mutex_lock ();
5911 p = orc_program_new ();
5912 orc_program_set_name (p, "cogorc_unpack_axyz_0");
5913 orc_program_set_backup_function (p, _backup_cogorc_unpack_axyz_0);
5914 orc_program_add_destination (p, 1, "d1");
5915 orc_program_add_source (p, 4, "s1");
5916 orc_program_add_temporary (p, 2, "t1");
5918 orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
5919 ORC_VAR_D1, ORC_VAR_D1);
5920 orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D1, ORC_VAR_T1,
5921 ORC_VAR_D1, ORC_VAR_D1);
5923 orc_program_compile (p);
5926 orc_once_mutex_unlock ();
5931 ex->arrays[ORC_VAR_D1] = d1;
5932 ex->arrays[ORC_VAR_S1] = (void *) s1;
5934 func = p->code_exec;
5940 /* cogorc_unpack_axyz_1 */
5943 cogorc_unpack_axyz_1 (orc_uint8 * ORC_RESTRICT d1,
5944 const orc_uint32 * ORC_RESTRICT s1, int n)
5947 orc_int8 *ORC_RESTRICT ptr0;
5948 const orc_union32 *ORC_RESTRICT ptr4;
5953 ptr0 = (orc_int8 *) d1;
5954 ptr4 = (orc_union32 *) s1;
5957 for (i = 0; i < n; i++) {
5964 var35.i = _src.x2[0];
5980 _backup_cogorc_unpack_axyz_1 (OrcExecutor * ORC_RESTRICT ex)
5984 orc_int8 *ORC_RESTRICT ptr0;
5985 const orc_union32 *ORC_RESTRICT ptr4;
5990 ptr0 = (orc_int8 *) ex->arrays[0];
5991 ptr4 = (orc_union32 *) ex->arrays[4];
5994 for (i = 0; i < n; i++) {
6001 var35.i = _src.x2[0];
6016 cogorc_unpack_axyz_1 (orc_uint8 * ORC_RESTRICT d1,
6017 const orc_uint32 * ORC_RESTRICT s1, int n)
6019 OrcExecutor _ex, *ex = &_ex;
6020 static volatile int p_inited = 0;
6021 static OrcProgram *p = 0;
6022 void (*func) (OrcExecutor *);
6025 orc_once_mutex_lock ();
6028 p = orc_program_new ();
6029 orc_program_set_name (p, "cogorc_unpack_axyz_1");
6030 orc_program_set_backup_function (p, _backup_cogorc_unpack_axyz_1);
6031 orc_program_add_destination (p, 1, "d1");
6032 orc_program_add_source (p, 4, "s1");
6033 orc_program_add_temporary (p, 2, "t1");
6035 orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
6036 ORC_VAR_D1, ORC_VAR_D1);
6037 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
6038 ORC_VAR_D1, ORC_VAR_D1);
6040 orc_program_compile (p);
6043 orc_once_mutex_unlock ();
6048 ex->arrays[ORC_VAR_D1] = d1;
6049 ex->arrays[ORC_VAR_S1] = (void *) s1;
6051 func = p->code_exec;
6057 /* cogorc_unpack_axyz_2 */
6060 cogorc_unpack_axyz_2 (orc_uint8 * ORC_RESTRICT d1,
6061 const orc_uint32 * ORC_RESTRICT s1, int n)
6064 orc_int8 *ORC_RESTRICT ptr0;
6065 const orc_union32 *ORC_RESTRICT ptr4;
6070 ptr0 = (orc_int8 *) d1;
6071 ptr4 = (orc_union32 *) s1;
6074 for (i = 0; i < n; i++) {
6081 var35.i = _src.x2[1];
6097 _backup_cogorc_unpack_axyz_2 (OrcExecutor * ORC_RESTRICT ex)
6101 orc_int8 *ORC_RESTRICT ptr0;
6102 const orc_union32 *ORC_RESTRICT ptr4;
6107 ptr0 = (orc_int8 *) ex->arrays[0];
6108 ptr4 = (orc_union32 *) ex->arrays[4];
6111 for (i = 0; i < n; i++) {
6118 var35.i = _src.x2[1];
6133 cogorc_unpack_axyz_2 (orc_uint8 * ORC_RESTRICT d1,
6134 const orc_uint32 * ORC_RESTRICT s1, int n)
6136 OrcExecutor _ex, *ex = &_ex;
6137 static volatile int p_inited = 0;
6138 static OrcProgram *p = 0;
6139 void (*func) (OrcExecutor *);
6142 orc_once_mutex_lock ();
6145 p = orc_program_new ();
6146 orc_program_set_name (p, "cogorc_unpack_axyz_2");
6147 orc_program_set_backup_function (p, _backup_cogorc_unpack_axyz_2);
6148 orc_program_add_destination (p, 1, "d1");
6149 orc_program_add_source (p, 4, "s1");
6150 orc_program_add_temporary (p, 2, "t1");
6152 orc_program_append_2 (p, "select1lw", 0, ORC_VAR_T1, ORC_VAR_S1,
6153 ORC_VAR_D1, ORC_VAR_D1);
6154 orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D1, ORC_VAR_T1,
6155 ORC_VAR_D1, ORC_VAR_D1);
6157 orc_program_compile (p);
6160 orc_once_mutex_unlock ();
6165 ex->arrays[ORC_VAR_D1] = d1;
6166 ex->arrays[ORC_VAR_S1] = (void *) s1;
6168 func = p->code_exec;
6174 /* cogorc_unpack_axyz_3 */
6177 cogorc_unpack_axyz_3 (orc_uint8 * ORC_RESTRICT d1,
6178 const orc_uint32 * ORC_RESTRICT s1, int n)
6181 orc_int8 *ORC_RESTRICT ptr0;
6182 const orc_union32 *ORC_RESTRICT ptr4;
6187 ptr0 = (orc_int8 *) d1;
6188 ptr4 = (orc_union32 *) s1;
6191 for (i = 0; i < n; i++) {
6198 var35.i = _src.x2[1];
6214 _backup_cogorc_unpack_axyz_3 (OrcExecutor * ORC_RESTRICT ex)
6218 orc_int8 *ORC_RESTRICT ptr0;
6219 const orc_union32 *ORC_RESTRICT ptr4;
6224 ptr0 = (orc_int8 *) ex->arrays[0];
6225 ptr4 = (orc_union32 *) ex->arrays[4];
6228 for (i = 0; i < n; i++) {
6235 var35.i = _src.x2[1];
6250 cogorc_unpack_axyz_3 (orc_uint8 * ORC_RESTRICT d1,
6251 const orc_uint32 * ORC_RESTRICT s1, int n)
6253 OrcExecutor _ex, *ex = &_ex;
6254 static volatile int p_inited = 0;
6255 static OrcProgram *p = 0;
6256 void (*func) (OrcExecutor *);
6259 orc_once_mutex_lock ();
6262 p = orc_program_new ();
6263 orc_program_set_name (p, "cogorc_unpack_axyz_3");
6264 orc_program_set_backup_function (p, _backup_cogorc_unpack_axyz_3);
6265 orc_program_add_destination (p, 1, "d1");
6266 orc_program_add_source (p, 4, "s1");
6267 orc_program_add_temporary (p, 2, "t1");
6269 orc_program_append_2 (p, "select1lw", 0, ORC_VAR_T1, ORC_VAR_S1,
6270 ORC_VAR_D1, ORC_VAR_D1);
6271 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
6272 ORC_VAR_D1, ORC_VAR_D1);
6274 orc_program_compile (p);
6277 orc_once_mutex_unlock ();
6282 ex->arrays[ORC_VAR_D1] = d1;
6283 ex->arrays[ORC_VAR_S1] = (void *) s1;
6285 func = p->code_exec;
6291 /* cogorc_resample_horiz_1tap */
6294 cogorc_resample_horiz_1tap (orc_uint8 * ORC_RESTRICT d1,
6295 const orc_uint8 * ORC_RESTRICT s1, int p1, int p2, int n)
6298 orc_int8 *ORC_RESTRICT ptr0;
6299 const orc_int8 *ORC_RESTRICT ptr4;
6302 ptr0 = (orc_int8 *) d1;
6303 ptr4 = (orc_int8 *) s1;
6306 for (i = 0; i < n; i++) {
6308 var32 = ptr4[(p1 + i * p2) >> 16];
6317 _backup_cogorc_resample_horiz_1tap (OrcExecutor * ORC_RESTRICT ex)
6321 orc_int8 *ORC_RESTRICT ptr0;
6322 const orc_int8 *ORC_RESTRICT ptr4;
6325 ptr0 = (orc_int8 *) ex->arrays[0];
6326 ptr4 = (orc_int8 *) ex->arrays[4];
6329 for (i = 0; i < n; i++) {
6331 var32 = ptr4[(ex->params[24] + i * ex->params[25]) >> 16];
6339 cogorc_resample_horiz_1tap (orc_uint8 * ORC_RESTRICT d1,
6340 const orc_uint8 * ORC_RESTRICT s1, int p1, int p2, int n)
6342 OrcExecutor _ex, *ex = &_ex;
6343 static volatile int p_inited = 0;
6344 static OrcProgram *p = 0;
6345 void (*func) (OrcExecutor *);
6348 orc_once_mutex_lock ();
6351 p = orc_program_new ();
6352 orc_program_set_name (p, "cogorc_resample_horiz_1tap");
6353 orc_program_set_backup_function (p, _backup_cogorc_resample_horiz_1tap);
6354 orc_program_add_destination (p, 1, "d1");
6355 orc_program_add_source (p, 1, "s1");
6356 orc_program_add_parameter (p, 4, "p1");
6357 orc_program_add_parameter (p, 4, "p2");
6359 orc_program_append_2 (p, "ldresnearb", 0, ORC_VAR_D1, ORC_VAR_S1,
6360 ORC_VAR_P1, ORC_VAR_P2);
6362 orc_program_compile (p);
6365 orc_once_mutex_unlock ();
6370 ex->arrays[ORC_VAR_D1] = d1;
6371 ex->arrays[ORC_VAR_S1] = (void *) s1;
6372 ex->params[ORC_VAR_P1] = p1;
6373 ex->params[ORC_VAR_P2] = p2;
6375 func = p->code_exec;
6381 /* cogorc_resample_horiz_2tap */
6384 cogorc_resample_horiz_2tap (orc_uint8 * ORC_RESTRICT d1,
6385 const orc_uint8 * ORC_RESTRICT s1, int p1, int p2, int n)
6388 orc_int8 *ORC_RESTRICT ptr0;
6389 const orc_int8 *ORC_RESTRICT ptr4;
6392 ptr0 = (orc_int8 *) d1;
6393 ptr4 = (orc_int8 *) s1;
6396 for (i = 0; i < n; i++) {
6399 int tmp = p1 + i * p2;
6401 ((orc_uint8) ptr4[tmp >> 16] * (256 - ((tmp >> 8) & 0xff)) +
6402 (orc_uint8) ptr4[(tmp >> 16) + 1] * ((tmp >> 8) & 0xff)) >> 8;
6412 _backup_cogorc_resample_horiz_2tap (OrcExecutor * ORC_RESTRICT ex)
6416 orc_int8 *ORC_RESTRICT ptr0;
6417 const orc_int8 *ORC_RESTRICT ptr4;
6420 ptr0 = (orc_int8 *) ex->arrays[0];
6421 ptr4 = (orc_int8 *) ex->arrays[4];
6424 for (i = 0; i < n; i++) {
6427 int tmp = ex->params[24] + i * ex->params[25];
6429 ((orc_uint8) ptr4[tmp >> 16] * (256 - ((tmp >> 8) & 0xff)) +
6430 (orc_uint8) ptr4[(tmp >> 16) + 1] * ((tmp >> 8) & 0xff)) >> 8;
6439 cogorc_resample_horiz_2tap (orc_uint8 * ORC_RESTRICT d1,
6440 const orc_uint8 * ORC_RESTRICT s1, int p1, int p2, int n)
6442 OrcExecutor _ex, *ex = &_ex;
6443 static volatile int p_inited = 0;
6444 static OrcProgram *p = 0;
6445 void (*func) (OrcExecutor *);
6448 orc_once_mutex_lock ();
6451 p = orc_program_new ();
6452 orc_program_set_name (p, "cogorc_resample_horiz_2tap");
6453 orc_program_set_backup_function (p, _backup_cogorc_resample_horiz_2tap);
6454 orc_program_add_destination (p, 1, "d1");
6455 orc_program_add_source (p, 1, "s1");
6456 orc_program_add_parameter (p, 4, "p1");
6457 orc_program_add_parameter (p, 4, "p2");
6459 orc_program_append_2 (p, "ldreslinb", 0, ORC_VAR_D1, ORC_VAR_S1,
6460 ORC_VAR_P1, ORC_VAR_P2);
6462 orc_program_compile (p);
6465 orc_once_mutex_unlock ();
6470 ex->arrays[ORC_VAR_D1] = d1;
6471 ex->arrays[ORC_VAR_S1] = (void *) s1;
6472 ex->params[ORC_VAR_P1] = p1;
6473 ex->params[ORC_VAR_P2] = p2;
6475 func = p->code_exec;
6481 /* cogorc_convert_I420_UYVY */
6484 cogorc_convert_I420_UYVY (orc_uint32 * ORC_RESTRICT d1,
6485 orc_uint32 * ORC_RESTRICT d2, const orc_uint16 * ORC_RESTRICT s1,
6486 const orc_uint16 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3,
6487 const orc_uint8 * ORC_RESTRICT s4, int n)
6490 orc_union32 *ORC_RESTRICT ptr0;
6491 orc_union32 *ORC_RESTRICT ptr1;
6492 const orc_union16 *ORC_RESTRICT ptr4;
6493 const orc_union16 *ORC_RESTRICT ptr5;
6494 const orc_int8 *ORC_RESTRICT ptr6;
6495 const orc_int8 *ORC_RESTRICT ptr7;
6504 ptr0 = (orc_union32 *) d1;
6505 ptr1 = (orc_union32 *) d2;
6506 ptr4 = (orc_union16 *) s1;
6507 ptr5 = (orc_union16 *) s2;
6508 ptr6 = (orc_int8 *) s3;
6509 ptr7 = (orc_int8 *) s4;
6512 for (i = 0; i < n; i++) {
6520 _dest.x2[0] = var33;
6521 _dest.x2[1] = var34;
6529 _dest.x2[0] = var39.x2[0];
6530 _dest.x2[1] = var35.x2[0];
6531 var36.x2[0] = _dest.i;
6535 _dest.x2[0] = var39.x2[1];
6536 _dest.x2[1] = var35.x2[1];
6537 var36.x2[1] = _dest.i;
6546 _dest.x2[0] = var39.x2[0];
6547 _dest.x2[1] = var37.x2[0];
6548 var38.x2[0] = _dest.i;
6552 _dest.x2[0] = var39.x2[1];
6553 _dest.x2[1] = var37.x2[1];
6554 var38.x2[1] = _dest.i;
6564 _backup_cogorc_convert_I420_UYVY (OrcExecutor * ORC_RESTRICT ex)
6568 orc_union32 *ORC_RESTRICT ptr0;
6569 orc_union32 *ORC_RESTRICT ptr1;
6570 const orc_union16 *ORC_RESTRICT ptr4;
6571 const orc_union16 *ORC_RESTRICT ptr5;
6572 const orc_int8 *ORC_RESTRICT ptr6;
6573 const orc_int8 *ORC_RESTRICT ptr7;
6582 ptr0 = (orc_union32 *) ex->arrays[0];
6583 ptr1 = (orc_union32 *) ex->arrays[1];
6584 ptr4 = (orc_union16 *) ex->arrays[4];
6585 ptr5 = (orc_union16 *) ex->arrays[5];
6586 ptr6 = (orc_int8 *) ex->arrays[6];
6587 ptr7 = (orc_int8 *) ex->arrays[7];
6590 for (i = 0; i < n; i++) {
6598 _dest.x2[0] = var33;
6599 _dest.x2[1] = var34;
6607 _dest.x2[0] = var39.x2[0];
6608 _dest.x2[1] = var35.x2[0];
6609 var36.x2[0] = _dest.i;
6613 _dest.x2[0] = var39.x2[1];
6614 _dest.x2[1] = var35.x2[1];
6615 var36.x2[1] = _dest.i;
6624 _dest.x2[0] = var39.x2[0];
6625 _dest.x2[1] = var37.x2[0];
6626 var38.x2[0] = _dest.i;
6630 _dest.x2[0] = var39.x2[1];
6631 _dest.x2[1] = var37.x2[1];
6632 var38.x2[1] = _dest.i;
6641 cogorc_convert_I420_UYVY (orc_uint32 * ORC_RESTRICT d1,
6642 orc_uint32 * ORC_RESTRICT d2, const orc_uint16 * ORC_RESTRICT s1,
6643 const orc_uint16 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3,
6644 const orc_uint8 * ORC_RESTRICT s4, int n)
6646 OrcExecutor _ex, *ex = &_ex;
6647 static volatile int p_inited = 0;
6648 static OrcProgram *p = 0;
6649 void (*func) (OrcExecutor *);
6652 orc_once_mutex_lock ();
6655 p = orc_program_new ();
6656 orc_program_set_name (p, "cogorc_convert_I420_UYVY");
6657 orc_program_set_backup_function (p, _backup_cogorc_convert_I420_UYVY);
6658 orc_program_add_destination (p, 4, "d1");
6659 orc_program_add_destination (p, 4, "d2");
6660 orc_program_add_source (p, 2, "s1");
6661 orc_program_add_source (p, 2, "s2");
6662 orc_program_add_source (p, 1, "s3");
6663 orc_program_add_source (p, 1, "s4");
6664 orc_program_add_temporary (p, 2, "t1");
6666 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S3, ORC_VAR_S4,
6668 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
6670 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_S2,
6673 orc_program_compile (p);
6676 orc_once_mutex_unlock ();
6681 ex->arrays[ORC_VAR_D1] = d1;
6682 ex->arrays[ORC_VAR_D2] = d2;
6683 ex->arrays[ORC_VAR_S1] = (void *) s1;
6684 ex->arrays[ORC_VAR_S2] = (void *) s2;
6685 ex->arrays[ORC_VAR_S3] = (void *) s3;
6686 ex->arrays[ORC_VAR_S4] = (void *) s4;
6688 func = p->code_exec;
6694 /* cogorc_convert_I420_YUY2 */
6697 cogorc_convert_I420_YUY2 (orc_uint32 * ORC_RESTRICT d1,
6698 orc_uint32 * ORC_RESTRICT d2, const orc_uint16 * ORC_RESTRICT s1,
6699 const orc_uint16 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3,
6700 const orc_uint8 * ORC_RESTRICT s4, int n)
6703 orc_union32 *ORC_RESTRICT ptr0;
6704 orc_union32 *ORC_RESTRICT ptr1;
6705 const orc_union16 *ORC_RESTRICT ptr4;
6706 const orc_union16 *ORC_RESTRICT ptr5;
6707 const orc_int8 *ORC_RESTRICT ptr6;
6708 const orc_int8 *ORC_RESTRICT ptr7;
6717 ptr0 = (orc_union32 *) d1;
6718 ptr1 = (orc_union32 *) d2;
6719 ptr4 = (orc_union16 *) s1;
6720 ptr5 = (orc_union16 *) s2;
6721 ptr6 = (orc_int8 *) s3;
6722 ptr7 = (orc_int8 *) s4;
6725 for (i = 0; i < n; i++) {
6733 _dest.x2[0] = var33;
6734 _dest.x2[1] = var34;
6742 _dest.x2[0] = var35.x2[0];
6743 _dest.x2[1] = var39.x2[0];
6744 var36.x2[0] = _dest.i;
6748 _dest.x2[0] = var35.x2[1];
6749 _dest.x2[1] = var39.x2[1];
6750 var36.x2[1] = _dest.i;
6759 _dest.x2[0] = var37.x2[0];
6760 _dest.x2[1] = var39.x2[0];
6761 var38.x2[0] = _dest.i;
6765 _dest.x2[0] = var37.x2[1];
6766 _dest.x2[1] = var39.x2[1];
6767 var38.x2[1] = _dest.i;
6777 _backup_cogorc_convert_I420_YUY2 (OrcExecutor * ORC_RESTRICT ex)
6781 orc_union32 *ORC_RESTRICT ptr0;
6782 orc_union32 *ORC_RESTRICT ptr1;
6783 const orc_union16 *ORC_RESTRICT ptr4;
6784 const orc_union16 *ORC_RESTRICT ptr5;
6785 const orc_int8 *ORC_RESTRICT ptr6;
6786 const orc_int8 *ORC_RESTRICT ptr7;
6795 ptr0 = (orc_union32 *) ex->arrays[0];
6796 ptr1 = (orc_union32 *) ex->arrays[1];
6797 ptr4 = (orc_union16 *) ex->arrays[4];
6798 ptr5 = (orc_union16 *) ex->arrays[5];
6799 ptr6 = (orc_int8 *) ex->arrays[6];
6800 ptr7 = (orc_int8 *) ex->arrays[7];
6803 for (i = 0; i < n; i++) {
6811 _dest.x2[0] = var33;
6812 _dest.x2[1] = var34;
6820 _dest.x2[0] = var35.x2[0];
6821 _dest.x2[1] = var39.x2[0];
6822 var36.x2[0] = _dest.i;
6826 _dest.x2[0] = var35.x2[1];
6827 _dest.x2[1] = var39.x2[1];
6828 var36.x2[1] = _dest.i;
6837 _dest.x2[0] = var37.x2[0];
6838 _dest.x2[1] = var39.x2[0];
6839 var38.x2[0] = _dest.i;
6843 _dest.x2[0] = var37.x2[1];
6844 _dest.x2[1] = var39.x2[1];
6845 var38.x2[1] = _dest.i;
6854 cogorc_convert_I420_YUY2 (orc_uint32 * ORC_RESTRICT d1,
6855 orc_uint32 * ORC_RESTRICT d2, const orc_uint16 * ORC_RESTRICT s1,
6856 const orc_uint16 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3,
6857 const orc_uint8 * ORC_RESTRICT s4, int n)
6859 OrcExecutor _ex, *ex = &_ex;
6860 static volatile int p_inited = 0;
6861 static OrcProgram *p = 0;
6862 void (*func) (OrcExecutor *);
6865 orc_once_mutex_lock ();
6868 p = orc_program_new ();
6869 orc_program_set_name (p, "cogorc_convert_I420_YUY2");
6870 orc_program_set_backup_function (p, _backup_cogorc_convert_I420_YUY2);
6871 orc_program_add_destination (p, 4, "d1");
6872 orc_program_add_destination (p, 4, "d2");
6873 orc_program_add_source (p, 2, "s1");
6874 orc_program_add_source (p, 2, "s2");
6875 orc_program_add_source (p, 1, "s3");
6876 orc_program_add_source (p, 1, "s4");
6877 orc_program_add_temporary (p, 2, "t1");
6879 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S3, ORC_VAR_S4,
6881 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
6883 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_S2, ORC_VAR_T1,
6886 orc_program_compile (p);
6889 orc_once_mutex_unlock ();
6894 ex->arrays[ORC_VAR_D1] = d1;
6895 ex->arrays[ORC_VAR_D2] = d2;
6896 ex->arrays[ORC_VAR_S1] = (void *) s1;
6897 ex->arrays[ORC_VAR_S2] = (void *) s2;
6898 ex->arrays[ORC_VAR_S3] = (void *) s3;
6899 ex->arrays[ORC_VAR_S4] = (void *) s4;
6901 func = p->code_exec;
6907 /* cogorc_convert_I420_AYUV */
6910 cogorc_convert_I420_AYUV (orc_uint32 * ORC_RESTRICT d1,
6911 orc_uint32 * ORC_RESTRICT d2, const orc_uint8 * ORC_RESTRICT s1,
6912 const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3,
6913 const orc_uint8 * ORC_RESTRICT s4, int n)
6916 orc_union32 *ORC_RESTRICT ptr0;
6917 orc_union32 *ORC_RESTRICT ptr1;
6918 const orc_int8 *ORC_RESTRICT ptr4;
6919 const orc_int8 *ORC_RESTRICT ptr5;
6920 const orc_int8 *ORC_RESTRICT ptr6;
6921 const orc_int8 *ORC_RESTRICT ptr7;
6934 ptr0 = (orc_union32 *) d1;
6935 ptr1 = (orc_union32 *) d2;
6936 ptr4 = (orc_int8 *) s1;
6937 ptr5 = (orc_int8 *) s2;
6938 ptr6 = (orc_int8 *) s3;
6939 ptr7 = (orc_int8 *) s4;
6942 var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
6944 var39 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
6946 for (i = 0; i < n; i++) {
6948 var42 = ptr6[i >> 1];
6950 var43 = ptr7[i >> 1];
6954 _dest.x2[0] = var42;
6955 _dest.x2[1] = var43;
6963 _dest.x2[0] = var36;
6964 _dest.x2[1] = var37;
6970 _dest.x2[0] = var45.i;
6971 _dest.x2[1] = var44.i;
6981 _dest.x2[0] = var39;
6982 _dest.x2[1] = var40;
6988 _dest.x2[0] = var46.i;
6989 _dest.x2[1] = var44.i;
7000 _backup_cogorc_convert_I420_AYUV (OrcExecutor * ORC_RESTRICT ex)
7004 orc_union32 *ORC_RESTRICT ptr0;
7005 orc_union32 *ORC_RESTRICT ptr1;
7006 const orc_int8 *ORC_RESTRICT ptr4;
7007 const orc_int8 *ORC_RESTRICT ptr5;
7008 const orc_int8 *ORC_RESTRICT ptr6;
7009 const orc_int8 *ORC_RESTRICT ptr7;
7022 ptr0 = (orc_union32 *) ex->arrays[0];
7023 ptr1 = (orc_union32 *) ex->arrays[1];
7024 ptr4 = (orc_int8 *) ex->arrays[4];
7025 ptr5 = (orc_int8 *) ex->arrays[5];
7026 ptr6 = (orc_int8 *) ex->arrays[6];
7027 ptr7 = (orc_int8 *) ex->arrays[7];
7030 var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
7032 var39 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
7034 for (i = 0; i < n; i++) {
7036 var42 = ptr6[i >> 1];
7038 var43 = ptr7[i >> 1];
7042 _dest.x2[0] = var42;
7043 _dest.x2[1] = var43;
7051 _dest.x2[0] = var36;
7052 _dest.x2[1] = var37;
7058 _dest.x2[0] = var45.i;
7059 _dest.x2[1] = var44.i;
7069 _dest.x2[0] = var39;
7070 _dest.x2[1] = var40;
7076 _dest.x2[0] = var46.i;
7077 _dest.x2[1] = var44.i;
7087 cogorc_convert_I420_AYUV (orc_uint32 * ORC_RESTRICT d1,
7088 orc_uint32 * ORC_RESTRICT d2, const orc_uint8 * ORC_RESTRICT s1,
7089 const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3,
7090 const orc_uint8 * ORC_RESTRICT s4, int n)
7092 OrcExecutor _ex, *ex = &_ex;
7093 static volatile int p_inited = 0;
7094 static OrcProgram *p = 0;
7095 void (*func) (OrcExecutor *);
7098 orc_once_mutex_lock ();
7101 p = orc_program_new ();
7102 orc_program_set_name (p, "cogorc_convert_I420_AYUV");
7103 orc_program_set_backup_function (p, _backup_cogorc_convert_I420_AYUV);
7104 orc_program_add_destination (p, 4, "d1");
7105 orc_program_add_destination (p, 4, "d2");
7106 orc_program_add_source (p, 1, "s1");
7107 orc_program_add_source (p, 1, "s2");
7108 orc_program_add_source (p, 1, "s3");
7109 orc_program_add_source (p, 1, "s4");
7110 orc_program_add_constant (p, 1, 0x000000ff, "c1");
7111 orc_program_add_temporary (p, 2, "t1");
7112 orc_program_add_temporary (p, 2, "t2");
7113 orc_program_add_temporary (p, 1, "t3");
7114 orc_program_add_temporary (p, 1, "t4");
7116 orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S3,
7117 ORC_VAR_D1, ORC_VAR_D1);
7118 orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S4,
7119 ORC_VAR_D1, ORC_VAR_D1);
7120 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
7122 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
7124 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
7126 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S2,
7128 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_T1,
7131 orc_program_compile (p);
7134 orc_once_mutex_unlock ();
7139 ex->arrays[ORC_VAR_D1] = d1;
7140 ex->arrays[ORC_VAR_D2] = d2;
7141 ex->arrays[ORC_VAR_S1] = (void *) s1;
7142 ex->arrays[ORC_VAR_S2] = (void *) s2;
7143 ex->arrays[ORC_VAR_S3] = (void *) s3;
7144 ex->arrays[ORC_VAR_S4] = (void *) s4;
7146 func = p->code_exec;
7152 /* cogorc_convert_YUY2_I420 */
7155 cogorc_convert_YUY2_I420 (orc_uint16 * ORC_RESTRICT d1,
7156 orc_uint16 * ORC_RESTRICT d2, orc_uint8 * ORC_RESTRICT d3,
7157 orc_uint8 * ORC_RESTRICT d4, const orc_uint32 * ORC_RESTRICT s1,
7158 const orc_uint32 * ORC_RESTRICT s2, int n)
7161 orc_union16 *ORC_RESTRICT ptr0;
7162 orc_union16 *ORC_RESTRICT ptr1;
7163 orc_int8 *ORC_RESTRICT ptr2;
7164 orc_int8 *ORC_RESTRICT ptr3;
7165 const orc_union32 *ORC_RESTRICT ptr4;
7166 const orc_union32 *ORC_RESTRICT ptr5;
7177 ptr0 = (orc_union16 *) d1;
7178 ptr1 = (orc_union16 *) d2;
7179 ptr2 = (orc_int8 *) d3;
7180 ptr3 = (orc_int8 *) d4;
7181 ptr4 = (orc_union32 *) s1;
7182 ptr5 = (orc_union32 *) s2;
7185 for (i = 0; i < n; i++) {
7191 _src.i = var35.x2[0];
7192 var39.x2[0] = _src.x2[1];
7193 var40.x2[0] = _src.x2[0];
7197 _src.i = var35.x2[1];
7198 var39.x2[1] = _src.x2[1];
7199 var40.x2[1] = _src.x2[0];
7208 _src.i = var36.x2[0];
7209 var41.x2[0] = _src.x2[1];
7210 var42.x2[0] = _src.x2[0];
7214 _src.i = var36.x2[1];
7215 var41.x2[1] = _src.x2[1];
7216 var42.x2[1] = _src.x2[0];
7221 var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1;
7222 var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1;
7240 _backup_cogorc_convert_YUY2_I420 (OrcExecutor * ORC_RESTRICT ex)
7244 orc_union16 *ORC_RESTRICT ptr0;
7245 orc_union16 *ORC_RESTRICT ptr1;
7246 orc_int8 *ORC_RESTRICT ptr2;
7247 orc_int8 *ORC_RESTRICT ptr3;
7248 const orc_union32 *ORC_RESTRICT ptr4;
7249 const orc_union32 *ORC_RESTRICT ptr5;
7260 ptr0 = (orc_union16 *) ex->arrays[0];
7261 ptr1 = (orc_union16 *) ex->arrays[1];
7262 ptr2 = (orc_int8 *) ex->arrays[2];
7263 ptr3 = (orc_int8 *) ex->arrays[3];
7264 ptr4 = (orc_union32 *) ex->arrays[4];
7265 ptr5 = (orc_union32 *) ex->arrays[5];
7268 for (i = 0; i < n; i++) {
7274 _src.i = var35.x2[0];
7275 var39.x2[0] = _src.x2[1];
7276 var40.x2[0] = _src.x2[0];
7280 _src.i = var35.x2[1];
7281 var39.x2[1] = _src.x2[1];
7282 var40.x2[1] = _src.x2[0];
7291 _src.i = var36.x2[0];
7292 var41.x2[0] = _src.x2[1];
7293 var42.x2[0] = _src.x2[0];
7297 _src.i = var36.x2[1];
7298 var41.x2[1] = _src.x2[1];
7299 var42.x2[1] = _src.x2[0];
7304 var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1;
7305 var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1;
7322 cogorc_convert_YUY2_I420 (orc_uint16 * ORC_RESTRICT d1,
7323 orc_uint16 * ORC_RESTRICT d2, orc_uint8 * ORC_RESTRICT d3,
7324 orc_uint8 * ORC_RESTRICT d4, const orc_uint32 * ORC_RESTRICT s1,
7325 const orc_uint32 * ORC_RESTRICT s2, int n)
7327 OrcExecutor _ex, *ex = &_ex;
7328 static volatile int p_inited = 0;
7329 static OrcProgram *p = 0;
7330 void (*func) (OrcExecutor *);
7333 orc_once_mutex_lock ();
7336 p = orc_program_new ();
7337 orc_program_set_name (p, "cogorc_convert_YUY2_I420");
7338 orc_program_set_backup_function (p, _backup_cogorc_convert_YUY2_I420);
7339 orc_program_add_destination (p, 2, "d1");
7340 orc_program_add_destination (p, 2, "d2");
7341 orc_program_add_destination (p, 1, "d3");
7342 orc_program_add_destination (p, 1, "d4");
7343 orc_program_add_source (p, 4, "s1");
7344 orc_program_add_source (p, 4, "s2");
7345 orc_program_add_temporary (p, 2, "t1");
7346 orc_program_add_temporary (p, 2, "t2");
7347 orc_program_add_temporary (p, 2, "t3");
7349 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_S1,
7351 orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
7353 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_S2,
7355 orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1,
7357 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
7359 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1,
7362 orc_program_compile (p);
7365 orc_once_mutex_unlock ();
7370 ex->arrays[ORC_VAR_D1] = d1;
7371 ex->arrays[ORC_VAR_D2] = d2;
7372 ex->arrays[ORC_VAR_D3] = d3;
7373 ex->arrays[ORC_VAR_D4] = d4;
7374 ex->arrays[ORC_VAR_S1] = (void *) s1;
7375 ex->arrays[ORC_VAR_S2] = (void *) s2;
7377 func = p->code_exec;
7383 /* cogorc_convert_UYVY_YUY2 */
7386 cogorc_convert_UYVY_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
7387 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m)
7391 orc_union32 *ORC_RESTRICT ptr0;
7392 const orc_union32 *ORC_RESTRICT ptr4;
7396 for (j = 0; j < m; j++) {
7397 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
7398 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
7401 for (i = 0; i < n; i++) {
7405 var33.x2[0] = ORC_SWAP_W (var32.x2[0]);
7406 var33.x2[1] = ORC_SWAP_W (var32.x2[1]);
7416 _backup_cogorc_convert_UYVY_YUY2 (OrcExecutor * ORC_RESTRICT ex)
7421 int m = ex->params[ORC_VAR_A1];
7422 orc_union32 *ORC_RESTRICT ptr0;
7423 const orc_union32 *ORC_RESTRICT ptr4;
7427 for (j = 0; j < m; j++) {
7428 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
7429 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
7432 for (i = 0; i < n; i++) {
7436 var33.x2[0] = ORC_SWAP_W (var32.x2[0]);
7437 var33.x2[1] = ORC_SWAP_W (var32.x2[1]);
7446 cogorc_convert_UYVY_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
7447 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m)
7449 OrcExecutor _ex, *ex = &_ex;
7450 static volatile int p_inited = 0;
7451 static OrcProgram *p = 0;
7452 void (*func) (OrcExecutor *);
7455 orc_once_mutex_lock ();
7458 p = orc_program_new ();
7459 orc_program_set_2d (p);
7460 orc_program_set_name (p, "cogorc_convert_UYVY_YUY2");
7461 orc_program_set_backup_function (p, _backup_cogorc_convert_UYVY_YUY2);
7462 orc_program_add_destination (p, 4, "d1");
7463 orc_program_add_source (p, 4, "s1");
7465 orc_program_append_2 (p, "swapw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
7468 orc_program_compile (p);
7471 orc_once_mutex_unlock ();
7476 ORC_EXECUTOR_M (ex) = m;
7477 ex->arrays[ORC_VAR_D1] = d1;
7478 ex->params[ORC_VAR_D1] = d1_stride;
7479 ex->arrays[ORC_VAR_S1] = (void *) s1;
7480 ex->params[ORC_VAR_S1] = s1_stride;
7482 func = p->code_exec;
7488 /* cogorc_planar_chroma_420_422 */
7491 cogorc_planar_chroma_420_422 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
7492 orc_uint8 * ORC_RESTRICT d2, int d2_stride,
7493 const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
7497 orc_int8 *ORC_RESTRICT ptr0;
7498 orc_int8 *ORC_RESTRICT ptr1;
7499 const orc_int8 *ORC_RESTRICT ptr4;
7505 for (j = 0; j < m; j++) {
7506 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
7507 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
7508 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
7511 for (i = 0; i < n; i++) {
7531 _backup_cogorc_planar_chroma_420_422 (OrcExecutor * ORC_RESTRICT ex)
7536 int m = ex->params[ORC_VAR_A1];
7537 orc_int8 *ORC_RESTRICT ptr0;
7538 orc_int8 *ORC_RESTRICT ptr1;
7539 const orc_int8 *ORC_RESTRICT ptr4;
7545 for (j = 0; j < m; j++) {
7546 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
7547 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
7548 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
7551 for (i = 0; i < n; i++) {
7570 cogorc_planar_chroma_420_422 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
7571 orc_uint8 * ORC_RESTRICT d2, int d2_stride,
7572 const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
7574 OrcExecutor _ex, *ex = &_ex;
7575 static volatile int p_inited = 0;
7576 static OrcProgram *p = 0;
7577 void (*func) (OrcExecutor *);
7580 orc_once_mutex_lock ();
7583 p = orc_program_new ();
7584 orc_program_set_2d (p);
7585 orc_program_set_name (p, "cogorc_planar_chroma_420_422");
7586 orc_program_set_backup_function (p, _backup_cogorc_planar_chroma_420_422);
7587 orc_program_add_destination (p, 1, "d1");
7588 orc_program_add_destination (p, 1, "d2");
7589 orc_program_add_source (p, 1, "s1");
7591 orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
7593 orc_program_append_2 (p, "copyb", 0, ORC_VAR_D2, ORC_VAR_S1, ORC_VAR_D1,
7596 orc_program_compile (p);
7599 orc_once_mutex_unlock ();
7604 ORC_EXECUTOR_M (ex) = m;
7605 ex->arrays[ORC_VAR_D1] = d1;
7606 ex->params[ORC_VAR_D1] = d1_stride;
7607 ex->arrays[ORC_VAR_D2] = d2;
7608 ex->params[ORC_VAR_D2] = d2_stride;
7609 ex->arrays[ORC_VAR_S1] = (void *) s1;
7610 ex->params[ORC_VAR_S1] = s1_stride;
7612 func = p->code_exec;
7618 /* cogorc_planar_chroma_420_444 */
7621 cogorc_planar_chroma_420_444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
7622 orc_uint16 * ORC_RESTRICT d2, int d2_stride,
7623 const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
7627 orc_union16 *ORC_RESTRICT ptr0;
7628 orc_union16 *ORC_RESTRICT ptr1;
7629 const orc_int8 *ORC_RESTRICT ptr4;
7633 for (j = 0; j < m; j++) {
7634 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
7635 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
7636 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
7639 for (i = 0; i < n; i++) {
7643 var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
7655 _backup_cogorc_planar_chroma_420_444 (OrcExecutor * ORC_RESTRICT ex)
7660 int m = ex->params[ORC_VAR_A1];
7661 orc_union16 *ORC_RESTRICT ptr0;
7662 orc_union16 *ORC_RESTRICT ptr1;
7663 const orc_int8 *ORC_RESTRICT ptr4;
7667 for (j = 0; j < m; j++) {
7668 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
7669 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
7670 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
7673 for (i = 0; i < n; i++) {
7677 var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
7688 cogorc_planar_chroma_420_444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
7689 orc_uint16 * ORC_RESTRICT d2, int d2_stride,
7690 const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
7692 OrcExecutor _ex, *ex = &_ex;
7693 static volatile int p_inited = 0;
7694 static OrcProgram *p = 0;
7695 void (*func) (OrcExecutor *);
7698 orc_once_mutex_lock ();
7701 p = orc_program_new ();
7702 orc_program_set_2d (p);
7703 orc_program_set_name (p, "cogorc_planar_chroma_420_444");
7704 orc_program_set_backup_function (p, _backup_cogorc_planar_chroma_420_444);
7705 orc_program_add_destination (p, 2, "d1");
7706 orc_program_add_destination (p, 2, "d2");
7707 orc_program_add_source (p, 1, "s1");
7708 orc_program_add_temporary (p, 2, "t1");
7710 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
7712 orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
7714 orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_D1,
7717 orc_program_compile (p);
7720 orc_once_mutex_unlock ();
7725 ORC_EXECUTOR_M (ex) = m;
7726 ex->arrays[ORC_VAR_D1] = d1;
7727 ex->params[ORC_VAR_D1] = d1_stride;
7728 ex->arrays[ORC_VAR_D2] = d2;
7729 ex->params[ORC_VAR_D2] = d2_stride;
7730 ex->arrays[ORC_VAR_S1] = (void *) s1;
7731 ex->params[ORC_VAR_S1] = s1_stride;
7733 func = p->code_exec;
7739 /* cogorc_planar_chroma_422_444 */
7742 cogorc_planar_chroma_422_444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
7743 const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
7747 orc_union16 *ORC_RESTRICT ptr0;
7748 const orc_int8 *ORC_RESTRICT ptr4;
7752 for (j = 0; j < m; j++) {
7753 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
7754 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
7757 for (i = 0; i < n; i++) {
7761 var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
7771 _backup_cogorc_planar_chroma_422_444 (OrcExecutor * ORC_RESTRICT ex)
7776 int m = ex->params[ORC_VAR_A1];
7777 orc_union16 *ORC_RESTRICT ptr0;
7778 const orc_int8 *ORC_RESTRICT ptr4;
7782 for (j = 0; j < m; j++) {
7783 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
7784 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
7787 for (i = 0; i < n; i++) {
7791 var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff);
7800 cogorc_planar_chroma_422_444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
7801 const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m)
7803 OrcExecutor _ex, *ex = &_ex;
7804 static volatile int p_inited = 0;
7805 static OrcProgram *p = 0;
7806 void (*func) (OrcExecutor *);
7809 orc_once_mutex_lock ();
7812 p = orc_program_new ();
7813 orc_program_set_2d (p);
7814 orc_program_set_name (p, "cogorc_planar_chroma_422_444");
7815 orc_program_set_backup_function (p, _backup_cogorc_planar_chroma_422_444);
7816 orc_program_add_destination (p, 2, "d1");
7817 orc_program_add_source (p, 1, "s1");
7818 orc_program_add_temporary (p, 2, "t1");
7820 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
7822 orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
7825 orc_program_compile (p);
7828 orc_once_mutex_unlock ();
7833 ORC_EXECUTOR_M (ex) = m;
7834 ex->arrays[ORC_VAR_D1] = d1;
7835 ex->params[ORC_VAR_D1] = d1_stride;
7836 ex->arrays[ORC_VAR_S1] = (void *) s1;
7837 ex->params[ORC_VAR_S1] = s1_stride;
7839 func = p->code_exec;
7845 /* cogorc_planar_chroma_444_422 */
7848 cogorc_planar_chroma_444_422 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
7849 const orc_uint16 * ORC_RESTRICT s1, int s1_stride, int n, int m)
7853 orc_int8 *ORC_RESTRICT ptr0;
7854 const orc_union16 *ORC_RESTRICT ptr4;
7860 for (j = 0; j < m; j++) {
7861 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
7862 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
7865 for (i = 0; i < n; i++) {
7876 var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
7886 _backup_cogorc_planar_chroma_444_422 (OrcExecutor * ORC_RESTRICT ex)
7891 int m = ex->params[ORC_VAR_A1];
7892 orc_int8 *ORC_RESTRICT ptr0;
7893 const orc_union16 *ORC_RESTRICT ptr4;
7899 for (j = 0; j < m; j++) {
7900 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
7901 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
7904 for (i = 0; i < n; i++) {
7915 var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
7924 cogorc_planar_chroma_444_422 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
7925 const orc_uint16 * ORC_RESTRICT s1, int s1_stride, int n, int m)
7927 OrcExecutor _ex, *ex = &_ex;
7928 static volatile int p_inited = 0;
7929 static OrcProgram *p = 0;
7930 void (*func) (OrcExecutor *);
7933 orc_once_mutex_lock ();
7936 p = orc_program_new ();
7937 orc_program_set_2d (p);
7938 orc_program_set_name (p, "cogorc_planar_chroma_444_422");
7939 orc_program_set_backup_function (p, _backup_cogorc_planar_chroma_444_422);
7940 orc_program_add_destination (p, 1, "d1");
7941 orc_program_add_source (p, 2, "s1");
7942 orc_program_add_temporary (p, 1, "t1");
7943 orc_program_add_temporary (p, 1, "t2");
7945 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
7947 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
7950 orc_program_compile (p);
7953 orc_once_mutex_unlock ();
7958 ORC_EXECUTOR_M (ex) = m;
7959 ex->arrays[ORC_VAR_D1] = d1;
7960 ex->params[ORC_VAR_D1] = d1_stride;
7961 ex->arrays[ORC_VAR_S1] = (void *) s1;
7962 ex->params[ORC_VAR_S1] = s1_stride;
7964 func = p->code_exec;
7970 /* cogorc_planar_chroma_444_420 */
7973 cogorc_planar_chroma_444_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
7974 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
7975 const orc_uint16 * ORC_RESTRICT s2, int s2_stride, int n, int m)
7979 orc_int8 *ORC_RESTRICT ptr0;
7980 const orc_union16 *ORC_RESTRICT ptr4;
7981 const orc_union16 *ORC_RESTRICT ptr5;
7989 for (j = 0; j < m; j++) {
7990 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
7991 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
7992 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
7995 for (i = 0; i < n; i++) {
8002 ((orc_uint8) var35.x2[0] + (orc_uint8) var36.x2[0] + 1) >> 1;
8004 ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1;
8013 var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1;
8023 _backup_cogorc_planar_chroma_444_420 (OrcExecutor * ORC_RESTRICT ex)
8028 int m = ex->params[ORC_VAR_A1];
8029 orc_int8 *ORC_RESTRICT ptr0;
8030 const orc_union16 *ORC_RESTRICT ptr4;
8031 const orc_union16 *ORC_RESTRICT ptr5;
8039 for (j = 0; j < m; j++) {
8040 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
8041 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
8042 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
8045 for (i = 0; i < n; i++) {
8052 ((orc_uint8) var35.x2[0] + (orc_uint8) var36.x2[0] + 1) >> 1;
8054 ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1;
8063 var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1;
8072 cogorc_planar_chroma_444_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
8073 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
8074 const orc_uint16 * ORC_RESTRICT s2, int s2_stride, int n, int m)
8076 OrcExecutor _ex, *ex = &_ex;
8077 static volatile int p_inited = 0;
8078 static OrcProgram *p = 0;
8079 void (*func) (OrcExecutor *);
8082 orc_once_mutex_lock ();
8085 p = orc_program_new ();
8086 orc_program_set_2d (p);
8087 orc_program_set_name (p, "cogorc_planar_chroma_444_420");
8088 orc_program_set_backup_function (p, _backup_cogorc_planar_chroma_444_420);
8089 orc_program_add_destination (p, 1, "d1");
8090 orc_program_add_source (p, 2, "s1");
8091 orc_program_add_source (p, 2, "s2");
8092 orc_program_add_temporary (p, 2, "t1");
8093 orc_program_add_temporary (p, 1, "t2");
8094 orc_program_add_temporary (p, 1, "t3");
8096 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S2,
8098 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T1,
8100 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
8103 orc_program_compile (p);
8106 orc_once_mutex_unlock ();
8111 ORC_EXECUTOR_M (ex) = m;
8112 ex->arrays[ORC_VAR_D1] = d1;
8113 ex->params[ORC_VAR_D1] = d1_stride;
8114 ex->arrays[ORC_VAR_S1] = (void *) s1;
8115 ex->params[ORC_VAR_S1] = s1_stride;
8116 ex->arrays[ORC_VAR_S2] = (void *) s2;
8117 ex->params[ORC_VAR_S2] = s2_stride;
8119 func = p->code_exec;
8125 /* cogorc_planar_chroma_422_420 */
8128 cogorc_planar_chroma_422_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
8129 const orc_uint8 * ORC_RESTRICT s1, int s1_stride,
8130 const orc_uint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
8134 orc_int8 *ORC_RESTRICT ptr0;
8135 const orc_int8 *ORC_RESTRICT ptr4;
8136 const orc_int8 *ORC_RESTRICT ptr5;
8141 for (j = 0; j < m; j++) {
8142 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
8143 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
8144 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
8147 for (i = 0; i < n; i++) {
8153 var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
8163 _backup_cogorc_planar_chroma_422_420 (OrcExecutor * ORC_RESTRICT ex)
8168 int m = ex->params[ORC_VAR_A1];
8169 orc_int8 *ORC_RESTRICT ptr0;
8170 const orc_int8 *ORC_RESTRICT ptr4;
8171 const orc_int8 *ORC_RESTRICT ptr5;
8176 for (j = 0; j < m; j++) {
8177 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
8178 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
8179 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
8182 for (i = 0; i < n; i++) {
8188 var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1;
8197 cogorc_planar_chroma_422_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
8198 const orc_uint8 * ORC_RESTRICT s1, int s1_stride,
8199 const orc_uint8 * ORC_RESTRICT s2, int s2_stride, int n, int m)
8201 OrcExecutor _ex, *ex = &_ex;
8202 static volatile int p_inited = 0;
8203 static OrcProgram *p = 0;
8204 void (*func) (OrcExecutor *);
8207 orc_once_mutex_lock ();
8210 p = orc_program_new ();
8211 orc_program_set_2d (p);
8212 orc_program_set_name (p, "cogorc_planar_chroma_422_420");
8213 orc_program_set_backup_function (p, _backup_cogorc_planar_chroma_422_420);
8214 orc_program_add_destination (p, 1, "d1");
8215 orc_program_add_source (p, 1, "s1");
8216 orc_program_add_source (p, 1, "s2");
8218 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2,
8221 orc_program_compile (p);
8224 orc_once_mutex_unlock ();
8229 ORC_EXECUTOR_M (ex) = m;
8230 ex->arrays[ORC_VAR_D1] = d1;
8231 ex->params[ORC_VAR_D1] = d1_stride;
8232 ex->arrays[ORC_VAR_S1] = (void *) s1;
8233 ex->params[ORC_VAR_S1] = s1_stride;
8234 ex->arrays[ORC_VAR_S2] = (void *) s2;
8235 ex->params[ORC_VAR_S2] = s2_stride;
8237 func = p->code_exec;
8243 /* cogorc_convert_YUY2_AYUV */
8246 cogorc_convert_YUY2_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride,
8247 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m)
8251 orc_union64 *ORC_RESTRICT ptr0;
8252 const orc_union32 *ORC_RESTRICT ptr4;
8261 for (j = 0; j < m; j++) {
8262 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
8263 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
8266 var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
8267 var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
8269 for (i = 0; i < n; i++) {
8275 _src.i = var36.x2[0];
8276 var39.x2[0] = _src.x2[1];
8277 var40.x2[0] = _src.x2[0];
8281 _src.i = var36.x2[1];
8282 var39.x2[1] = _src.x2[1];
8283 var40.x2[1] = _src.x2[0];
8288 _dest.x2[0] = var37.x2[0];
8289 _dest.x2[1] = var40.x2[0];
8290 var41.x2[0] = _dest.i;
8294 _dest.x2[0] = var37.x2[1];
8295 _dest.x2[1] = var40.x2[1];
8296 var41.x2[1] = _dest.i;
8301 _dest.x2[0] = var39.i;
8302 _dest.x2[1] = var39.i;
8308 _dest.x2[0] = var41.x2[0];
8309 _dest.x2[1] = var42.x2[0];
8310 var38.x2[0] = _dest.i;
8314 _dest.x2[0] = var41.x2[1];
8315 _dest.x2[1] = var42.x2[1];
8316 var38.x2[1] = _dest.i;
8327 _backup_cogorc_convert_YUY2_AYUV (OrcExecutor * ORC_RESTRICT ex)
8332 int m = ex->params[ORC_VAR_A1];
8333 orc_union64 *ORC_RESTRICT ptr0;
8334 const orc_union32 *ORC_RESTRICT ptr4;
8343 for (j = 0; j < m; j++) {
8344 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
8345 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
8348 var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
8349 var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
8351 for (i = 0; i < n; i++) {
8357 _src.i = var36.x2[0];
8358 var39.x2[0] = _src.x2[1];
8359 var40.x2[0] = _src.x2[0];
8363 _src.i = var36.x2[1];
8364 var39.x2[1] = _src.x2[1];
8365 var40.x2[1] = _src.x2[0];
8370 _dest.x2[0] = var37.x2[0];
8371 _dest.x2[1] = var40.x2[0];
8372 var41.x2[0] = _dest.i;
8376 _dest.x2[0] = var37.x2[1];
8377 _dest.x2[1] = var40.x2[1];
8378 var41.x2[1] = _dest.i;
8383 _dest.x2[0] = var39.i;
8384 _dest.x2[1] = var39.i;
8390 _dest.x2[0] = var41.x2[0];
8391 _dest.x2[1] = var42.x2[0];
8392 var38.x2[0] = _dest.i;
8396 _dest.x2[0] = var41.x2[1];
8397 _dest.x2[1] = var42.x2[1];
8398 var38.x2[1] = _dest.i;
8408 cogorc_convert_YUY2_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride,
8409 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m)
8411 OrcExecutor _ex, *ex = &_ex;
8412 static volatile int p_inited = 0;
8413 static OrcProgram *p = 0;
8414 void (*func) (OrcExecutor *);
8417 orc_once_mutex_lock ();
8420 p = orc_program_new ();
8421 orc_program_set_2d (p);
8422 orc_program_set_name (p, "cogorc_convert_YUY2_AYUV");
8423 orc_program_set_backup_function (p, _backup_cogorc_convert_YUY2_AYUV);
8424 orc_program_add_destination (p, 8, "d1");
8425 orc_program_add_source (p, 4, "s1");
8426 orc_program_add_constant (p, 2, 0x000000ff, "c1");
8427 orc_program_add_temporary (p, 2, "t1");
8428 orc_program_add_temporary (p, 2, "t2");
8429 orc_program_add_temporary (p, 4, "t3");
8430 orc_program_add_temporary (p, 4, "t4");
8432 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
8434 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
8436 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
8438 orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
8441 orc_program_compile (p);
8444 orc_once_mutex_unlock ();
8449 ORC_EXECUTOR_M (ex) = m;
8450 ex->arrays[ORC_VAR_D1] = d1;
8451 ex->params[ORC_VAR_D1] = d1_stride;
8452 ex->arrays[ORC_VAR_S1] = (void *) s1;
8453 ex->params[ORC_VAR_S1] = s1_stride;
8455 func = p->code_exec;
8461 /* cogorc_convert_UYVY_AYUV */
8464 cogorc_convert_UYVY_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride,
8465 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m)
8469 orc_union64 *ORC_RESTRICT ptr0;
8470 const orc_union32 *ORC_RESTRICT ptr4;
8479 for (j = 0; j < m; j++) {
8480 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
8481 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
8484 var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
8485 var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
8487 for (i = 0; i < n; i++) {
8493 _src.i = var36.x2[0];
8494 var39.x2[0] = _src.x2[1];
8495 var40.x2[0] = _src.x2[0];
8499 _src.i = var36.x2[1];
8500 var39.x2[1] = _src.x2[1];
8501 var40.x2[1] = _src.x2[0];
8506 _dest.x2[0] = var37.x2[0];
8507 _dest.x2[1] = var39.x2[0];
8508 var41.x2[0] = _dest.i;
8512 _dest.x2[0] = var37.x2[1];
8513 _dest.x2[1] = var39.x2[1];
8514 var41.x2[1] = _dest.i;
8519 _dest.x2[0] = var40.i;
8520 _dest.x2[1] = var40.i;
8526 _dest.x2[0] = var41.x2[0];
8527 _dest.x2[1] = var42.x2[0];
8528 var38.x2[0] = _dest.i;
8532 _dest.x2[0] = var41.x2[1];
8533 _dest.x2[1] = var42.x2[1];
8534 var38.x2[1] = _dest.i;
8545 _backup_cogorc_convert_UYVY_AYUV (OrcExecutor * ORC_RESTRICT ex)
8550 int m = ex->params[ORC_VAR_A1];
8551 orc_union64 *ORC_RESTRICT ptr0;
8552 const orc_union32 *ORC_RESTRICT ptr4;
8561 for (j = 0; j < m; j++) {
8562 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
8563 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
8566 var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
8567 var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
8569 for (i = 0; i < n; i++) {
8575 _src.i = var36.x2[0];
8576 var39.x2[0] = _src.x2[1];
8577 var40.x2[0] = _src.x2[0];
8581 _src.i = var36.x2[1];
8582 var39.x2[1] = _src.x2[1];
8583 var40.x2[1] = _src.x2[0];
8588 _dest.x2[0] = var37.x2[0];
8589 _dest.x2[1] = var39.x2[0];
8590 var41.x2[0] = _dest.i;
8594 _dest.x2[0] = var37.x2[1];
8595 _dest.x2[1] = var39.x2[1];
8596 var41.x2[1] = _dest.i;
8601 _dest.x2[0] = var40.i;
8602 _dest.x2[1] = var40.i;
8608 _dest.x2[0] = var41.x2[0];
8609 _dest.x2[1] = var42.x2[0];
8610 var38.x2[0] = _dest.i;
8614 _dest.x2[0] = var41.x2[1];
8615 _dest.x2[1] = var42.x2[1];
8616 var38.x2[1] = _dest.i;
8626 cogorc_convert_UYVY_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride,
8627 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m)
8629 OrcExecutor _ex, *ex = &_ex;
8630 static volatile int p_inited = 0;
8631 static OrcProgram *p = 0;
8632 void (*func) (OrcExecutor *);
8635 orc_once_mutex_lock ();
8638 p = orc_program_new ();
8639 orc_program_set_2d (p);
8640 orc_program_set_name (p, "cogorc_convert_UYVY_AYUV");
8641 orc_program_set_backup_function (p, _backup_cogorc_convert_UYVY_AYUV);
8642 orc_program_add_destination (p, 8, "d1");
8643 orc_program_add_source (p, 4, "s1");
8644 orc_program_add_constant (p, 2, 0x000000ff, "c1");
8645 orc_program_add_temporary (p, 2, "t1");
8646 orc_program_add_temporary (p, 2, "t2");
8647 orc_program_add_temporary (p, 4, "t3");
8648 orc_program_add_temporary (p, 4, "t4");
8650 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
8652 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
8654 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
8656 orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
8659 orc_program_compile (p);
8662 orc_once_mutex_unlock ();
8667 ORC_EXECUTOR_M (ex) = m;
8668 ex->arrays[ORC_VAR_D1] = d1;
8669 ex->params[ORC_VAR_D1] = d1_stride;
8670 ex->arrays[ORC_VAR_S1] = (void *) s1;
8671 ex->params[ORC_VAR_S1] = s1_stride;
8673 func = p->code_exec;
8679 /* cogorc_convert_YUY2_Y42B */
8682 cogorc_convert_YUY2_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
8683 orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
8684 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
8689 orc_union16 *ORC_RESTRICT ptr0;
8690 orc_int8 *ORC_RESTRICT ptr1;
8691 orc_int8 *ORC_RESTRICT ptr2;
8692 const orc_union32 *ORC_RESTRICT ptr4;
8699 for (j = 0; j < m; j++) {
8700 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
8701 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
8702 ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
8703 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
8706 for (i = 0; i < n; i++) {
8712 _src.i = var33.x2[0];
8713 var37.x2[0] = _src.x2[1];
8714 var34.x2[0] = _src.x2[0];
8718 _src.i = var33.x2[1];
8719 var37.x2[1] = _src.x2[1];
8720 var34.x2[1] = _src.x2[0];
8742 _backup_cogorc_convert_YUY2_Y42B (OrcExecutor * ORC_RESTRICT ex)
8747 int m = ex->params[ORC_VAR_A1];
8748 orc_union16 *ORC_RESTRICT ptr0;
8749 orc_int8 *ORC_RESTRICT ptr1;
8750 orc_int8 *ORC_RESTRICT ptr2;
8751 const orc_union32 *ORC_RESTRICT ptr4;
8758 for (j = 0; j < m; j++) {
8759 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
8760 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
8761 ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
8762 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
8765 for (i = 0; i < n; i++) {
8771 _src.i = var33.x2[0];
8772 var37.x2[0] = _src.x2[1];
8773 var34.x2[0] = _src.x2[0];
8777 _src.i = var33.x2[1];
8778 var37.x2[1] = _src.x2[1];
8779 var34.x2[1] = _src.x2[0];
8800 cogorc_convert_YUY2_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
8801 orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
8802 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
8805 OrcExecutor _ex, *ex = &_ex;
8806 static volatile int p_inited = 0;
8807 static OrcProgram *p = 0;
8808 void (*func) (OrcExecutor *);
8811 orc_once_mutex_lock ();
8814 p = orc_program_new ();
8815 orc_program_set_2d (p);
8816 orc_program_set_name (p, "cogorc_convert_YUY2_Y42B");
8817 orc_program_set_backup_function (p, _backup_cogorc_convert_YUY2_Y42B);
8818 orc_program_add_destination (p, 2, "d1");
8819 orc_program_add_destination (p, 1, "d2");
8820 orc_program_add_destination (p, 1, "d3");
8821 orc_program_add_source (p, 4, "s1");
8822 orc_program_add_temporary (p, 2, "t1");
8824 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1,
8826 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1,
8829 orc_program_compile (p);
8832 orc_once_mutex_unlock ();
8837 ORC_EXECUTOR_M (ex) = m;
8838 ex->arrays[ORC_VAR_D1] = d1;
8839 ex->params[ORC_VAR_D1] = d1_stride;
8840 ex->arrays[ORC_VAR_D2] = d2;
8841 ex->params[ORC_VAR_D2] = d2_stride;
8842 ex->arrays[ORC_VAR_D3] = d3;
8843 ex->params[ORC_VAR_D3] = d3_stride;
8844 ex->arrays[ORC_VAR_S1] = (void *) s1;
8845 ex->params[ORC_VAR_S1] = s1_stride;
8847 func = p->code_exec;
8853 /* cogorc_convert_UYVY_Y42B */
8856 cogorc_convert_UYVY_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
8857 orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
8858 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
8863 orc_union16 *ORC_RESTRICT ptr0;
8864 orc_int8 *ORC_RESTRICT ptr1;
8865 orc_int8 *ORC_RESTRICT ptr2;
8866 const orc_union32 *ORC_RESTRICT ptr4;
8873 for (j = 0; j < m; j++) {
8874 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
8875 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
8876 ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
8877 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
8880 for (i = 0; i < n; i++) {
8886 _src.i = var33.x2[0];
8887 var34.x2[0] = _src.x2[1];
8888 var37.x2[0] = _src.x2[0];
8892 _src.i = var33.x2[1];
8893 var34.x2[1] = _src.x2[1];
8894 var37.x2[1] = _src.x2[0];
8916 _backup_cogorc_convert_UYVY_Y42B (OrcExecutor * ORC_RESTRICT ex)
8921 int m = ex->params[ORC_VAR_A1];
8922 orc_union16 *ORC_RESTRICT ptr0;
8923 orc_int8 *ORC_RESTRICT ptr1;
8924 orc_int8 *ORC_RESTRICT ptr2;
8925 const orc_union32 *ORC_RESTRICT ptr4;
8932 for (j = 0; j < m; j++) {
8933 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
8934 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
8935 ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
8936 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
8939 for (i = 0; i < n; i++) {
8945 _src.i = var33.x2[0];
8946 var34.x2[0] = _src.x2[1];
8947 var37.x2[0] = _src.x2[0];
8951 _src.i = var33.x2[1];
8952 var34.x2[1] = _src.x2[1];
8953 var37.x2[1] = _src.x2[0];
8974 cogorc_convert_UYVY_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
8975 orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
8976 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
8979 OrcExecutor _ex, *ex = &_ex;
8980 static volatile int p_inited = 0;
8981 static OrcProgram *p = 0;
8982 void (*func) (OrcExecutor *);
8985 orc_once_mutex_lock ();
8988 p = orc_program_new ();
8989 orc_program_set_2d (p);
8990 orc_program_set_name (p, "cogorc_convert_UYVY_Y42B");
8991 orc_program_set_backup_function (p, _backup_cogorc_convert_UYVY_Y42B);
8992 orc_program_add_destination (p, 2, "d1");
8993 orc_program_add_destination (p, 1, "d2");
8994 orc_program_add_destination (p, 1, "d3");
8995 orc_program_add_source (p, 4, "s1");
8996 orc_program_add_temporary (p, 2, "t1");
8998 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
9000 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1,
9003 orc_program_compile (p);
9006 orc_once_mutex_unlock ();
9011 ORC_EXECUTOR_M (ex) = m;
9012 ex->arrays[ORC_VAR_D1] = d1;
9013 ex->params[ORC_VAR_D1] = d1_stride;
9014 ex->arrays[ORC_VAR_D2] = d2;
9015 ex->params[ORC_VAR_D2] = d2_stride;
9016 ex->arrays[ORC_VAR_D3] = d3;
9017 ex->params[ORC_VAR_D3] = d3_stride;
9018 ex->arrays[ORC_VAR_S1] = (void *) s1;
9019 ex->params[ORC_VAR_S1] = s1_stride;
9021 func = p->code_exec;
9027 /* cogorc_convert_YUY2_Y444 */
9030 cogorc_convert_YUY2_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
9031 orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint16 * ORC_RESTRICT d3,
9032 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
9037 orc_union16 *ORC_RESTRICT ptr0;
9038 orc_union16 *ORC_RESTRICT ptr1;
9039 orc_union16 *ORC_RESTRICT ptr2;
9040 const orc_union32 *ORC_RESTRICT ptr4;
9049 for (j = 0; j < m; j++) {
9050 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
9051 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
9052 ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
9053 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
9056 for (i = 0; i < n; i++) {
9062 _src.i = var35.x2[0];
9063 var39.x2[0] = _src.x2[1];
9064 var36.x2[0] = _src.x2[0];
9068 _src.i = var35.x2[1];
9069 var39.x2[1] = _src.x2[1];
9070 var36.x2[1] = _src.x2[0];
9082 var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
9086 var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
9096 _backup_cogorc_convert_YUY2_Y444 (OrcExecutor * ORC_RESTRICT ex)
9101 int m = ex->params[ORC_VAR_A1];
9102 orc_union16 *ORC_RESTRICT ptr0;
9103 orc_union16 *ORC_RESTRICT ptr1;
9104 orc_union16 *ORC_RESTRICT ptr2;
9105 const orc_union32 *ORC_RESTRICT ptr4;
9114 for (j = 0; j < m; j++) {
9115 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
9116 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
9117 ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
9118 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
9121 for (i = 0; i < n; i++) {
9127 _src.i = var35.x2[0];
9128 var39.x2[0] = _src.x2[1];
9129 var36.x2[0] = _src.x2[0];
9133 _src.i = var35.x2[1];
9134 var39.x2[1] = _src.x2[1];
9135 var36.x2[1] = _src.x2[0];
9147 var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
9151 var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
9160 cogorc_convert_YUY2_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
9161 orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint16 * ORC_RESTRICT d3,
9162 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
9165 OrcExecutor _ex, *ex = &_ex;
9166 static volatile int p_inited = 0;
9167 static OrcProgram *p = 0;
9168 void (*func) (OrcExecutor *);
9171 orc_once_mutex_lock ();
9174 p = orc_program_new ();
9175 orc_program_set_2d (p);
9176 orc_program_set_name (p, "cogorc_convert_YUY2_Y444");
9177 orc_program_set_backup_function (p, _backup_cogorc_convert_YUY2_Y444);
9178 orc_program_add_destination (p, 2, "d1");
9179 orc_program_add_destination (p, 2, "d2");
9180 orc_program_add_destination (p, 2, "d3");
9181 orc_program_add_source (p, 4, "s1");
9182 orc_program_add_temporary (p, 2, "t1");
9183 orc_program_add_temporary (p, 1, "t2");
9184 orc_program_add_temporary (p, 1, "t3");
9186 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1,
9188 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T1,
9190 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1,
9192 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1,
9195 orc_program_compile (p);
9198 orc_once_mutex_unlock ();
9203 ORC_EXECUTOR_M (ex) = m;
9204 ex->arrays[ORC_VAR_D1] = d1;
9205 ex->params[ORC_VAR_D1] = d1_stride;
9206 ex->arrays[ORC_VAR_D2] = d2;
9207 ex->params[ORC_VAR_D2] = d2_stride;
9208 ex->arrays[ORC_VAR_D3] = d3;
9209 ex->params[ORC_VAR_D3] = d3_stride;
9210 ex->arrays[ORC_VAR_S1] = (void *) s1;
9211 ex->params[ORC_VAR_S1] = s1_stride;
9213 func = p->code_exec;
9219 /* cogorc_convert_UYVY_Y444 */
9222 cogorc_convert_UYVY_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
9223 orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint16 * ORC_RESTRICT d3,
9224 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
9229 orc_union16 *ORC_RESTRICT ptr0;
9230 orc_union16 *ORC_RESTRICT ptr1;
9231 orc_union16 *ORC_RESTRICT ptr2;
9232 const orc_union32 *ORC_RESTRICT ptr4;
9241 for (j = 0; j < m; j++) {
9242 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
9243 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
9244 ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
9245 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
9248 for (i = 0; i < n; i++) {
9254 _src.i = var35.x2[0];
9255 var36.x2[0] = _src.x2[1];
9256 var39.x2[0] = _src.x2[0];
9260 _src.i = var35.x2[1];
9261 var36.x2[1] = _src.x2[1];
9262 var39.x2[1] = _src.x2[0];
9274 var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
9278 var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
9288 _backup_cogorc_convert_UYVY_Y444 (OrcExecutor * ORC_RESTRICT ex)
9293 int m = ex->params[ORC_VAR_A1];
9294 orc_union16 *ORC_RESTRICT ptr0;
9295 orc_union16 *ORC_RESTRICT ptr1;
9296 orc_union16 *ORC_RESTRICT ptr2;
9297 const orc_union32 *ORC_RESTRICT ptr4;
9306 for (j = 0; j < m; j++) {
9307 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
9308 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
9309 ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
9310 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
9313 for (i = 0; i < n; i++) {
9319 _src.i = var35.x2[0];
9320 var36.x2[0] = _src.x2[1];
9321 var39.x2[0] = _src.x2[0];
9325 _src.i = var35.x2[1];
9326 var36.x2[1] = _src.x2[1];
9327 var39.x2[1] = _src.x2[0];
9339 var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
9343 var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff);
9352 cogorc_convert_UYVY_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
9353 orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint16 * ORC_RESTRICT d3,
9354 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
9357 OrcExecutor _ex, *ex = &_ex;
9358 static volatile int p_inited = 0;
9359 static OrcProgram *p = 0;
9360 void (*func) (OrcExecutor *);
9363 orc_once_mutex_lock ();
9366 p = orc_program_new ();
9367 orc_program_set_2d (p);
9368 orc_program_set_name (p, "cogorc_convert_UYVY_Y444");
9369 orc_program_set_backup_function (p, _backup_cogorc_convert_UYVY_Y444);
9370 orc_program_add_destination (p, 2, "d1");
9371 orc_program_add_destination (p, 2, "d2");
9372 orc_program_add_destination (p, 2, "d3");
9373 orc_program_add_source (p, 4, "s1");
9374 orc_program_add_temporary (p, 2, "t1");
9375 orc_program_add_temporary (p, 1, "t2");
9376 orc_program_add_temporary (p, 1, "t3");
9378 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
9380 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T1,
9382 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1,
9384 orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1,
9387 orc_program_compile (p);
9390 orc_once_mutex_unlock ();
9395 ORC_EXECUTOR_M (ex) = m;
9396 ex->arrays[ORC_VAR_D1] = d1;
9397 ex->params[ORC_VAR_D1] = d1_stride;
9398 ex->arrays[ORC_VAR_D2] = d2;
9399 ex->params[ORC_VAR_D2] = d2_stride;
9400 ex->arrays[ORC_VAR_D3] = d3;
9401 ex->params[ORC_VAR_D3] = d3_stride;
9402 ex->arrays[ORC_VAR_S1] = (void *) s1;
9403 ex->params[ORC_VAR_S1] = s1_stride;
9405 func = p->code_exec;
9411 /* cogorc_convert_UYVY_I420 */
9414 cogorc_convert_UYVY_I420 (orc_uint16 * ORC_RESTRICT d1,
9415 orc_uint16 * ORC_RESTRICT d2, orc_uint8 * ORC_RESTRICT d3,
9416 orc_uint8 * ORC_RESTRICT d4, const orc_uint32 * ORC_RESTRICT s1,
9417 const orc_uint32 * ORC_RESTRICT s2, int n)
9420 orc_union16 *ORC_RESTRICT ptr0;
9421 orc_union16 *ORC_RESTRICT ptr1;
9422 orc_int8 *ORC_RESTRICT ptr2;
9423 orc_int8 *ORC_RESTRICT ptr3;
9424 const orc_union32 *ORC_RESTRICT ptr4;
9425 const orc_union32 *ORC_RESTRICT ptr5;
9436 ptr0 = (orc_union16 *) d1;
9437 ptr1 = (orc_union16 *) d2;
9438 ptr2 = (orc_int8 *) d3;
9439 ptr3 = (orc_int8 *) d4;
9440 ptr4 = (orc_union32 *) s1;
9441 ptr5 = (orc_union32 *) s2;
9444 for (i = 0; i < n; i++) {
9450 _src.i = var35.x2[0];
9451 var39.x2[0] = _src.x2[1];
9452 var40.x2[0] = _src.x2[0];
9456 _src.i = var35.x2[1];
9457 var39.x2[1] = _src.x2[1];
9458 var40.x2[1] = _src.x2[0];
9467 _src.i = var36.x2[0];
9468 var41.x2[0] = _src.x2[1];
9469 var42.x2[0] = _src.x2[0];
9473 _src.i = var36.x2[1];
9474 var41.x2[1] = _src.x2[1];
9475 var42.x2[1] = _src.x2[0];
9480 var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
9481 var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
9499 _backup_cogorc_convert_UYVY_I420 (OrcExecutor * ORC_RESTRICT ex)
9503 orc_union16 *ORC_RESTRICT ptr0;
9504 orc_union16 *ORC_RESTRICT ptr1;
9505 orc_int8 *ORC_RESTRICT ptr2;
9506 orc_int8 *ORC_RESTRICT ptr3;
9507 const orc_union32 *ORC_RESTRICT ptr4;
9508 const orc_union32 *ORC_RESTRICT ptr5;
9519 ptr0 = (orc_union16 *) ex->arrays[0];
9520 ptr1 = (orc_union16 *) ex->arrays[1];
9521 ptr2 = (orc_int8 *) ex->arrays[2];
9522 ptr3 = (orc_int8 *) ex->arrays[3];
9523 ptr4 = (orc_union32 *) ex->arrays[4];
9524 ptr5 = (orc_union32 *) ex->arrays[5];
9527 for (i = 0; i < n; i++) {
9533 _src.i = var35.x2[0];
9534 var39.x2[0] = _src.x2[1];
9535 var40.x2[0] = _src.x2[0];
9539 _src.i = var35.x2[1];
9540 var39.x2[1] = _src.x2[1];
9541 var40.x2[1] = _src.x2[0];
9550 _src.i = var36.x2[0];
9551 var41.x2[0] = _src.x2[1];
9552 var42.x2[0] = _src.x2[0];
9556 _src.i = var36.x2[1];
9557 var41.x2[1] = _src.x2[1];
9558 var42.x2[1] = _src.x2[0];
9563 var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
9564 var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
9581 cogorc_convert_UYVY_I420 (orc_uint16 * ORC_RESTRICT d1,
9582 orc_uint16 * ORC_RESTRICT d2, orc_uint8 * ORC_RESTRICT d3,
9583 orc_uint8 * ORC_RESTRICT d4, const orc_uint32 * ORC_RESTRICT s1,
9584 const orc_uint32 * ORC_RESTRICT s2, int n)
9586 OrcExecutor _ex, *ex = &_ex;
9587 static volatile int p_inited = 0;
9588 static OrcProgram *p = 0;
9589 void (*func) (OrcExecutor *);
9592 orc_once_mutex_lock ();
9595 p = orc_program_new ();
9596 orc_program_set_name (p, "cogorc_convert_UYVY_I420");
9597 orc_program_set_backup_function (p, _backup_cogorc_convert_UYVY_I420);
9598 orc_program_add_destination (p, 2, "d1");
9599 orc_program_add_destination (p, 2, "d2");
9600 orc_program_add_destination (p, 1, "d3");
9601 orc_program_add_destination (p, 1, "d4");
9602 orc_program_add_source (p, 4, "s1");
9603 orc_program_add_source (p, 4, "s2");
9604 orc_program_add_temporary (p, 2, "t1");
9605 orc_program_add_temporary (p, 2, "t2");
9606 orc_program_add_temporary (p, 2, "t3");
9608 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S1,
9610 orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
9612 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_S2,
9614 orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1,
9616 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2,
9618 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1,
9621 orc_program_compile (p);
9624 orc_once_mutex_unlock ();
9629 ex->arrays[ORC_VAR_D1] = d1;
9630 ex->arrays[ORC_VAR_D2] = d2;
9631 ex->arrays[ORC_VAR_D3] = d3;
9632 ex->arrays[ORC_VAR_D4] = d4;
9633 ex->arrays[ORC_VAR_S1] = (void *) s1;
9634 ex->arrays[ORC_VAR_S2] = (void *) s2;
9636 func = p->code_exec;
9642 /* cogorc_convert_AYUV_I420 */
9645 cogorc_convert_AYUV_I420 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
9646 orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
9647 int d3_stride, orc_uint8 * ORC_RESTRICT d4, int d4_stride,
9648 const orc_uint64 * ORC_RESTRICT s1, int s1_stride,
9649 const orc_uint64 * ORC_RESTRICT s2, int s2_stride, int n, int m)
9653 orc_union16 *ORC_RESTRICT ptr0;
9654 orc_union16 *ORC_RESTRICT ptr1;
9655 orc_int8 *ORC_RESTRICT ptr2;
9656 orc_int8 *ORC_RESTRICT ptr3;
9657 const orc_union64 *ORC_RESTRICT ptr4;
9658 const orc_union64 *ORC_RESTRICT ptr5;
9677 for (j = 0; j < m; j++) {
9678 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
9679 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
9680 ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
9681 ptr3 = ORC_PTR_OFFSET (d4, d4_stride * j);
9682 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
9683 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
9686 for (i = 0; i < n; i++) {
9692 _src.i = var40.x2[0];
9693 var46.x2[0] = _src.x2[1];
9694 var47.x2[0] = _src.x2[0];
9698 _src.i = var40.x2[1];
9699 var46.x2[1] = _src.x2[1];
9700 var47.x2[1] = _src.x2[0];
9705 _src.i = var47.x2[0];
9706 var41.x2[0] = _src.x2[1];
9710 _src.i = var47.x2[1];
9711 var41.x2[1] = _src.x2[1];
9720 _src.i = var42.x2[0];
9721 var48.x2[0] = _src.x2[1];
9722 var49.x2[0] = _src.x2[0];
9726 _src.i = var42.x2[1];
9727 var48.x2[1] = _src.x2[1];
9728 var49.x2[1] = _src.x2[0];
9733 _src.i = var49.x2[0];
9734 var43.x2[0] = _src.x2[1];
9738 _src.i = var49.x2[1];
9739 var43.x2[1] = _src.x2[1];
9745 ((orc_uint8) var46.x4[0] + (orc_uint8) var48.x4[0] + 1) >> 1;
9747 ((orc_uint8) var46.x4[1] + (orc_uint8) var48.x4[1] + 1) >> 1;
9749 ((orc_uint8) var46.x4[2] + (orc_uint8) var48.x4[2] + 1) >> 1;
9751 ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1;
9755 _src.i = var50.x2[0];
9756 var51.x2[0] = _src.x2[1];
9757 var52.x2[0] = _src.x2[0];
9761 _src.i = var50.x2[1];
9762 var51.x2[1] = _src.x2[1];
9763 var52.x2[1] = _src.x2[0];
9773 var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1;
9784 var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1;
9794 _backup_cogorc_convert_AYUV_I420 (OrcExecutor * ORC_RESTRICT ex)
9799 int m = ex->params[ORC_VAR_A1];
9800 orc_union16 *ORC_RESTRICT ptr0;
9801 orc_union16 *ORC_RESTRICT ptr1;
9802 orc_int8 *ORC_RESTRICT ptr2;
9803 orc_int8 *ORC_RESTRICT ptr3;
9804 const orc_union64 *ORC_RESTRICT ptr4;
9805 const orc_union64 *ORC_RESTRICT ptr5;
9824 for (j = 0; j < m; j++) {
9825 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
9826 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
9827 ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
9828 ptr3 = ORC_PTR_OFFSET (ex->arrays[3], ex->params[3] * j);
9829 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
9830 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
9833 for (i = 0; i < n; i++) {
9839 _src.i = var40.x2[0];
9840 var46.x2[0] = _src.x2[1];
9841 var47.x2[0] = _src.x2[0];
9845 _src.i = var40.x2[1];
9846 var46.x2[1] = _src.x2[1];
9847 var47.x2[1] = _src.x2[0];
9852 _src.i = var47.x2[0];
9853 var41.x2[0] = _src.x2[1];
9857 _src.i = var47.x2[1];
9858 var41.x2[1] = _src.x2[1];
9867 _src.i = var42.x2[0];
9868 var48.x2[0] = _src.x2[1];
9869 var49.x2[0] = _src.x2[0];
9873 _src.i = var42.x2[1];
9874 var48.x2[1] = _src.x2[1];
9875 var49.x2[1] = _src.x2[0];
9880 _src.i = var49.x2[0];
9881 var43.x2[0] = _src.x2[1];
9885 _src.i = var49.x2[1];
9886 var43.x2[1] = _src.x2[1];
9892 ((orc_uint8) var46.x4[0] + (orc_uint8) var48.x4[0] + 1) >> 1;
9894 ((orc_uint8) var46.x4[1] + (orc_uint8) var48.x4[1] + 1) >> 1;
9896 ((orc_uint8) var46.x4[2] + (orc_uint8) var48.x4[2] + 1) >> 1;
9898 ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1;
9902 _src.i = var50.x2[0];
9903 var51.x2[0] = _src.x2[1];
9904 var52.x2[0] = _src.x2[0];
9908 _src.i = var50.x2[1];
9909 var51.x2[1] = _src.x2[1];
9910 var52.x2[1] = _src.x2[0];
9920 var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1;
9931 var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1;
9940 cogorc_convert_AYUV_I420 (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
9941 orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
9942 int d3_stride, orc_uint8 * ORC_RESTRICT d4, int d4_stride,
9943 const orc_uint64 * ORC_RESTRICT s1, int s1_stride,
9944 const orc_uint64 * ORC_RESTRICT s2, int s2_stride, int n, int m)
9946 OrcExecutor _ex, *ex = &_ex;
9947 static volatile int p_inited = 0;
9948 static OrcProgram *p = 0;
9949 void (*func) (OrcExecutor *);
9952 orc_once_mutex_lock ();
9955 p = orc_program_new ();
9956 orc_program_set_2d (p);
9957 orc_program_set_name (p, "cogorc_convert_AYUV_I420");
9958 orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_I420);
9959 orc_program_add_destination (p, 2, "d1");
9960 orc_program_add_destination (p, 2, "d2");
9961 orc_program_add_destination (p, 1, "d3");
9962 orc_program_add_destination (p, 1, "d4");
9963 orc_program_add_source (p, 8, "s1");
9964 orc_program_add_source (p, 8, "s2");
9965 orc_program_add_temporary (p, 4, "t1");
9966 orc_program_add_temporary (p, 4, "t2");
9967 orc_program_add_temporary (p, 4, "t3");
9968 orc_program_add_temporary (p, 4, "t4");
9969 orc_program_add_temporary (p, 2, "t5");
9970 orc_program_add_temporary (p, 2, "t6");
9971 orc_program_add_temporary (p, 1, "t7");
9972 orc_program_add_temporary (p, 1, "t8");
9974 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
9976 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
9977 ORC_VAR_D1, ORC_VAR_D1);
9978 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S2,
9980 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D2, ORC_VAR_T1,
9981 ORC_VAR_D1, ORC_VAR_D1);
9982 orc_program_append_2 (p, "avgub", 2, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T3,
9984 orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T4,
9986 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_T5,
9988 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T7, ORC_VAR_T8,
9990 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_T6,
9992 orc_program_append_2 (p, "avgub", 0, ORC_VAR_D4, ORC_VAR_T7, ORC_VAR_T8,
9995 orc_program_compile (p);
9998 orc_once_mutex_unlock ();
10003 ORC_EXECUTOR_M (ex) = m;
10004 ex->arrays[ORC_VAR_D1] = d1;
10005 ex->params[ORC_VAR_D1] = d1_stride;
10006 ex->arrays[ORC_VAR_D2] = d2;
10007 ex->params[ORC_VAR_D2] = d2_stride;
10008 ex->arrays[ORC_VAR_D3] = d3;
10009 ex->params[ORC_VAR_D3] = d3_stride;
10010 ex->arrays[ORC_VAR_D4] = d4;
10011 ex->params[ORC_VAR_D4] = d4_stride;
10012 ex->arrays[ORC_VAR_S1] = (void *) s1;
10013 ex->params[ORC_VAR_S1] = s1_stride;
10014 ex->arrays[ORC_VAR_S2] = (void *) s2;
10015 ex->params[ORC_VAR_S2] = s2_stride;
10017 func = p->code_exec;
10023 /* cogorc_convert_AYUV_YUY2 */
10026 cogorc_convert_AYUV_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
10027 const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m)
10031 orc_union32 *ORC_RESTRICT ptr0;
10032 const orc_union64 *ORC_RESTRICT ptr4;
10042 for (j = 0; j < m; j++) {
10043 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
10044 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
10047 for (i = 0; i < n; i++) {
10053 _src.i = var37.x2[0];
10054 var39.x2[0] = _src.x2[1];
10055 var40.x2[0] = _src.x2[0];
10059 _src.i = var37.x2[1];
10060 var39.x2[1] = _src.x2[1];
10061 var40.x2[1] = _src.x2[0];
10067 var41.i = _src.x2[1];
10068 var42.i = _src.x2[0];
10072 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
10074 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
10078 _src.i = var40.x2[0];
10079 var44.x2[0] = _src.x2[1];
10083 _src.i = var40.x2[1];
10084 var44.x2[1] = _src.x2[1];
10089 _dest.x2[0] = var44.x2[0];
10090 _dest.x2[1] = var43.x2[0];
10091 var38.x2[0] = _dest.i;
10095 _dest.x2[0] = var44.x2[1];
10096 _dest.x2[1] = var43.x2[1];
10097 var38.x2[1] = _dest.i;
10108 _backup_cogorc_convert_AYUV_YUY2 (OrcExecutor * ORC_RESTRICT ex)
10113 int m = ex->params[ORC_VAR_A1];
10114 orc_union32 *ORC_RESTRICT ptr0;
10115 const orc_union64 *ORC_RESTRICT ptr4;
10125 for (j = 0; j < m; j++) {
10126 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
10127 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
10130 for (i = 0; i < n; i++) {
10136 _src.i = var37.x2[0];
10137 var39.x2[0] = _src.x2[1];
10138 var40.x2[0] = _src.x2[0];
10142 _src.i = var37.x2[1];
10143 var39.x2[1] = _src.x2[1];
10144 var40.x2[1] = _src.x2[0];
10150 var41.i = _src.x2[1];
10151 var42.i = _src.x2[0];
10155 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
10157 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
10161 _src.i = var40.x2[0];
10162 var44.x2[0] = _src.x2[1];
10166 _src.i = var40.x2[1];
10167 var44.x2[1] = _src.x2[1];
10172 _dest.x2[0] = var44.x2[0];
10173 _dest.x2[1] = var43.x2[0];
10174 var38.x2[0] = _dest.i;
10178 _dest.x2[0] = var44.x2[1];
10179 _dest.x2[1] = var43.x2[1];
10180 var38.x2[1] = _dest.i;
10190 cogorc_convert_AYUV_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
10191 const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m)
10193 OrcExecutor _ex, *ex = &_ex;
10194 static volatile int p_inited = 0;
10195 static OrcProgram *p = 0;
10196 void (*func) (OrcExecutor *);
10199 orc_once_mutex_lock ();
10202 p = orc_program_new ();
10203 orc_program_set_2d (p);
10204 orc_program_set_name (p, "cogorc_convert_AYUV_YUY2");
10205 orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_YUY2);
10206 orc_program_add_destination (p, 4, "d1");
10207 orc_program_add_source (p, 8, "s1");
10208 orc_program_add_temporary (p, 2, "t1");
10209 orc_program_add_temporary (p, 2, "t2");
10210 orc_program_add_temporary (p, 2, "t3");
10211 orc_program_add_temporary (p, 4, "t4");
10212 orc_program_add_temporary (p, 4, "t5");
10214 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
10216 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
10218 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
10220 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
10221 ORC_VAR_D1, ORC_VAR_D1);
10222 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
10225 orc_program_compile (p);
10228 orc_once_mutex_unlock ();
10233 ORC_EXECUTOR_M (ex) = m;
10234 ex->arrays[ORC_VAR_D1] = d1;
10235 ex->params[ORC_VAR_D1] = d1_stride;
10236 ex->arrays[ORC_VAR_S1] = (void *) s1;
10237 ex->params[ORC_VAR_S1] = s1_stride;
10239 func = p->code_exec;
10245 /* cogorc_convert_AYUV_UYVY */
10248 cogorc_convert_AYUV_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
10249 const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m)
10253 orc_union32 *ORC_RESTRICT ptr0;
10254 const orc_union64 *ORC_RESTRICT ptr4;
10264 for (j = 0; j < m; j++) {
10265 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
10266 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
10269 for (i = 0; i < n; i++) {
10275 _src.i = var37.x2[0];
10276 var39.x2[0] = _src.x2[1];
10277 var40.x2[0] = _src.x2[0];
10281 _src.i = var37.x2[1];
10282 var39.x2[1] = _src.x2[1];
10283 var40.x2[1] = _src.x2[0];
10289 var41.i = _src.x2[1];
10290 var42.i = _src.x2[0];
10294 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
10296 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
10300 _src.i = var40.x2[0];
10301 var44.x2[0] = _src.x2[1];
10305 _src.i = var40.x2[1];
10306 var44.x2[1] = _src.x2[1];
10311 _dest.x2[0] = var43.x2[0];
10312 _dest.x2[1] = var44.x2[0];
10313 var38.x2[0] = _dest.i;
10317 _dest.x2[0] = var43.x2[1];
10318 _dest.x2[1] = var44.x2[1];
10319 var38.x2[1] = _dest.i;
10330 _backup_cogorc_convert_AYUV_UYVY (OrcExecutor * ORC_RESTRICT ex)
10335 int m = ex->params[ORC_VAR_A1];
10336 orc_union32 *ORC_RESTRICT ptr0;
10337 const orc_union64 *ORC_RESTRICT ptr4;
10347 for (j = 0; j < m; j++) {
10348 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
10349 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
10352 for (i = 0; i < n; i++) {
10358 _src.i = var37.x2[0];
10359 var39.x2[0] = _src.x2[1];
10360 var40.x2[0] = _src.x2[0];
10364 _src.i = var37.x2[1];
10365 var39.x2[1] = _src.x2[1];
10366 var40.x2[1] = _src.x2[0];
10372 var41.i = _src.x2[1];
10373 var42.i = _src.x2[0];
10377 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
10379 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
10383 _src.i = var40.x2[0];
10384 var44.x2[0] = _src.x2[1];
10388 _src.i = var40.x2[1];
10389 var44.x2[1] = _src.x2[1];
10394 _dest.x2[0] = var43.x2[0];
10395 _dest.x2[1] = var44.x2[0];
10396 var38.x2[0] = _dest.i;
10400 _dest.x2[0] = var43.x2[1];
10401 _dest.x2[1] = var44.x2[1];
10402 var38.x2[1] = _dest.i;
10412 cogorc_convert_AYUV_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
10413 const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m)
10415 OrcExecutor _ex, *ex = &_ex;
10416 static volatile int p_inited = 0;
10417 static OrcProgram *p = 0;
10418 void (*func) (OrcExecutor *);
10421 orc_once_mutex_lock ();
10424 p = orc_program_new ();
10425 orc_program_set_2d (p);
10426 orc_program_set_name (p, "cogorc_convert_AYUV_UYVY");
10427 orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_UYVY);
10428 orc_program_add_destination (p, 4, "d1");
10429 orc_program_add_source (p, 8, "s1");
10430 orc_program_add_temporary (p, 2, "t1");
10431 orc_program_add_temporary (p, 2, "t2");
10432 orc_program_add_temporary (p, 2, "t3");
10433 orc_program_add_temporary (p, 4, "t4");
10434 orc_program_add_temporary (p, 4, "t5");
10436 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
10438 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
10440 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
10442 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
10443 ORC_VAR_D1, ORC_VAR_D1);
10444 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
10447 orc_program_compile (p);
10450 orc_once_mutex_unlock ();
10455 ORC_EXECUTOR_M (ex) = m;
10456 ex->arrays[ORC_VAR_D1] = d1;
10457 ex->params[ORC_VAR_D1] = d1_stride;
10458 ex->arrays[ORC_VAR_S1] = (void *) s1;
10459 ex->params[ORC_VAR_S1] = s1_stride;
10461 func = p->code_exec;
10467 /* cogorc_convert_AYUV_Y42B */
10470 cogorc_convert_AYUV_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
10471 orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
10472 int d3_stride, const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n,
10477 orc_union16 *ORC_RESTRICT ptr0;
10478 orc_int8 *ORC_RESTRICT ptr1;
10479 orc_int8 *ORC_RESTRICT ptr2;
10480 const orc_union64 *ORC_RESTRICT ptr4;
10491 for (j = 0; j < m; j++) {
10492 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
10493 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
10494 ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
10495 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
10498 for (i = 0; i < n; i++) {
10504 _src.i = var36.x2[0];
10505 var40.x2[0] = _src.x2[1];
10506 var41.x2[0] = _src.x2[0];
10510 _src.i = var36.x2[1];
10511 var40.x2[1] = _src.x2[1];
10512 var41.x2[1] = _src.x2[0];
10518 var42.i = _src.x2[1];
10519 var43.i = _src.x2[0];
10523 ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
10525 ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
10530 var37 = _src.x2[1];
10531 var38 = _src.x2[0];
10540 _src.i = var41.x2[0];
10541 var39.x2[0] = _src.x2[1];
10545 _src.i = var41.x2[1];
10546 var39.x2[1] = _src.x2[1];
10557 _backup_cogorc_convert_AYUV_Y42B (OrcExecutor * ORC_RESTRICT ex)
10562 int m = ex->params[ORC_VAR_A1];
10563 orc_union16 *ORC_RESTRICT ptr0;
10564 orc_int8 *ORC_RESTRICT ptr1;
10565 orc_int8 *ORC_RESTRICT ptr2;
10566 const orc_union64 *ORC_RESTRICT ptr4;
10577 for (j = 0; j < m; j++) {
10578 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
10579 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
10580 ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
10581 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
10584 for (i = 0; i < n; i++) {
10590 _src.i = var36.x2[0];
10591 var40.x2[0] = _src.x2[1];
10592 var41.x2[0] = _src.x2[0];
10596 _src.i = var36.x2[1];
10597 var40.x2[1] = _src.x2[1];
10598 var41.x2[1] = _src.x2[0];
10604 var42.i = _src.x2[1];
10605 var43.i = _src.x2[0];
10609 ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
10611 ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
10616 var37 = _src.x2[1];
10617 var38 = _src.x2[0];
10626 _src.i = var41.x2[0];
10627 var39.x2[0] = _src.x2[1];
10631 _src.i = var41.x2[1];
10632 var39.x2[1] = _src.x2[1];
10642 cogorc_convert_AYUV_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride,
10643 orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
10644 int d3_stride, const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n,
10647 OrcExecutor _ex, *ex = &_ex;
10648 static volatile int p_inited = 0;
10649 static OrcProgram *p = 0;
10650 void (*func) (OrcExecutor *);
10653 orc_once_mutex_lock ();
10656 p = orc_program_new ();
10657 orc_program_set_2d (p);
10658 orc_program_set_name (p, "cogorc_convert_AYUV_Y42B");
10659 orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_Y42B);
10660 orc_program_add_destination (p, 2, "d1");
10661 orc_program_add_destination (p, 1, "d2");
10662 orc_program_add_destination (p, 1, "d3");
10663 orc_program_add_source (p, 8, "s1");
10664 orc_program_add_temporary (p, 4, "t1");
10665 orc_program_add_temporary (p, 4, "t2");
10666 orc_program_add_temporary (p, 2, "t3");
10667 orc_program_add_temporary (p, 2, "t4");
10669 orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
10671 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
10673 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
10675 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T3,
10677 orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
10678 ORC_VAR_D1, ORC_VAR_D1);
10680 orc_program_compile (p);
10683 orc_once_mutex_unlock ();
10688 ORC_EXECUTOR_M (ex) = m;
10689 ex->arrays[ORC_VAR_D1] = d1;
10690 ex->params[ORC_VAR_D1] = d1_stride;
10691 ex->arrays[ORC_VAR_D2] = d2;
10692 ex->params[ORC_VAR_D2] = d2_stride;
10693 ex->arrays[ORC_VAR_D3] = d3;
10694 ex->params[ORC_VAR_D3] = d3_stride;
10695 ex->arrays[ORC_VAR_S1] = (void *) s1;
10696 ex->params[ORC_VAR_S1] = s1_stride;
10698 func = p->code_exec;
10704 /* cogorc_convert_AYUV_Y444 */
10707 cogorc_convert_AYUV_Y444 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
10708 orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
10709 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
10714 orc_int8 *ORC_RESTRICT ptr0;
10715 orc_int8 *ORC_RESTRICT ptr1;
10716 orc_int8 *ORC_RESTRICT ptr2;
10717 const orc_union32 *ORC_RESTRICT ptr4;
10725 for (j = 0; j < m; j++) {
10726 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
10727 ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j);
10728 ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j);
10729 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
10732 for (i = 0; i < n; i++) {
10739 var38.i = _src.x2[1];
10740 var39.i = _src.x2[0];
10746 var35 = _src.x2[1];
10747 var36 = _src.x2[0];
10757 var37 = _src.x2[1];
10768 _backup_cogorc_convert_AYUV_Y444 (OrcExecutor * ORC_RESTRICT ex)
10773 int m = ex->params[ORC_VAR_A1];
10774 orc_int8 *ORC_RESTRICT ptr0;
10775 orc_int8 *ORC_RESTRICT ptr1;
10776 orc_int8 *ORC_RESTRICT ptr2;
10777 const orc_union32 *ORC_RESTRICT ptr4;
10785 for (j = 0; j < m; j++) {
10786 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
10787 ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j);
10788 ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j);
10789 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
10792 for (i = 0; i < n; i++) {
10799 var38.i = _src.x2[1];
10800 var39.i = _src.x2[0];
10806 var35 = _src.x2[1];
10807 var36 = _src.x2[0];
10817 var37 = _src.x2[1];
10827 cogorc_convert_AYUV_Y444 (orc_uint8 * ORC_RESTRICT d1, int d1_stride,
10828 orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3,
10829 int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n,
10832 OrcExecutor _ex, *ex = &_ex;
10833 static volatile int p_inited = 0;
10834 static OrcProgram *p = 0;
10835 void (*func) (OrcExecutor *);
10838 orc_once_mutex_lock ();
10841 p = orc_program_new ();
10842 orc_program_set_2d (p);
10843 orc_program_set_name (p, "cogorc_convert_AYUV_Y444");
10844 orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_Y444);
10845 orc_program_add_destination (p, 1, "d1");
10846 orc_program_add_destination (p, 1, "d2");
10847 orc_program_add_destination (p, 1, "d3");
10848 orc_program_add_source (p, 4, "s1");
10849 orc_program_add_temporary (p, 2, "t1");
10850 orc_program_add_temporary (p, 2, "t2");
10852 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
10854 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T2,
10856 orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
10857 ORC_VAR_D1, ORC_VAR_D1);
10859 orc_program_compile (p);
10862 orc_once_mutex_unlock ();
10867 ORC_EXECUTOR_M (ex) = m;
10868 ex->arrays[ORC_VAR_D1] = d1;
10869 ex->params[ORC_VAR_D1] = d1_stride;
10870 ex->arrays[ORC_VAR_D2] = d2;
10871 ex->params[ORC_VAR_D2] = d2_stride;
10872 ex->arrays[ORC_VAR_D3] = d3;
10873 ex->params[ORC_VAR_D3] = d3_stride;
10874 ex->arrays[ORC_VAR_S1] = (void *) s1;
10875 ex->params[ORC_VAR_S1] = s1_stride;
10877 func = p->code_exec;
10883 /* cogorc_convert_Y42B_YUY2 */
10886 cogorc_convert_Y42B_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
10887 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
10888 const orc_uint8 * ORC_RESTRICT s2, int s2_stride,
10889 const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
10893 orc_union32 *ORC_RESTRICT ptr0;
10894 const orc_union16 *ORC_RESTRICT ptr4;
10895 const orc_int8 *ORC_RESTRICT ptr5;
10896 const orc_int8 *ORC_RESTRICT ptr6;
10903 for (j = 0; j < m; j++) {
10904 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
10905 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
10906 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
10907 ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
10910 for (i = 0; i < n; i++) {
10918 _dest.x2[0] = var33;
10919 _dest.x2[1] = var34;
10927 _dest.x2[0] = var35.x2[0];
10928 _dest.x2[1] = var37.x2[0];
10929 var36.x2[0] = _dest.i;
10933 _dest.x2[0] = var35.x2[1];
10934 _dest.x2[1] = var37.x2[1];
10935 var36.x2[1] = _dest.i;
10946 _backup_cogorc_convert_Y42B_YUY2 (OrcExecutor * ORC_RESTRICT ex)
10951 int m = ex->params[ORC_VAR_A1];
10952 orc_union32 *ORC_RESTRICT ptr0;
10953 const orc_union16 *ORC_RESTRICT ptr4;
10954 const orc_int8 *ORC_RESTRICT ptr5;
10955 const orc_int8 *ORC_RESTRICT ptr6;
10962 for (j = 0; j < m; j++) {
10963 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
10964 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
10965 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
10966 ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
10969 for (i = 0; i < n; i++) {
10977 _dest.x2[0] = var33;
10978 _dest.x2[1] = var34;
10986 _dest.x2[0] = var35.x2[0];
10987 _dest.x2[1] = var37.x2[0];
10988 var36.x2[0] = _dest.i;
10992 _dest.x2[0] = var35.x2[1];
10993 _dest.x2[1] = var37.x2[1];
10994 var36.x2[1] = _dest.i;
11004 cogorc_convert_Y42B_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
11005 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
11006 const orc_uint8 * ORC_RESTRICT s2, int s2_stride,
11007 const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
11009 OrcExecutor _ex, *ex = &_ex;
11010 static volatile int p_inited = 0;
11011 static OrcProgram *p = 0;
11012 void (*func) (OrcExecutor *);
11015 orc_once_mutex_lock ();
11018 p = orc_program_new ();
11019 orc_program_set_2d (p);
11020 orc_program_set_name (p, "cogorc_convert_Y42B_YUY2");
11021 orc_program_set_backup_function (p, _backup_cogorc_convert_Y42B_YUY2);
11022 orc_program_add_destination (p, 4, "d1");
11023 orc_program_add_source (p, 2, "s1");
11024 orc_program_add_source (p, 1, "s2");
11025 orc_program_add_source (p, 1, "s3");
11026 orc_program_add_temporary (p, 2, "t1");
11028 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
11030 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
11033 orc_program_compile (p);
11036 orc_once_mutex_unlock ();
11041 ORC_EXECUTOR_M (ex) = m;
11042 ex->arrays[ORC_VAR_D1] = d1;
11043 ex->params[ORC_VAR_D1] = d1_stride;
11044 ex->arrays[ORC_VAR_S1] = (void *) s1;
11045 ex->params[ORC_VAR_S1] = s1_stride;
11046 ex->arrays[ORC_VAR_S2] = (void *) s2;
11047 ex->params[ORC_VAR_S2] = s2_stride;
11048 ex->arrays[ORC_VAR_S3] = (void *) s3;
11049 ex->params[ORC_VAR_S3] = s3_stride;
11051 func = p->code_exec;
11057 /* cogorc_convert_Y42B_UYVY */
11060 cogorc_convert_Y42B_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
11061 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
11062 const orc_uint8 * ORC_RESTRICT s2, int s2_stride,
11063 const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
11067 orc_union32 *ORC_RESTRICT ptr0;
11068 const orc_union16 *ORC_RESTRICT ptr4;
11069 const orc_int8 *ORC_RESTRICT ptr5;
11070 const orc_int8 *ORC_RESTRICT ptr6;
11077 for (j = 0; j < m; j++) {
11078 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
11079 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
11080 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
11081 ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
11084 for (i = 0; i < n; i++) {
11092 _dest.x2[0] = var33;
11093 _dest.x2[1] = var34;
11101 _dest.x2[0] = var37.x2[0];
11102 _dest.x2[1] = var35.x2[0];
11103 var36.x2[0] = _dest.i;
11107 _dest.x2[0] = var37.x2[1];
11108 _dest.x2[1] = var35.x2[1];
11109 var36.x2[1] = _dest.i;
11120 _backup_cogorc_convert_Y42B_UYVY (OrcExecutor * ORC_RESTRICT ex)
11125 int m = ex->params[ORC_VAR_A1];
11126 orc_union32 *ORC_RESTRICT ptr0;
11127 const orc_union16 *ORC_RESTRICT ptr4;
11128 const orc_int8 *ORC_RESTRICT ptr5;
11129 const orc_int8 *ORC_RESTRICT ptr6;
11136 for (j = 0; j < m; j++) {
11137 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
11138 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
11139 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
11140 ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
11143 for (i = 0; i < n; i++) {
11151 _dest.x2[0] = var33;
11152 _dest.x2[1] = var34;
11160 _dest.x2[0] = var37.x2[0];
11161 _dest.x2[1] = var35.x2[0];
11162 var36.x2[0] = _dest.i;
11166 _dest.x2[0] = var37.x2[1];
11167 _dest.x2[1] = var35.x2[1];
11168 var36.x2[1] = _dest.i;
11178 cogorc_convert_Y42B_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
11179 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
11180 const orc_uint8 * ORC_RESTRICT s2, int s2_stride,
11181 const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
11183 OrcExecutor _ex, *ex = &_ex;
11184 static volatile int p_inited = 0;
11185 static OrcProgram *p = 0;
11186 void (*func) (OrcExecutor *);
11189 orc_once_mutex_lock ();
11192 p = orc_program_new ();
11193 orc_program_set_2d (p);
11194 orc_program_set_name (p, "cogorc_convert_Y42B_UYVY");
11195 orc_program_set_backup_function (p, _backup_cogorc_convert_Y42B_UYVY);
11196 orc_program_add_destination (p, 4, "d1");
11197 orc_program_add_source (p, 2, "s1");
11198 orc_program_add_source (p, 1, "s2");
11199 orc_program_add_source (p, 1, "s3");
11200 orc_program_add_temporary (p, 2, "t1");
11202 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
11204 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
11207 orc_program_compile (p);
11210 orc_once_mutex_unlock ();
11215 ORC_EXECUTOR_M (ex) = m;
11216 ex->arrays[ORC_VAR_D1] = d1;
11217 ex->params[ORC_VAR_D1] = d1_stride;
11218 ex->arrays[ORC_VAR_S1] = (void *) s1;
11219 ex->params[ORC_VAR_S1] = s1_stride;
11220 ex->arrays[ORC_VAR_S2] = (void *) s2;
11221 ex->params[ORC_VAR_S2] = s2_stride;
11222 ex->arrays[ORC_VAR_S3] = (void *) s3;
11223 ex->params[ORC_VAR_S3] = s3_stride;
11225 func = p->code_exec;
11231 /* cogorc_convert_Y42B_AYUV */
11234 cogorc_convert_Y42B_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride,
11235 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
11236 const orc_uint8 * ORC_RESTRICT s2, int s2_stride,
11237 const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
11241 orc_union64 *ORC_RESTRICT ptr0;
11242 const orc_union16 *ORC_RESTRICT ptr4;
11243 const orc_int8 *ORC_RESTRICT ptr5;
11244 const orc_int8 *ORC_RESTRICT ptr6;
11254 for (j = 0; j < m; j++) {
11255 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
11256 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
11257 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
11258 ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
11261 var38.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
11262 var38.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
11264 for (i = 0; i < n; i++) {
11272 _dest.x2[0] = var36;
11273 _dest.x2[1] = var37;
11281 _dest.x2[0] = var38.x2[0];
11282 _dest.x2[1] = var39.x2[0];
11283 var42.x2[0] = _dest.i;
11287 _dest.x2[0] = var38.x2[1];
11288 _dest.x2[1] = var39.x2[1];
11289 var42.x2[1] = _dest.i;
11294 _dest.x2[0] = var41.i;
11295 _dest.x2[1] = var41.i;
11301 _dest.x2[0] = var42.x2[0];
11302 _dest.x2[1] = var43.x2[0];
11303 var40.x2[0] = _dest.i;
11307 _dest.x2[0] = var42.x2[1];
11308 _dest.x2[1] = var43.x2[1];
11309 var40.x2[1] = _dest.i;
11320 _backup_cogorc_convert_Y42B_AYUV (OrcExecutor * ORC_RESTRICT ex)
11325 int m = ex->params[ORC_VAR_A1];
11326 orc_union64 *ORC_RESTRICT ptr0;
11327 const orc_union16 *ORC_RESTRICT ptr4;
11328 const orc_int8 *ORC_RESTRICT ptr5;
11329 const orc_int8 *ORC_RESTRICT ptr6;
11339 for (j = 0; j < m; j++) {
11340 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
11341 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
11342 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
11343 ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
11346 var38.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
11347 var38.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
11349 for (i = 0; i < n; i++) {
11357 _dest.x2[0] = var36;
11358 _dest.x2[1] = var37;
11366 _dest.x2[0] = var38.x2[0];
11367 _dest.x2[1] = var39.x2[0];
11368 var42.x2[0] = _dest.i;
11372 _dest.x2[0] = var38.x2[1];
11373 _dest.x2[1] = var39.x2[1];
11374 var42.x2[1] = _dest.i;
11379 _dest.x2[0] = var41.i;
11380 _dest.x2[1] = var41.i;
11386 _dest.x2[0] = var42.x2[0];
11387 _dest.x2[1] = var43.x2[0];
11388 var40.x2[0] = _dest.i;
11392 _dest.x2[0] = var42.x2[1];
11393 _dest.x2[1] = var43.x2[1];
11394 var40.x2[1] = _dest.i;
11404 cogorc_convert_Y42B_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride,
11405 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
11406 const orc_uint8 * ORC_RESTRICT s2, int s2_stride,
11407 const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
11409 OrcExecutor _ex, *ex = &_ex;
11410 static volatile int p_inited = 0;
11411 static OrcProgram *p = 0;
11412 void (*func) (OrcExecutor *);
11415 orc_once_mutex_lock ();
11418 p = orc_program_new ();
11419 orc_program_set_2d (p);
11420 orc_program_set_name (p, "cogorc_convert_Y42B_AYUV");
11421 orc_program_set_backup_function (p, _backup_cogorc_convert_Y42B_AYUV);
11422 orc_program_add_destination (p, 8, "d1");
11423 orc_program_add_source (p, 2, "s1");
11424 orc_program_add_source (p, 1, "s2");
11425 orc_program_add_source (p, 1, "s3");
11426 orc_program_add_constant (p, 1, 0x000000ff, "c1");
11427 orc_program_add_temporary (p, 2, "t1");
11428 orc_program_add_temporary (p, 2, "t2");
11429 orc_program_add_temporary (p, 4, "t3");
11430 orc_program_add_temporary (p, 4, "t4");
11432 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
11434 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T4, ORC_VAR_C1, ORC_VAR_S1,
11436 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
11438 orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
11441 orc_program_compile (p);
11444 orc_once_mutex_unlock ();
11449 ORC_EXECUTOR_M (ex) = m;
11450 ex->arrays[ORC_VAR_D1] = d1;
11451 ex->params[ORC_VAR_D1] = d1_stride;
11452 ex->arrays[ORC_VAR_S1] = (void *) s1;
11453 ex->params[ORC_VAR_S1] = s1_stride;
11454 ex->arrays[ORC_VAR_S2] = (void *) s2;
11455 ex->params[ORC_VAR_S2] = s2_stride;
11456 ex->arrays[ORC_VAR_S3] = (void *) s3;
11457 ex->params[ORC_VAR_S3] = s3_stride;
11459 func = p->code_exec;
11465 /* cogorc_convert_Y444_YUY2 */
11468 cogorc_convert_Y444_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
11469 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
11470 const orc_uint16 * ORC_RESTRICT s2, int s2_stride,
11471 const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m)
11475 orc_union32 *ORC_RESTRICT ptr0;
11476 const orc_union16 *ORC_RESTRICT ptr4;
11477 const orc_union16 *ORC_RESTRICT ptr5;
11478 const orc_union16 *ORC_RESTRICT ptr6;
11488 for (j = 0; j < m; j++) {
11489 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
11490 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
11491 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
11492 ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
11495 for (i = 0; i < n; i++) {
11503 _dest.x2[0] = var36.x2[0];
11504 _dest.x2[1] = var37.x2[0];
11505 var40.x2[0] = _dest.i;
11509 _dest.x2[0] = var36.x2[1];
11510 _dest.x2[1] = var37.x2[1];
11511 var40.x2[1] = _dest.i;
11517 var41.i = _src.x2[1];
11518 var42.i = _src.x2[0];
11522 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
11524 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
11530 _dest.x2[0] = var38.x2[0];
11531 _dest.x2[1] = var43.x2[0];
11532 var39.x2[0] = _dest.i;
11536 _dest.x2[0] = var38.x2[1];
11537 _dest.x2[1] = var43.x2[1];
11538 var39.x2[1] = _dest.i;
11549 _backup_cogorc_convert_Y444_YUY2 (OrcExecutor * ORC_RESTRICT ex)
11554 int m = ex->params[ORC_VAR_A1];
11555 orc_union32 *ORC_RESTRICT ptr0;
11556 const orc_union16 *ORC_RESTRICT ptr4;
11557 const orc_union16 *ORC_RESTRICT ptr5;
11558 const orc_union16 *ORC_RESTRICT ptr6;
11568 for (j = 0; j < m; j++) {
11569 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
11570 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
11571 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
11572 ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
11575 for (i = 0; i < n; i++) {
11583 _dest.x2[0] = var36.x2[0];
11584 _dest.x2[1] = var37.x2[0];
11585 var40.x2[0] = _dest.i;
11589 _dest.x2[0] = var36.x2[1];
11590 _dest.x2[1] = var37.x2[1];
11591 var40.x2[1] = _dest.i;
11597 var41.i = _src.x2[1];
11598 var42.i = _src.x2[0];
11602 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
11604 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
11610 _dest.x2[0] = var38.x2[0];
11611 _dest.x2[1] = var43.x2[0];
11612 var39.x2[0] = _dest.i;
11616 _dest.x2[0] = var38.x2[1];
11617 _dest.x2[1] = var43.x2[1];
11618 var39.x2[1] = _dest.i;
11628 cogorc_convert_Y444_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
11629 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
11630 const orc_uint16 * ORC_RESTRICT s2, int s2_stride,
11631 const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m)
11633 OrcExecutor _ex, *ex = &_ex;
11634 static volatile int p_inited = 0;
11635 static OrcProgram *p = 0;
11636 void (*func) (OrcExecutor *);
11639 orc_once_mutex_lock ();
11642 p = orc_program_new ();
11643 orc_program_set_2d (p);
11644 orc_program_set_name (p, "cogorc_convert_Y444_YUY2");
11645 orc_program_set_backup_function (p, _backup_cogorc_convert_Y444_YUY2);
11646 orc_program_add_destination (p, 4, "d1");
11647 orc_program_add_source (p, 2, "s1");
11648 orc_program_add_source (p, 2, "s2");
11649 orc_program_add_source (p, 2, "s3");
11650 orc_program_add_temporary (p, 2, "t1");
11651 orc_program_add_temporary (p, 4, "t2");
11652 orc_program_add_temporary (p, 2, "t3");
11653 orc_program_add_temporary (p, 2, "t4");
11655 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3,
11657 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
11659 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
11661 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1,
11664 orc_program_compile (p);
11667 orc_once_mutex_unlock ();
11672 ORC_EXECUTOR_M (ex) = m;
11673 ex->arrays[ORC_VAR_D1] = d1;
11674 ex->params[ORC_VAR_D1] = d1_stride;
11675 ex->arrays[ORC_VAR_S1] = (void *) s1;
11676 ex->params[ORC_VAR_S1] = s1_stride;
11677 ex->arrays[ORC_VAR_S2] = (void *) s2;
11678 ex->params[ORC_VAR_S2] = s2_stride;
11679 ex->arrays[ORC_VAR_S3] = (void *) s3;
11680 ex->params[ORC_VAR_S3] = s3_stride;
11682 func = p->code_exec;
11688 /* cogorc_convert_Y444_UYVY */
11691 cogorc_convert_Y444_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
11692 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
11693 const orc_uint16 * ORC_RESTRICT s2, int s2_stride,
11694 const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m)
11698 orc_union32 *ORC_RESTRICT ptr0;
11699 const orc_union16 *ORC_RESTRICT ptr4;
11700 const orc_union16 *ORC_RESTRICT ptr5;
11701 const orc_union16 *ORC_RESTRICT ptr6;
11711 for (j = 0; j < m; j++) {
11712 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
11713 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
11714 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
11715 ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
11718 for (i = 0; i < n; i++) {
11726 _dest.x2[0] = var36.x2[0];
11727 _dest.x2[1] = var37.x2[0];
11728 var40.x2[0] = _dest.i;
11732 _dest.x2[0] = var36.x2[1];
11733 _dest.x2[1] = var37.x2[1];
11734 var40.x2[1] = _dest.i;
11740 var41.i = _src.x2[1];
11741 var42.i = _src.x2[0];
11745 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
11747 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
11753 _dest.x2[0] = var43.x2[0];
11754 _dest.x2[1] = var38.x2[0];
11755 var39.x2[0] = _dest.i;
11759 _dest.x2[0] = var43.x2[1];
11760 _dest.x2[1] = var38.x2[1];
11761 var39.x2[1] = _dest.i;
11772 _backup_cogorc_convert_Y444_UYVY (OrcExecutor * ORC_RESTRICT ex)
11777 int m = ex->params[ORC_VAR_A1];
11778 orc_union32 *ORC_RESTRICT ptr0;
11779 const orc_union16 *ORC_RESTRICT ptr4;
11780 const orc_union16 *ORC_RESTRICT ptr5;
11781 const orc_union16 *ORC_RESTRICT ptr6;
11791 for (j = 0; j < m; j++) {
11792 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
11793 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
11794 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
11795 ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
11798 for (i = 0; i < n; i++) {
11806 _dest.x2[0] = var36.x2[0];
11807 _dest.x2[1] = var37.x2[0];
11808 var40.x2[0] = _dest.i;
11812 _dest.x2[0] = var36.x2[1];
11813 _dest.x2[1] = var37.x2[1];
11814 var40.x2[1] = _dest.i;
11820 var41.i = _src.x2[1];
11821 var42.i = _src.x2[0];
11825 ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
11827 ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
11833 _dest.x2[0] = var43.x2[0];
11834 _dest.x2[1] = var38.x2[0];
11835 var39.x2[0] = _dest.i;
11839 _dest.x2[0] = var43.x2[1];
11840 _dest.x2[1] = var38.x2[1];
11841 var39.x2[1] = _dest.i;
11851 cogorc_convert_Y444_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
11852 const orc_uint16 * ORC_RESTRICT s1, int s1_stride,
11853 const orc_uint16 * ORC_RESTRICT s2, int s2_stride,
11854 const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m)
11856 OrcExecutor _ex, *ex = &_ex;
11857 static volatile int p_inited = 0;
11858 static OrcProgram *p = 0;
11859 void (*func) (OrcExecutor *);
11862 orc_once_mutex_lock ();
11865 p = orc_program_new ();
11866 orc_program_set_2d (p);
11867 orc_program_set_name (p, "cogorc_convert_Y444_UYVY");
11868 orc_program_set_backup_function (p, _backup_cogorc_convert_Y444_UYVY);
11869 orc_program_add_destination (p, 4, "d1");
11870 orc_program_add_source (p, 2, "s1");
11871 orc_program_add_source (p, 2, "s2");
11872 orc_program_add_source (p, 2, "s3");
11873 orc_program_add_temporary (p, 2, "t1");
11874 orc_program_add_temporary (p, 4, "t2");
11875 orc_program_add_temporary (p, 2, "t3");
11876 orc_program_add_temporary (p, 2, "t4");
11878 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3,
11880 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
11882 orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
11884 orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1,
11887 orc_program_compile (p);
11890 orc_once_mutex_unlock ();
11895 ORC_EXECUTOR_M (ex) = m;
11896 ex->arrays[ORC_VAR_D1] = d1;
11897 ex->params[ORC_VAR_D1] = d1_stride;
11898 ex->arrays[ORC_VAR_S1] = (void *) s1;
11899 ex->params[ORC_VAR_S1] = s1_stride;
11900 ex->arrays[ORC_VAR_S2] = (void *) s2;
11901 ex->params[ORC_VAR_S2] = s2_stride;
11902 ex->arrays[ORC_VAR_S3] = (void *) s3;
11903 ex->params[ORC_VAR_S3] = s3_stride;
11905 func = p->code_exec;
11911 /* cogorc_convert_Y444_AYUV */
11914 cogorc_convert_Y444_AYUV (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
11915 const orc_uint8 * ORC_RESTRICT s1, int s1_stride,
11916 const orc_uint8 * ORC_RESTRICT s2, int s2_stride,
11917 const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
11921 orc_union32 *ORC_RESTRICT ptr0;
11922 const orc_int8 *ORC_RESTRICT ptr4;
11923 const orc_int8 *ORC_RESTRICT ptr5;
11924 const orc_int8 *ORC_RESTRICT ptr6;
11933 for (j = 0; j < m; j++) {
11934 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
11935 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
11936 ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j);
11937 ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j);
11940 var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
11942 for (i = 0; i < n; i++) {
11950 _dest.x2[0] = var34;
11951 _dest.x2[1] = var35;
11959 _dest.x2[0] = var36;
11960 _dest.x2[1] = var37;
11966 _dest.x2[0] = var40.i;
11967 _dest.x2[1] = var39.i;
11979 _backup_cogorc_convert_Y444_AYUV (OrcExecutor * ORC_RESTRICT ex)
11984 int m = ex->params[ORC_VAR_A1];
11985 orc_union32 *ORC_RESTRICT ptr0;
11986 const orc_int8 *ORC_RESTRICT ptr4;
11987 const orc_int8 *ORC_RESTRICT ptr5;
11988 const orc_int8 *ORC_RESTRICT ptr6;
11997 for (j = 0; j < m; j++) {
11998 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
11999 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
12000 ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j);
12001 ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j);
12004 var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
12006 for (i = 0; i < n; i++) {
12014 _dest.x2[0] = var34;
12015 _dest.x2[1] = var35;
12023 _dest.x2[0] = var36;
12024 _dest.x2[1] = var37;
12030 _dest.x2[0] = var40.i;
12031 _dest.x2[1] = var39.i;
12042 cogorc_convert_Y444_AYUV (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
12043 const orc_uint8 * ORC_RESTRICT s1, int s1_stride,
12044 const orc_uint8 * ORC_RESTRICT s2, int s2_stride,
12045 const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m)
12047 OrcExecutor _ex, *ex = &_ex;
12048 static volatile int p_inited = 0;
12049 static OrcProgram *p = 0;
12050 void (*func) (OrcExecutor *);
12053 orc_once_mutex_lock ();
12056 p = orc_program_new ();
12057 orc_program_set_2d (p);
12058 orc_program_set_name (p, "cogorc_convert_Y444_AYUV");
12059 orc_program_set_backup_function (p, _backup_cogorc_convert_Y444_AYUV);
12060 orc_program_add_destination (p, 4, "d1");
12061 orc_program_add_source (p, 1, "s1");
12062 orc_program_add_source (p, 1, "s2");
12063 orc_program_add_source (p, 1, "s3");
12064 orc_program_add_constant (p, 1, 0x000000ff, "c1");
12065 orc_program_add_temporary (p, 2, "t1");
12066 orc_program_add_temporary (p, 2, "t2");
12068 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
12070 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
12072 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
12075 orc_program_compile (p);
12078 orc_once_mutex_unlock ();
12083 ORC_EXECUTOR_M (ex) = m;
12084 ex->arrays[ORC_VAR_D1] = d1;
12085 ex->params[ORC_VAR_D1] = d1_stride;
12086 ex->arrays[ORC_VAR_S1] = (void *) s1;
12087 ex->params[ORC_VAR_S1] = s1_stride;
12088 ex->arrays[ORC_VAR_S2] = (void *) s2;
12089 ex->params[ORC_VAR_S2] = s2_stride;
12090 ex->arrays[ORC_VAR_S3] = (void *) s3;
12091 ex->params[ORC_VAR_S3] = s3_stride;
12093 func = p->code_exec;
12099 /* cogorc_convert_AYUV_ARGB */
12102 cogorc_convert_AYUV_ARGB (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
12103 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m)
12107 orc_union32 *ORC_RESTRICT ptr0;
12108 const orc_union32 *ORC_RESTRICT ptr4;
12155 for (j = 0; j < m; j++) {
12156 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
12157 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
12160 var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12161 var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12162 var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12163 var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12165 var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
12167 var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
12169 var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
12171 var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
12173 var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
12175 var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12176 var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12177 var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12178 var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12180 for (i = 0; i < n; i++) {
12184 var57.x4[0] = var48.x4[0] - var49.x4[0];
12185 var57.x4[1] = var48.x4[1] - var49.x4[1];
12186 var57.x4[2] = var48.x4[2] - var49.x4[2];
12187 var57.x4[3] = var48.x4[3] - var49.x4[3];
12192 var58.i = _src.x2[1];
12193 var59.i = _src.x2[0];
12199 var60 = _src.x2[1];
12200 var61 = _src.x2[0];
12206 var62 = _src.x2[1];
12207 var63 = _src.x2[0];
12216 var67.i = (var64.i * var50.i) & 0xffff;
12218 var68.i = var67.i >> 8;
12220 var69.i = ORC_CLAMP_SW (var64.i + var68.i);
12222 var70.i = ORC_CLAMP_SW (var69.i + var66.i);
12224 var71.i = (var66.i * var51.i) & 0xffff;
12226 var72.i = var71.i >> 8;
12228 var73.i = ORC_CLAMP_SW (var70.i - var72.i);
12230 var74.i = ORC_CLAMP_SW (var73.i + var66.i);
12232 var75.i = ORC_CLAMP_SW (var69.i + var65.i);
12234 var76.i = ORC_CLAMP_SW (var75.i + var65.i);
12236 var77.i = (var65.i * var52.i) & 0xffff;
12238 var78.i = var77.i >> 8;
12240 var79.i = ORC_CLAMP_SW (var76.i + var78.i);
12242 var80.i = (var65.i * var53.i) & 0xffff;
12244 var81.i = var80.i >> 8;
12246 var82.i = ORC_CLAMP_SW (var69.i - var81.i);
12248 var83.i = (var66.i * var54.i) & 0xffff;
12250 var84.i = var83.i >> 8;
12252 var85.i = ORC_CLAMP_SW (var82.i - var84.i);
12254 var86.i = ORC_CLAMP_SW (var85.i - var84.i);
12255 /* 34: convssswb */
12256 var87 = ORC_CLAMP_SB (var74.i);
12257 /* 35: convssswb */
12258 var88 = ORC_CLAMP_SB (var86.i);
12259 /* 36: convssswb */
12260 var89 = ORC_CLAMP_SB (var79.i);
12264 _dest.x2[0] = var61;
12265 _dest.x2[1] = var87;
12271 _dest.x2[0] = var88;
12272 _dest.x2[1] = var89;
12278 _dest.x2[0] = var90.i;
12279 _dest.x2[1] = var91.i;
12283 var56.x4[0] = var92.x4[0] + var55.x4[0];
12284 var56.x4[1] = var92.x4[1] + var55.x4[1];
12285 var56.x4[2] = var92.x4[2] + var55.x4[2];
12286 var56.x4[3] = var92.x4[3] + var55.x4[3];
12296 _backup_cogorc_convert_AYUV_ARGB (OrcExecutor * ORC_RESTRICT ex)
12301 int m = ex->params[ORC_VAR_A1];
12302 orc_union32 *ORC_RESTRICT ptr0;
12303 const orc_union32 *ORC_RESTRICT ptr4;
12350 for (j = 0; j < m; j++) {
12351 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
12352 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
12355 var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12356 var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12357 var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12358 var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12360 var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
12362 var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
12364 var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
12366 var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
12368 var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
12370 var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12371 var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12372 var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12373 var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12375 for (i = 0; i < n; i++) {
12379 var57.x4[0] = var48.x4[0] - var49.x4[0];
12380 var57.x4[1] = var48.x4[1] - var49.x4[1];
12381 var57.x4[2] = var48.x4[2] - var49.x4[2];
12382 var57.x4[3] = var48.x4[3] - var49.x4[3];
12387 var58.i = _src.x2[1];
12388 var59.i = _src.x2[0];
12394 var60 = _src.x2[1];
12395 var61 = _src.x2[0];
12401 var62 = _src.x2[1];
12402 var63 = _src.x2[0];
12411 var67.i = (var64.i * var50.i) & 0xffff;
12413 var68.i = var67.i >> 8;
12415 var69.i = ORC_CLAMP_SW (var64.i + var68.i);
12417 var70.i = ORC_CLAMP_SW (var69.i + var66.i);
12419 var71.i = (var66.i * var51.i) & 0xffff;
12421 var72.i = var71.i >> 8;
12423 var73.i = ORC_CLAMP_SW (var70.i - var72.i);
12425 var74.i = ORC_CLAMP_SW (var73.i + var66.i);
12427 var75.i = ORC_CLAMP_SW (var69.i + var65.i);
12429 var76.i = ORC_CLAMP_SW (var75.i + var65.i);
12431 var77.i = (var65.i * var52.i) & 0xffff;
12433 var78.i = var77.i >> 8;
12435 var79.i = ORC_CLAMP_SW (var76.i + var78.i);
12437 var80.i = (var65.i * var53.i) & 0xffff;
12439 var81.i = var80.i >> 8;
12441 var82.i = ORC_CLAMP_SW (var69.i - var81.i);
12443 var83.i = (var66.i * var54.i) & 0xffff;
12445 var84.i = var83.i >> 8;
12447 var85.i = ORC_CLAMP_SW (var82.i - var84.i);
12449 var86.i = ORC_CLAMP_SW (var85.i - var84.i);
12450 /* 34: convssswb */
12451 var87 = ORC_CLAMP_SB (var74.i);
12452 /* 35: convssswb */
12453 var88 = ORC_CLAMP_SB (var86.i);
12454 /* 36: convssswb */
12455 var89 = ORC_CLAMP_SB (var79.i);
12459 _dest.x2[0] = var61;
12460 _dest.x2[1] = var87;
12466 _dest.x2[0] = var88;
12467 _dest.x2[1] = var89;
12473 _dest.x2[0] = var90.i;
12474 _dest.x2[1] = var91.i;
12478 var56.x4[0] = var92.x4[0] + var55.x4[0];
12479 var56.x4[1] = var92.x4[1] + var55.x4[1];
12480 var56.x4[2] = var92.x4[2] + var55.x4[2];
12481 var56.x4[3] = var92.x4[3] + var55.x4[3];
12490 cogorc_convert_AYUV_ARGB (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
12491 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m)
12493 OrcExecutor _ex, *ex = &_ex;
12494 static volatile int p_inited = 0;
12495 static OrcProgram *p = 0;
12496 void (*func) (OrcExecutor *);
12499 orc_once_mutex_lock ();
12502 p = orc_program_new ();
12503 orc_program_set_2d (p);
12504 orc_program_set_name (p, "cogorc_convert_AYUV_ARGB");
12505 orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_ARGB);
12506 orc_program_add_destination (p, 4, "d1");
12507 orc_program_add_source (p, 4, "s1");
12508 orc_program_add_constant (p, 1, 0x00000008, "c1");
12509 orc_program_add_constant (p, 4, 0x00000080, "c2");
12510 orc_program_add_constant (p, 4, 0x0000002a, "c3");
12511 orc_program_add_constant (p, 4, 0x00000067, "c4");
12512 orc_program_add_constant (p, 4, 0x00000004, "c5");
12513 orc_program_add_constant (p, 4, 0x00000064, "c6");
12514 orc_program_add_constant (p, 4, 0x00000068, "c7");
12515 orc_program_add_temporary (p, 2, "t1");
12516 orc_program_add_temporary (p, 2, "t2");
12517 orc_program_add_temporary (p, 1, "t3");
12518 orc_program_add_temporary (p, 1, "t4");
12519 orc_program_add_temporary (p, 1, "t5");
12520 orc_program_add_temporary (p, 1, "t6");
12521 orc_program_add_temporary (p, 2, "t7");
12522 orc_program_add_temporary (p, 2, "t8");
12523 orc_program_add_temporary (p, 2, "t9");
12524 orc_program_add_temporary (p, 2, "t10");
12525 orc_program_add_temporary (p, 2, "t11");
12526 orc_program_add_temporary (p, 2, "t12");
12527 orc_program_add_temporary (p, 1, "t13");
12528 orc_program_add_temporary (p, 1, "t14");
12529 orc_program_add_temporary (p, 1, "t15");
12530 orc_program_add_temporary (p, 4, "t16");
12532 orc_program_append_2 (p, "subb", 2, 47, ORC_VAR_S1, ORC_VAR_C2,
12534 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T1, ORC_VAR_T2, 47,
12536 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
12538 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T1,
12540 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
12542 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1,
12544 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_D1,
12546 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C3,
12548 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
12550 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1,
12552 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T7, ORC_VAR_T9,
12554 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C4,
12556 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
12558 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T10, ORC_VAR_T10,
12559 ORC_VAR_T1, ORC_VAR_D1);
12560 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10,
12561 ORC_VAR_T9, ORC_VAR_D1);
12562 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T7, ORC_VAR_T8,
12564 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
12565 ORC_VAR_T8, ORC_VAR_D1);
12566 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C5,
12568 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
12570 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
12571 ORC_VAR_T1, ORC_VAR_D1);
12572 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C6,
12574 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
12576 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T7, ORC_VAR_T1,
12578 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C7,
12580 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
12582 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
12583 ORC_VAR_T1, ORC_VAR_D1);
12584 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
12585 ORC_VAR_T1, ORC_VAR_D1);
12586 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
12587 ORC_VAR_D1, ORC_VAR_D1);
12588 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T14, ORC_VAR_T11,
12589 ORC_VAR_D1, ORC_VAR_D1);
12590 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T15, ORC_VAR_T12,
12591 ORC_VAR_D1, ORC_VAR_D1);
12592 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3,
12593 ORC_VAR_T13, ORC_VAR_D1);
12594 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T14,
12595 ORC_VAR_T15, ORC_VAR_D1);
12596 orc_program_append_2 (p, "mergewl", 0, 47, ORC_VAR_T1, ORC_VAR_T2,
12598 orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2,
12601 orc_program_compile (p);
12604 orc_once_mutex_unlock ();
12609 ORC_EXECUTOR_M (ex) = m;
12610 ex->arrays[ORC_VAR_D1] = d1;
12611 ex->params[ORC_VAR_D1] = d1_stride;
12612 ex->arrays[ORC_VAR_S1] = (void *) s1;
12613 ex->params[ORC_VAR_S1] = s1_stride;
12615 func = p->code_exec;
12621 /* cogorc_convert_AYUV_BGRA */
12624 cogorc_convert_AYUV_BGRA (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
12625 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m)
12629 orc_union32 *ORC_RESTRICT ptr0;
12630 const orc_union32 *ORC_RESTRICT ptr4;
12677 for (j = 0; j < m; j++) {
12678 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
12679 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
12682 var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12683 var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12684 var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12685 var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12687 var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
12689 var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
12691 var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
12693 var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
12695 var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
12697 var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12698 var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12699 var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12700 var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12702 for (i = 0; i < n; i++) {
12706 var57.x4[0] = var48.x4[0] - var49.x4[0];
12707 var57.x4[1] = var48.x4[1] - var49.x4[1];
12708 var57.x4[2] = var48.x4[2] - var49.x4[2];
12709 var57.x4[3] = var48.x4[3] - var49.x4[3];
12714 var58.i = _src.x2[1];
12715 var59.i = _src.x2[0];
12721 var60 = _src.x2[1];
12722 var61 = _src.x2[0];
12728 var62 = _src.x2[1];
12729 var63 = _src.x2[0];
12738 var67.i = (var64.i * var50.i) & 0xffff;
12740 var68.i = var67.i >> 8;
12742 var69.i = ORC_CLAMP_SW (var64.i + var68.i);
12744 var70.i = ORC_CLAMP_SW (var69.i + var66.i);
12746 var71.i = (var66.i * var51.i) & 0xffff;
12748 var72.i = var71.i >> 8;
12750 var73.i = ORC_CLAMP_SW (var70.i - var72.i);
12752 var74.i = ORC_CLAMP_SW (var73.i + var66.i);
12754 var75.i = ORC_CLAMP_SW (var69.i + var65.i);
12756 var76.i = ORC_CLAMP_SW (var75.i + var65.i);
12758 var77.i = (var65.i * var52.i) & 0xffff;
12760 var78.i = var77.i >> 8;
12762 var79.i = ORC_CLAMP_SW (var76.i + var78.i);
12764 var80.i = (var65.i * var53.i) & 0xffff;
12766 var81.i = var80.i >> 8;
12768 var82.i = ORC_CLAMP_SW (var69.i - var81.i);
12770 var83.i = (var66.i * var54.i) & 0xffff;
12772 var84.i = var83.i >> 8;
12774 var85.i = ORC_CLAMP_SW (var82.i - var84.i);
12776 var86.i = ORC_CLAMP_SW (var85.i - var84.i);
12777 /* 34: convssswb */
12778 var87 = ORC_CLAMP_SB (var74.i);
12779 /* 35: convssswb */
12780 var88 = ORC_CLAMP_SB (var86.i);
12781 /* 36: convssswb */
12782 var89 = ORC_CLAMP_SB (var79.i);
12786 _dest.x2[0] = var89;
12787 _dest.x2[1] = var88;
12793 _dest.x2[0] = var87;
12794 _dest.x2[1] = var61;
12800 _dest.x2[0] = var90.i;
12801 _dest.x2[1] = var91.i;
12805 var56.x4[0] = var92.x4[0] + var55.x4[0];
12806 var56.x4[1] = var92.x4[1] + var55.x4[1];
12807 var56.x4[2] = var92.x4[2] + var55.x4[2];
12808 var56.x4[3] = var92.x4[3] + var55.x4[3];
12818 _backup_cogorc_convert_AYUV_BGRA (OrcExecutor * ORC_RESTRICT ex)
12823 int m = ex->params[ORC_VAR_A1];
12824 orc_union32 *ORC_RESTRICT ptr0;
12825 const orc_union32 *ORC_RESTRICT ptr4;
12872 for (j = 0; j < m; j++) {
12873 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
12874 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
12877 var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12878 var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12879 var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12880 var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12882 var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
12884 var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
12886 var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
12888 var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
12890 var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
12892 var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12893 var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12894 var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12895 var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
12897 for (i = 0; i < n; i++) {
12901 var57.x4[0] = var48.x4[0] - var49.x4[0];
12902 var57.x4[1] = var48.x4[1] - var49.x4[1];
12903 var57.x4[2] = var48.x4[2] - var49.x4[2];
12904 var57.x4[3] = var48.x4[3] - var49.x4[3];
12909 var58.i = _src.x2[1];
12910 var59.i = _src.x2[0];
12916 var60 = _src.x2[1];
12917 var61 = _src.x2[0];
12923 var62 = _src.x2[1];
12924 var63 = _src.x2[0];
12933 var67.i = (var64.i * var50.i) & 0xffff;
12935 var68.i = var67.i >> 8;
12937 var69.i = ORC_CLAMP_SW (var64.i + var68.i);
12939 var70.i = ORC_CLAMP_SW (var69.i + var66.i);
12941 var71.i = (var66.i * var51.i) & 0xffff;
12943 var72.i = var71.i >> 8;
12945 var73.i = ORC_CLAMP_SW (var70.i - var72.i);
12947 var74.i = ORC_CLAMP_SW (var73.i + var66.i);
12949 var75.i = ORC_CLAMP_SW (var69.i + var65.i);
12951 var76.i = ORC_CLAMP_SW (var75.i + var65.i);
12953 var77.i = (var65.i * var52.i) & 0xffff;
12955 var78.i = var77.i >> 8;
12957 var79.i = ORC_CLAMP_SW (var76.i + var78.i);
12959 var80.i = (var65.i * var53.i) & 0xffff;
12961 var81.i = var80.i >> 8;
12963 var82.i = ORC_CLAMP_SW (var69.i - var81.i);
12965 var83.i = (var66.i * var54.i) & 0xffff;
12967 var84.i = var83.i >> 8;
12969 var85.i = ORC_CLAMP_SW (var82.i - var84.i);
12971 var86.i = ORC_CLAMP_SW (var85.i - var84.i);
12972 /* 34: convssswb */
12973 var87 = ORC_CLAMP_SB (var74.i);
12974 /* 35: convssswb */
12975 var88 = ORC_CLAMP_SB (var86.i);
12976 /* 36: convssswb */
12977 var89 = ORC_CLAMP_SB (var79.i);
12981 _dest.x2[0] = var89;
12982 _dest.x2[1] = var88;
12988 _dest.x2[0] = var87;
12989 _dest.x2[1] = var61;
12995 _dest.x2[0] = var90.i;
12996 _dest.x2[1] = var91.i;
13000 var56.x4[0] = var92.x4[0] + var55.x4[0];
13001 var56.x4[1] = var92.x4[1] + var55.x4[1];
13002 var56.x4[2] = var92.x4[2] + var55.x4[2];
13003 var56.x4[3] = var92.x4[3] + var55.x4[3];
13012 cogorc_convert_AYUV_BGRA (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
13013 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m)
13015 OrcExecutor _ex, *ex = &_ex;
13016 static volatile int p_inited = 0;
13017 static OrcProgram *p = 0;
13018 void (*func) (OrcExecutor *);
13021 orc_once_mutex_lock ();
13024 p = orc_program_new ();
13025 orc_program_set_2d (p);
13026 orc_program_set_name (p, "cogorc_convert_AYUV_BGRA");
13027 orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_BGRA);
13028 orc_program_add_destination (p, 4, "d1");
13029 orc_program_add_source (p, 4, "s1");
13030 orc_program_add_constant (p, 1, 0x00000008, "c1");
13031 orc_program_add_constant (p, 4, 0x00000080, "c2");
13032 orc_program_add_constant (p, 4, 0x0000002a, "c3");
13033 orc_program_add_constant (p, 4, 0x00000067, "c4");
13034 orc_program_add_constant (p, 4, 0x00000004, "c5");
13035 orc_program_add_constant (p, 4, 0x00000064, "c6");
13036 orc_program_add_constant (p, 4, 0x00000068, "c7");
13037 orc_program_add_temporary (p, 2, "t1");
13038 orc_program_add_temporary (p, 2, "t2");
13039 orc_program_add_temporary (p, 1, "t3");
13040 orc_program_add_temporary (p, 1, "t4");
13041 orc_program_add_temporary (p, 1, "t5");
13042 orc_program_add_temporary (p, 1, "t6");
13043 orc_program_add_temporary (p, 2, "t7");
13044 orc_program_add_temporary (p, 2, "t8");
13045 orc_program_add_temporary (p, 2, "t9");
13046 orc_program_add_temporary (p, 2, "t10");
13047 orc_program_add_temporary (p, 2, "t11");
13048 orc_program_add_temporary (p, 2, "t12");
13049 orc_program_add_temporary (p, 1, "t13");
13050 orc_program_add_temporary (p, 1, "t14");
13051 orc_program_add_temporary (p, 1, "t15");
13052 orc_program_add_temporary (p, 4, "t16");
13054 orc_program_append_2 (p, "subb", 2, 47, ORC_VAR_S1, ORC_VAR_C2,
13056 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T1, ORC_VAR_T2, 47,
13058 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
13060 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T1,
13062 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
13064 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1,
13066 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_D1,
13068 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C3,
13070 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
13072 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1,
13074 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T7, ORC_VAR_T9,
13076 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C4,
13078 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
13080 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T10, ORC_VAR_T10,
13081 ORC_VAR_T1, ORC_VAR_D1);
13082 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10,
13083 ORC_VAR_T9, ORC_VAR_D1);
13084 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T7, ORC_VAR_T8,
13086 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
13087 ORC_VAR_T8, ORC_VAR_D1);
13088 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C5,
13090 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
13092 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
13093 ORC_VAR_T1, ORC_VAR_D1);
13094 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C6,
13096 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
13098 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T7, ORC_VAR_T1,
13100 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C7,
13102 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
13104 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
13105 ORC_VAR_T1, ORC_VAR_D1);
13106 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
13107 ORC_VAR_T1, ORC_VAR_D1);
13108 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
13109 ORC_VAR_D1, ORC_VAR_D1);
13110 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T14, ORC_VAR_T11,
13111 ORC_VAR_D1, ORC_VAR_D1);
13112 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T15, ORC_VAR_T12,
13113 ORC_VAR_D1, ORC_VAR_D1);
13114 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T15,
13115 ORC_VAR_T14, ORC_VAR_D1);
13116 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T13,
13117 ORC_VAR_T3, ORC_VAR_D1);
13118 orc_program_append_2 (p, "mergewl", 0, 47, ORC_VAR_T1, ORC_VAR_T2,
13120 orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2,
13123 orc_program_compile (p);
13126 orc_once_mutex_unlock ();
13131 ORC_EXECUTOR_M (ex) = m;
13132 ex->arrays[ORC_VAR_D1] = d1;
13133 ex->params[ORC_VAR_D1] = d1_stride;
13134 ex->arrays[ORC_VAR_S1] = (void *) s1;
13135 ex->params[ORC_VAR_S1] = s1_stride;
13137 func = p->code_exec;
13143 /* cogorc_convert_AYUV_ABGR */
13146 cogorc_convert_AYUV_ABGR (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
13147 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m)
13151 orc_union32 *ORC_RESTRICT ptr0;
13152 const orc_union32 *ORC_RESTRICT ptr4;
13199 for (j = 0; j < m; j++) {
13200 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
13201 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
13204 var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13205 var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13206 var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13207 var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13209 var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
13211 var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
13213 var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
13215 var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
13217 var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
13219 var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13220 var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13221 var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13222 var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13224 for (i = 0; i < n; i++) {
13228 var57.x4[0] = var48.x4[0] - var49.x4[0];
13229 var57.x4[1] = var48.x4[1] - var49.x4[1];
13230 var57.x4[2] = var48.x4[2] - var49.x4[2];
13231 var57.x4[3] = var48.x4[3] - var49.x4[3];
13236 var58.i = _src.x2[1];
13237 var59.i = _src.x2[0];
13243 var60 = _src.x2[1];
13244 var61 = _src.x2[0];
13250 var62 = _src.x2[1];
13251 var63 = _src.x2[0];
13260 var67.i = (var64.i * var50.i) & 0xffff;
13262 var68.i = var67.i >> 8;
13264 var69.i = ORC_CLAMP_SW (var64.i + var68.i);
13266 var70.i = ORC_CLAMP_SW (var69.i + var66.i);
13268 var71.i = (var66.i * var51.i) & 0xffff;
13270 var72.i = var71.i >> 8;
13272 var73.i = ORC_CLAMP_SW (var70.i - var72.i);
13274 var74.i = ORC_CLAMP_SW (var73.i + var66.i);
13276 var75.i = ORC_CLAMP_SW (var69.i + var65.i);
13278 var76.i = ORC_CLAMP_SW (var75.i + var65.i);
13280 var77.i = (var65.i * var52.i) & 0xffff;
13282 var78.i = var77.i >> 8;
13284 var79.i = ORC_CLAMP_SW (var76.i + var78.i);
13286 var80.i = (var65.i * var53.i) & 0xffff;
13288 var81.i = var80.i >> 8;
13290 var82.i = ORC_CLAMP_SW (var69.i - var81.i);
13292 var83.i = (var66.i * var54.i) & 0xffff;
13294 var84.i = var83.i >> 8;
13296 var85.i = ORC_CLAMP_SW (var82.i - var84.i);
13298 var86.i = ORC_CLAMP_SW (var85.i - var84.i);
13299 /* 34: convssswb */
13300 var87 = ORC_CLAMP_SB (var74.i);
13301 /* 35: convssswb */
13302 var88 = ORC_CLAMP_SB (var86.i);
13303 /* 36: convssswb */
13304 var89 = ORC_CLAMP_SB (var79.i);
13308 _dest.x2[0] = var61;
13309 _dest.x2[1] = var89;
13315 _dest.x2[0] = var88;
13316 _dest.x2[1] = var87;
13322 _dest.x2[0] = var90.i;
13323 _dest.x2[1] = var91.i;
13327 var56.x4[0] = var92.x4[0] + var55.x4[0];
13328 var56.x4[1] = var92.x4[1] + var55.x4[1];
13329 var56.x4[2] = var92.x4[2] + var55.x4[2];
13330 var56.x4[3] = var92.x4[3] + var55.x4[3];
13340 _backup_cogorc_convert_AYUV_ABGR (OrcExecutor * ORC_RESTRICT ex)
13345 int m = ex->params[ORC_VAR_A1];
13346 orc_union32 *ORC_RESTRICT ptr0;
13347 const orc_union32 *ORC_RESTRICT ptr4;
13394 for (j = 0; j < m; j++) {
13395 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
13396 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
13399 var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13400 var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13401 var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13402 var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13404 var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
13406 var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
13408 var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
13410 var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
13412 var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
13414 var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13415 var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13416 var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13417 var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13419 for (i = 0; i < n; i++) {
13423 var57.x4[0] = var48.x4[0] - var49.x4[0];
13424 var57.x4[1] = var48.x4[1] - var49.x4[1];
13425 var57.x4[2] = var48.x4[2] - var49.x4[2];
13426 var57.x4[3] = var48.x4[3] - var49.x4[3];
13431 var58.i = _src.x2[1];
13432 var59.i = _src.x2[0];
13438 var60 = _src.x2[1];
13439 var61 = _src.x2[0];
13445 var62 = _src.x2[1];
13446 var63 = _src.x2[0];
13455 var67.i = (var64.i * var50.i) & 0xffff;
13457 var68.i = var67.i >> 8;
13459 var69.i = ORC_CLAMP_SW (var64.i + var68.i);
13461 var70.i = ORC_CLAMP_SW (var69.i + var66.i);
13463 var71.i = (var66.i * var51.i) & 0xffff;
13465 var72.i = var71.i >> 8;
13467 var73.i = ORC_CLAMP_SW (var70.i - var72.i);
13469 var74.i = ORC_CLAMP_SW (var73.i + var66.i);
13471 var75.i = ORC_CLAMP_SW (var69.i + var65.i);
13473 var76.i = ORC_CLAMP_SW (var75.i + var65.i);
13475 var77.i = (var65.i * var52.i) & 0xffff;
13477 var78.i = var77.i >> 8;
13479 var79.i = ORC_CLAMP_SW (var76.i + var78.i);
13481 var80.i = (var65.i * var53.i) & 0xffff;
13483 var81.i = var80.i >> 8;
13485 var82.i = ORC_CLAMP_SW (var69.i - var81.i);
13487 var83.i = (var66.i * var54.i) & 0xffff;
13489 var84.i = var83.i >> 8;
13491 var85.i = ORC_CLAMP_SW (var82.i - var84.i);
13493 var86.i = ORC_CLAMP_SW (var85.i - var84.i);
13494 /* 34: convssswb */
13495 var87 = ORC_CLAMP_SB (var74.i);
13496 /* 35: convssswb */
13497 var88 = ORC_CLAMP_SB (var86.i);
13498 /* 36: convssswb */
13499 var89 = ORC_CLAMP_SB (var79.i);
13503 _dest.x2[0] = var61;
13504 _dest.x2[1] = var89;
13510 _dest.x2[0] = var88;
13511 _dest.x2[1] = var87;
13517 _dest.x2[0] = var90.i;
13518 _dest.x2[1] = var91.i;
13522 var56.x4[0] = var92.x4[0] + var55.x4[0];
13523 var56.x4[1] = var92.x4[1] + var55.x4[1];
13524 var56.x4[2] = var92.x4[2] + var55.x4[2];
13525 var56.x4[3] = var92.x4[3] + var55.x4[3];
13534 cogorc_convert_AYUV_ABGR (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
13535 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m)
13537 OrcExecutor _ex, *ex = &_ex;
13538 static volatile int p_inited = 0;
13539 static OrcProgram *p = 0;
13540 void (*func) (OrcExecutor *);
13543 orc_once_mutex_lock ();
13546 p = orc_program_new ();
13547 orc_program_set_2d (p);
13548 orc_program_set_name (p, "cogorc_convert_AYUV_ABGR");
13549 orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_ABGR);
13550 orc_program_add_destination (p, 4, "d1");
13551 orc_program_add_source (p, 4, "s1");
13552 orc_program_add_constant (p, 1, 0x00000008, "c1");
13553 orc_program_add_constant (p, 4, 0x00000080, "c2");
13554 orc_program_add_constant (p, 4, 0x0000002a, "c3");
13555 orc_program_add_constant (p, 4, 0x00000067, "c4");
13556 orc_program_add_constant (p, 4, 0x00000004, "c5");
13557 orc_program_add_constant (p, 4, 0x00000064, "c6");
13558 orc_program_add_constant (p, 4, 0x00000068, "c7");
13559 orc_program_add_temporary (p, 2, "t1");
13560 orc_program_add_temporary (p, 2, "t2");
13561 orc_program_add_temporary (p, 1, "t3");
13562 orc_program_add_temporary (p, 1, "t4");
13563 orc_program_add_temporary (p, 1, "t5");
13564 orc_program_add_temporary (p, 1, "t6");
13565 orc_program_add_temporary (p, 2, "t7");
13566 orc_program_add_temporary (p, 2, "t8");
13567 orc_program_add_temporary (p, 2, "t9");
13568 orc_program_add_temporary (p, 2, "t10");
13569 orc_program_add_temporary (p, 2, "t11");
13570 orc_program_add_temporary (p, 2, "t12");
13571 orc_program_add_temporary (p, 1, "t13");
13572 orc_program_add_temporary (p, 1, "t14");
13573 orc_program_add_temporary (p, 1, "t15");
13574 orc_program_add_temporary (p, 4, "t16");
13576 orc_program_append_2 (p, "subb", 2, 47, ORC_VAR_S1, ORC_VAR_C2,
13578 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T1, ORC_VAR_T2, 47,
13580 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
13582 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T1,
13584 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
13586 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1,
13588 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_D1,
13590 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C3,
13592 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
13594 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1,
13596 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T7, ORC_VAR_T9,
13598 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C4,
13600 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
13602 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T10, ORC_VAR_T10,
13603 ORC_VAR_T1, ORC_VAR_D1);
13604 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10,
13605 ORC_VAR_T9, ORC_VAR_D1);
13606 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T7, ORC_VAR_T8,
13608 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
13609 ORC_VAR_T8, ORC_VAR_D1);
13610 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C5,
13612 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
13614 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
13615 ORC_VAR_T1, ORC_VAR_D1);
13616 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C6,
13618 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
13620 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T7, ORC_VAR_T1,
13622 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C7,
13624 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
13626 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
13627 ORC_VAR_T1, ORC_VAR_D1);
13628 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
13629 ORC_VAR_T1, ORC_VAR_D1);
13630 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
13631 ORC_VAR_D1, ORC_VAR_D1);
13632 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T14, ORC_VAR_T11,
13633 ORC_VAR_D1, ORC_VAR_D1);
13634 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T15, ORC_VAR_T12,
13635 ORC_VAR_D1, ORC_VAR_D1);
13636 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3,
13637 ORC_VAR_T15, ORC_VAR_D1);
13638 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T14,
13639 ORC_VAR_T13, ORC_VAR_D1);
13640 orc_program_append_2 (p, "mergewl", 0, 47, ORC_VAR_T1, ORC_VAR_T2,
13642 orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2,
13645 orc_program_compile (p);
13648 orc_once_mutex_unlock ();
13653 ORC_EXECUTOR_M (ex) = m;
13654 ex->arrays[ORC_VAR_D1] = d1;
13655 ex->params[ORC_VAR_D1] = d1_stride;
13656 ex->arrays[ORC_VAR_S1] = (void *) s1;
13657 ex->params[ORC_VAR_S1] = s1_stride;
13659 func = p->code_exec;
13665 /* cogorc_convert_AYUV_RGBA */
13668 cogorc_convert_AYUV_RGBA (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
13669 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m)
13673 orc_union32 *ORC_RESTRICT ptr0;
13674 const orc_union32 *ORC_RESTRICT ptr4;
13721 for (j = 0; j < m; j++) {
13722 ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j);
13723 ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j);
13726 var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13727 var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13728 var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13729 var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13731 var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
13733 var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
13735 var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
13737 var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
13739 var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
13741 var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13742 var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13743 var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13744 var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13746 for (i = 0; i < n; i++) {
13750 var57.x4[0] = var48.x4[0] - var49.x4[0];
13751 var57.x4[1] = var48.x4[1] - var49.x4[1];
13752 var57.x4[2] = var48.x4[2] - var49.x4[2];
13753 var57.x4[3] = var48.x4[3] - var49.x4[3];
13758 var58.i = _src.x2[1];
13759 var59.i = _src.x2[0];
13765 var60 = _src.x2[1];
13766 var61 = _src.x2[0];
13772 var62 = _src.x2[1];
13773 var63 = _src.x2[0];
13782 var67.i = (var64.i * var50.i) & 0xffff;
13784 var68.i = var67.i >> 8;
13786 var69.i = ORC_CLAMP_SW (var64.i + var68.i);
13788 var70.i = ORC_CLAMP_SW (var69.i + var66.i);
13790 var71.i = (var66.i * var51.i) & 0xffff;
13792 var72.i = var71.i >> 8;
13794 var73.i = ORC_CLAMP_SW (var70.i - var72.i);
13796 var74.i = ORC_CLAMP_SW (var73.i + var66.i);
13798 var75.i = ORC_CLAMP_SW (var69.i + var65.i);
13800 var76.i = ORC_CLAMP_SW (var75.i + var65.i);
13802 var77.i = (var65.i * var52.i) & 0xffff;
13804 var78.i = var77.i >> 8;
13806 var79.i = ORC_CLAMP_SW (var76.i + var78.i);
13808 var80.i = (var65.i * var53.i) & 0xffff;
13810 var81.i = var80.i >> 8;
13812 var82.i = ORC_CLAMP_SW (var69.i - var81.i);
13814 var83.i = (var66.i * var54.i) & 0xffff;
13816 var84.i = var83.i >> 8;
13818 var85.i = ORC_CLAMP_SW (var82.i - var84.i);
13820 var86.i = ORC_CLAMP_SW (var85.i - var84.i);
13821 /* 34: convssswb */
13822 var87 = ORC_CLAMP_SB (var74.i);
13823 /* 35: convssswb */
13824 var88 = ORC_CLAMP_SB (var86.i);
13825 /* 36: convssswb */
13826 var89 = ORC_CLAMP_SB (var79.i);
13830 _dest.x2[0] = var87;
13831 _dest.x2[1] = var88;
13837 _dest.x2[0] = var89;
13838 _dest.x2[1] = var61;
13844 _dest.x2[0] = var90.i;
13845 _dest.x2[1] = var91.i;
13849 var56.x4[0] = var92.x4[0] + var55.x4[0];
13850 var56.x4[1] = var92.x4[1] + var55.x4[1];
13851 var56.x4[2] = var92.x4[2] + var55.x4[2];
13852 var56.x4[3] = var92.x4[3] + var55.x4[3];
13862 _backup_cogorc_convert_AYUV_RGBA (OrcExecutor * ORC_RESTRICT ex)
13867 int m = ex->params[ORC_VAR_A1];
13868 orc_union32 *ORC_RESTRICT ptr0;
13869 const orc_union32 *ORC_RESTRICT ptr4;
13916 for (j = 0; j < m; j++) {
13917 ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j);
13918 ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j);
13921 var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13922 var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13923 var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13924 var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13926 var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
13928 var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
13930 var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
13932 var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
13934 var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
13936 var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13937 var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13938 var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13939 var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
13941 for (i = 0; i < n; i++) {
13945 var57.x4[0] = var48.x4[0] - var49.x4[0];
13946 var57.x4[1] = var48.x4[1] - var49.x4[1];
13947 var57.x4[2] = var48.x4[2] - var49.x4[2];
13948 var57.x4[3] = var48.x4[3] - var49.x4[3];
13953 var58.i = _src.x2[1];
13954 var59.i = _src.x2[0];
13960 var60 = _src.x2[1];
13961 var61 = _src.x2[0];
13967 var62 = _src.x2[1];
13968 var63 = _src.x2[0];
13977 var67.i = (var64.i * var50.i) & 0xffff;
13979 var68.i = var67.i >> 8;
13981 var69.i = ORC_CLAMP_SW (var64.i + var68.i);
13983 var70.i = ORC_CLAMP_SW (var69.i + var66.i);
13985 var71.i = (var66.i * var51.i) & 0xffff;
13987 var72.i = var71.i >> 8;
13989 var73.i = ORC_CLAMP_SW (var70.i - var72.i);
13991 var74.i = ORC_CLAMP_SW (var73.i + var66.i);
13993 var75.i = ORC_CLAMP_SW (var69.i + var65.i);
13995 var76.i = ORC_CLAMP_SW (var75.i + var65.i);
13997 var77.i = (var65.i * var52.i) & 0xffff;
13999 var78.i = var77.i >> 8;
14001 var79.i = ORC_CLAMP_SW (var76.i + var78.i);
14003 var80.i = (var65.i * var53.i) & 0xffff;
14005 var81.i = var80.i >> 8;
14007 var82.i = ORC_CLAMP_SW (var69.i - var81.i);
14009 var83.i = (var66.i * var54.i) & 0xffff;
14011 var84.i = var83.i >> 8;
14013 var85.i = ORC_CLAMP_SW (var82.i - var84.i);
14015 var86.i = ORC_CLAMP_SW (var85.i - var84.i);
14016 /* 34: convssswb */
14017 var87 = ORC_CLAMP_SB (var74.i);
14018 /* 35: convssswb */
14019 var88 = ORC_CLAMP_SB (var86.i);
14020 /* 36: convssswb */
14021 var89 = ORC_CLAMP_SB (var79.i);
14025 _dest.x2[0] = var87;
14026 _dest.x2[1] = var88;
14032 _dest.x2[0] = var89;
14033 _dest.x2[1] = var61;
14039 _dest.x2[0] = var90.i;
14040 _dest.x2[1] = var91.i;
14044 var56.x4[0] = var92.x4[0] + var55.x4[0];
14045 var56.x4[1] = var92.x4[1] + var55.x4[1];
14046 var56.x4[2] = var92.x4[2] + var55.x4[2];
14047 var56.x4[3] = var92.x4[3] + var55.x4[3];
14056 cogorc_convert_AYUV_RGBA (orc_uint32 * ORC_RESTRICT d1, int d1_stride,
14057 const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m)
14059 OrcExecutor _ex, *ex = &_ex;
14060 static volatile int p_inited = 0;
14061 static OrcProgram *p = 0;
14062 void (*func) (OrcExecutor *);
14065 orc_once_mutex_lock ();
14068 p = orc_program_new ();
14069 orc_program_set_2d (p);
14070 orc_program_set_name (p, "cogorc_convert_AYUV_RGBA");
14071 orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_RGBA);
14072 orc_program_add_destination (p, 4, "d1");
14073 orc_program_add_source (p, 4, "s1");
14074 orc_program_add_constant (p, 1, 0x00000008, "c1");
14075 orc_program_add_constant (p, 4, 0x00000080, "c2");
14076 orc_program_add_constant (p, 4, 0x0000002a, "c3");
14077 orc_program_add_constant (p, 4, 0x00000067, "c4");
14078 orc_program_add_constant (p, 4, 0x00000004, "c5");
14079 orc_program_add_constant (p, 4, 0x00000064, "c6");
14080 orc_program_add_constant (p, 4, 0x00000068, "c7");
14081 orc_program_add_temporary (p, 2, "t1");
14082 orc_program_add_temporary (p, 2, "t2");
14083 orc_program_add_temporary (p, 1, "t3");
14084 orc_program_add_temporary (p, 1, "t4");
14085 orc_program_add_temporary (p, 1, "t5");
14086 orc_program_add_temporary (p, 1, "t6");
14087 orc_program_add_temporary (p, 2, "t7");
14088 orc_program_add_temporary (p, 2, "t8");
14089 orc_program_add_temporary (p, 2, "t9");
14090 orc_program_add_temporary (p, 2, "t10");
14091 orc_program_add_temporary (p, 2, "t11");
14092 orc_program_add_temporary (p, 2, "t12");
14093 orc_program_add_temporary (p, 1, "t13");
14094 orc_program_add_temporary (p, 1, "t14");
14095 orc_program_add_temporary (p, 1, "t15");
14096 orc_program_add_temporary (p, 4, "t16");
14098 orc_program_append_2 (p, "subb", 2, 47, ORC_VAR_S1, ORC_VAR_C2,
14100 orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T1, ORC_VAR_T2, 47,
14102 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
14104 orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T1,
14106 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
14108 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1,
14110 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_D1,
14112 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C3,
14114 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
14116 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1,
14118 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T7, ORC_VAR_T9,
14120 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C4,
14122 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
14124 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T10, ORC_VAR_T10,
14125 ORC_VAR_T1, ORC_VAR_D1);
14126 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10,
14127 ORC_VAR_T9, ORC_VAR_D1);
14128 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T7, ORC_VAR_T8,
14130 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
14131 ORC_VAR_T8, ORC_VAR_D1);
14132 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C5,
14134 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
14136 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12,
14137 ORC_VAR_T1, ORC_VAR_D1);
14138 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C6,
14140 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
14142 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T7, ORC_VAR_T1,
14144 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C7,
14146 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
14148 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
14149 ORC_VAR_T1, ORC_VAR_D1);
14150 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11,
14151 ORC_VAR_T1, ORC_VAR_D1);
14152 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
14153 ORC_VAR_D1, ORC_VAR_D1);
14154 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T14, ORC_VAR_T11,
14155 ORC_VAR_D1, ORC_VAR_D1);
14156 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T15, ORC_VAR_T12,
14157 ORC_VAR_D1, ORC_VAR_D1);
14158 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T13,
14159 ORC_VAR_T14, ORC_VAR_D1);
14160 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T15,
14161 ORC_VAR_T3, ORC_VAR_D1);
14162 orc_program_append_2 (p, "mergewl", 0, 47, ORC_VAR_T1, ORC_VAR_T2,
14164 orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2,
14167 orc_program_compile (p);
14170 orc_once_mutex_unlock ();
14175 ORC_EXECUTOR_M (ex) = m;
14176 ex->arrays[ORC_VAR_D1] = d1;
14177 ex->params[ORC_VAR_D1] = d1_stride;
14178 ex->arrays[ORC_VAR_S1] = (void *) s1;
14179 ex->params[ORC_VAR_S1] = s1_stride;
14181 func = p->code_exec;
14187 /* cogorc_convert_I420_BGRA */
14190 cogorc_convert_I420_BGRA (orc_uint32 * ORC_RESTRICT d1,
14191 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
14192 const orc_uint8 * ORC_RESTRICT s3, int n)
14195 orc_union32 *ORC_RESTRICT ptr0;
14196 const orc_int8 *ORC_RESTRICT ptr4;
14197 const orc_int8 *ORC_RESTRICT ptr5;
14198 const orc_int8 *ORC_RESTRICT ptr6;
14246 ptr0 = (orc_union32 *) d1;
14247 ptr4 = (orc_int8 *) s1;
14248 ptr5 = (orc_int8 *) s2;
14249 ptr6 = (orc_int8 *) s3;
14252 var46 = (int) 0x00000080; /* 128 or 6.32404e-322f */
14254 var47 = (int) 0x00000080; /* 128 or 6.32404e-322f */
14256 var48 = (int) 0x00000080; /* 128 or 6.32404e-322f */
14258 var49.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
14260 var50.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
14262 var51.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
14264 var52.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
14266 var53.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
14268 var54 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
14270 var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14271 var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14272 var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14273 var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14275 for (i = 0; i < n; i++) {
14279 var57 = var45 - var46;
14284 (i & 1) ? ((orc_uint8) ptr5[i >> 1] + (orc_uint8) ptr5[(i >> 1) + 1] +
14285 1) >> 1 : ptr5[i >> 1];
14287 var60 = var59 - var47;
14292 (i & 1) ? ((orc_uint8) ptr6[i >> 1] + (orc_uint8) ptr6[(i >> 1) + 1] +
14293 1) >> 1 : ptr6[i >> 1];
14295 var63 = var62 - var48;
14299 var65.i = (var58.i * var49.i) & 0xffff;
14301 var66.i = var65.i >> 8;
14303 var67.i = ORC_CLAMP_SW (var58.i + var66.i);
14305 var68.i = ORC_CLAMP_SW (var67.i + var64.i);
14307 var69.i = (var64.i * var50.i) & 0xffff;
14309 var70.i = var69.i >> 8;
14311 var71.i = ORC_CLAMP_SW (var68.i - var70.i);
14313 var72.i = ORC_CLAMP_SW (var71.i + var64.i);
14315 var73.i = ORC_CLAMP_SW (var67.i + var61.i);
14317 var74.i = ORC_CLAMP_SW (var73.i + var61.i);
14319 var75.i = (var61.i * var51.i) & 0xffff;
14321 var76.i = var75.i >> 8;
14323 var77.i = ORC_CLAMP_SW (var74.i + var76.i);
14325 var78.i = (var61.i * var52.i) & 0xffff;
14327 var79.i = var78.i >> 8;
14329 var80.i = ORC_CLAMP_SW (var67.i - var79.i);
14331 var81.i = (var64.i * var53.i) & 0xffff;
14333 var82.i = var81.i >> 8;
14335 var83.i = ORC_CLAMP_SW (var80.i - var82.i);
14337 var84.i = ORC_CLAMP_SW (var83.i - var82.i);
14338 /* 37: convssswb */
14339 var85 = ORC_CLAMP_SB (var72.i);
14340 /* 38: convssswb */
14341 var86 = ORC_CLAMP_SB (var84.i);
14342 /* 39: convssswb */
14343 var87 = ORC_CLAMP_SB (var77.i);
14347 _dest.x2[0] = var87;
14348 _dest.x2[1] = var86;
14354 _dest.x2[0] = var85;
14355 _dest.x2[1] = var54;
14361 _dest.x2[0] = var88.i;
14362 _dest.x2[1] = var89.i;
14366 var56.x4[0] = var90.x4[0] + var55.x4[0];
14367 var56.x4[1] = var90.x4[1] + var55.x4[1];
14368 var56.x4[2] = var90.x4[2] + var55.x4[2];
14369 var56.x4[3] = var90.x4[3] + var55.x4[3];
14378 _backup_cogorc_convert_I420_BGRA (OrcExecutor * ORC_RESTRICT ex)
14382 orc_union32 *ORC_RESTRICT ptr0;
14383 const orc_int8 *ORC_RESTRICT ptr4;
14384 const orc_int8 *ORC_RESTRICT ptr5;
14385 const orc_int8 *ORC_RESTRICT ptr6;
14433 ptr0 = (orc_union32 *) ex->arrays[0];
14434 ptr4 = (orc_int8 *) ex->arrays[4];
14435 ptr5 = (orc_int8 *) ex->arrays[5];
14436 ptr6 = (orc_int8 *) ex->arrays[6];
14439 var46 = (int) 0x00000080; /* 128 or 6.32404e-322f */
14441 var47 = (int) 0x00000080; /* 128 or 6.32404e-322f */
14443 var48 = (int) 0x00000080; /* 128 or 6.32404e-322f */
14445 var49.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
14447 var50.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
14449 var51.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
14451 var52.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
14453 var53.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
14455 var54 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
14457 var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14458 var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14459 var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14460 var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14462 for (i = 0; i < n; i++) {
14466 var57 = var45 - var46;
14471 (i & 1) ? ((orc_uint8) ptr5[i >> 1] + (orc_uint8) ptr5[(i >> 1) + 1] +
14472 1) >> 1 : ptr5[i >> 1];
14474 var60 = var59 - var47;
14479 (i & 1) ? ((orc_uint8) ptr6[i >> 1] + (orc_uint8) ptr6[(i >> 1) + 1] +
14480 1) >> 1 : ptr6[i >> 1];
14482 var63 = var62 - var48;
14486 var65.i = (var58.i * var49.i) & 0xffff;
14488 var66.i = var65.i >> 8;
14490 var67.i = ORC_CLAMP_SW (var58.i + var66.i);
14492 var68.i = ORC_CLAMP_SW (var67.i + var64.i);
14494 var69.i = (var64.i * var50.i) & 0xffff;
14496 var70.i = var69.i >> 8;
14498 var71.i = ORC_CLAMP_SW (var68.i - var70.i);
14500 var72.i = ORC_CLAMP_SW (var71.i + var64.i);
14502 var73.i = ORC_CLAMP_SW (var67.i + var61.i);
14504 var74.i = ORC_CLAMP_SW (var73.i + var61.i);
14506 var75.i = (var61.i * var51.i) & 0xffff;
14508 var76.i = var75.i >> 8;
14510 var77.i = ORC_CLAMP_SW (var74.i + var76.i);
14512 var78.i = (var61.i * var52.i) & 0xffff;
14514 var79.i = var78.i >> 8;
14516 var80.i = ORC_CLAMP_SW (var67.i - var79.i);
14518 var81.i = (var64.i * var53.i) & 0xffff;
14520 var82.i = var81.i >> 8;
14522 var83.i = ORC_CLAMP_SW (var80.i - var82.i);
14524 var84.i = ORC_CLAMP_SW (var83.i - var82.i);
14525 /* 37: convssswb */
14526 var85 = ORC_CLAMP_SB (var72.i);
14527 /* 38: convssswb */
14528 var86 = ORC_CLAMP_SB (var84.i);
14529 /* 39: convssswb */
14530 var87 = ORC_CLAMP_SB (var77.i);
14534 _dest.x2[0] = var87;
14535 _dest.x2[1] = var86;
14541 _dest.x2[0] = var85;
14542 _dest.x2[1] = var54;
14548 _dest.x2[0] = var88.i;
14549 _dest.x2[1] = var89.i;
14553 var56.x4[0] = var90.x4[0] + var55.x4[0];
14554 var56.x4[1] = var90.x4[1] + var55.x4[1];
14555 var56.x4[2] = var90.x4[2] + var55.x4[2];
14556 var56.x4[3] = var90.x4[3] + var55.x4[3];
14564 cogorc_convert_I420_BGRA (orc_uint32 * ORC_RESTRICT d1,
14565 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
14566 const orc_uint8 * ORC_RESTRICT s3, int n)
14568 OrcExecutor _ex, *ex = &_ex;
14569 static volatile int p_inited = 0;
14570 static OrcProgram *p = 0;
14571 void (*func) (OrcExecutor *);
14574 orc_once_mutex_lock ();
14577 p = orc_program_new ();
14578 orc_program_set_name (p, "cogorc_convert_I420_BGRA");
14579 orc_program_set_backup_function (p, _backup_cogorc_convert_I420_BGRA);
14580 orc_program_add_destination (p, 4, "d1");
14581 orc_program_add_source (p, 1, "s1");
14582 orc_program_add_source (p, 1, "s2");
14583 orc_program_add_source (p, 1, "s3");
14584 orc_program_add_constant (p, 1, 0x00000008, "c1");
14585 orc_program_add_constant (p, 1, 0x00000080, "c2");
14586 orc_program_add_constant (p, 4, 0x0000002a, "c3");
14587 orc_program_add_constant (p, 4, 0x00000067, "c4");
14588 orc_program_add_constant (p, 4, 0x00000004, "c5");
14589 orc_program_add_constant (p, 4, 0x00000064, "c6");
14590 orc_program_add_constant (p, 4, 0x00000068, "c7");
14591 orc_program_add_constant (p, 4, 0x000000ff, "c8");
14592 orc_program_add_temporary (p, 2, "t1");
14593 orc_program_add_temporary (p, 2, "t2");
14594 orc_program_add_temporary (p, 1, "t3");
14595 orc_program_add_temporary (p, 2, "t4");
14596 orc_program_add_temporary (p, 2, "t5");
14597 orc_program_add_temporary (p, 2, "t6");
14598 orc_program_add_temporary (p, 2, "t7");
14599 orc_program_add_temporary (p, 2, "t8");
14600 orc_program_add_temporary (p, 2, "t9");
14601 orc_program_add_temporary (p, 1, "t10");
14602 orc_program_add_temporary (p, 1, "t11");
14603 orc_program_add_temporary (p, 1, "t12");
14604 orc_program_add_temporary (p, 4, "t13");
14606 orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_C2,
14608 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
14610 orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T3, ORC_VAR_S2,
14611 ORC_VAR_D1, ORC_VAR_D1);
14612 orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2,
14614 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_D1,
14616 orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T3, ORC_VAR_S3,
14617 ORC_VAR_D1, ORC_VAR_D1);
14618 orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2,
14620 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
14622 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T4, ORC_VAR_C3,
14624 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
14626 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T1,
14628 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_T6,
14630 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_C4,
14632 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
14634 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1,
14636 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T6,
14638 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T4, ORC_VAR_T5,
14640 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5,
14642 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_C5,
14644 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
14646 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T1,
14648 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_C6,
14650 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
14652 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T8, ORC_VAR_T4, ORC_VAR_T1,
14654 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_C7,
14656 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
14658 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T1,
14660 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T1,
14662 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T10, ORC_VAR_T7,
14663 ORC_VAR_D1, ORC_VAR_D1);
14664 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
14665 ORC_VAR_D1, ORC_VAR_D1);
14666 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
14667 ORC_VAR_D1, ORC_VAR_D1);
14668 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T12,
14669 ORC_VAR_T11, ORC_VAR_D1);
14670 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T10,
14671 ORC_VAR_C8, ORC_VAR_D1);
14672 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T13, ORC_VAR_T1,
14673 ORC_VAR_T2, ORC_VAR_D1);
14674 orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T13, ORC_VAR_C2,
14677 orc_program_compile (p);
14680 orc_once_mutex_unlock ();
14685 ex->arrays[ORC_VAR_D1] = d1;
14686 ex->arrays[ORC_VAR_S1] = (void *) s1;
14687 ex->arrays[ORC_VAR_S2] = (void *) s2;
14688 ex->arrays[ORC_VAR_S3] = (void *) s3;
14690 func = p->code_exec;
14696 /* cogorc_convert_I420_BGRA_avg */
14699 cogorc_convert_I420_BGRA_avg (orc_uint32 * ORC_RESTRICT d1,
14700 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
14701 const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4,
14702 const orc_uint8 * ORC_RESTRICT s5, int n)
14705 orc_union32 *ORC_RESTRICT ptr0;
14706 const orc_int8 *ORC_RESTRICT ptr4;
14707 const orc_int8 *ORC_RESTRICT ptr5;
14708 const orc_int8 *ORC_RESTRICT ptr6;
14709 const orc_int8 *ORC_RESTRICT ptr7;
14710 const orc_int8 *ORC_RESTRICT ptr8;
14762 ptr0 = (orc_union32 *) d1;
14763 ptr4 = (orc_int8 *) s1;
14764 ptr5 = (orc_int8 *) s2;
14765 ptr6 = (orc_int8 *) s3;
14766 ptr7 = (orc_int8 *) s4;
14767 ptr8 = (orc_int8 *) s5;
14770 var47 = (int) 0x00000080; /* 128 or 6.32404e-322f */
14772 var48 = (int) 0x00000080; /* 128 or 6.32404e-322f */
14774 var49 = (int) 0x00000080; /* 128 or 6.32404e-322f */
14776 var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
14778 var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
14780 var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
14782 var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
14784 var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
14786 var55 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
14788 var56.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14789 var56.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14790 var56.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14791 var56.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14793 for (i = 0; i < n; i++) {
14797 var58 = var46 - var47;
14802 (i & 1) ? ((orc_uint8) ptr5[i >> 1] + (orc_uint8) ptr5[(i >> 1) + 1] +
14803 1) >> 1 : ptr5[i >> 1];
14806 (i & 1) ? ((orc_uint8) ptr6[i >> 1] + (orc_uint8) ptr6[(i >> 1) + 1] +
14807 1) >> 1 : ptr6[i >> 1];
14809 var62 = ((orc_uint8) var60 + (orc_uint8) var61 + 1) >> 1;
14811 var63 = var62 - var48;
14816 (i & 1) ? ((orc_uint8) ptr7[i >> 1] + (orc_uint8) ptr7[(i >> 1) + 1] +
14817 1) >> 1 : ptr7[i >> 1];
14820 (i & 1) ? ((orc_uint8) ptr8[i >> 1] + (orc_uint8) ptr8[(i >> 1) + 1] +
14821 1) >> 1 : ptr8[i >> 1];
14823 var67 = ((orc_uint8) var65 + (orc_uint8) var66 + 1) >> 1;
14825 var68 = var67 - var49;
14829 var70.i = (var59.i * var50.i) & 0xffff;
14831 var71.i = var70.i >> 8;
14833 var72.i = ORC_CLAMP_SW (var59.i + var71.i);
14835 var73.i = ORC_CLAMP_SW (var72.i + var69.i);
14837 var74.i = (var69.i * var51.i) & 0xffff;
14839 var75.i = var74.i >> 8;
14841 var76.i = ORC_CLAMP_SW (var73.i - var75.i);
14843 var77.i = ORC_CLAMP_SW (var76.i + var69.i);
14845 var78.i = ORC_CLAMP_SW (var72.i + var64.i);
14847 var79.i = ORC_CLAMP_SW (var78.i + var64.i);
14849 var80.i = (var64.i * var52.i) & 0xffff;
14851 var81.i = var80.i >> 8;
14853 var82.i = ORC_CLAMP_SW (var79.i + var81.i);
14855 var83.i = (var64.i * var53.i) & 0xffff;
14857 var84.i = var83.i >> 8;
14859 var85.i = ORC_CLAMP_SW (var72.i - var84.i);
14861 var86.i = (var69.i * var54.i) & 0xffff;
14863 var87.i = var86.i >> 8;
14865 var88.i = ORC_CLAMP_SW (var85.i - var87.i);
14867 var89.i = ORC_CLAMP_SW (var88.i - var87.i);
14868 /* 41: convssswb */
14869 var90 = ORC_CLAMP_SB (var77.i);
14870 /* 42: convssswb */
14871 var91 = ORC_CLAMP_SB (var89.i);
14872 /* 43: convssswb */
14873 var92 = ORC_CLAMP_SB (var82.i);
14877 _dest.x2[0] = var92;
14878 _dest.x2[1] = var91;
14884 _dest.x2[0] = var90;
14885 _dest.x2[1] = var55;
14891 _dest.x2[0] = var93.i;
14892 _dest.x2[1] = var94.i;
14896 var57.x4[0] = var95.x4[0] + var56.x4[0];
14897 var57.x4[1] = var95.x4[1] + var56.x4[1];
14898 var57.x4[2] = var95.x4[2] + var56.x4[2];
14899 var57.x4[3] = var95.x4[3] + var56.x4[3];
14908 _backup_cogorc_convert_I420_BGRA_avg (OrcExecutor * ORC_RESTRICT ex)
14912 orc_union32 *ORC_RESTRICT ptr0;
14913 const orc_int8 *ORC_RESTRICT ptr4;
14914 const orc_int8 *ORC_RESTRICT ptr5;
14915 const orc_int8 *ORC_RESTRICT ptr6;
14916 const orc_int8 *ORC_RESTRICT ptr7;
14917 const orc_int8 *ORC_RESTRICT ptr8;
14969 ptr0 = (orc_union32 *) ex->arrays[0];
14970 ptr4 = (orc_int8 *) ex->arrays[4];
14971 ptr5 = (orc_int8 *) ex->arrays[5];
14972 ptr6 = (orc_int8 *) ex->arrays[6];
14973 ptr7 = (orc_int8 *) ex->arrays[7];
14974 ptr8 = (orc_int8 *) ex->arrays[8];
14977 var47 = (int) 0x00000080; /* 128 or 6.32404e-322f */
14979 var48 = (int) 0x00000080; /* 128 or 6.32404e-322f */
14981 var49 = (int) 0x00000080; /* 128 or 6.32404e-322f */
14983 var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */
14985 var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */
14987 var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */
14989 var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */
14991 var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */
14993 var55 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
14995 var56.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14996 var56.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14997 var56.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */
14998 var56.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */
15000 for (i = 0; i < n; i++) {
15004 var58 = var46 - var47;
15009 (i & 1) ? ((orc_uint8) ptr5[i >> 1] + (orc_uint8) ptr5[(i >> 1) + 1] +
15010 1) >> 1 : ptr5[i >> 1];
15013 (i & 1) ? ((orc_uint8) ptr6[i >> 1] + (orc_uint8) ptr6[(i >> 1) + 1] +
15014 1) >> 1 : ptr6[i >> 1];
15016 var62 = ((orc_uint8) var60 + (orc_uint8) var61 + 1) >> 1;
15018 var63 = var62 - var48;
15023 (i & 1) ? ((orc_uint8) ptr7[i >> 1] + (orc_uint8) ptr7[(i >> 1) + 1] +
15024 1) >> 1 : ptr7[i >> 1];
15027 (i & 1) ? ((orc_uint8) ptr8[i >> 1] + (orc_uint8) ptr8[(i >> 1) + 1] +
15028 1) >> 1 : ptr8[i >> 1];
15030 var67 = ((orc_uint8) var65 + (orc_uint8) var66 + 1) >> 1;
15032 var68 = var67 - var49;
15036 var70.i = (var59.i * var50.i) & 0xffff;
15038 var71.i = var70.i >> 8;
15040 var72.i = ORC_CLAMP_SW (var59.i + var71.i);
15042 var73.i = ORC_CLAMP_SW (var72.i + var69.i);
15044 var74.i = (var69.i * var51.i) & 0xffff;
15046 var75.i = var74.i >> 8;
15048 var76.i = ORC_CLAMP_SW (var73.i - var75.i);
15050 var77.i = ORC_CLAMP_SW (var76.i + var69.i);
15052 var78.i = ORC_CLAMP_SW (var72.i + var64.i);
15054 var79.i = ORC_CLAMP_SW (var78.i + var64.i);
15056 var80.i = (var64.i * var52.i) & 0xffff;
15058 var81.i = var80.i >> 8;
15060 var82.i = ORC_CLAMP_SW (var79.i + var81.i);
15062 var83.i = (var64.i * var53.i) & 0xffff;
15064 var84.i = var83.i >> 8;
15066 var85.i = ORC_CLAMP_SW (var72.i - var84.i);
15068 var86.i = (var69.i * var54.i) & 0xffff;
15070 var87.i = var86.i >> 8;
15072 var88.i = ORC_CLAMP_SW (var85.i - var87.i);
15074 var89.i = ORC_CLAMP_SW (var88.i - var87.i);
15075 /* 41: convssswb */
15076 var90 = ORC_CLAMP_SB (var77.i);
15077 /* 42: convssswb */
15078 var91 = ORC_CLAMP_SB (var89.i);
15079 /* 43: convssswb */
15080 var92 = ORC_CLAMP_SB (var82.i);
15084 _dest.x2[0] = var92;
15085 _dest.x2[1] = var91;
15091 _dest.x2[0] = var90;
15092 _dest.x2[1] = var55;
15098 _dest.x2[0] = var93.i;
15099 _dest.x2[1] = var94.i;
15103 var57.x4[0] = var95.x4[0] + var56.x4[0];
15104 var57.x4[1] = var95.x4[1] + var56.x4[1];
15105 var57.x4[2] = var95.x4[2] + var56.x4[2];
15106 var57.x4[3] = var95.x4[3] + var56.x4[3];
15114 cogorc_convert_I420_BGRA_avg (orc_uint32 * ORC_RESTRICT d1,
15115 const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
15116 const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4,
15117 const orc_uint8 * ORC_RESTRICT s5, int n)
15119 OrcExecutor _ex, *ex = &_ex;
15120 static volatile int p_inited = 0;
15121 static OrcProgram *p = 0;
15122 void (*func) (OrcExecutor *);
15125 orc_once_mutex_lock ();
15128 p = orc_program_new ();
15129 orc_program_set_name (p, "cogorc_convert_I420_BGRA_avg");
15130 orc_program_set_backup_function (p, _backup_cogorc_convert_I420_BGRA_avg);
15131 orc_program_add_destination (p, 4, "d1");
15132 orc_program_add_source (p, 1, "s1");
15133 orc_program_add_source (p, 1, "s2");
15134 orc_program_add_source (p, 1, "s3");
15135 orc_program_add_source (p, 1, "s4");
15136 orc_program_add_source (p, 1, "s5");
15137 orc_program_add_constant (p, 1, 0x00000008, "c1");
15138 orc_program_add_constant (p, 1, 0x00000080, "c2");
15139 orc_program_add_constant (p, 4, 0x0000002a, "c3");
15140 orc_program_add_constant (p, 4, 0x00000067, "c4");
15141 orc_program_add_constant (p, 4, 0x00000004, "c5");
15142 orc_program_add_constant (p, 4, 0x00000064, "c6");
15143 orc_program_add_constant (p, 4, 0x00000068, "c7");
15144 orc_program_add_constant (p, 4, 0x000000ff, "c8");
15145 orc_program_add_temporary (p, 2, "t1");
15146 orc_program_add_temporary (p, 2, "t2");
15147 orc_program_add_temporary (p, 1, "t3");
15148 orc_program_add_temporary (p, 1, "t4");
15149 orc_program_add_temporary (p, 2, "t5");
15150 orc_program_add_temporary (p, 2, "t6");
15151 orc_program_add_temporary (p, 2, "t7");
15152 orc_program_add_temporary (p, 2, "t8");
15153 orc_program_add_temporary (p, 2, "t9");
15154 orc_program_add_temporary (p, 2, "t10");
15155 orc_program_add_temporary (p, 1, "t11");
15156 orc_program_add_temporary (p, 1, "t12");
15157 orc_program_add_temporary (p, 1, "t13");
15158 orc_program_add_temporary (p, 4, "t14");
15160 orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_C2,
15162 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_D1,
15164 orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T3, ORC_VAR_S2,
15165 ORC_VAR_D1, ORC_VAR_D1);
15166 orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T4, ORC_VAR_S3,
15167 ORC_VAR_D1, ORC_VAR_D1);
15168 orc_program_append_2 (p, "avgub", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
15170 orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2,
15172 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1,
15174 orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T3, ORC_VAR_S4,
15175 ORC_VAR_D1, ORC_VAR_D1);
15176 orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T4, ORC_VAR_S5,
15177 ORC_VAR_D1, ORC_VAR_D1);
15178 orc_program_append_2 (p, "avgub", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
15180 orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2,
15182 orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T3, ORC_VAR_D1,
15184 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_C3,
15186 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
15188 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T1,
15190 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T7,
15192 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C4,
15194 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
15196 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T1,
15198 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T7,
15200 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5, ORC_VAR_T6,
15202 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10,
15203 ORC_VAR_T6, ORC_VAR_D1);
15204 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_C5,
15206 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
15208 orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10,
15209 ORC_VAR_T1, ORC_VAR_D1);
15210 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_C6,
15212 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
15214 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T1,
15216 orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C7,
15218 orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
15220 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T1,
15222 orc_program_append_2 (p, "subssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T1,
15224 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8,
15225 ORC_VAR_D1, ORC_VAR_D1);
15226 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9,
15227 ORC_VAR_D1, ORC_VAR_D1);
15228 orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10,
15229 ORC_VAR_D1, ORC_VAR_D1);
15230 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T13,
15231 ORC_VAR_T12, ORC_VAR_D1);
15232 orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T11,
15233 ORC_VAR_C8, ORC_VAR_D1);
15234 orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T1,
15235 ORC_VAR_T2, ORC_VAR_D1);
15236 orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C2,
15239 orc_program_compile (p);
15242 orc_once_mutex_unlock ();
15247 ex->arrays[ORC_VAR_D1] = d1;
15248 ex->arrays[ORC_VAR_S1] = (void *) s1;
15249 ex->arrays[ORC_VAR_S2] = (void *) s2;
15250 ex->arrays[ORC_VAR_S3] = (void *) s3;
15251 ex->arrays[ORC_VAR_S4] = (void *) s4;
15252 ex->arrays[ORC_VAR_S5] = (void *) s5;
15254 func = p->code_exec;