Branch data Line data Source code
1 : :
2 : : /* autogenerated from gstfieldanalysisorc.orc */
3 : :
4 : : #ifdef HAVE_CONFIG_H
5 : : #include "config.h"
6 : : #endif
7 : : #ifndef DISABLE_ORC
8 : : #include <orc/orc.h>
9 : : #endif
10 : : #include <glib.h>
11 : :
12 : : #ifndef _ORC_INTEGER_TYPEDEFS_
13 : : #define _ORC_INTEGER_TYPEDEFS_
14 : : #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
15 : : #include <stdint.h>
16 : : typedef int8_t orc_int8;
17 : : typedef int16_t orc_int16;
18 : : typedef int32_t orc_int32;
19 : : typedef int64_t orc_int64;
20 : : typedef uint8_t orc_uint8;
21 : : typedef uint16_t orc_uint16;
22 : : typedef uint32_t orc_uint32;
23 : : typedef uint64_t orc_uint64;
24 : : #define ORC_UINT64_C(x) UINT64_C(x)
25 : : #elif defined(_MSC_VER)
26 : : typedef signed __int8 orc_int8;
27 : : typedef signed __int16 orc_int16;
28 : : typedef signed __int32 orc_int32;
29 : : typedef signed __int64 orc_int64;
30 : : typedef unsigned __int8 orc_uint8;
31 : : typedef unsigned __int16 orc_uint16;
32 : : typedef unsigned __int32 orc_uint32;
33 : : typedef unsigned __int64 orc_uint64;
34 : : #define ORC_UINT64_C(x) (x##Ui64)
35 : : #else
36 : : #include <limits.h>
37 : : typedef signed char orc_int8;
38 : : typedef short orc_int16;
39 : : typedef int orc_int32;
40 : : typedef unsigned char orc_uint8;
41 : : typedef unsigned short orc_uint16;
42 : : typedef unsigned int orc_uint32;
43 : : #if INT_MAX == LONG_MAX
44 : : typedef long long orc_int64;
45 : : typedef unsigned long long orc_uint64;
46 : : #define ORC_UINT64_C(x) (x##ULL)
47 : : #else
48 : : typedef long orc_int64;
49 : : typedef unsigned long orc_uint64;
50 : : #define ORC_UINT64_C(x) (x##UL)
51 : : #endif
52 : : #endif
53 : : typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
54 : : typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
55 : : typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64;
56 : : #endif
57 : :
58 : : void orc_same_parity_sad_planar_yuv (guint32 * a1, const orc_uint8 * s1, const orc_uint8 * s2, int p2, int n);
59 : : void orc_same_parity_ssd_planar_yuv (guint32 * a1, const orc_uint8 * s1, const orc_uint8 * s2, int p2, int n);
60 : : void orc_same_parity_3_tap_planar_yuv (guint32 * a1, const orc_uint8 * s1, const orc_uint8 * s2, const orc_uint8 * s3, const orc_uint8 * s4, const orc_uint8 * s5, const orc_uint8 * s6, int p2, int n);
61 : : void orc_opposite_parity_5_tap_planar_yuv (guint32 * a1, const orc_uint8 * s1, const orc_uint8 * s2, const orc_uint8 * s3, const orc_uint8 * s4, const orc_uint8 * s5, int p2, int n);
62 : :
63 : : void gst_fieldanalysis_orc_init (void);
64 : :
65 : :
66 : : /* begin Orc C target preamble */
67 : : #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
68 : : #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
69 : : #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
70 : : #define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
71 : : #define ORC_SB_MAX 127
72 : : #define ORC_SB_MIN (-1-ORC_SB_MAX)
73 : : #define ORC_UB_MAX 255
74 : : #define ORC_UB_MIN 0
75 : : #define ORC_SW_MAX 32767
76 : : #define ORC_SW_MIN (-1-ORC_SW_MAX)
77 : : #define ORC_UW_MAX 65535
78 : : #define ORC_UW_MIN 0
79 : : #define ORC_SL_MAX 2147483647
80 : : #define ORC_SL_MIN (-1-ORC_SL_MAX)
81 : : #define ORC_UL_MAX 4294967295U
82 : : #define ORC_UL_MIN 0
83 : : #define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
84 : : #define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
85 : : #define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
86 : : #define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
87 : : #define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
88 : : #define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
89 : : #define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))
90 : : #define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))
91 : : #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))
92 : : #define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
93 : : #define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
94 : : #define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
95 : : #define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
96 : : #define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
97 : : #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
98 : : #define ORC_RESTRICT restrict
99 : : #elif defined(__GNUC__) && __GNUC__ >= 4
100 : : #define ORC_RESTRICT __restrict__
101 : : #else
102 : : #define ORC_RESTRICT
103 : : #endif
104 : : /* end Orc C target preamble */
105 : :
106 : :
107 : :
108 : : /* orc_same_parity_sad_planar_yuv */
109 : : #ifdef DISABLE_ORC
110 : : void
111 : : orc_same_parity_sad_planar_yuv (guint32 * a1, const orc_uint8 * s1, const orc_uint8 * s2, int p2, int n){
112 : : int i;
113 : : const orc_int8 * ORC_RESTRICT ptr4;
114 : : const orc_int8 * ORC_RESTRICT ptr5;
115 : : orc_union32 var12 = { 0 };
116 : : orc_int8 var36;
117 : : orc_int8 var37;
118 : : orc_union32 var38;
119 : : orc_union16 var39;
120 : : orc_union16 var40;
121 : : orc_union16 var41;
122 : : orc_union16 var42;
123 : : orc_union32 var43;
124 : : orc_union32 var44;
125 : : orc_union32 var45;
126 : :
127 : : ptr4 = (orc_int8 *)s1;
128 : : ptr5 = (orc_int8 *)s2;
129 : :
130 : : /* 7: loadpl */
131 : : var38.i = p2;
132 : :
133 : : for (i = 0; i < n; i++) {
134 : : /* 0: loadb */
135 : : var36 = ptr4[i];
136 : : /* 1: convubw */
137 : : var39.i = (orc_uint8)var36;
138 : : /* 2: loadb */
139 : : var37 = ptr5[i];
140 : : /* 3: convubw */
141 : : var40.i = (orc_uint8)var37;
142 : : /* 4: subw */
143 : : var41.i = var39.i - var40.i;
144 : : /* 5: absw */
145 : : var42.i = ORC_ABS(var41.i);
146 : : /* 6: convuwl */
147 : : var43.i = (orc_uint16)var42.i;
148 : : /* 8: cmpgtsl */
149 : : var44.i = (var43.i > var38.i) ? (~0) : 0;
150 : : /* 9: andl */
151 : : var45.i = var43.i & var44.i;
152 : : /* 10: accl */
153 : : var12.i = var12.i + var45.i;
154 : : }
155 : : *a1 = var12.i;
156 : :
157 : : }
158 : :
159 : : #else
160 : : static void
161 : 0 : _backup_orc_same_parity_sad_planar_yuv (OrcExecutor * ex)
162 : : {
163 : : int i;
164 : 0 : int n = ex->n;
165 : : const orc_int8 * ORC_RESTRICT ptr4;
166 : : const orc_int8 * ORC_RESTRICT ptr5;
167 : 0 : orc_union32 var12 = { 0 };
168 : : orc_int8 var36;
169 : : orc_int8 var37;
170 : : orc_union32 var38;
171 : : orc_union16 var39;
172 : : orc_union16 var40;
173 : : orc_union16 var41;
174 : : orc_union16 var42;
175 : : orc_union32 var43;
176 : : orc_union32 var44;
177 : : orc_union32 var45;
178 : :
179 : 0 : ptr4 = (orc_int8 *)ex->arrays[4];
180 : 0 : ptr5 = (orc_int8 *)ex->arrays[5];
181 : :
182 : : /* 7: loadpl */
183 : 0 : var38.i = ex->params[25];
184 : :
185 [ # # ]: 0 : for (i = 0; i < n; i++) {
186 : : /* 0: loadb */
187 : 0 : var36 = ptr4[i];
188 : : /* 1: convubw */
189 : 0 : var39.i = (orc_uint8)var36;
190 : : /* 2: loadb */
191 : 0 : var37 = ptr5[i];
192 : : /* 3: convubw */
193 : 0 : var40.i = (orc_uint8)var37;
194 : : /* 4: subw */
195 : 0 : var41.i = var39.i - var40.i;
196 : : /* 5: absw */
197 : 0 : var42.i = ORC_ABS(var41.i);
198 : : /* 6: convuwl */
199 : 0 : var43.i = (orc_uint16)var42.i;
200 : : /* 8: cmpgtsl */
201 [ # # ]: 0 : var44.i = (var43.i > var38.i) ? (~0) : 0;
202 : : /* 9: andl */
203 : 0 : var45.i = var43.i & var44.i;
204 : : /* 10: accl */
205 : 0 : var12.i = var12.i + var45.i;
206 : : }
207 : 0 : ex->accumulators[0] = var12.i;
208 : :
209 : 0 : }
210 : :
211 : : static OrcProgram *_orc_program_orc_same_parity_sad_planar_yuv;
212 : : void
213 : 0 : orc_same_parity_sad_planar_yuv (guint32 * a1, const orc_uint8 * s1, const orc_uint8 * s2, int p2, int n)
214 : : {
215 : 0 : OrcExecutor _ex, *ex = &_ex;
216 : 0 : OrcProgram *p = _orc_program_orc_same_parity_sad_planar_yuv;
217 : : void (*func) (OrcExecutor *);
218 : :
219 : 0 : ex->program = p;
220 : :
221 : 0 : ex->n = n;
222 : 0 : ex->arrays[ORC_VAR_S1] = (void *)s1;
223 : 0 : ex->arrays[ORC_VAR_S2] = (void *)s2;
224 : 0 : ex->params[ORC_VAR_P2] = p2;
225 : :
226 : 0 : func = p->code_exec;
227 : 0 : func (ex);
228 : 0 : *a1 = orc_executor_get_accumulator (ex, ORC_VAR_A1);
229 : 0 : }
230 : : #endif
231 : :
232 : :
233 : : /* orc_same_parity_ssd_planar_yuv */
234 : : #ifdef DISABLE_ORC
235 : : void
236 : : orc_same_parity_ssd_planar_yuv (guint32 * a1, const orc_uint8 * s1, const orc_uint8 * s2, int p2, int n){
237 : : int i;
238 : : const orc_int8 * ORC_RESTRICT ptr4;
239 : : const orc_int8 * ORC_RESTRICT ptr5;
240 : : orc_union32 var12 = { 0 };
241 : : orc_int8 var36;
242 : : orc_int8 var37;
243 : : orc_union32 var38;
244 : : orc_union16 var39;
245 : : orc_union16 var40;
246 : : orc_union16 var41;
247 : : orc_union32 var42;
248 : : orc_union32 var43;
249 : : orc_union32 var44;
250 : :
251 : : ptr4 = (orc_int8 *)s1;
252 : : ptr5 = (orc_int8 *)s2;
253 : :
254 : : /* 6: loadpl */
255 : : var38.i = p2;
256 : :
257 : : for (i = 0; i < n; i++) {
258 : : /* 0: loadb */
259 : : var36 = ptr4[i];
260 : : /* 1: convubw */
261 : : var39.i = (orc_uint8)var36;
262 : : /* 2: loadb */
263 : : var37 = ptr5[i];
264 : : /* 3: convubw */
265 : : var40.i = (orc_uint8)var37;
266 : : /* 4: subw */
267 : : var41.i = var39.i - var40.i;
268 : : /* 5: mulswl */
269 : : var42.i = var41.i * var41.i;
270 : : /* 7: cmpgtsl */
271 : : var43.i = (var42.i > var38.i) ? (~0) : 0;
272 : : /* 8: andl */
273 : : var44.i = var42.i & var43.i;
274 : : /* 9: accl */
275 : : var12.i = var12.i + var44.i;
276 : : }
277 : : *a1 = var12.i;
278 : :
279 : : }
280 : :
281 : : #else
282 : : static void
283 : 0 : _backup_orc_same_parity_ssd_planar_yuv (OrcExecutor * ex)
284 : : {
285 : : int i;
286 : 0 : int n = ex->n;
287 : : const orc_int8 * ORC_RESTRICT ptr4;
288 : : const orc_int8 * ORC_RESTRICT ptr5;
289 : 0 : orc_union32 var12 = { 0 };
290 : : orc_int8 var36;
291 : : orc_int8 var37;
292 : : orc_union32 var38;
293 : : orc_union16 var39;
294 : : orc_union16 var40;
295 : : orc_union16 var41;
296 : : orc_union32 var42;
297 : : orc_union32 var43;
298 : : orc_union32 var44;
299 : :
300 : 0 : ptr4 = (orc_int8 *)ex->arrays[4];
301 : 0 : ptr5 = (orc_int8 *)ex->arrays[5];
302 : :
303 : : /* 6: loadpl */
304 : 0 : var38.i = ex->params[25];
305 : :
306 [ # # ]: 0 : for (i = 0; i < n; i++) {
307 : : /* 0: loadb */
308 : 0 : var36 = ptr4[i];
309 : : /* 1: convubw */
310 : 0 : var39.i = (orc_uint8)var36;
311 : : /* 2: loadb */
312 : 0 : var37 = ptr5[i];
313 : : /* 3: convubw */
314 : 0 : var40.i = (orc_uint8)var37;
315 : : /* 4: subw */
316 : 0 : var41.i = var39.i - var40.i;
317 : : /* 5: mulswl */
318 : 0 : var42.i = var41.i * var41.i;
319 : : /* 7: cmpgtsl */
320 [ # # ]: 0 : var43.i = (var42.i > var38.i) ? (~0) : 0;
321 : : /* 8: andl */
322 : 0 : var44.i = var42.i & var43.i;
323 : : /* 9: accl */
324 : 0 : var12.i = var12.i + var44.i;
325 : : }
326 : 0 : ex->accumulators[0] = var12.i;
327 : :
328 : 0 : }
329 : :
330 : : static OrcProgram *_orc_program_orc_same_parity_ssd_planar_yuv;
331 : : void
332 : 0 : orc_same_parity_ssd_planar_yuv (guint32 * a1, const orc_uint8 * s1, const orc_uint8 * s2, int p2, int n)
333 : : {
334 : 0 : OrcExecutor _ex, *ex = &_ex;
335 : 0 : OrcProgram *p = _orc_program_orc_same_parity_ssd_planar_yuv;
336 : : void (*func) (OrcExecutor *);
337 : :
338 : 0 : ex->program = p;
339 : :
340 : 0 : ex->n = n;
341 : 0 : ex->arrays[ORC_VAR_S1] = (void *)s1;
342 : 0 : ex->arrays[ORC_VAR_S2] = (void *)s2;
343 : 0 : ex->params[ORC_VAR_P2] = p2;
344 : :
345 : 0 : func = p->code_exec;
346 : 0 : func (ex);
347 : 0 : *a1 = orc_executor_get_accumulator (ex, ORC_VAR_A1);
348 : 0 : }
349 : : #endif
350 : :
351 : :
352 : : /* orc_same_parity_3_tap_planar_yuv */
353 : : #ifdef DISABLE_ORC
354 : : void
355 : : orc_same_parity_3_tap_planar_yuv (guint32 * a1, const orc_uint8 * s1, const orc_uint8 * s2, const orc_uint8 * s3, const orc_uint8 * s4, const orc_uint8 * s5, const orc_uint8 * s6, int p2, int n){
356 : : int i;
357 : : const orc_int8 * ORC_RESTRICT ptr4;
358 : : const orc_int8 * ORC_RESTRICT ptr5;
359 : : const orc_int8 * ORC_RESTRICT ptr6;
360 : : const orc_int8 * ORC_RESTRICT ptr7;
361 : : const orc_int8 * ORC_RESTRICT ptr8;
362 : : const orc_int8 * ORC_RESTRICT ptr9;
363 : : orc_union32 var12 = { 0 };
364 : : orc_int8 var40;
365 : : orc_int8 var41;
366 : : orc_int8 var42;
367 : : orc_int8 var43;
368 : : orc_int8 var44;
369 : : orc_int8 var45;
370 : : orc_union32 var46;
371 : : orc_union16 var47;
372 : : orc_union16 var48;
373 : : orc_union16 var49;
374 : : orc_union16 var50;
375 : : orc_union16 var51;
376 : : orc_union16 var52;
377 : : orc_union16 var53;
378 : : orc_union16 var54;
379 : : orc_union16 var55;
380 : : orc_union16 var56;
381 : : orc_union16 var57;
382 : : orc_union16 var58;
383 : : orc_union16 var59;
384 : : orc_union16 var60;
385 : : orc_union32 var61;
386 : : orc_union32 var62;
387 : : orc_union32 var63;
388 : :
389 : : ptr4 = (orc_int8 *)s1;
390 : : ptr5 = (orc_int8 *)s2;
391 : : ptr6 = (orc_int8 *)s3;
392 : : ptr7 = (orc_int8 *)s4;
393 : : ptr8 = (orc_int8 *)s5;
394 : : ptr9 = (orc_int8 *)s6;
395 : :
396 : : /* 21: loadpl */
397 : : var46.i = p2;
398 : :
399 : : for (i = 0; i < n; i++) {
400 : : /* 0: loadb */
401 : : var40 = ptr4[i];
402 : : /* 1: convubw */
403 : : var47.i = (orc_uint8)var40;
404 : : /* 2: loadb */
405 : : var41 = ptr5[i];
406 : : /* 3: convubw */
407 : : var48.i = (orc_uint8)var41;
408 : : /* 4: loadb */
409 : : var42 = ptr6[i];
410 : : /* 5: convubw */
411 : : var49.i = (orc_uint8)var42;
412 : : /* 6: loadb */
413 : : var43 = ptr7[i];
414 : : /* 7: convubw */
415 : : var50.i = (orc_uint8)var43;
416 : : /* 8: loadb */
417 : : var44 = ptr8[i];
418 : : /* 9: convubw */
419 : : var51.i = (orc_uint8)var44;
420 : : /* 10: loadb */
421 : : var45 = ptr9[i];
422 : : /* 11: convubw */
423 : : var52.i = (orc_uint8)var45;
424 : : /* 12: shlw */
425 : : var53.i = var48.i << 2;
426 : : /* 13: shlw */
427 : : var54.i = var51.i << 2;
428 : : /* 14: addw */
429 : : var55.i = var47.i + var53.i;
430 : : /* 15: addw */
431 : : var56.i = var55.i + var49.i;
432 : : /* 16: addw */
433 : : var57.i = var50.i + var54.i;
434 : : /* 17: addw */
435 : : var58.i = var57.i + var52.i;
436 : : /* 18: subw */
437 : : var59.i = var56.i - var58.i;
438 : : /* 19: absw */
439 : : var60.i = ORC_ABS(var59.i);
440 : : /* 20: convuwl */
441 : : var61.i = (orc_uint16)var60.i;
442 : : /* 22: cmpgtsl */
443 : : var62.i = (var61.i > var46.i) ? (~0) : 0;
444 : : /* 23: andl */
445 : : var63.i = var61.i & var62.i;
446 : : /* 24: accl */
447 : : var12.i = var12.i + var63.i;
448 : : }
449 : : *a1 = var12.i;
450 : :
451 : : }
452 : :
453 : : #else
454 : : static void
455 : 0 : _backup_orc_same_parity_3_tap_planar_yuv (OrcExecutor * ex)
456 : : {
457 : : int i;
458 : 0 : int n = ex->n;
459 : : const orc_int8 * ORC_RESTRICT ptr4;
460 : : const orc_int8 * ORC_RESTRICT ptr5;
461 : : const orc_int8 * ORC_RESTRICT ptr6;
462 : : const orc_int8 * ORC_RESTRICT ptr7;
463 : : const orc_int8 * ORC_RESTRICT ptr8;
464 : : const orc_int8 * ORC_RESTRICT ptr9;
465 : 0 : orc_union32 var12 = { 0 };
466 : : orc_int8 var40;
467 : : orc_int8 var41;
468 : : orc_int8 var42;
469 : : orc_int8 var43;
470 : : orc_int8 var44;
471 : : orc_int8 var45;
472 : : orc_union32 var46;
473 : : orc_union16 var47;
474 : : orc_union16 var48;
475 : : orc_union16 var49;
476 : : orc_union16 var50;
477 : : orc_union16 var51;
478 : : orc_union16 var52;
479 : : orc_union16 var53;
480 : : orc_union16 var54;
481 : : orc_union16 var55;
482 : : orc_union16 var56;
483 : : orc_union16 var57;
484 : : orc_union16 var58;
485 : : orc_union16 var59;
486 : : orc_union16 var60;
487 : : orc_union32 var61;
488 : : orc_union32 var62;
489 : : orc_union32 var63;
490 : :
491 : 0 : ptr4 = (orc_int8 *)ex->arrays[4];
492 : 0 : ptr5 = (orc_int8 *)ex->arrays[5];
493 : 0 : ptr6 = (orc_int8 *)ex->arrays[6];
494 : 0 : ptr7 = (orc_int8 *)ex->arrays[7];
495 : 0 : ptr8 = (orc_int8 *)ex->arrays[8];
496 : 0 : ptr9 = (orc_int8 *)ex->arrays[9];
497 : :
498 : : /* 21: loadpl */
499 : 0 : var46.i = ex->params[25];
500 : :
501 [ # # ]: 0 : for (i = 0; i < n; i++) {
502 : : /* 0: loadb */
503 : 0 : var40 = ptr4[i];
504 : : /* 1: convubw */
505 : 0 : var47.i = (orc_uint8)var40;
506 : : /* 2: loadb */
507 : 0 : var41 = ptr5[i];
508 : : /* 3: convubw */
509 : 0 : var48.i = (orc_uint8)var41;
510 : : /* 4: loadb */
511 : 0 : var42 = ptr6[i];
512 : : /* 5: convubw */
513 : 0 : var49.i = (orc_uint8)var42;
514 : : /* 6: loadb */
515 : 0 : var43 = ptr7[i];
516 : : /* 7: convubw */
517 : 0 : var50.i = (orc_uint8)var43;
518 : : /* 8: loadb */
519 : 0 : var44 = ptr8[i];
520 : : /* 9: convubw */
521 : 0 : var51.i = (orc_uint8)var44;
522 : : /* 10: loadb */
523 : 0 : var45 = ptr9[i];
524 : : /* 11: convubw */
525 : 0 : var52.i = (orc_uint8)var45;
526 : : /* 12: shlw */
527 : 0 : var53.i = var48.i << 2;
528 : : /* 13: shlw */
529 : 0 : var54.i = var51.i << 2;
530 : : /* 14: addw */
531 : 0 : var55.i = var47.i + var53.i;
532 : : /* 15: addw */
533 : 0 : var56.i = var55.i + var49.i;
534 : : /* 16: addw */
535 : 0 : var57.i = var50.i + var54.i;
536 : : /* 17: addw */
537 : 0 : var58.i = var57.i + var52.i;
538 : : /* 18: subw */
539 : 0 : var59.i = var56.i - var58.i;
540 : : /* 19: absw */
541 : 0 : var60.i = ORC_ABS(var59.i);
542 : : /* 20: convuwl */
543 : 0 : var61.i = (orc_uint16)var60.i;
544 : : /* 22: cmpgtsl */
545 [ # # ]: 0 : var62.i = (var61.i > var46.i) ? (~0) : 0;
546 : : /* 23: andl */
547 : 0 : var63.i = var61.i & var62.i;
548 : : /* 24: accl */
549 : 0 : var12.i = var12.i + var63.i;
550 : : }
551 : 0 : ex->accumulators[0] = var12.i;
552 : :
553 : 0 : }
554 : :
555 : : static OrcProgram *_orc_program_orc_same_parity_3_tap_planar_yuv;
556 : : void
557 : 0 : orc_same_parity_3_tap_planar_yuv (guint32 * a1, const orc_uint8 * s1, const orc_uint8 * s2, const orc_uint8 * s3, const orc_uint8 * s4, const orc_uint8 * s5, const orc_uint8 * s6, int p2, int n)
558 : : {
559 : 0 : OrcExecutor _ex, *ex = &_ex;
560 : 0 : OrcProgram *p = _orc_program_orc_same_parity_3_tap_planar_yuv;
561 : : void (*func) (OrcExecutor *);
562 : :
563 : 0 : ex->program = p;
564 : :
565 : 0 : ex->n = n;
566 : 0 : ex->arrays[ORC_VAR_S1] = (void *)s1;
567 : 0 : ex->arrays[ORC_VAR_S2] = (void *)s2;
568 : 0 : ex->arrays[ORC_VAR_S3] = (void *)s3;
569 : 0 : ex->arrays[ORC_VAR_S4] = (void *)s4;
570 : 0 : ex->arrays[ORC_VAR_S5] = (void *)s5;
571 : 0 : ex->arrays[ORC_VAR_S6] = (void *)s6;
572 : 0 : ex->params[ORC_VAR_P2] = p2;
573 : :
574 : 0 : func = p->code_exec;
575 : 0 : func (ex);
576 : 0 : *a1 = orc_executor_get_accumulator (ex, ORC_VAR_A1);
577 : 0 : }
578 : : #endif
579 : :
580 : :
581 : : /* orc_opposite_parity_5_tap_planar_yuv */
582 : : #ifdef DISABLE_ORC
583 : : void
584 : : orc_opposite_parity_5_tap_planar_yuv (guint32 * a1, const orc_uint8 * s1, const orc_uint8 * s2, const orc_uint8 * s3, const orc_uint8 * s4, const orc_uint8 * s5, int p2, int n){
585 : : int i;
586 : : const orc_int8 * ORC_RESTRICT ptr4;
587 : : const orc_int8 * ORC_RESTRICT ptr5;
588 : : const orc_int8 * ORC_RESTRICT ptr6;
589 : : const orc_int8 * ORC_RESTRICT ptr7;
590 : : const orc_int8 * ORC_RESTRICT ptr8;
591 : : orc_union32 var12 = { 0 };
592 : : orc_int8 var39;
593 : : orc_int8 var40;
594 : : orc_int8 var41;
595 : : orc_int8 var42;
596 : : orc_int8 var43;
597 : : orc_union16 var44;
598 : : orc_union16 var45;
599 : : orc_union32 var46;
600 : : orc_union16 var47;
601 : : orc_union16 var48;
602 : : orc_union16 var49;
603 : : orc_union16 var50;
604 : : orc_union16 var51;
605 : : orc_union16 var52;
606 : : orc_union16 var53;
607 : : orc_union16 var54;
608 : : orc_union16 var55;
609 : : orc_union16 var56;
610 : : orc_union16 var57;
611 : : orc_union16 var58;
612 : : orc_union16 var59;
613 : : orc_union32 var60;
614 : : orc_union32 var61;
615 : : orc_union32 var62;
616 : :
617 : : ptr4 = (orc_int8 *)s1;
618 : : ptr5 = (orc_int8 *)s2;
619 : : ptr6 = (orc_int8 *)s3;
620 : : ptr7 = (orc_int8 *)s4;
621 : : ptr8 = (orc_int8 *)s5;
622 : :
623 : : /* 11: loadpw */
624 : : var44.i = 0x00000003; /* 3 or 1.4822e-323f */
625 : : /* 13: loadpw */
626 : : var45.i = 0x00000003; /* 3 or 1.4822e-323f */
627 : : /* 21: loadpl */
628 : : var46.i = p2;
629 : :
630 : : for (i = 0; i < n; i++) {
631 : : /* 0: loadb */
632 : : var39 = ptr4[i];
633 : : /* 1: convubw */
634 : : var47.i = (orc_uint8)var39;
635 : : /* 2: loadb */
636 : : var40 = ptr5[i];
637 : : /* 3: convubw */
638 : : var48.i = (orc_uint8)var40;
639 : : /* 4: loadb */
640 : : var41 = ptr6[i];
641 : : /* 5: convubw */
642 : : var49.i = (orc_uint8)var41;
643 : : /* 6: loadb */
644 : : var42 = ptr7[i];
645 : : /* 7: convubw */
646 : : var50.i = (orc_uint8)var42;
647 : : /* 8: loadb */
648 : : var43 = ptr8[i];
649 : : /* 9: convubw */
650 : : var51.i = (orc_uint8)var43;
651 : : /* 10: shlw */
652 : : var52.i = var49.i << 2;
653 : : /* 12: mullw */
654 : : var53.i = (var48.i * var44.i) & 0xffff;
655 : : /* 14: mullw */
656 : : var54.i = (var50.i * var45.i) & 0xffff;
657 : : /* 15: subw */
658 : : var55.i = var47.i - var53.i;
659 : : /* 16: addw */
660 : : var56.i = var55.i + var52.i;
661 : : /* 17: subw */
662 : : var57.i = var56.i - var54.i;
663 : : /* 18: addw */
664 : : var58.i = var57.i + var51.i;
665 : : /* 19: absw */
666 : : var59.i = ORC_ABS(var58.i);
667 : : /* 20: convuwl */
668 : : var60.i = (orc_uint16)var59.i;
669 : : /* 22: cmpgtsl */
670 : : var61.i = (var60.i > var46.i) ? (~0) : 0;
671 : : /* 23: andl */
672 : : var62.i = var60.i & var61.i;
673 : : /* 24: accl */
674 : : var12.i = var12.i + var62.i;
675 : : }
676 : : *a1 = var12.i;
677 : :
678 : : }
679 : :
680 : : #else
681 : : static void
682 : 0 : _backup_orc_opposite_parity_5_tap_planar_yuv (OrcExecutor * ex)
683 : : {
684 : : int i;
685 : 0 : int n = ex->n;
686 : : const orc_int8 * ORC_RESTRICT ptr4;
687 : : const orc_int8 * ORC_RESTRICT ptr5;
688 : : const orc_int8 * ORC_RESTRICT ptr6;
689 : : const orc_int8 * ORC_RESTRICT ptr7;
690 : : const orc_int8 * ORC_RESTRICT ptr8;
691 : 0 : orc_union32 var12 = { 0 };
692 : : orc_int8 var39;
693 : : orc_int8 var40;
694 : : orc_int8 var41;
695 : : orc_int8 var42;
696 : : orc_int8 var43;
697 : : orc_union16 var44;
698 : : orc_union16 var45;
699 : : orc_union32 var46;
700 : : orc_union16 var47;
701 : : orc_union16 var48;
702 : : orc_union16 var49;
703 : : orc_union16 var50;
704 : : orc_union16 var51;
705 : : orc_union16 var52;
706 : : orc_union16 var53;
707 : : orc_union16 var54;
708 : : orc_union16 var55;
709 : : orc_union16 var56;
710 : : orc_union16 var57;
711 : : orc_union16 var58;
712 : : orc_union16 var59;
713 : : orc_union32 var60;
714 : : orc_union32 var61;
715 : : orc_union32 var62;
716 : :
717 : 0 : ptr4 = (orc_int8 *)ex->arrays[4];
718 : 0 : ptr5 = (orc_int8 *)ex->arrays[5];
719 : 0 : ptr6 = (orc_int8 *)ex->arrays[6];
720 : 0 : ptr7 = (orc_int8 *)ex->arrays[7];
721 : 0 : ptr8 = (orc_int8 *)ex->arrays[8];
722 : :
723 : : /* 11: loadpw */
724 : 0 : var44.i = 0x00000003; /* 3 or 1.4822e-323f */
725 : : /* 13: loadpw */
726 : 0 : var45.i = 0x00000003; /* 3 or 1.4822e-323f */
727 : : /* 21: loadpl */
728 : 0 : var46.i = ex->params[25];
729 : :
730 [ # # ]: 0 : for (i = 0; i < n; i++) {
731 : : /* 0: loadb */
732 : 0 : var39 = ptr4[i];
733 : : /* 1: convubw */
734 : 0 : var47.i = (orc_uint8)var39;
735 : : /* 2: loadb */
736 : 0 : var40 = ptr5[i];
737 : : /* 3: convubw */
738 : 0 : var48.i = (orc_uint8)var40;
739 : : /* 4: loadb */
740 : 0 : var41 = ptr6[i];
741 : : /* 5: convubw */
742 : 0 : var49.i = (orc_uint8)var41;
743 : : /* 6: loadb */
744 : 0 : var42 = ptr7[i];
745 : : /* 7: convubw */
746 : 0 : var50.i = (orc_uint8)var42;
747 : : /* 8: loadb */
748 : 0 : var43 = ptr8[i];
749 : : /* 9: convubw */
750 : 0 : var51.i = (orc_uint8)var43;
751 : : /* 10: shlw */
752 : 0 : var52.i = var49.i << 2;
753 : : /* 12: mullw */
754 : 0 : var53.i = (var48.i * var44.i) & 0xffff;
755 : : /* 14: mullw */
756 : 0 : var54.i = (var50.i * var45.i) & 0xffff;
757 : : /* 15: subw */
758 : 0 : var55.i = var47.i - var53.i;
759 : : /* 16: addw */
760 : 0 : var56.i = var55.i + var52.i;
761 : : /* 17: subw */
762 : 0 : var57.i = var56.i - var54.i;
763 : : /* 18: addw */
764 : 0 : var58.i = var57.i + var51.i;
765 : : /* 19: absw */
766 : 0 : var59.i = ORC_ABS(var58.i);
767 : : /* 20: convuwl */
768 : 0 : var60.i = (orc_uint16)var59.i;
769 : : /* 22: cmpgtsl */
770 [ # # ]: 0 : var61.i = (var60.i > var46.i) ? (~0) : 0;
771 : : /* 23: andl */
772 : 0 : var62.i = var60.i & var61.i;
773 : : /* 24: accl */
774 : 0 : var12.i = var12.i + var62.i;
775 : : }
776 : 0 : ex->accumulators[0] = var12.i;
777 : :
778 : 0 : }
779 : :
780 : : static OrcProgram *_orc_program_orc_opposite_parity_5_tap_planar_yuv;
781 : : void
782 : 0 : orc_opposite_parity_5_tap_planar_yuv (guint32 * a1, const orc_uint8 * s1, const orc_uint8 * s2, const orc_uint8 * s3, const orc_uint8 * s4, const orc_uint8 * s5, int p2, int n)
783 : : {
784 : 0 : OrcExecutor _ex, *ex = &_ex;
785 : 0 : OrcProgram *p = _orc_program_orc_opposite_parity_5_tap_planar_yuv;
786 : : void (*func) (OrcExecutor *);
787 : :
788 : 0 : ex->program = p;
789 : :
790 : 0 : ex->n = n;
791 : 0 : ex->arrays[ORC_VAR_S1] = (void *)s1;
792 : 0 : ex->arrays[ORC_VAR_S2] = (void *)s2;
793 : 0 : ex->arrays[ORC_VAR_S3] = (void *)s3;
794 : 0 : ex->arrays[ORC_VAR_S4] = (void *)s4;
795 : 0 : ex->arrays[ORC_VAR_S5] = (void *)s5;
796 : 0 : ex->params[ORC_VAR_P2] = p2;
797 : :
798 : 0 : func = p->code_exec;
799 : 0 : func (ex);
800 : 0 : *a1 = orc_executor_get_accumulator (ex, ORC_VAR_A1);
801 : 0 : }
802 : : #endif
803 : :
804 : :
805 : : void
806 : 6 : gst_fieldanalysis_orc_init (void)
807 : : {
808 : : #ifndef DISABLE_ORC
809 : : {
810 : : /* orc_same_parity_sad_planar_yuv */
811 : : OrcProgram *p;
812 : : OrcCompileResult result;
813 : :
814 : 6 : p = orc_program_new ();
815 : 6 : orc_program_set_name (p, "orc_same_parity_sad_planar_yuv");
816 : 6 : orc_program_set_backup_function (p, _backup_orc_same_parity_sad_planar_yuv);
817 : 6 : orc_program_add_source (p, 1, "s1");
818 : 6 : orc_program_add_source (p, 1, "s2");
819 : 6 : orc_program_add_accumulator (p, 4, "a1");
820 : 6 : orc_program_add_parameter (p, 4, "p2");
821 : 6 : orc_program_add_temporary (p, 2, "t1");
822 : 6 : orc_program_add_temporary (p, 2, "t2");
823 : 6 : orc_program_add_temporary (p, 4, "t3");
824 : 6 : orc_program_add_temporary (p, 4, "t4");
825 : :
826 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, ORC_VAR_D1);
827 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, ORC_VAR_D1);
828 : 6 : orc_program_append_2 (p, "subw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1);
829 : 6 : orc_program_append_2 (p, "absw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1);
830 : 6 : orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1);
831 : 6 : orc_program_append_2 (p, "cmpgtsl", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_P2, ORC_VAR_D1);
832 : 6 : orc_program_append_2 (p, "andl", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_D1);
833 : 6 : orc_program_append_2 (p, "accl", 0, ORC_VAR_A1, ORC_VAR_T3, ORC_VAR_D1, ORC_VAR_D1);
834 : :
835 : 6 : result = orc_program_compile (p);
836 : :
837 : 6 : _orc_program_orc_same_parity_sad_planar_yuv = p;
838 : : }
839 : : {
840 : : /* orc_same_parity_ssd_planar_yuv */
841 : : OrcProgram *p;
842 : : OrcCompileResult result;
843 : :
844 : 6 : p = orc_program_new ();
845 : 6 : orc_program_set_name (p, "orc_same_parity_ssd_planar_yuv");
846 : 6 : orc_program_set_backup_function (p, _backup_orc_same_parity_ssd_planar_yuv);
847 : 6 : orc_program_add_source (p, 1, "s1");
848 : 6 : orc_program_add_source (p, 1, "s2");
849 : 6 : orc_program_add_accumulator (p, 4, "a1");
850 : 6 : orc_program_add_parameter (p, 4, "p2");
851 : 6 : orc_program_add_temporary (p, 2, "t1");
852 : 6 : orc_program_add_temporary (p, 2, "t2");
853 : 6 : orc_program_add_temporary (p, 4, "t3");
854 : 6 : orc_program_add_temporary (p, 4, "t4");
855 : :
856 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, ORC_VAR_D1);
857 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, ORC_VAR_D1);
858 : 6 : orc_program_append_2 (p, "subw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1);
859 : 6 : orc_program_append_2 (p, "mulswl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1);
860 : 6 : orc_program_append_2 (p, "cmpgtsl", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_P2, ORC_VAR_D1);
861 : 6 : orc_program_append_2 (p, "andl", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_D1);
862 : 6 : orc_program_append_2 (p, "accl", 0, ORC_VAR_A1, ORC_VAR_T3, ORC_VAR_D1, ORC_VAR_D1);
863 : :
864 : 6 : result = orc_program_compile (p);
865 : :
866 : 6 : _orc_program_orc_same_parity_ssd_planar_yuv = p;
867 : : }
868 : : {
869 : : /* orc_same_parity_3_tap_planar_yuv */
870 : : OrcProgram *p;
871 : : OrcCompileResult result;
872 : :
873 : 6 : p = orc_program_new ();
874 : 6 : orc_program_set_name (p, "orc_same_parity_3_tap_planar_yuv");
875 : 6 : orc_program_set_backup_function (p, _backup_orc_same_parity_3_tap_planar_yuv);
876 : 6 : orc_program_add_source (p, 1, "s1");
877 : 6 : orc_program_add_source (p, 1, "s2");
878 : 6 : orc_program_add_source (p, 1, "s3");
879 : 6 : orc_program_add_source (p, 1, "s4");
880 : 6 : orc_program_add_source (p, 1, "s5");
881 : 6 : orc_program_add_source (p, 1, "s6");
882 : 6 : orc_program_add_accumulator (p, 4, "a1");
883 : 6 : orc_program_add_constant (p, 4, 0x00000002, "c1");
884 : 6 : orc_program_add_parameter (p, 4, "p2");
885 : 6 : orc_program_add_temporary (p, 2, "t1");
886 : 6 : orc_program_add_temporary (p, 2, "t2");
887 : 6 : orc_program_add_temporary (p, 2, "t3");
888 : 6 : orc_program_add_temporary (p, 2, "t4");
889 : 6 : orc_program_add_temporary (p, 2, "t5");
890 : 6 : orc_program_add_temporary (p, 2, "t6");
891 : 6 : orc_program_add_temporary (p, 4, "t7");
892 : 6 : orc_program_add_temporary (p, 4, "t8");
893 : :
894 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, ORC_VAR_D1);
895 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, ORC_VAR_D1);
896 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T3, ORC_VAR_S3, ORC_VAR_D1, ORC_VAR_D1);
897 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T4, ORC_VAR_S4, ORC_VAR_D1, ORC_VAR_D1);
898 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T5, ORC_VAR_S5, ORC_VAR_D1, ORC_VAR_D1);
899 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T6, ORC_VAR_S6, ORC_VAR_D1, ORC_VAR_D1);
900 : 6 : orc_program_append_2 (p, "shlw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_D1);
901 : 6 : orc_program_append_2 (p, "shlw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C1, ORC_VAR_D1);
902 : 6 : orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1);
903 : 6 : orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_D1);
904 : 6 : orc_program_append_2 (p, "addw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T5, ORC_VAR_D1);
905 : 6 : orc_program_append_2 (p, "addw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T6, ORC_VAR_D1);
906 : 6 : orc_program_append_2 (p, "subw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T4, ORC_VAR_D1);
907 : 6 : orc_program_append_2 (p, "absw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1);
908 : 6 : orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1);
909 : 6 : orc_program_append_2 (p, "cmpgtsl", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_P2, ORC_VAR_D1);
910 : 6 : orc_program_append_2 (p, "andl", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_D1);
911 : 6 : orc_program_append_2 (p, "accl", 0, ORC_VAR_A1, ORC_VAR_T7, ORC_VAR_D1, ORC_VAR_D1);
912 : :
913 : 6 : result = orc_program_compile (p);
914 : :
915 : 6 : _orc_program_orc_same_parity_3_tap_planar_yuv = p;
916 : : }
917 : : {
918 : : /* orc_opposite_parity_5_tap_planar_yuv */
919 : : OrcProgram *p;
920 : : OrcCompileResult result;
921 : :
922 : 6 : p = orc_program_new ();
923 : 6 : orc_program_set_name (p, "orc_opposite_parity_5_tap_planar_yuv");
924 : 6 : orc_program_set_backup_function (p, _backup_orc_opposite_parity_5_tap_planar_yuv);
925 : 6 : orc_program_add_source (p, 1, "s1");
926 : 6 : orc_program_add_source (p, 1, "s2");
927 : 6 : orc_program_add_source (p, 1, "s3");
928 : 6 : orc_program_add_source (p, 1, "s4");
929 : 6 : orc_program_add_source (p, 1, "s5");
930 : 6 : orc_program_add_accumulator (p, 4, "a1");
931 : 6 : orc_program_add_constant (p, 4, 0x00000002, "c1");
932 : 6 : orc_program_add_constant (p, 4, 0x00000003, "c2");
933 : 6 : orc_program_add_parameter (p, 4, "p2");
934 : 6 : orc_program_add_temporary (p, 2, "t1");
935 : 6 : orc_program_add_temporary (p, 2, "t2");
936 : 6 : orc_program_add_temporary (p, 2, "t3");
937 : 6 : orc_program_add_temporary (p, 2, "t4");
938 : 6 : orc_program_add_temporary (p, 2, "t5");
939 : 6 : orc_program_add_temporary (p, 4, "t6");
940 : 6 : orc_program_add_temporary (p, 4, "t7");
941 : :
942 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, ORC_VAR_D1);
943 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, ORC_VAR_D1);
944 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T3, ORC_VAR_S3, ORC_VAR_D1, ORC_VAR_D1);
945 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T4, ORC_VAR_S4, ORC_VAR_D1, ORC_VAR_D1);
946 : 6 : orc_program_append_2 (p, "convubw", 0, ORC_VAR_T5, ORC_VAR_S5, ORC_VAR_D1, ORC_VAR_D1);
947 : 6 : orc_program_append_2 (p, "shlw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_D1);
948 : 6 : orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2, ORC_VAR_D1);
949 : 6 : orc_program_append_2 (p, "mullw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C2, ORC_VAR_D1);
950 : 6 : orc_program_append_2 (p, "subw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1);
951 : 6 : orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_D1);
952 : 6 : orc_program_append_2 (p, "subw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T4, ORC_VAR_D1);
953 : 6 : orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_D1);
954 : 6 : orc_program_append_2 (p, "absw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1);
955 : 6 : orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1);
956 : 6 : orc_program_append_2 (p, "cmpgtsl", 0, ORC_VAR_T7, ORC_VAR_T6, ORC_VAR_P2, ORC_VAR_D1);
957 : 6 : orc_program_append_2 (p, "andl", 0, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T7, ORC_VAR_D1);
958 : 6 : orc_program_append_2 (p, "accl", 0, ORC_VAR_A1, ORC_VAR_T6, ORC_VAR_D1, ORC_VAR_D1);
959 : :
960 : 6 : result = orc_program_compile (p);
961 : :
962 : 6 : _orc_program_orc_opposite_parity_5_tap_planar_yuv = p;
963 : : }
964 : : #endif
965 : 6 : }
966 : :
967 : :
|