#include // SAD // OK: sum = 4300 // -O0, -O1 // FAIL sum = 4044 // -02, -O3 static unsigned char s_data1[] = { 53,53,53,53,53,53,53,53, 84,84,84,84,84,84,84,84, 101,101,101,101,101,101,101,101, 49,49,49,49,49,49,49,49, 44,44,44,44,44,44,44,44, 46,46,46,46,46,46,46,46, 43,43,43,43,43,43,43,43, 101,101,101,101,101,101,101,101 }; static unsigned char s_data2[] = { 73,82,114,155,154,154,151,157, 118,123,144,157,160,168,156,162, 73,104,155,159,154,158,156,159, 52,58,138,161,158,168,162,167, 48,56,108,164,155,160,157,166, 46,54,88,165,159,164,159,157, 44,48,81,161,172,169,169,164, 88,97,84,94,129,125,142,147 }; int my_testfunc(void) { int sum = 0, x, y; unsigned char *data1 = s_data1; unsigned char *data2 = s_data2; for (y = 0; y < 8; y++) { for (x = 0; x < 8; x++) { sum += abs(data1[x] - data2[x]); } data1 += 8; data2 += 8; } return sum; }