Update contrib.
2 * LIBOIL - Library of Optimized Inner Loops
3 * Copyright (c) 2001,2003,2004 David A. Schleef <ds@schleef.org>
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
19 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
24 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
27 //Portions Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
32 #include <liboil/liboilfunction.h>
33 #include "liboil/conv/conv.h"
39 #pragma warn_emptydecl off
43 #define CONV_DEFINE_CAST(desttype,srctype) \
44 static void conv_ ## desttype ## _ ## srctype ## _c ( \
45 oil_type_ ## desttype *dest, \
47 const oil_type_ ## srctype *src, \
48 int src_stride, int n) \
53 dest = OIL_OFFSET(dest, dest_stride); \
54 src = OIL_OFFSET(src, src_stride); \
57 OIL_DEFINE_IMPL(conv_ ## desttype ## _ ## srctype ## _c, \
58 conv_ ## desttype ## _ ## srctype);
61 #define CONV_DEFINE_FLOAT(desttype,srctype) \
62 static void conv_ ## desttype ## _ ## srctype ## _c ( \
63 oil_type_ ## desttype *dest, \
65 const oil_type_ ## srctype *src, \
66 int src_stride, int n) \
71 dest = OIL_OFFSET(dest, dest_stride); \
72 src = OIL_OFFSET(src, src_stride); \
75 OIL_DEFINE_IMPL(conv_ ## desttype ## _ ## srctype ## _c, \
76 conv_ ## desttype ## _ ## srctype);
78 #define CONV_DEFINE_FLOAT(desttype,srctype)
81 CONV_DEFINE_CAST(s8,u8);
84 OilFunctionImpl* __oil_function_impl_conv_s8_u8_c() {
85 return &_oil_function_impl_conv_s8_u8_c;
89 CONV_DEFINE_CAST(s8,s16);
92 OilFunctionImpl* __oil_function_impl_conv_s8_s16_c() {
93 return &_oil_function_impl_conv_s8_s16_c;
97 CONV_DEFINE_CAST(s8,u16);
100 OilFunctionImpl* __oil_function_impl_conv_s8_u16_c() {
101 return &_oil_function_impl_conv_s8_u16_c;
105 CONV_DEFINE_CAST(s8,s32);
108 OilFunctionImpl* __oil_function_impl_conv_s8_s32_c() {
109 return &_oil_function_impl_conv_s8_s32_c;
113 CONV_DEFINE_CAST(s8,u32);
116 OilFunctionImpl* __oil_function_impl_conv_s8_u32_c() {
117 return &_oil_function_impl_conv_s8_u32_c;
121 CONV_DEFINE_FLOAT(s8,f32);
124 OilFunctionImpl* __oil_function_impl_conv_s8_f32_c() {
125 return &_oil_function_impl_conv_s8_f32_c;
129 CONV_DEFINE_FLOAT(s8,f64);
132 OilFunctionImpl* __oil_function_impl_conv_s8_f64_c() {
133 return &_oil_function_impl_conv_s8_f64_c;
137 CONV_DEFINE_CAST(u8,s8);
140 OilFunctionImpl* __oil_function_impl_conv_u8_s8_c() {
141 return &_oil_function_impl_conv_u8_s8_c;
145 CONV_DEFINE_CAST(u8,s16);
148 OilFunctionImpl* __oil_function_impl_conv_u8_s16_c() {
149 return &_oil_function_impl_conv_u8_s16_c;
153 CONV_DEFINE_CAST(u8,u16);
156 OilFunctionImpl* __oil_function_impl_conv_u8_u16_c() {
157 return &_oil_function_impl_conv_u8_u16_c;
161 CONV_DEFINE_CAST(u8,s32);
164 OilFunctionImpl* __oil_function_impl_conv_u8_s32_c() {
165 return &_oil_function_impl_conv_u8_s32_c;
169 CONV_DEFINE_CAST(u8,u32);
172 OilFunctionImpl* __oil_function_impl_conv_u8_u32_c() {
173 return &_oil_function_impl_conv_u8_u32_c;
177 CONV_DEFINE_FLOAT(u8,f32);
180 OilFunctionImpl* __oil_function_impl_conv_u8_f32_c() {
181 return &_oil_function_impl_conv_u8_f32_c;
185 CONV_DEFINE_FLOAT(u8,f64);
188 OilFunctionImpl* __oil_function_impl_conv_u8_f64_c() {
189 return &_oil_function_impl_conv_u8_f64_c;
193 CONV_DEFINE_CAST(s16,s8)
196 OilFunctionImpl* __oil_function_impl_conv_s16_s8_c() {
197 return &_oil_function_impl_conv_s16_s8_c;
201 CONV_DEFINE_CAST(s16,u8)
204 OilFunctionImpl* __oil_function_impl_conv_s16_u8_c() {
205 return &_oil_function_impl_conv_s16_u8_c;
209 CONV_DEFINE_CAST(s16,u16);
212 OilFunctionImpl* __oil_function_impl_conv_s16_u16_c() {
213 return &_oil_function_impl_conv_s16_u16_c;
217 CONV_DEFINE_CAST(s16,s32);
220 OilFunctionImpl* __oil_function_impl_conv_s16_s32_c() {
221 return &_oil_function_impl_conv_s16_s32_c;
225 CONV_DEFINE_CAST(s16,u32);
228 OilFunctionImpl* __oil_function_impl_conv_s16_u32_c() {
229 return &_oil_function_impl_conv_s16_u32_c;
233 CONV_DEFINE_FLOAT(s16,f32);
236 OilFunctionImpl* __oil_function_impl_conv_s16_f32_c() {
237 return &_oil_function_impl_conv_s16_f32_c;
241 CONV_DEFINE_FLOAT(s16,f64);
244 OilFunctionImpl* __oil_function_impl_conv_s16_f64_c() {
245 return &_oil_function_impl_conv_s16_f64_c;
249 CONV_DEFINE_CAST(u16,s8)
252 OilFunctionImpl* __oil_function_impl_conv_u16_s8_c() {
253 return &_oil_function_impl_conv_u16_s8_c;
257 CONV_DEFINE_CAST(u16,u8)
260 OilFunctionImpl* __oil_function_impl_conv_u16_u8_c() {
261 return &_oil_function_impl_conv_u16_u8_c;
265 CONV_DEFINE_CAST(u16,s16);
268 OilFunctionImpl* __oil_function_impl_conv_u16_s16_c() {
269 return &_oil_function_impl_conv_u16_s16_c;
273 CONV_DEFINE_CAST(u16,s32);
276 OilFunctionImpl* __oil_function_impl_conv_u16_s32_c() {
277 return &_oil_function_impl_conv_u16_s32_c;
281 CONV_DEFINE_CAST(u16,u32);
284 OilFunctionImpl* __oil_function_impl_conv_u16_u32_c() {
285 return &_oil_function_impl_conv_u16_u32_c;
289 CONV_DEFINE_FLOAT(u16,f32);
292 OilFunctionImpl* __oil_function_impl_conv_u16_f32_c() {
293 return &_oil_function_impl_conv_u16_f32_c;
297 CONV_DEFINE_FLOAT(u16,f64);
300 OilFunctionImpl* __oil_function_impl_conv_u16_f64_c() {
301 return &_oil_function_impl_conv_u16_f64_c;
306 CONV_DEFINE_CAST(s32,s8)
309 OilFunctionImpl* __oil_function_impl_conv_s32_s8_c() {
310 return &_oil_function_impl_conv_s32_s8_c;
314 CONV_DEFINE_CAST(s32,s16)
317 OilFunctionImpl* __oil_function_impl_conv_s32_s16_c() {
318 return &_oil_function_impl_conv_s32_s16_c;
322 CONV_DEFINE_CAST(s32,u8)
325 OilFunctionImpl* __oil_function_impl_conv_s32_u8_c() {
326 return &_oil_function_impl_conv_s32_u8_c;
330 CONV_DEFINE_CAST(s32,u16)
333 OilFunctionImpl* __oil_function_impl_conv_s32_u16_c() {
334 return &_oil_function_impl_conv_s32_u16_c;
338 CONV_DEFINE_CAST(s32,u32);
341 OilFunctionImpl* __oil_function_impl_conv_s32_u32_c() {
342 return &_oil_function_impl_conv_s32_u32_c;
346 CONV_DEFINE_FLOAT(s32,f32);
349 OilFunctionImpl* __oil_function_impl_conv_s32_f32_c() {
350 return &_oil_function_impl_conv_s32_f32_c;
354 CONV_DEFINE_FLOAT(s32,f64);
357 OilFunctionImpl* __oil_function_impl_conv_s32_f64_c() {
358 return &_oil_function_impl_conv_s32_f64_c;
362 CONV_DEFINE_CAST(u32,s8)
365 OilFunctionImpl* __oil_function_impl_conv_u32_s8_c() {
366 return &_oil_function_impl_conv_u32_s8_c;
370 CONV_DEFINE_CAST(u32,s16)
373 OilFunctionImpl* __oil_function_impl_conv_u32_s16_c() {
374 return &_oil_function_impl_conv_u32_s16_c;
378 CONV_DEFINE_CAST(u32,u8)
381 OilFunctionImpl* __oil_function_impl_conv_u32_u8_c() {
382 return &_oil_function_impl_conv_u32_u8_c;
386 CONV_DEFINE_CAST(u32,u16)
389 OilFunctionImpl* __oil_function_impl_conv_u32_u16_c() {
390 return &_oil_function_impl_conv_u32_u16_c;
394 CONV_DEFINE_CAST(u32,s32);
397 OilFunctionImpl* __oil_function_impl_conv_u32_s32_c() {
398 return &_oil_function_impl_conv_u32_s32_c;
402 CONV_DEFINE_FLOAT(u32,f32);
405 OilFunctionImpl* __oil_function_impl_conv_u32_f32_c() {
406 return &_oil_function_impl_conv_u32_f32_c;
410 CONV_DEFINE_FLOAT(u32,f64);
413 OilFunctionImpl* __oil_function_impl_conv_u32_f64_c() {
414 return &_oil_function_impl_conv_u32_f64_c;
418 CONV_DEFINE_CAST(f32,s8)
421 OilFunctionImpl* __oil_function_impl_conv_f32_s8_c() {
422 return &_oil_function_impl_conv_f32_s8_c;
426 CONV_DEFINE_CAST(f32,s16)
429 OilFunctionImpl* __oil_function_impl_conv_f32_s16_c() {
430 return &_oil_function_impl_conv_f32_s16_c;
434 CONV_DEFINE_CAST(f32,u8)
437 OilFunctionImpl* __oil_function_impl_conv_f32_u8_c() {
438 return &_oil_function_impl_conv_f32_u8_c;
442 CONV_DEFINE_CAST(f32,u16)
445 OilFunctionImpl* __oil_function_impl_conv_f32_u16_c() {
446 return &_oil_function_impl_conv_f32_u16_c;
450 CONV_DEFINE_CAST(f32,s32);
453 OilFunctionImpl* __oil_function_impl_conv_f32_s32_c() {
454 return &_oil_function_impl_conv_f32_s32_c;
458 CONV_DEFINE_CAST(f32,u32);
461 OilFunctionImpl* __oil_function_impl_conv_f32_u32_c() {
462 return &_oil_function_impl_conv_f32_u32_c;
466 CONV_DEFINE_CAST(f32,f64);
469 OilFunctionImpl* __oil_function_impl_conv_f32_f64_c() {
470 return &_oil_function_impl_conv_f32_f64_c;
474 CONV_DEFINE_CAST(f64,s8)
477 OilFunctionImpl* __oil_function_impl_conv_f64_s8_c() {
478 return &_oil_function_impl_conv_f64_s8_c;
482 CONV_DEFINE_CAST(f64,u8)
485 OilFunctionImpl* __oil_function_impl_conv_f64_u8_c() {
486 return &_oil_function_impl_conv_f64_u8_c;
490 CONV_DEFINE_CAST(f64,s16)
493 OilFunctionImpl* __oil_function_impl_conv_f64_s16_c() {
494 return &_oil_function_impl_conv_f64_s16_c;
498 CONV_DEFINE_CAST(f64,u16)
501 OilFunctionImpl* __oil_function_impl_conv_f64_u16_c() {
502 return &_oil_function_impl_conv_f64_u16_c;
506 CONV_DEFINE_CAST(f64,s32)
509 OilFunctionImpl* __oil_function_impl_conv_f64_s32_c() {
510 return &_oil_function_impl_conv_f64_s32_c;
514 CONV_DEFINE_CAST(f64,u32)
517 OilFunctionImpl* __oil_function_impl_conv_f64_u32_c() {
518 return &_oil_function_impl_conv_f64_u32_c;
522 CONV_DEFINE_CAST(f64,f32)
525 OilFunctionImpl* __oil_function_impl_conv_f64_f32_c() {
526 return &_oil_function_impl_conv_f64_f32_c;
533 #define CLIPCONV_DEFINE_BOTH(desttype,srctype) \
534 static void clipconv_ ## desttype ## _ ## srctype ## _c ( \
535 oil_type_ ## desttype *dest, \
537 const oil_type_ ## srctype *src, \
538 int src_stride, int n) \
541 oil_type_ ## srctype x; \
544 if(x<oil_type_min_ ## desttype) x=oil_type_min_ ## desttype; \
545 if(x>oil_type_max_ ## desttype) x=oil_type_max_ ## desttype; \
547 dest = OIL_OFFSET(dest, dest_stride); \
548 src = OIL_OFFSET(src, src_stride); \
551 OIL_DEFINE_IMPL(clipconv_ ## desttype ## _ ## srctype ## _c, \
552 clipconv_ ## desttype ## _ ## srctype);
554 #define CLIPCONV_DEFINE_UPPER(desttype,srctype) \
555 static void clipconv_ ## desttype ## _ ## srctype ## _c ( \
556 oil_type_ ## desttype *dest, \
558 const oil_type_ ## srctype *src, \
559 int src_stride, int n) \
562 oil_type_ ## srctype x; \
565 if(x>oil_type_max_ ## desttype) x=oil_type_max_ ## desttype; \
567 dest = OIL_OFFSET(dest, dest_stride); \
568 src = OIL_OFFSET(src, src_stride); \
571 OIL_DEFINE_IMPL(clipconv_ ## desttype ## _ ## srctype ## _c, \
572 clipconv_ ## desttype ## _ ## srctype);
574 #define CLIPCONV_DEFINE_LOWER(desttype,srctype) \
575 static void clipconv_ ## desttype ## _ ## srctype ## _c ( \
576 oil_type_ ## desttype *dest, \
578 const oil_type_ ## srctype *src, \
579 int src_stride, int n) \
582 oil_type_ ## srctype x; \
585 if(x<oil_type_min_ ## desttype) x=oil_type_min_ ## desttype; \
587 dest = OIL_OFFSET(dest, dest_stride); \
588 src = OIL_OFFSET(src, src_stride); \
591 OIL_DEFINE_IMPL(clipconv_ ## desttype ## _ ## srctype ## _c, \
592 clipconv_ ## desttype ## _ ## srctype);
595 #define CLIPCONV_DEFINE_FLOAT(desttype,srctype) \
596 static void clipconv_ ## desttype ## _ ## srctype ## _c ( \
597 oil_type_ ## desttype *dest, \
599 const oil_type_ ## srctype *src, \
600 int src_stride, int n) \
603 oil_type_ ## srctype x; \
606 if(x<oil_type_min_ ## desttype) x=oil_type_min_ ## desttype; \
607 if(x>oil_type_max_ ## desttype) x=oil_type_max_ ## desttype; \
609 dest = OIL_OFFSET(dest, dest_stride); \
610 src = OIL_OFFSET(src, src_stride); \
613 OIL_DEFINE_IMPL(clipconv_ ## desttype ## _ ## srctype ## _c, \
614 clipconv_ ## desttype ## _ ## srctype);
616 #define CLIPCONV_DEFINE_FLOAT(desttype,srctype)
620 CLIPCONV_DEFINE_UPPER(s8,u8);
621 CLIPCONV_DEFINE_UPPER(s8,u16);
622 CLIPCONV_DEFINE_UPPER(s8,u32);
623 CLIPCONV_DEFINE_UPPER(u8,u32);
624 CLIPCONV_DEFINE_UPPER(u8,u16);
625 CLIPCONV_DEFINE_UPPER(s16,u16);
626 CLIPCONV_DEFINE_UPPER(s16,u32);
627 CLIPCONV_DEFINE_UPPER(s32,u32);
628 CLIPCONV_DEFINE_UPPER(u16,u32);
631 CLIPCONV_DEFINE_BOTH(s8,s16);
632 CLIPCONV_DEFINE_BOTH(s8,s32);
633 CLIPCONV_DEFINE_BOTH(u8,s16);
634 CLIPCONV_DEFINE_BOTH(u8,s32);
635 CLIPCONV_DEFINE_BOTH(s16,s32);
636 CLIPCONV_DEFINE_BOTH(u16,s32);
639 CLIPCONV_DEFINE_LOWER(u8,s8);
640 CLIPCONV_DEFINE_LOWER(u16,s16);
641 CLIPCONV_DEFINE_LOWER(u32,s32);
643 /* clip both, float */
644 CLIPCONV_DEFINE_FLOAT(s8,f32);
645 CLIPCONV_DEFINE_FLOAT(s8,f64);
646 CLIPCONV_DEFINE_FLOAT(u8,f32);
647 CLIPCONV_DEFINE_FLOAT(u8,f64);
648 CLIPCONV_DEFINE_FLOAT(s16,f32);
649 CLIPCONV_DEFINE_FLOAT(s16,f64);
650 CLIPCONV_DEFINE_FLOAT(u16,f32);
651 CLIPCONV_DEFINE_FLOAT(u16,f64);
652 CLIPCONV_DEFINE_FLOAT(s32,f32);
653 CLIPCONV_DEFINE_FLOAT(s32,f64);
654 CLIPCONV_DEFINE_FLOAT(u32,f32);
655 CLIPCONV_DEFINE_FLOAT(u32,f64);
660 #define CONV_DEFINE_CAST_UNROLL2(desttype,srctype) \
661 static void conv_ ## desttype ## _ ## srctype ## _unroll2 ( \
662 oil_type_ ## desttype *dest, \
664 const oil_type_ ## srctype *src, \
665 int src_stride, int n) \
670 dest = OIL_OFFSET(dest, dest_stride); \
671 src = OIL_OFFSET(src, src_stride); \
676 dest = OIL_OFFSET(dest, dest_stride); \
677 src = OIL_OFFSET(src, src_stride); \
679 dest = OIL_OFFSET(dest, dest_stride); \
680 src = OIL_OFFSET(src, src_stride); \
683 OIL_DEFINE_IMPL(conv_ ## desttype ## _ ## srctype ## _unroll2, \
684 conv_ ## desttype ## _ ## srctype);
687 #define CONV_DEFINE_FLOAT_UNROLL2(desttype,srctype) \
688 static void conv_ ## desttype ## _ ## srctype ## _unroll2 ( \
689 oil_type_ ## desttype *dest, \
691 const oil_type_ ## srctype *src, \
692 int src_stride, int n) \
696 *dest = rint(*src); \
697 dest = OIL_OFFSET(dest, dest_stride); \
698 src = OIL_OFFSET(src, src_stride); \
702 *dest = rint(*src); \
703 dest = OIL_OFFSET(dest, dest_stride); \
704 src = OIL_OFFSET(src, src_stride); \
705 *dest = rint(*src); \
706 dest = OIL_OFFSET(dest, dest_stride); \
707 src = OIL_OFFSET(src, src_stride); \
710 OIL_DEFINE_IMPL(conv_ ## desttype ## _ ## srctype ## _unroll2, \
711 conv_ ## desttype ## _ ## srctype);
713 #define CONV_DEFINE_FLOAT_UNROLL2(desttype,srctype)
716 CONV_DEFINE_CAST_UNROLL2(s8,u8);
717 CONV_DEFINE_CAST_UNROLL2(s8,s16);
718 CONV_DEFINE_CAST_UNROLL2(s8,u16);
719 CONV_DEFINE_CAST_UNROLL2(s8,s32);
720 CONV_DEFINE_CAST_UNROLL2(s8,u32);
721 CONV_DEFINE_FLOAT_UNROLL2(s8,f32);
722 CONV_DEFINE_FLOAT_UNROLL2(s8,f64);
724 CONV_DEFINE_CAST_UNROLL2(u8,s8);
725 CONV_DEFINE_CAST_UNROLL2(u8,s16);
726 CONV_DEFINE_CAST_UNROLL2(u8,u16);
727 CONV_DEFINE_CAST_UNROLL2(u8,s32);
728 CONV_DEFINE_CAST_UNROLL2(u8,u32);
729 CONV_DEFINE_FLOAT_UNROLL2(u8,f32);
730 CONV_DEFINE_FLOAT_UNROLL2(u8,f64);
732 CONV_DEFINE_CAST_UNROLL2(s16,s8)
733 CONV_DEFINE_CAST_UNROLL2(s16,u8)
734 CONV_DEFINE_CAST_UNROLL2(s16,u16);
735 CONV_DEFINE_CAST_UNROLL2(s16,s32);
736 CONV_DEFINE_CAST_UNROLL2(s16,u32);
737 CONV_DEFINE_FLOAT_UNROLL2(s16,f32);
738 CONV_DEFINE_FLOAT_UNROLL2(s16,f64);
740 CONV_DEFINE_CAST_UNROLL2(u16,s8)
741 CONV_DEFINE_CAST_UNROLL2(u16,u8)
742 CONV_DEFINE_CAST_UNROLL2(u16,s16);
743 CONV_DEFINE_CAST_UNROLL2(u16,s32);
744 CONV_DEFINE_CAST_UNROLL2(u16,u32);
745 CONV_DEFINE_FLOAT_UNROLL2(u16,f32);
746 CONV_DEFINE_FLOAT_UNROLL2(u16,f64);
748 CONV_DEFINE_CAST_UNROLL2(s32,s8)
749 CONV_DEFINE_CAST_UNROLL2(s32,s16)
750 CONV_DEFINE_CAST_UNROLL2(s32,u8)
751 CONV_DEFINE_CAST_UNROLL2(s32,u16)
752 CONV_DEFINE_CAST_UNROLL2(s32,u32);
753 CONV_DEFINE_FLOAT_UNROLL2(s32,f32);
754 CONV_DEFINE_FLOAT_UNROLL2(s32,f64);
756 CONV_DEFINE_CAST_UNROLL2(u32,s8)
757 CONV_DEFINE_CAST_UNROLL2(u32,s16)
758 CONV_DEFINE_CAST_UNROLL2(u32,u8)
759 CONV_DEFINE_CAST_UNROLL2(u32,u16)
760 CONV_DEFINE_CAST_UNROLL2(u32,s32);
761 CONV_DEFINE_FLOAT_UNROLL2(u32,f32);
762 CONV_DEFINE_FLOAT_UNROLL2(u32,f64);
764 CONV_DEFINE_CAST_UNROLL2(f32,s8)
765 CONV_DEFINE_CAST_UNROLL2(f32,s16)
766 CONV_DEFINE_CAST_UNROLL2(f32,u8)
767 CONV_DEFINE_CAST_UNROLL2(f32,u16)
768 CONV_DEFINE_CAST_UNROLL2(f32,s32);
769 CONV_DEFINE_CAST_UNROLL2(f32,u32);
770 CONV_DEFINE_CAST_UNROLL2(f32,f64);
772 CONV_DEFINE_CAST_UNROLL2(f64,s8)
773 CONV_DEFINE_CAST_UNROLL2(f64,u8)
774 CONV_DEFINE_CAST_UNROLL2(f64,s16)
775 CONV_DEFINE_CAST_UNROLL2(f64,u16)
776 CONV_DEFINE_CAST_UNROLL2(f64,s32)
777 CONV_DEFINE_CAST_UNROLL2(f64,u32)
778 CONV_DEFINE_CAST_UNROLL2(f64,f32)
782 #define CONV_DEFINE_CAST_UNROLL4(desttype,srctype) \
783 static void conv_ ## desttype ## _ ## srctype ## _unroll4 ( \
784 oil_type_ ## desttype *dest, \
786 const oil_type_ ## srctype *src, \
787 int src_stride, int n) \
792 dest = OIL_OFFSET(dest, dest_stride); \
793 src = OIL_OFFSET(src, src_stride); \
797 dest = OIL_OFFSET(dest, dest_stride); \
798 src = OIL_OFFSET(src, src_stride); \
800 dest = OIL_OFFSET(dest, dest_stride); \
801 src = OIL_OFFSET(src, src_stride); \
806 dest = OIL_OFFSET(dest, dest_stride); \
807 src = OIL_OFFSET(src, src_stride); \
809 dest = OIL_OFFSET(dest, dest_stride); \
810 src = OIL_OFFSET(src, src_stride); \
812 dest = OIL_OFFSET(dest, dest_stride); \
813 src = OIL_OFFSET(src, src_stride); \
815 dest = OIL_OFFSET(dest, dest_stride); \
816 src = OIL_OFFSET(src, src_stride); \
819 OIL_DEFINE_IMPL(conv_ ## desttype ## _ ## srctype ## _unroll4, \
820 conv_ ## desttype ## _ ## srctype);
823 #define CONV_DEFINE_FLOAT_UNROLL4(desttype,srctype) \
824 static void conv_ ## desttype ## _ ## srctype ## _unroll4 ( \
825 oil_type_ ## desttype *dest, \
827 const oil_type_ ## srctype *src, \
828 int src_stride, int n) \
832 *dest = rint(*src); \
833 dest = OIL_OFFSET(dest, dest_stride); \
834 src = OIL_OFFSET(src, src_stride); \
837 *dest = rint(*src); \
838 dest = OIL_OFFSET(dest, dest_stride); \
839 src = OIL_OFFSET(src, src_stride); \
840 *dest = rint(*src); \
841 dest = OIL_OFFSET(dest, dest_stride); \
842 src = OIL_OFFSET(src, src_stride); \
846 *dest = rint(*src); \
847 dest = OIL_OFFSET(dest, dest_stride); \
848 src = OIL_OFFSET(src, src_stride); \
849 *dest = rint(*src); \
850 dest = OIL_OFFSET(dest, dest_stride); \
851 src = OIL_OFFSET(src, src_stride); \
852 *dest = rint(*src); \
853 dest = OIL_OFFSET(dest, dest_stride); \
854 src = OIL_OFFSET(src, src_stride); \
855 *dest = rint(*src); \
856 dest = OIL_OFFSET(dest, dest_stride); \
857 src = OIL_OFFSET(src, src_stride); \
860 OIL_DEFINE_IMPL(conv_ ## desttype ## _ ## srctype ## _unroll4, \
861 conv_ ## desttype ## _ ## srctype);
863 #define CONV_DEFINE_FLOAT_UNROLL4(desttype,srctype)
866 CONV_DEFINE_CAST_UNROLL4(s8,u8);
867 CONV_DEFINE_CAST_UNROLL4(s8,s16);
868 CONV_DEFINE_CAST_UNROLL4(s8,u16);
869 CONV_DEFINE_CAST_UNROLL4(s8,s32);
870 CONV_DEFINE_CAST_UNROLL4(s8,u32);
871 CONV_DEFINE_FLOAT_UNROLL4(s8,f32);
872 CONV_DEFINE_FLOAT_UNROLL4(s8,f64);
874 CONV_DEFINE_CAST_UNROLL4(u8,s8);
875 CONV_DEFINE_CAST_UNROLL4(u8,s16);
876 CONV_DEFINE_CAST_UNROLL4(u8,u16);
877 CONV_DEFINE_CAST_UNROLL4(u8,s32);
878 CONV_DEFINE_CAST_UNROLL4(u8,u32);
879 CONV_DEFINE_FLOAT_UNROLL4(u8,f32);
880 CONV_DEFINE_FLOAT_UNROLL4(u8,f64);
882 CONV_DEFINE_CAST_UNROLL4(s16,s8)
883 CONV_DEFINE_CAST_UNROLL4(s16,u8)
884 CONV_DEFINE_CAST_UNROLL4(s16,u16);
885 CONV_DEFINE_CAST_UNROLL4(s16,s32);
886 CONV_DEFINE_CAST_UNROLL4(s16,u32);
887 CONV_DEFINE_FLOAT_UNROLL4(s16,f32);
888 CONV_DEFINE_FLOAT_UNROLL4(s16,f64);
890 CONV_DEFINE_CAST_UNROLL4(u16,s8)
891 CONV_DEFINE_CAST_UNROLL4(u16,u8)
892 CONV_DEFINE_CAST_UNROLL4(u16,s16);
893 CONV_DEFINE_CAST_UNROLL4(u16,s32);
894 CONV_DEFINE_CAST_UNROLL4(u16,u32);
895 CONV_DEFINE_FLOAT_UNROLL4(u16,f32);
896 CONV_DEFINE_FLOAT_UNROLL4(u16,f64);
898 CONV_DEFINE_CAST_UNROLL4(s32,s8)
899 CONV_DEFINE_CAST_UNROLL4(s32,s16)
900 CONV_DEFINE_CAST_UNROLL4(s32,u8)
901 CONV_DEFINE_CAST_UNROLL4(s32,u16)
902 CONV_DEFINE_CAST_UNROLL4(s32,u32);
903 CONV_DEFINE_FLOAT_UNROLL4(s32,f32);
904 CONV_DEFINE_FLOAT_UNROLL4(s32,f64);
906 CONV_DEFINE_CAST_UNROLL4(u32,s8)
907 CONV_DEFINE_CAST_UNROLL4(u32,s16)
908 CONV_DEFINE_CAST_UNROLL4(u32,u8)
909 CONV_DEFINE_CAST_UNROLL4(u32,u16)
910 CONV_DEFINE_CAST_UNROLL4(u32,s32);
911 CONV_DEFINE_FLOAT_UNROLL4(u32,f32);
912 CONV_DEFINE_FLOAT_UNROLL4(u32,f64);
914 CONV_DEFINE_CAST_UNROLL4(f32,s8)
915 CONV_DEFINE_CAST_UNROLL4(f32,s16)
916 CONV_DEFINE_CAST_UNROLL4(f32,u8)
917 CONV_DEFINE_CAST_UNROLL4(f32,u16)
918 CONV_DEFINE_CAST_UNROLL4(f32,s32);
919 CONV_DEFINE_CAST_UNROLL4(f32,u32);
920 CONV_DEFINE_CAST_UNROLL4(f32,f64);
922 CONV_DEFINE_CAST_UNROLL4(f64,s8)
923 CONV_DEFINE_CAST_UNROLL4(f64,u8)
924 CONV_DEFINE_CAST_UNROLL4(f64,s16)
925 CONV_DEFINE_CAST_UNROLL4(f64,u16)
926 CONV_DEFINE_CAST_UNROLL4(f64,s32)
927 CONV_DEFINE_CAST_UNROLL4(f64,u32)
928 CONV_DEFINE_CAST_UNROLL4(f64,f32)
933 #define CONV_DEFINE_FLOAT_RINTF(desttype,srctype) \
934 static void conv_ ## desttype ## _ ## srctype ## _rintf ( \
935 oil_type_ ## desttype *dest, \
937 const oil_type_ ## srctype *src, \
938 int src_stride, int n) \
942 *dest = rintf(*src);\
943 dest = OIL_OFFSET(dest, dest_stride); \
944 src = OIL_OFFSET(src, src_stride); \
947 OIL_DEFINE_IMPL(conv_ ## desttype ## _ ## srctype ## _rintf, \
948 conv_ ## desttype ## _ ## srctype);
950 CONV_DEFINE_FLOAT_RINTF(s8,f32);
951 CONV_DEFINE_FLOAT_RINTF(u8,f32);
952 CONV_DEFINE_FLOAT_RINTF(s16,f32);
953 CONV_DEFINE_FLOAT_RINTF(u16,f32);
954 CONV_DEFINE_FLOAT_RINTF(s32,f32);
955 CONV_DEFINE_FLOAT_RINTF(u32,f32);
961 #define CONV_DEFINE_FLOAT_LRINT(desttype,srctype) \
962 static void conv_ ## desttype ## _ ## srctype ## _lrint ( \
963 oil_type_ ## desttype *dest, \
965 const oil_type_ ## srctype *src, \
966 int src_stride, int n) \
970 *dest = lrint(*src); \
971 dest = OIL_OFFSET(dest, dest_stride); \
972 src = OIL_OFFSET(src, src_stride); \
975 OIL_DEFINE_IMPL(conv_ ## desttype ## _ ## srctype ## _lrint, \
976 conv_ ## desttype ## _ ## srctype);
978 CONV_DEFINE_FLOAT_LRINT(s8,f32);
979 CONV_DEFINE_FLOAT_LRINT(s8,f64);
981 CONV_DEFINE_FLOAT_LRINT(u8,f32);
982 CONV_DEFINE_FLOAT_LRINT(u8,f64);
984 CONV_DEFINE_FLOAT_LRINT(s16,f32);
985 CONV_DEFINE_FLOAT_LRINT(s16,f64);
987 CONV_DEFINE_FLOAT_LRINT(u16,f32);
988 CONV_DEFINE_FLOAT_LRINT(u16,f64);
990 CONV_DEFINE_FLOAT_LRINT(s32,f32);
991 CONV_DEFINE_FLOAT_LRINT(s32,f64);
993 //CONV_DEFINE_FLOAT_LRINT(u32,f32);
994 //CONV_DEFINE_FLOAT_LRINT(u32,f64);
1000 #define CONV_DEFINE_FLOAT_LRINTF(desttype,srctype) \
1001 static void conv_ ## desttype ## _ ## srctype ## _lrintf ( \
1002 oil_type_ ## desttype *dest, \
1004 const oil_type_ ## srctype *src, \
1005 int src_stride, int n) \
1009 *dest = lrintf(*src); \
1010 dest = OIL_OFFSET(dest, dest_stride); \
1011 src = OIL_OFFSET(src, src_stride); \
1014 OIL_DEFINE_IMPL(conv_ ## desttype ## _ ## srctype ## _lrintf, \
1015 conv_ ## desttype ## _ ## srctype);
1017 CONV_DEFINE_FLOAT_LRINTF(s8,f32);
1018 CONV_DEFINE_FLOAT_LRINTF(u8,f32);
1019 CONV_DEFINE_FLOAT_LRINTF(s16,f32);
1020 CONV_DEFINE_FLOAT_LRINTF(u16,f32);
1021 CONV_DEFINE_FLOAT_LRINTF(s32,f32);
1022 //CONV_DEFINE_FLOAT_LRINTF(u32,f32);
1028 #ifdef __SYMBIAN32__
1030 OilFunctionImpl* __oil_function_impl_conv_s8_u8_unroll4() {
1031 return &_oil_function_impl_conv_s8_u8_unroll4;
1035 #ifdef __SYMBIAN32__
1037 OilFunctionImpl* __oil_function_impl_conv_s8_s16_unroll4() {
1038 return &_oil_function_impl_conv_s8_s16_unroll4;
1042 #ifdef __SYMBIAN32__
1044 OilFunctionImpl* __oil_function_impl_conv_s8_u16_unroll4() {
1045 return &_oil_function_impl_conv_s8_u16_unroll4;
1049 #ifdef __SYMBIAN32__
1051 OilFunctionImpl* __oil_function_impl_conv_s8_s32_unroll4() {
1052 return &_oil_function_impl_conv_s8_s32_unroll4;
1056 #ifdef __SYMBIAN32__
1058 OilFunctionImpl* __oil_function_impl_conv_s8_u32_unroll4() {
1059 return &_oil_function_impl_conv_s8_u32_unroll4;
1063 #ifdef __SYMBIAN32__
1065 OilFunctionImpl* __oil_function_impl_conv_s8_f32_unroll4() {
1066 return &_oil_function_impl_conv_s8_f32_unroll4;
1070 #ifdef __SYMBIAN32__
1072 OilFunctionImpl* __oil_function_impl_conv_s8_f64_unroll4() {
1073 return &_oil_function_impl_conv_s8_f64_unroll4;
1077 #ifdef __SYMBIAN32__
1079 OilFunctionImpl* __oil_function_impl_conv_u8_s8_unroll4() {
1080 return &_oil_function_impl_conv_u8_s8_unroll4;
1084 #ifdef __SYMBIAN32__
1086 OilFunctionImpl* __oil_function_impl_conv_u8_s16_unroll4() {
1087 return &_oil_function_impl_conv_u8_s16_unroll4;
1091 #ifdef __SYMBIAN32__
1093 OilFunctionImpl* __oil_function_impl_conv_u8_u16_unroll4() {
1094 return &_oil_function_impl_conv_u8_u16_unroll4;
1098 #ifdef __SYMBIAN32__
1100 OilFunctionImpl* __oil_function_impl_conv_u8_s32_unroll4() {
1101 return &_oil_function_impl_conv_u8_s32_unroll4;
1105 #ifdef __SYMBIAN32__
1107 OilFunctionImpl* __oil_function_impl_conv_u8_u32_unroll4() {
1108 return &_oil_function_impl_conv_u8_u32_unroll4;
1112 #ifdef __SYMBIAN32__
1114 OilFunctionImpl* __oil_function_impl_conv_u8_f32_unroll4() {
1115 return &_oil_function_impl_conv_u8_f32_unroll4;
1119 #ifdef __SYMBIAN32__
1121 OilFunctionImpl* __oil_function_impl_conv_u8_f64_unroll4() {
1122 return &_oil_function_impl_conv_u8_f64_unroll4;
1126 #ifdef __SYMBIAN32__
1128 OilFunctionImpl* __oil_function_impl_conv_s16_s8_unroll4() {
1129 return &_oil_function_impl_conv_s16_s8_unroll4;
1133 #ifdef __SYMBIAN32__
1135 OilFunctionImpl* __oil_function_impl_conv_s16_u8_unroll4() {
1136 return &_oil_function_impl_conv_s16_u8_unroll4;
1140 #ifdef __SYMBIAN32__
1142 OilFunctionImpl* __oil_function_impl_conv_s16_u16_unroll4() {
1143 return &_oil_function_impl_conv_s16_u16_unroll4;
1147 #ifdef __SYMBIAN32__
1149 OilFunctionImpl* __oil_function_impl_conv_s16_s32_unroll4() {
1150 return &_oil_function_impl_conv_s16_s32_unroll4;
1154 #ifdef __SYMBIAN32__
1156 OilFunctionImpl* __oil_function_impl_conv_s16_u32_unroll4() {
1157 return &_oil_function_impl_conv_s16_u32_unroll4;
1161 #ifdef __SYMBIAN32__
1163 OilFunctionImpl* __oil_function_impl_conv_s16_f32_unroll4() {
1164 return &_oil_function_impl_conv_s16_f32_unroll4;
1168 #ifdef __SYMBIAN32__
1170 OilFunctionImpl* __oil_function_impl_conv_s16_f64_unroll4() {
1171 return &_oil_function_impl_conv_s16_f64_unroll4;
1175 #ifdef __SYMBIAN32__
1177 OilFunctionImpl* __oil_function_impl_conv_u16_s8_unroll4() {
1178 return &_oil_function_impl_conv_u16_s8_unroll4;
1182 #ifdef __SYMBIAN32__
1184 OilFunctionImpl* __oil_function_impl_conv_u16_u8_unroll4() {
1185 return &_oil_function_impl_conv_u16_u8_unroll4;
1189 #ifdef __SYMBIAN32__
1191 OilFunctionImpl* __oil_function_impl_conv_u16_s16_unroll4() {
1192 return &_oil_function_impl_conv_u16_s16_unroll4;
1196 #ifdef __SYMBIAN32__
1198 OilFunctionImpl* __oil_function_impl_conv_u16_s32_unroll4() {
1199 return &_oil_function_impl_conv_u16_s32_unroll4;
1203 #ifdef __SYMBIAN32__
1205 OilFunctionImpl* __oil_function_impl_conv_u16_u32_unroll4() {
1206 return &_oil_function_impl_conv_u16_u32_unroll4;
1210 #ifdef __SYMBIAN32__
1212 OilFunctionImpl* __oil_function_impl_conv_u16_f32_unroll4() {
1213 return &_oil_function_impl_conv_u16_f32_unroll4;
1217 #ifdef __SYMBIAN32__
1219 OilFunctionImpl* __oil_function_impl_conv_u16_f64_unroll4() {
1220 return &_oil_function_impl_conv_u16_f64_unroll4;
1224 #ifdef __SYMBIAN32__
1226 OilFunctionImpl* __oil_function_impl_conv_s32_s8_unroll4() {
1227 return &_oil_function_impl_conv_s32_s8_unroll4;
1231 #ifdef __SYMBIAN32__
1233 OilFunctionImpl* __oil_function_impl_conv_s32_s16_unroll4() {
1234 return &_oil_function_impl_conv_s32_s16_unroll4;
1238 #ifdef __SYMBIAN32__
1240 OilFunctionImpl* __oil_function_impl_conv_s32_u8_unroll4() {
1241 return &_oil_function_impl_conv_s32_u8_unroll4;
1245 #ifdef __SYMBIAN32__
1247 OilFunctionImpl* __oil_function_impl_conv_s32_u16_unroll4() {
1248 return &_oil_function_impl_conv_s32_u16_unroll4;
1252 #ifdef __SYMBIAN32__
1254 OilFunctionImpl* __oil_function_impl_conv_s32_u32_unroll4() {
1255 return &_oil_function_impl_conv_s32_u32_unroll4;
1259 #ifdef __SYMBIAN32__
1261 OilFunctionImpl* __oil_function_impl_conv_s32_f32_unroll4() {
1262 return &_oil_function_impl_conv_s32_f32_unroll4;
1266 #ifdef __SYMBIAN32__
1268 OilFunctionImpl* __oil_function_impl_conv_s32_f64_unroll4() {
1269 return &_oil_function_impl_conv_s32_f64_unroll4;
1273 #ifdef __SYMBIAN32__
1275 OilFunctionImpl* __oil_function_impl_conv_u32_s8_unroll4() {
1276 return &_oil_function_impl_conv_u32_s8_unroll4;
1280 #ifdef __SYMBIAN32__
1282 OilFunctionImpl* __oil_function_impl_conv_u32_s16_unroll4() {
1283 return &_oil_function_impl_conv_u32_s16_unroll4;
1287 #ifdef __SYMBIAN32__
1289 OilFunctionImpl* __oil_function_impl_conv_u32_u8_unroll4() {
1290 return &_oil_function_impl_conv_u32_u8_unroll4;
1294 #ifdef __SYMBIAN32__
1296 OilFunctionImpl* __oil_function_impl_conv_u32_u16_unroll4() {
1297 return &_oil_function_impl_conv_u32_u16_unroll4;
1301 #ifdef __SYMBIAN32__
1303 OilFunctionImpl* __oil_function_impl_conv_u32_s32_unroll4() {
1304 return &_oil_function_impl_conv_u32_s32_unroll4;
1308 #ifdef __SYMBIAN32__
1310 OilFunctionImpl* __oil_function_impl_conv_u32_f32_unroll4() {
1311 return &_oil_function_impl_conv_u32_f32_unroll4;
1315 #ifdef __SYMBIAN32__
1317 OilFunctionImpl* __oil_function_impl_conv_u32_f64_unroll4() {
1318 return &_oil_function_impl_conv_u32_f64_unroll4;
1322 #ifdef __SYMBIAN32__
1324 OilFunctionImpl* __oil_function_impl_conv_f32_s8_unroll4() {
1325 return &_oil_function_impl_conv_f32_s8_unroll4;
1329 #ifdef __SYMBIAN32__
1331 OilFunctionImpl* __oil_function_impl_conv_f32_s16_unroll4() {
1332 return &_oil_function_impl_conv_f32_s16_unroll4;
1336 #ifdef __SYMBIAN32__
1338 OilFunctionImpl* __oil_function_impl_conv_f32_u8_unroll4() {
1339 return &_oil_function_impl_conv_f32_u8_unroll4;
1343 #ifdef __SYMBIAN32__
1345 OilFunctionImpl* __oil_function_impl_conv_f32_u16_unroll4() {
1346 return &_oil_function_impl_conv_f32_u16_unroll4;
1350 #ifdef __SYMBIAN32__
1352 OilFunctionImpl* __oil_function_impl_conv_f32_s32_unroll4() {
1353 return &_oil_function_impl_conv_f32_s32_unroll4;
1357 #ifdef __SYMBIAN32__
1359 OilFunctionImpl* __oil_function_impl_conv_f32_u32_unroll4() {
1360 return &_oil_function_impl_conv_f32_u32_unroll4;
1364 #ifdef __SYMBIAN32__
1366 OilFunctionImpl* __oil_function_impl_conv_f32_f64_unroll4() {
1367 return &_oil_function_impl_conv_f32_f64_unroll4;
1371 #ifdef __SYMBIAN32__
1373 OilFunctionImpl* __oil_function_impl_conv_f64_s8_unroll4() {
1374 return &_oil_function_impl_conv_f64_s8_unroll4;
1378 #ifdef __SYMBIAN32__
1380 OilFunctionImpl* __oil_function_impl_conv_f64_u8_unroll4() {
1381 return &_oil_function_impl_conv_f64_u8_unroll4;
1385 #ifdef __SYMBIAN32__
1387 OilFunctionImpl* __oil_function_impl_conv_f64_s16_unroll4() {
1388 return &_oil_function_impl_conv_f64_s16_unroll4;
1392 #ifdef __SYMBIAN32__
1394 OilFunctionImpl* __oil_function_impl_conv_f64_u16_unroll4() {
1395 return &_oil_function_impl_conv_f64_u16_unroll4;
1399 #ifdef __SYMBIAN32__
1401 OilFunctionImpl* __oil_function_impl_conv_f64_s32_unroll4() {
1402 return &_oil_function_impl_conv_f64_s32_unroll4;
1406 #ifdef __SYMBIAN32__
1408 OilFunctionImpl* __oil_function_impl_conv_f64_u32_unroll4() {
1409 return &_oil_function_impl_conv_f64_u32_unroll4;
1413 #ifdef __SYMBIAN32__
1415 OilFunctionImpl* __oil_function_impl_conv_f64_f32_unroll4() {
1416 return &_oil_function_impl_conv_f64_f32_unroll4;
1420 #ifdef __SYMBIAN32__
1422 OilFunctionImpl* __oil_function_impl_clipconv_s8_u8_c() {
1423 return &_oil_function_impl_clipconv_s8_u8_c;
1427 #ifdef __SYMBIAN32__
1429 OilFunctionImpl* __oil_function_impl_clipconv_s8_u16_c() {
1430 return &_oil_function_impl_clipconv_s8_u16_c;
1434 #ifdef __SYMBIAN32__
1436 OilFunctionImpl* __oil_function_impl_clipconv_s8_u32_c() {
1437 return &_oil_function_impl_clipconv_s8_u32_c;
1441 #ifdef __SYMBIAN32__
1443 OilFunctionImpl* __oil_function_impl_clipconv_u8_u32_c() {
1444 return &_oil_function_impl_clipconv_u8_u32_c;
1448 #ifdef __SYMBIAN32__
1450 OilFunctionImpl* __oil_function_impl_clipconv_u8_u16_c() {
1451 return &_oil_function_impl_clipconv_u8_u16_c;
1455 #ifdef __SYMBIAN32__
1457 OilFunctionImpl* __oil_function_impl_clipconv_s16_u16_c() {
1458 return &_oil_function_impl_clipconv_s16_u16_c;
1462 #ifdef __SYMBIAN32__
1464 OilFunctionImpl* __oil_function_impl_clipconv_s16_u32_c() {
1465 return &_oil_function_impl_clipconv_s16_u32_c;
1469 #ifdef __SYMBIAN32__
1471 OilFunctionImpl* __oil_function_impl_clipconv_s32_u32_c() {
1472 return &_oil_function_impl_clipconv_s32_u32_c;
1476 #ifdef __SYMBIAN32__
1478 OilFunctionImpl* __oil_function_impl_clipconv_u16_u32_c() {
1479 return &_oil_function_impl_clipconv_u16_u32_c;
1483 #ifdef __SYMBIAN32__
1485 OilFunctionImpl* __oil_function_impl_clipconv_s8_s16_c() {
1486 return &_oil_function_impl_clipconv_s8_s16_c;
1490 #ifdef __SYMBIAN32__
1492 OilFunctionImpl* __oil_function_impl_clipconv_s8_s32_c() {
1493 return &_oil_function_impl_clipconv_s8_s32_c;
1497 #ifdef __SYMBIAN32__
1499 OilFunctionImpl* __oil_function_impl_clipconv_u8_s16_c() {
1500 return &_oil_function_impl_clipconv_u8_s16_c;
1504 #ifdef __SYMBIAN32__
1506 OilFunctionImpl* __oil_function_impl_clipconv_u8_s32_c() {
1507 return &_oil_function_impl_clipconv_u8_s32_c;
1511 #ifdef __SYMBIAN32__
1513 OilFunctionImpl* __oil_function_impl_clipconv_s16_s32_c() {
1514 return &_oil_function_impl_clipconv_s16_s32_c;
1518 #ifdef __SYMBIAN32__
1520 OilFunctionImpl* __oil_function_impl_clipconv_u16_s32_c() {
1521 return &_oil_function_impl_clipconv_u16_s32_c;
1525 #ifdef __SYMBIAN32__
1527 OilFunctionImpl* __oil_function_impl_clipconv_u8_s8_c() {
1528 return &_oil_function_impl_clipconv_u8_s8_c;
1532 #ifdef __SYMBIAN32__
1534 OilFunctionImpl* __oil_function_impl_clipconv_u16_s16_c() {
1535 return &_oil_function_impl_clipconv_u16_s16_c;
1539 #ifdef __SYMBIAN32__
1541 OilFunctionImpl* __oil_function_impl_clipconv_u32_s32_c() {
1542 return &_oil_function_impl_clipconv_u32_s32_c;
1546 #ifdef __SYMBIAN32__
1548 OilFunctionImpl* __oil_function_impl_clipconv_s8_f32_c() {
1549 return &_oil_function_impl_clipconv_s8_f32_c;
1553 #ifdef __SYMBIAN32__
1555 OilFunctionImpl* __oil_function_impl_clipconv_s8_f64_c() {
1556 return &_oil_function_impl_clipconv_s8_f64_c;
1560 #ifdef __SYMBIAN32__
1562 OilFunctionImpl* __oil_function_impl_clipconv_u8_f32_c() {
1563 return &_oil_function_impl_clipconv_u8_f32_c;
1567 #ifdef __SYMBIAN32__
1569 OilFunctionImpl* __oil_function_impl_clipconv_u8_f64_c() {
1570 return &_oil_function_impl_clipconv_u8_f64_c;
1574 #ifdef __SYMBIAN32__
1576 OilFunctionImpl* __oil_function_impl_clipconv_s16_f32_c() {
1577 return &_oil_function_impl_clipconv_s16_f32_c;
1581 #ifdef __SYMBIAN32__
1583 OilFunctionImpl* __oil_function_impl_clipconv_s16_f64_c() {
1584 return &_oil_function_impl_clipconv_s16_f64_c;
1588 #ifdef __SYMBIAN32__
1590 OilFunctionImpl* __oil_function_impl_clipconv_u16_f32_c() {
1591 return &_oil_function_impl_clipconv_u16_f32_c;
1595 #ifdef __SYMBIAN32__
1597 OilFunctionImpl* __oil_function_impl_clipconv_u16_f64_c() {
1598 return &_oil_function_impl_clipconv_u16_f64_c;
1602 #ifdef __SYMBIAN32__
1604 OilFunctionImpl* __oil_function_impl_clipconv_s32_f32_c() {
1605 return &_oil_function_impl_clipconv_s32_f32_c;
1609 #ifdef __SYMBIAN32__
1611 OilFunctionImpl* __oil_function_impl_clipconv_s32_f64_c() {
1612 return &_oil_function_impl_clipconv_s32_f64_c;
1616 #ifdef __SYMBIAN32__
1618 OilFunctionImpl* __oil_function_impl_clipconv_u32_f32_c() {
1619 return &_oil_function_impl_clipconv_u32_f32_c;
1623 #ifdef __SYMBIAN32__
1625 OilFunctionImpl* __oil_function_impl_clipconv_u32_f64_c() {
1626 return &_oil_function_impl_clipconv_u32_f64_c;
1630 #ifdef __SYMBIAN32__
1632 OilFunctionImpl* __oil_function_impl_conv_s8_u8_unroll2() {
1633 return &_oil_function_impl_conv_s8_u8_unroll2;
1636 #ifdef __SYMBIAN32__
1638 OilFunctionImpl* __oil_function_impl_conv_s8_s16_unroll2() {
1639 return &_oil_function_impl_conv_s8_s16_unroll2;
1643 #ifdef __SYMBIAN32__
1645 OilFunctionImpl* __oil_function_impl_conv_s8_u16_unroll2() {
1646 return &_oil_function_impl_conv_s8_u16_unroll2;
1650 #ifdef __SYMBIAN32__
1652 OilFunctionImpl* __oil_function_impl_conv_s8_s32_unroll2() {
1653 return &_oil_function_impl_conv_s8_s32_unroll2;
1657 #ifdef __SYMBIAN32__
1659 OilFunctionImpl* __oil_function_impl_conv_s8_u32_unroll2() {
1660 return &_oil_function_impl_conv_s8_u32_unroll2;
1664 #ifdef __SYMBIAN32__
1666 OilFunctionImpl* __oil_function_impl_conv_s8_f32_unroll2() {
1667 return &_oil_function_impl_conv_s8_f32_unroll2;
1671 #ifdef __SYMBIAN32__
1673 OilFunctionImpl* __oil_function_impl_conv_s8_f64_unroll2() {
1674 return &_oil_function_impl_conv_s8_f64_unroll2;
1678 #ifdef __SYMBIAN32__
1680 OilFunctionImpl* __oil_function_impl_conv_u8_s8_unroll2() {
1681 return &_oil_function_impl_conv_u8_s8_unroll2;
1685 #ifdef __SYMBIAN32__
1687 OilFunctionImpl* __oil_function_impl_conv_u8_s16_unroll2() {
1688 return &_oil_function_impl_conv_u8_s16_unroll2;
1692 #ifdef __SYMBIAN32__
1694 OilFunctionImpl* __oil_function_impl_conv_u8_u16_unroll2() {
1695 return &_oil_function_impl_conv_u8_u16_unroll2;
1699 #ifdef __SYMBIAN32__
1701 OilFunctionImpl* __oil_function_impl_conv_u8_s32_unroll2() {
1702 return &_oil_function_impl_conv_u8_s32_unroll2;
1706 #ifdef __SYMBIAN32__
1708 OilFunctionImpl* __oil_function_impl_conv_u8_u32_unroll2() {
1709 return &_oil_function_impl_conv_u8_u32_unroll2;
1713 #ifdef __SYMBIAN32__
1715 OilFunctionImpl* __oil_function_impl_conv_u8_f32_unroll2() {
1716 return &_oil_function_impl_conv_u8_f32_unroll2;
1720 #ifdef __SYMBIAN32__
1722 OilFunctionImpl* __oil_function_impl_conv_u8_f64_unroll2() {
1723 return &_oil_function_impl_conv_u8_f64_unroll2;
1727 #ifdef __SYMBIAN32__
1729 OilFunctionImpl* __oil_function_impl_conv_s16_s8_unroll2() {
1730 return &_oil_function_impl_conv_s16_s8_unroll2;
1734 #ifdef __SYMBIAN32__
1736 OilFunctionImpl* __oil_function_impl_conv_s16_u8_unroll2() {
1737 return &_oil_function_impl_conv_s16_u8_unroll2;
1741 #ifdef __SYMBIAN32__
1743 OilFunctionImpl* __oil_function_impl_conv_s16_u16_unroll2() {
1744 return &_oil_function_impl_conv_s16_u16_unroll2;
1748 #ifdef __SYMBIAN32__
1750 OilFunctionImpl* __oil_function_impl_conv_s16_s32_unroll2() {
1751 return &_oil_function_impl_conv_s16_s32_unroll2;
1755 #ifdef __SYMBIAN32__
1757 OilFunctionImpl* __oil_function_impl_conv_s16_u32_unroll2() {
1758 return &_oil_function_impl_conv_s16_u32_unroll2;
1762 #ifdef __SYMBIAN32__
1764 OilFunctionImpl* __oil_function_impl_conv_s16_f32_unroll2() {
1765 return &_oil_function_impl_conv_s16_f32_unroll2;
1769 #ifdef __SYMBIAN32__
1771 OilFunctionImpl* __oil_function_impl_conv_s16_f64_unroll2() {
1772 return &_oil_function_impl_conv_s16_f64_unroll2;
1776 #ifdef __SYMBIAN32__
1778 OilFunctionImpl* __oil_function_impl_conv_u16_s8_unroll2() {
1779 return &_oil_function_impl_conv_u16_s8_unroll2;
1783 #ifdef __SYMBIAN32__
1785 OilFunctionImpl* __oil_function_impl_conv_u16_u8_unroll2() {
1786 return &_oil_function_impl_conv_u16_u8_unroll2;
1790 #ifdef __SYMBIAN32__
1792 OilFunctionImpl* __oil_function_impl_conv_u16_s16_unroll2() {
1793 return &_oil_function_impl_conv_u16_s16_unroll2;
1797 #ifdef __SYMBIAN32__
1799 OilFunctionImpl* __oil_function_impl_conv_u16_s32_unroll2() {
1800 return &_oil_function_impl_conv_u16_s32_unroll2;
1804 #ifdef __SYMBIAN32__
1806 OilFunctionImpl* __oil_function_impl_conv_u16_u32_unroll2() {
1807 return &_oil_function_impl_conv_u16_u32_unroll2;
1811 #ifdef __SYMBIAN32__
1813 OilFunctionImpl* __oil_function_impl_conv_u16_f32_unroll2() {
1814 return &_oil_function_impl_conv_u16_f32_unroll2;
1818 #ifdef __SYMBIAN32__
1820 OilFunctionImpl* __oil_function_impl_conv_u16_f64_unroll2() {
1821 return &_oil_function_impl_conv_u16_f64_unroll2;
1825 #ifdef __SYMBIAN32__
1827 OilFunctionImpl* __oil_function_impl_conv_s32_s8_unroll2() {
1828 return &_oil_function_impl_conv_s32_s8_unroll2;
1832 #ifdef __SYMBIAN32__
1834 OilFunctionImpl* __oil_function_impl_conv_s32_s16_unroll2() {
1835 return &_oil_function_impl_conv_s32_s16_unroll2;
1839 #ifdef __SYMBIAN32__
1841 OilFunctionImpl* __oil_function_impl_conv_s32_u8_unroll2() {
1842 return &_oil_function_impl_conv_s32_u8_unroll2;
1846 #ifdef __SYMBIAN32__
1848 OilFunctionImpl* __oil_function_impl_conv_s32_u16_unroll2() {
1849 return &_oil_function_impl_conv_s32_u16_unroll2;
1853 #ifdef __SYMBIAN32__
1855 OilFunctionImpl* __oil_function_impl_conv_s32_u32_unroll2() {
1856 return &_oil_function_impl_conv_s32_u32_unroll2;
1860 #ifdef __SYMBIAN32__
1862 OilFunctionImpl* __oil_function_impl_conv_s32_f32_unroll2() {
1863 return &_oil_function_impl_conv_s32_f32_unroll2;
1867 #ifdef __SYMBIAN32__
1869 OilFunctionImpl* __oil_function_impl_conv_s32_f64_unroll2() {
1870 return &_oil_function_impl_conv_s32_f64_unroll2;
1874 #ifdef __SYMBIAN32__
1876 OilFunctionImpl* __oil_function_impl_conv_u32_s8_unroll2() {
1877 return &_oil_function_impl_conv_u32_s8_unroll2;
1881 #ifdef __SYMBIAN32__
1883 OilFunctionImpl* __oil_function_impl_conv_u32_s16_unroll2() {
1884 return &_oil_function_impl_conv_u32_s16_unroll2;
1888 #ifdef __SYMBIAN32__
1890 OilFunctionImpl* __oil_function_impl_conv_u32_u8_unroll2() {
1891 return &_oil_function_impl_conv_u32_u8_unroll2;
1895 #ifdef __SYMBIAN32__
1897 OilFunctionImpl* __oil_function_impl_conv_u32_u16_unroll2() {
1898 return &_oil_function_impl_conv_u32_u16_unroll2;
1902 #ifdef __SYMBIAN32__
1904 OilFunctionImpl* __oil_function_impl_conv_u32_s32_unroll2() {
1905 return &_oil_function_impl_conv_u32_s32_unroll2;
1909 #ifdef __SYMBIAN32__
1911 OilFunctionImpl* __oil_function_impl_conv_u32_f32_unroll2() {
1912 return &_oil_function_impl_conv_u32_f32_unroll2;
1916 #ifdef __SYMBIAN32__
1918 OilFunctionImpl* __oil_function_impl_conv_u32_f64_unroll2() {
1919 return &_oil_function_impl_conv_u32_f64_unroll2;
1923 #ifdef __SYMBIAN32__
1925 OilFunctionImpl* __oil_function_impl_conv_f32_s8_unroll2() {
1926 return &_oil_function_impl_conv_f32_s8_unroll2;
1930 #ifdef __SYMBIAN32__
1932 OilFunctionImpl* __oil_function_impl_conv_f32_s16_unroll2() {
1933 return &_oil_function_impl_conv_f32_s16_unroll2;
1937 #ifdef __SYMBIAN32__
1939 OilFunctionImpl* __oil_function_impl_conv_f32_u8_unroll2() {
1940 return &_oil_function_impl_conv_f32_u8_unroll2;
1944 #ifdef __SYMBIAN32__
1946 OilFunctionImpl* __oil_function_impl_conv_f32_u16_unroll2() {
1947 return &_oil_function_impl_conv_f32_u16_unroll2;
1951 #ifdef __SYMBIAN32__
1953 OilFunctionImpl* __oil_function_impl_conv_f32_s32_unroll2() {
1954 return &_oil_function_impl_conv_f32_s32_unroll2;
1958 #ifdef __SYMBIAN32__
1960 OilFunctionImpl* __oil_function_impl_conv_f32_u32_unroll2() {
1961 return &_oil_function_impl_conv_f32_u32_unroll2;
1965 #ifdef __SYMBIAN32__
1967 OilFunctionImpl* __oil_function_impl_conv_f32_f64_unroll2() {
1968 return &_oil_function_impl_conv_f32_f64_unroll2;
1972 #ifdef __SYMBIAN32__
1974 OilFunctionImpl* __oil_function_impl_conv_f64_s8_unroll2() {
1975 return &_oil_function_impl_conv_f64_s8_unroll2;
1979 #ifdef __SYMBIAN32__
1981 OilFunctionImpl* __oil_function_impl_conv_f64_u8_unroll2() {
1982 return &_oil_function_impl_conv_f64_u8_unroll2;
1986 #ifdef __SYMBIAN32__
1988 OilFunctionImpl* __oil_function_impl_conv_f64_s16_unroll2() {
1989 return &_oil_function_impl_conv_f64_s16_unroll2;
1993 #ifdef __SYMBIAN32__
1995 OilFunctionImpl* __oil_function_impl_conv_f64_u16_unroll2() {
1996 return &_oil_function_impl_conv_f64_u16_unroll2;
2000 #ifdef __SYMBIAN32__
2002 OilFunctionImpl* __oil_function_impl_conv_f64_s32_unroll2() {
2003 return &_oil_function_impl_conv_f64_s32_unroll2;
2007 #ifdef __SYMBIAN32__
2009 OilFunctionImpl* __oil_function_impl_conv_f64_u32_unroll2() {
2010 return &_oil_function_impl_conv_f64_u32_unroll2;
2014 #ifdef __SYMBIAN32__
2016 OilFunctionImpl* __oil_function_impl_conv_f64_f32_unroll2() {
2017 return &_oil_function_impl_conv_f64_f32_unroll2;
2021 #ifdef __SYMBIAN32__
2023 OilFunctionImpl* __oil_function_impl_conv_s8_f32_rintf() {
2024 return &_oil_function_impl_conv_s8_f32_rintf;
2028 #ifdef __SYMBIAN32__
2030 OilFunctionImpl* __oil_function_impl_conv_u8_f32_rintf() {
2031 return &_oil_function_impl_conv_u8_f32_rintf;
2035 #ifdef __SYMBIAN32__
2037 OilFunctionImpl* __oil_function_impl_conv_s16_f32_rintf() {
2038 return &_oil_function_impl_conv_s16_f32_rintf;
2042 #ifdef __SYMBIAN32__
2044 OilFunctionImpl* __oil_function_impl_conv_u16_f32_rintf() {
2045 return &_oil_function_impl_conv_u16_f32_rintf;
2049 #ifdef __SYMBIAN32__
2051 OilFunctionImpl* __oil_function_impl_conv_s32_f32_rintf() {
2052 return &_oil_function_impl_conv_s32_f32_rintf;
2056 #ifdef __SYMBIAN32__
2058 OilFunctionImpl* __oil_function_impl_conv_u32_f32_rintf() {
2059 return &_oil_function_impl_conv_u32_f32_rintf;
2063 #ifdef __SYMBIAN32__
2065 OilFunctionImpl* __oil_function_impl_conv_s8_f32_lrint() {
2066 return &_oil_function_impl_conv_s8_f32_lrint;
2070 #ifdef __SYMBIAN32__
2072 OilFunctionImpl* __oil_function_impl_conv_s8_f64_lrint() {
2073 return &_oil_function_impl_conv_s8_f64_lrint;
2078 #ifdef __SYMBIAN32__
2080 OilFunctionImpl* __oil_function_impl_conv_u8_f32_lrint() {
2081 return &_oil_function_impl_conv_u8_f32_lrint;
2085 #ifdef __SYMBIAN32__
2087 OilFunctionImpl* __oil_function_impl_conv_u8_f64_lrint() {
2088 return &_oil_function_impl_conv_u8_f64_lrint;
2092 #ifdef __SYMBIAN32__
2094 OilFunctionImpl* __oil_function_impl_conv_s16_f32_lrint() {
2095 return &_oil_function_impl_conv_s16_f32_lrint;
2099 #ifdef __SYMBIAN32__
2101 OilFunctionImpl* __oil_function_impl_conv_s16_f64_lrint() {
2102 return &_oil_function_impl_conv_s16_f64_lrint;
2107 #ifdef __SYMBIAN32__
2109 OilFunctionImpl* __oil_function_impl_conv_u16_f32_lrint() {
2110 return &_oil_function_impl_conv_u16_f32_lrint;
2114 #ifdef __SYMBIAN32__
2116 OilFunctionImpl* __oil_function_impl_conv_u16_f64_lrint() {
2117 return &_oil_function_impl_conv_u16_f64_lrint;
2121 #ifdef __SYMBIAN32__
2123 OilFunctionImpl* __oil_function_impl_conv_s32_f32_lrint() {
2124 return &_oil_function_impl_conv_s32_f32_lrint;
2128 #ifdef __SYMBIAN32__
2130 OilFunctionImpl* __oil_function_impl_conv_s32_f64_lrint() {
2131 return &_oil_function_impl_conv_s32_f64_lrint;
2135 #ifdef __SYMBIAN32__
2137 OilFunctionImpl* __oil_function_impl_conv_s8_f32_lrintf() {
2138 return &_oil_function_impl_conv_s8_f32_lrintf;
2142 #ifdef __SYMBIAN32__
2144 OilFunctionImpl* __oil_function_impl_conv_u8_f32_lrintf() {
2145 return &_oil_function_impl_conv_u8_f32_lrintf;
2149 #ifdef __SYMBIAN32__
2151 OilFunctionImpl* __oil_function_impl_conv_s16_f32_lrintf() {
2152 return &_oil_function_impl_conv_s16_f32_lrintf;
2156 #ifdef __SYMBIAN32__
2158 OilFunctionImpl* __oil_function_impl_conv_u16_f32_lrintf() {
2159 return &_oil_function_impl_conv_u16_f32_lrintf;
2163 #ifdef __SYMBIAN32__
2165 OilFunctionImpl* __oil_function_impl_conv_s32_f32_lrintf() {
2166 return &_oil_function_impl_conv_s32_f32_lrintf;