Skip to content

Instantly share code, notes, and snippets.

@Mons
Created November 21, 2012 12:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Mons/4124551 to your computer and use it in GitHub Desktop.
Save Mons/4124551 to your computer and use it in GitHub Desktop.
Comparison for asmlib
/*
Compile me:
gcc -o asmbench asmbench.c -L. -laelf64 -lrt -O0 && ./asmbench
Asmlib is here: http://agner.org/optimize/#asmlib
*/
#include "benchmark.h"
#include "asmlib.h"
int test_std (va_list ap) {
char *str1 = va_arg( ap, char * );
char *str2 = va_arg( ap, char * );
return (int)( str1 - strstr(str1,str2));
}
int test_asm (va_list ap) {
char *str1 = va_arg( ap, char * );
char *str2 = va_arg( ap, char * );
return (int)( str1 - A_strstr(str1,str2));
}
static const char *l = "sdo hfk hlks dhflkjshd lksjhd flkhsd fkkls h kjsdfh l kshd flkjh klsjhkfljh l kl jhsdfkl khsdkhs lks sdk hfklsh l klshfl ksdd f";
static const char *s = "klshfl";
int main () {
bench_item tests[2] = {
{"std", test_std, 0},
{"asm", test_asm, 0}
};
benchmark(1E9, 2, tests, l, s);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment