Implementation notes: amd64, bulldozer, crypto_sign/pflash1

Computer: bulldozer
Architecture: amd64
CPU ID: AuthenticAMD-00600f12-178bfbff
SUPERCOP version: 20120709
Operation: crypto_sign
Primitive: pflash1
TimeImplementationCompilerBenchmark dateSUPERCOP version
2354328refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2012053120120525
2378767refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2012053120120525
2518581refgcc -fno-schedule-insns -Os -fomit-frame-pointer2012053120120525
2567407refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2012053120120525
2632853refgcc -m64 -march=k8 -O -fomit-frame-pointer2012053120120525
2661757refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2012053120120525
2668417refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2012053120120525
2674859refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2012053120120525
2678700refgcc -march=k8 -Os -fomit-frame-pointer2012053120120525
2682985refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2012053120120525
2687928refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2012053120120525
2696218refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2012053120120525
2716597refgcc -m64 -march=barcelona -O -fomit-frame-pointer2012053120120525
2741863refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2012053120120525
2840207refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2012053120120525
2845143refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2012053120120525
2883588refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2012053120120525
2889612refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2012053120120525
2947326refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2012053120120525
2962775refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2012053120120525
2974315refgcc -funroll-loops -O -fomit-frame-pointer2012053120120525
2985484refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2012053120120525
2987275refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2012053120120525
3003342refgcc -Os -fomit-frame-pointer2012053120120525
3006735refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2012053120120525
3021796refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2012053120120525
3031192refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2012053120120525
3045539refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2012053120120525
3065938refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2012053120120525
3066722refgcc -march=nocona -Os -fomit-frame-pointer2012053120120525
3067752refgcc -m64 -march=nocona -Os -fomit-frame-pointer2012053120120525
3067835refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2012053120120525
3075211refgcc -O -fomit-frame-pointer2012053120120525
3085344refgcc -m64 -Os -fomit-frame-pointer2012053120120525
3102660refgcc -funroll-loops -m64 -O -fomit-frame-pointer2012053120120525
3103848refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2012053120120525
3120456refgcc -march=barcelona -O -fomit-frame-pointer2012053120120525
3121009refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2012053120120525
3131522refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2012053120120525
3147250refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2012053120120525
3151384refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2012053120120525
3152404refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2012053120120525
3153511refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2012053120120525
3158207refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2012053120120525
3160837refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2012053120120525
3172661refgcc -funroll-loops -Os -fomit-frame-pointer2012053120120525
3173031refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2012053120120525
3176804refgcc -m64 -march=k8 -Os -fomit-frame-pointer2012053120120525
3204735refgcc -march=barcelona -Os -fomit-frame-pointer2012053120120525
3225896refgcc -funroll-loops -O2 -fomit-frame-pointer2012053120120525
3236292refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2012053120120525
3253223refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2012053120120525
3258364refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2012053120120525
3272734refgcc -m64 -march=nocona -O -fomit-frame-pointer2012053120120525
3273477refgcc -march=nocona -O3 -fomit-frame-pointer2012053120120525
3291069refgcc -march=nocona -O2 -fomit-frame-pointer2012053120120525
3324791refgcc -m64 -O3 -fomit-frame-pointer2012053120120525
3326678refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2012053120120525
3334244refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2012053120120525
3346295refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2012053120120525
3346466refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2012053120120525
3347136refgcc -march=k8 -O -fomit-frame-pointer2012053120120525
3347995refgcc -O3 -fomit-frame-pointer2012053120120525
3348084refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2012053120120525
3354593refgcc -march=k8 -O3 -fomit-frame-pointer2012053120120525
3365492refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2012053120120525
3365850refgcc -O2 -fomit-frame-pointer2012053120120525
3387367refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2012053120120525
3391522refgcc -funroll-loops -O3 -fomit-frame-pointer2012053120120525
3394014refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2012053120120525
3395807refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2012053120120525
3415014refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2012053120120525
3415333refgcc -m64 -march=corei7 -O -fomit-frame-pointer2012053120120525
3417293refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2012053120120525
3428602refgcc -m64 -march=core2 -Os -fomit-frame-pointer2012053120120525
3442182refgcc -m64 -march=core2 -O -fomit-frame-pointer2012053120120525
3443944refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2012053120120525
3466064refgcc -march=barcelona -O3 -fomit-frame-pointer2012053120120525
3476800refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2012053120120525
3506368refgcc -fno-schedule-insns -O -fomit-frame-pointer2012053120120525
3513424refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2012053120120525
3514241refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2012053120120525
3518393refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2012053120120525
3521842refgcc -march=k8 -O2 -fomit-frame-pointer2012053120120525
3524768refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2012053120120525
3531153refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2012053120120525
3543805refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2012053120120525
3564395refgcc -m64 -O2 -fomit-frame-pointer2012053120120525
3565110refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2012053120120525
3581652refgcc -m64 -O -fomit-frame-pointer2012053120120525
3648971refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2012053120120525
3650580refgcc -march=nocona -O -fomit-frame-pointer2012053120120525
3657417refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2012053120120525
3711071refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2012053120120525
3719162refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2012053120120525
3728595refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2012053120120525
3835604refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2012053120120525
3868638refgcc -march=barcelona -O2 -fomit-frame-pointer2012053120120525
3893696refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2012053120120525
4035942refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2012053120120525
9184645refcc2012053120120525
10493911refgcc -funroll-loops2012053120120525
11955034refgcc2012053120120525

