Одной из возможностей является использование данных массива способом, который невозможно легко оптимизировать, например,
clock1 = get_ticks();
sum = 0;
for (i = 0; i < 1000000; i++) {
for (j = 0; j < (workingset * stride / sizeof(data_t)); j += stride) {
sum += array[j];
}
}
clock2 = get_ticks();
return sum;
sum
должно быть в регистре, а операция добавления не должна добавлять ничего существенного к времени цикла.
Если тестовая функция и вызывающая сторона находятся в одной и той же единице компиляции, вам также может потребоваться убедиться, что вы действительно что-то делаете с возвращенным значением суммы, например выведите его через printf.