/* Routine to check correctness of the results */ __attribute__((unused)) static int saturate_b (int i) { if (i > 127) i = 127; else if (i < -128) i = -128; return i; } __attribute__((unused)) static int saturate_w (int i) { if (i > 32767) i = 32767; else if (i < -32768) i = -32768; return i; } __attribute__((unused)) static int saturate_ub (int i) { if (i > 255) i = 255; else if (i < 0) i = 0; return i; } __attribute__((unused)) static int saturate_uw (int i) { if (i > 65535) i = 65535; else if (i < 0) i = 0; return i; } static long long MMXops[] = { 0x3467512347612976LL, 0x000000000000000eLL, 0x3467512347612976LL, 0x0000000000000014LL, 0x3467512347612976LL, 0x000000000000003cLL, 0x0000000000000000LL, 0xFFFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL, 0x0000000000000000LL, 0x0000000000000001LL, 0x1000000000000000LL, 0x1000000000000000LL, 0x0000000000000001LL, 0xFF00FF00FF00FF00LL, 0x00FF00FF00FF00FFLL, 0xFFFFFFFFFFFFFFFFLL, 0x0101010101010101LL, 0x0101010101010101LL, 0xFFFFFFFFFFFFFFFFLL, 0x0123456789ABCDEFLL, 0x0123456789ABCDEFLL, 0x3467512347612976LL, 0x1839876340879234LL, 0x0000000000000000LL, 0x0000000000000000LL, 0xFFFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL, 0x7F7F7F7F7F7F7F7FLL, 0x7F7F7F7F7F7F7F7FLL, 0x7F7F7F7F7F7F7F7FLL, 0x0101010101010101LL, 0x7F7F7F7F7F7F7F7FLL, 0x4782082349761237LL, 0x0000000000000000LL, 0x7F7F7F7F7F7F7F7FLL, 0x8080808080808080LL, 0x8080808080808080LL, 0x0101010101010101LL, 0x8080808080808080LL, 0x8080808080808080LL, 0x0000000000000000LL, 0x2372347120982458LL, 0x8080808080808080LL, 0xFFFFFFFFFFFFFFFFLL, 0x8080808080808080LL, 0x7F7F7F7F7F7F7F7FLL, 0xFFFFFFFFFFFFFFFFLL, 0x8080808080808080LL, 0x7F7F7F7F7F7F7F7FLL, 0xFFFFFFFFFFFFFFFFLL, 0x7F7F7F7F7F7F7F7FLL }; #define MMX_num_ops (sizeof (MMXops) / sizeof (MMXops[0]))