1 /* Routine to check correctness of the results */
2
3 __attribute__((unused))
4 static int
saturate_b(int i)5 saturate_b (int i)
6 {
7 if (i > 127)
8 i = 127;
9 else if (i < -128)
10 i = -128;
11 return i;
12 }
13
14 __attribute__((unused))
15 static int
saturate_w(int i)16 saturate_w (int i)
17 {
18 if (i > 32767)
19 i = 32767;
20 else if (i < -32768)
21 i = -32768;
22 return i;
23 }
24
25 __attribute__((unused))
26 static int
saturate_ub(int i)27 saturate_ub (int i)
28 {
29 if (i > 255)
30 i = 255;
31 else if (i < 0)
32 i = 0;
33 return i;
34 }
35
36 __attribute__((unused))
37 static int
saturate_uw(int i)38 saturate_uw (int i)
39 {
40 if (i > 65535)
41 i = 65535;
42 else if (i < 0)
43 i = 0;
44 return i;
45 }
46
47 static long long MMXops[] =
48 {
49 0x3467512347612976LL, 0x000000000000000eLL,
50 0x3467512347612976LL, 0x0000000000000014LL,
51 0x3467512347612976LL, 0x000000000000003cLL,
52 0x0000000000000000LL, 0xFFFFFFFFFFFFFFFFLL,
53 0xFFFFFFFFFFFFFFFFLL, 0x0000000000000000LL,
54 0x0000000000000001LL, 0x1000000000000000LL,
55 0x1000000000000000LL, 0x0000000000000001LL,
56 0xFF00FF00FF00FF00LL, 0x00FF00FF00FF00FFLL,
57 0xFFFFFFFFFFFFFFFFLL, 0x0101010101010101LL,
58 0x0101010101010101LL, 0xFFFFFFFFFFFFFFFFLL,
59 0x0123456789ABCDEFLL, 0x0123456789ABCDEFLL,
60 0x3467512347612976LL, 0x1839876340879234LL,
61 0x0000000000000000LL, 0x0000000000000000LL,
62 0xFFFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL,
63 0x7F7F7F7F7F7F7F7FLL, 0x7F7F7F7F7F7F7F7FLL,
64 0x7F7F7F7F7F7F7F7FLL, 0x0101010101010101LL,
65 0x7F7F7F7F7F7F7F7FLL, 0x4782082349761237LL,
66 0x0000000000000000LL, 0x7F7F7F7F7F7F7F7FLL,
67 0x8080808080808080LL, 0x8080808080808080LL,
68 0x0101010101010101LL, 0x8080808080808080LL,
69 0x8080808080808080LL, 0x0000000000000000LL,
70 0x2372347120982458LL, 0x8080808080808080LL,
71 0xFFFFFFFFFFFFFFFFLL, 0x8080808080808080LL,
72 0x7F7F7F7F7F7F7F7FLL, 0xFFFFFFFFFFFFFFFFLL,
73 0x8080808080808080LL, 0x7F7F7F7F7F7F7F7FLL,
74 0xFFFFFFFFFFFFFFFFLL, 0x7F7F7F7F7F7F7F7FLL
75 };
76
77 #define MMX_num_ops (sizeof (MMXops) / sizeof (MMXops[0]))
78