Compiler output

Implementation: crypto_sign/pflash1/ref
Compiler: cc
SignScheme.c: SignScheme.c: In function 'signatureofshorthash':
SignScheme.c: SignScheme.c:211:2: warning: passing argument 1 of 'SignScheme_sign' discards 'const' qualifier from pointer target type [enabled by default]
SignScheme.c: SignScheme.c:95:5: note: expected 'byte *' but argument is of type 'const unsigned char *'
SignScheme.c: SignScheme.c: In function 'verification':
SignScheme.c: SignScheme.c:227:2: warning: passing argument 1 of 'SignScheme_GMap' discards 'const' qualifier from pointer target type [enabled by default]
SignScheme.c: SignScheme.c:152:5: note: expected 'byte *' but argument is of type 'const unsigned char *'
SignScheme.c: SignScheme.c:227:2: warning: passing argument 2 of 'SignScheme_GMap' discards 'const' qualifier from pointer target type [enabled by default]
SignScheme.c: SignScheme.c:152:5: note: expected 'byte *' but argument is of type 'const unsigned char *'

Number of similar (compiler,implementation) pairs: 99, namely:
CompilerImplementations
cc ref
gcc ref
gcc -O2 -fomit-frame-pointer ref
gcc -O3 -fomit-frame-pointer ref
gcc -O -fomit-frame-pointer ref
gcc -Os -fomit-frame-pointer ref
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops ref
gcc -funroll-loops -O2 -fomit-frame-pointer ref
gcc -funroll-loops -O3 -fomit-frame-pointer ref
gcc -funroll-loops -O -fomit-frame-pointer ref
gcc -funroll-loops -Os -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer ref
gcc -m64 -O2 -fomit-frame-pointer ref
gcc -m64 -O3 -fomit-frame-pointer ref
gcc -m64 -O -fomit-frame-pointer ref
gcc -m64 -Os -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O -fomit-frame-pointer ref
gcc -m64 -march=corei7 -Os -fomit-frame-pointer ref
gcc -m64 -march=k8 -O2 -fomit-frame-pointer ref
gcc -m64 -march=k8 -O3 -fomit-frame-pointer ref
gcc -m64 -march=k8 -O -fomit-frame-pointer ref
gcc -m64 -march=k8 -Os -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer ref
gcc -m64 -march=nocona -O2 -fomit-frame-pointer ref
gcc -m64 -march=nocona -O3 -fomit-frame-pointer ref
gcc -m64 -march=nocona -O -fomit-frame-pointer ref
gcc -m64 -march=nocona -Os -fomit-frame-pointer ref
gcc -march=barcelona -O2 -fomit-frame-pointer ref
gcc -march=barcelona -O3 -fomit-frame-pointer ref
gcc -march=barcelona -O -fomit-frame-pointer ref
gcc -march=barcelona -Os -fomit-frame-pointer ref
gcc -march=k8 -O2 -fomit-frame-pointer ref
gcc -march=k8 -O3 -fomit-frame-pointer ref
gcc -march=k8 -O -fomit-frame-pointer ref
gcc -march=k8 -Os -fomit-frame-pointer ref
gcc -march=nocona -O2 -fomit-frame-pointer ref
gcc -march=nocona -O3 -fomit-frame-pointer ref
gcc -march=nocona -O -fomit-frame-pointer ref
gcc -march=nocona -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_sign/pflash1/ref
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
SignScheme.c: SignScheme.c: In function 'signatureofshorthash':
SignScheme.c: SignScheme.c:211:2: warning: passing argument 1 of 'SignScheme_sign' discards 'const' qualifier from pointer target type [enabled by default]
SignScheme.c: SignScheme.c:95:5: note: expected 'byte *' but argument is of type 'const unsigned char *'
SignScheme.c: SignScheme.c: In function 'verification':
SignScheme.c: SignScheme.c:227:2: warning: passing argument 1 of 'SignScheme_GMap' discards 'const' qualifier from pointer target type [enabled by default]
SignScheme.c: SignScheme.c:152:5: note: expected 'byte *' but argument is of type 'const unsigned char *'
SignScheme.c: SignScheme.c:227:2: warning: passing argument 2 of 'SignScheme_GMap' discards 'const' qualifier from pointer target type [enabled by default]
SignScheme.c: SignScheme.c:152:5: note: expected 'byte *' but argument is of type 'const unsigned char *'
SignScheme.c: SignScheme.c: In function 'signatureofshorthash':
SignScheme.c: SignScheme.c:211:2: warning: passing argument 1 of 'SignScheme_sign' discards 'const' qualifier from pointer target type [enabled by default]
SignScheme.c: SignScheme.c:95:5: note: expected 'byte *' but argument is of type 'const unsigned char *'
SignScheme.c: SignScheme.c: In function 'verification':
SignScheme.c: SignScheme.c:227:2: warning: passing argument 1 of 'SignScheme_GMap' discards 'const' qualifier from pointer target type [enabled by default]
SignScheme.c: SignScheme.c:152:5: note: expected 'byte *' but argument is of type 'const unsigned char *'
SignScheme.c: SignScheme.c:227:2: warning: passing argument 2 of 'SignScheme_GMap' discards 'const' qualifier from pointer target type [enabled by default]
SignScheme.c: SignScheme.c:152:5: note: expected 'byte *' but argument is of type 'const unsigned char *'

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer ref
gcc -m64 -march=barcelona -O -fomit-frame-pointer ref
gcc -m64 -march=barcelona -Os -fomit-frame-pointer ref