TestFunction is a struct
always use size_t for sizes
always clobber "memory" and "cc" in inline assembly loops
'repeats' is an input-output parameter for the assembly loops
use 'asm volatile' to prevent elimination

moving 'repeats' to input/output parameters, but not using the result
caused elimination of the "unused" asm blocks
add -o option to set the output file name
use dummy cpuid for all unknown platforms
add C functions as fallback
BG/Q lacks clock_gettime(CLOCK_MONOTONIC,...)
generate useful plots for unknown functions

list them in order of appearance after the known funcnames