1 typedef int *__restrict__ pRINT;
2 typedef unsigned int *__restrict__ pRUINT;
3 typedef long long *__restrict__ pRINT64;
4 typedef unsigned long long *__restrict__ pRUINT64;
5 extern int abs (int j);
7 void test_orn (pRUINT a, pRUINT b, pRUINT c)
10 for (i = 0; i < 16; i++)
11 c[i] = a[i] | (~b[i]);
14 void test_bic (pRUINT a, pRUINT b, pRUINT c)
17 for (i = 0; i < 16; i++)
18 c[i] = a[i] & (~b[i]);
21 void mla (pRINT a, pRINT b, pRINT c)
28 void mls (pRINT a, pRINT b, pRINT c)
35 void smax (pRINT a, pRINT b, pRINT c)
39 c[i] = (a[i] > b[i] ? a[i] : b[i]);
42 void smin (pRINT a, pRINT b, pRINT c)
46 c[i] = (a[i] < b[i] ? a[i] : b[i]);
49 void umax (pRUINT a, pRUINT b, pRUINT c)
53 c[i] = (a[i] > b[i] ? a[i] : b[i]);
56 void umin (pRUINT a, pRUINT b, pRUINT c)
60 c[i] = (a[i] < b[i] ? a[i] : b[i]);
63 unsigned int reduce_umax (pRUINT a)
66 unsigned int s = a[0];
67 for (i = 1; i < 16; i++)
68 s = (s > a[i] ? s : a[i]);
73 unsigned int reduce_umin (pRUINT a)
76 unsigned int s = a[0];
77 for (i = 1; i < 16; i++)
78 s = (s < a[i] ? s : a[i]);
83 int reduce_smax (pRINT a)
87 for (i = 1; i < 16; i++)
88 s = (s > a[i] ? s : a[i]);
93 int reduce_smin (pRINT a)
97 for (i = 1; i < 16; i++)
98 s = (s < a[i] ? s : a[i]);
103 unsigned int reduce_add_u32 (pRINT a)
107 for (i = 0; i < 16; i++)
113 int reduce_add_s32 (pRINT a)
117 for (i = 0; i < 16; i++)
123 unsigned long long reduce_add_u64 (pRUINT64 a)
126 unsigned long long s = 0;
127 for (i = 0; i < 16; i++)
133 long long reduce_add_s64 (pRINT64 a)
137 for (i = 0; i < 16; i++)
143 void sabd (pRINT a, pRINT b, pRINT c)
146 for (i = 0; i < 16; i++)
147 c[i] = abs (a[i] - b[i]);
150 void saba (pRINT a, pRINT b, pRINT c)
153 for (i = 0; i < 16; i++)
154 c[i] += abs (a[i] - b[i]);