Implementation notes: amd64, sandy, crypto_sign/pflash1

Computer: sandy
Architecture: amd64
CPU ID: GenuineIntel-000206a7-bfebfbff
SUPERCOP version: 20120908
Operation: crypto_sign
Primitive: pflash1
TimeImplementationCompilerBenchmark dateSUPERCOP version
1550148refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2012081620120812
1555804refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2012081620120812
1727316refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2012081620120812
1738600refgcc -funroll-loops -O3 -fomit-frame-pointer2012081620120812
1749776refgcc -O3 -fomit-frame-pointer2012081620120812
1757172refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2012081620120812
1764056refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2012081620120812
1815760refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2012081620120812
1871200refgcc -march=barcelona -O2 -fomit-frame-pointer2012081620120812
1885772refgcc -march=k8 -O3 -fomit-frame-pointer2012081620120812
1889292refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2012081620120812
1889296refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2012081620120812
1894872refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2012081620120812
1904220refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2012081620120812
1904748refgcc -m64 -march=barcelona -O -fomit-frame-pointer2012081620120812
1911128refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2012081620120812
1928504refgcc -funroll-loops -O2 -fomit-frame-pointer2012081620120812
1934128refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2012081620120812
1981916refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2012081620120812
1992344refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2012081620120812
1996928refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2012081620120812
2000812refgcc -march=nocona -O2 -fomit-frame-pointer2012081620120812
2002216refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2012081620120812
2028168refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2012081620120812
2031616refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2012081620120812
2042984refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2012081620120812
2043156refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2012081620120812
2046344refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2012081620120812
2051228refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2012081620120812
2062600refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2012081620120812
2068048refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2012081620120812
2084696refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2012081620120812
2101452refgcc -march=barcelona -O3 -fomit-frame-pointer2012081620120812
2104716refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2012081620120812
2105216refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2012081620120812
2107028refgcc -funroll-loops -O -fomit-frame-pointer2012081620120812
2110636refgcc -m64 -O -fomit-frame-pointer2012081620120812
2111196refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2012081620120812
2113028refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2012081620120812
2114888refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2012081620120812
2121624refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2012081620120812
2122236refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2012081620120812
2125468refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2012081620120812
2129688refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2012081620120812
2146748refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2012081620120812
2146804refgcc -m64 -march=core2 -O -fomit-frame-pointer2012081620120812
2147800refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2012081620120812
2148704refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2012081620120812
2162836refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2012081620120812
2165328refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2012081620120812
2199392refgcc -m64 -march=core2 -Os -fomit-frame-pointer2012081620120812
2207984refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2012081620120812
2216368refgcc -march=k8 -O -fomit-frame-pointer2012081620120812
2226012refgcc -m64 -march=k8 -O -fomit-frame-pointer2012081620120812
2231128refgcc -m64 -march=corei7 -O -fomit-frame-pointer2012081620120812
2241408refgcc -march=nocona -O3 -fomit-frame-pointer2012081620120812
2244484refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2012081620120812
2245264refgcc -O2 -fomit-frame-pointer2012081620120812
2258316refgcc -m64 -O2 -fomit-frame-pointer2012081620120812
2288672refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2012081620120812
2290188refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2012081620120812
2299984refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2012081620120812
2319280refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2012081620120812
2326304refgcc -m64 -O3 -fomit-frame-pointer2012081620120812
2329376refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2012081620120812
2338924refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2012081620120812
2361668refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2012081620120812
2366696refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2012081620120812
2394692refgcc -m64 -march=nocona -O -fomit-frame-pointer2012081620120812
2418636refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2012081620120812
2439136refgcc -funroll-loops -Os -fomit-frame-pointer2012081620120812
2439980refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2012081620120812
2452328refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2012081620120812
2457608refgcc -m64 -march=k8 -Os -fomit-frame-pointer2012081620120812
2460156refgcc -march=k8 -Os -fomit-frame-pointer2012081620120812
2460176refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2012081620120812
2461308refgcc -march=k8 -O2 -fomit-frame-pointer2012081620120812
2462792refgcc -fno-schedule-insns -Os -fomit-frame-pointer2012081620120812
2464724refgcc -m64 -Os -fomit-frame-pointer2012081620120812
2482952refgcc -fno-schedule-insns -O -fomit-frame-pointer2012081620120812
2487668refgcc -O -fomit-frame-pointer2012081620120812
2491228refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2012081620120812
2503832refgcc -march=barcelona -Os -fomit-frame-pointer2012081620120812
2526056refgcc -march=nocona -O -fomit-frame-pointer2012081620120812
2552388refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2012081620120812
2560216refgcc -funroll-loops -m64 -O -fomit-frame-pointer2012081620120812
2567960refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2012081620120812
2583500refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2012081620120812
2592156refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2012081620120812
2605788refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2012081620120812
2610632refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2012081620120812
2611372refgcc -march=barcelona -O -fomit-frame-pointer2012081620120812
2624268refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2012081620120812
2647448refgcc -m64 -march=nocona -Os -fomit-frame-pointer2012081620120812
2691036refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2012081620120812
2737052refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2012081620120812
2950072refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2012081620120812
2997816refgcc -Os -fomit-frame-pointer2012081620120812
3018992refgcc -march=nocona -Os -fomit-frame-pointer2012081620120812
3150680refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2012081620120812
6777064refgcc2012081620120812
6790620refcc2012081620120812
7609332refgcc -funroll-loops2012081620120812

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: clang -O3
SignScheme.c: SignScheme.c:211:19: warning: passing 'const unsigned char *' to parameter of type 'byte *' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types]
SignScheme.c: SignScheme_sign( sk , h , mlen , sm );
SignScheme.c: ^~
SignScheme.c: SignScheme.c:95:29: note: passing argument to parameter 'pri' here
SignScheme.c: int SignScheme_sign( byte * pri , byte * Y , int Ylen , byte * outX )
SignScheme.c: ^
SignScheme.c: SignScheme.c:227:19: warning: passing 'const unsigned char *' to parameter of type 'byte *' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types]
SignScheme.c: SignScheme_GMap( pk , sm , h );
SignScheme.c: ^~
SignScheme.c: SignScheme.c:152:29: note: passing argument to parameter 'pub' here
SignScheme.c: int SignScheme_GMap( byte * pub , byte * X , byte * outY )
SignScheme.c: ^
SignScheme.c: SignScheme.c:227:24: warning: passing 'const unsigned char *' to parameter of type 'byte *' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types]
SignScheme.c: SignScheme_GMap( pk , sm , h );
SignScheme.c: ^~
SignScheme.c: SignScheme.c:152:42: note: passing argument to parameter 'X' here
SignScheme.c: int SignScheme_GMap( byte * pub , byte * X , byte * outY )
SignScheme.c: ^
SignScheme.c: 3 warnings generated.
try.c: crypto_sign_pflash1.a(PFLASH.o):PFLASH.c:function PFLASH_QMap: error: undefined reference to 'polyPow88'
try.c: crypto_sign_pflash1.a(PFLASH.o):PFLASH.c:function PFLASH_ivsQMap: error: undefined reference to 'polyPow24'
try.c: crypto_sign_pflash1.a(PFLASH.o):PFLASH.c:function PFLASH_ivsQMap: error: undefined reference to 'polyPow8'
try.c: crypto_sign_pflash1.a(PFLASH.o):PFLASH.c:function PFLASH_ivsQMap: error: undefined reference to 'polyPow8'
try.c: crypto_sign_pflash1.a(PFLASH.o):PFLASH.c:function PFLASH_ivsQMap: error: undefined reference to 'polyPow8'
try.c: crypto_sign_pflash1.a(PFLASH.o):PFLASH.c:function PFLASH_ivsQMap: error: undefined reference to 'polyPow8'
try.c: crypto_sign_pflash1.a(PFLASH.o):PFLASH.c:function PFLASH_ivsQMap: error: undefined reference to 'polyPow56'
try.c: crypto_sign_pflash1.a(PFLASH.o):PFLASH.c:function PFLASH_ivsQMap: error: undefined reference to 'polyPow56'
try.c: crypto_sign_pflash1.a(PFLASH.o):PFLASH.c:function PFLASH_ivsQMap: error: undefined reference to 'polyPow56'
try.c: crypto_sign_pflash1.a(PFLASH.o):PFLASH.c:function PFLASH_ivsQMap: error: undefined reference to 'polyPow56'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 ref
clang -O3 -mavx 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