Implementation notes: amd64, h5e450, crypto_sign/pflash1

Computer: h5e450
Architecture: amd64
CPU ID: AuthenticAMD-00500f20-178bfbff
SUPERCOP version: 20130419
Operation: crypto_sign
Primitive: pflash1
TimeImplementationCompilerBenchmark dateSUPERCOP version
3030942refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2012080520120717
3049794refgcc -funroll-loops -O -fomit-frame-pointer2012080520120717
3238728refgcc -funroll-loops -O3 -fomit-frame-pointer2012080520120717
3310815refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2012080520120717
3356931refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2012080520120717
3380424refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2012080520120717
3385272refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2012080520120717
3457605refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2012080520120717
3464592refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2012080520120717
3489339refgcc -m64 -march=k8 -O -fomit-frame-pointer2012080520120717
3499683refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2012080520120717
3538581refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2012080520120717
3538902refgcc -march=barcelona -O3 -fomit-frame-pointer2012080520120717
3543162refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2012080520120717
3548631refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2012080520120717
3581361refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2012080520120717
3584553refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2012080520120717
3591192refgcc -Os -fomit-frame-pointer2012080520120717
3607005refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2012080520120717
3630564refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2012080520120717
3653928refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2012080520120717
3676314refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2012080520120717
3697884refgcc -march=k8 -Os -fomit-frame-pointer2012080520120717
3727377refgcc -march=nocona -Os -fomit-frame-pointer2012080520120717
3753960refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2012080520120717
3764850refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2012080520120717
3798153refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2012080520120717
3801429refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2012080520120717
3826494refgcc -O3 -fomit-frame-pointer2012080520120717
3843027refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2012080520120717
3851319refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2012080520120717
3853845refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2012080520120717
3860589refgcc -march=k8 -O2 -fomit-frame-pointer2012080520120717
3867750refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2012080520120717
3873777refgcc -m64 -march=k8 -Os -fomit-frame-pointer2012080520120717
3891387refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2012080520120717
3911289refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2012080520120717
3916572refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2012080520120717
3918357refgcc -funroll-loops -m64 -O -fomit-frame-pointer2012080520120717
3926124refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2012080520120717
3951045refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2012080520120717
3953349refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2012080520120717
3963939refgcc -m64 -march=nocona -Os -fomit-frame-pointer2012080520120717
3980310refgcc -march=barcelona -Os -fomit-frame-pointer2012080520120717
4018038refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2012080520120717
4029153refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2012080520120717
4033752refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2012080520120717
4034523refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2012080520120717
4042668refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2012080520120717
4048512refgcc -m64 -march=barcelona -O -fomit-frame-pointer2012080520120717
4055394refgcc -O -fomit-frame-pointer2012080520120717
4061136refgcc -fno-schedule-insns -O -fomit-frame-pointer2012080520120717
4069356refgcc -m64 -march=nocona -O -fomit-frame-pointer2012080520120717
4089987refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2012080520120717
4109136refgcc -funroll-loops -O2 -fomit-frame-pointer2012080520120717
4114206refgcc -march=barcelona -O2 -fomit-frame-pointer2012080520120717
4118622refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2012080520120717
4131600refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2012080520120717
4160316refgcc -funroll-loops -Os -fomit-frame-pointer2012080520120717
4162311refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2012080520120717
4177941refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2012080520120717
4188753refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2012080520120717
4227900refgcc -fno-schedule-insns -Os -fomit-frame-pointer2012080520120717
4260522refgcc -m64 -Os -fomit-frame-pointer2012080520120717
4286727refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2012080520120717
4292904refgcc -m64 -march=core2 -Os -fomit-frame-pointer2012080520120717
4299120refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2012080520120717
4335663refgcc -march=barcelona -O -fomit-frame-pointer2012080520120717
4349667refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2012080520120717
4370085refgcc -march=nocona -O -fomit-frame-pointer2012080520120717
4384407refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2012080520120717
4410801refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2012080520120717
4420581refgcc -march=nocona -O2 -fomit-frame-pointer2012080520120717
4451868refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2012080520120717
4467105refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2012080520120717
4559802refgcc -m64 -march=core2 -O -fomit-frame-pointer2012080520120717
4609569refgcc -march=k8 -O -fomit-frame-pointer2012080520120717
4615380refgcc -march=k8 -O3 -fomit-frame-pointer2012080520120717
4633044refgcc -O2 -fomit-frame-pointer2012080520120717
4648830refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2012080520120717
4767381refgcc -march=nocona -O3 -fomit-frame-pointer2012080520120717
4896126refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2012080520120717
4937976refgcc -m64 -O2 -fomit-frame-pointer2012080520120717
4962549refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2012080520120717
5130489refgcc -m64 -O -fomit-frame-pointer2012080520120717
5171478refgcc -m64 -O3 -fomit-frame-pointer2012080520120717
5188827refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2012080520120717
5190783refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2012080520120717
5448012refgcc -m64 -march=corei7 -O -fomit-frame-pointer2012080520120717
10644294refcc2012080520120717
11246430refgcc2012080520120717
13642083refgcc -funroll-loops2012080520120717

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: 88, 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=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 -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 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O2 -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): In function `PFLASH_QMap':
try.c: PFLASH.c:(.text+0x...): undefined reference to `polyPow88'
try.c: crypto_sign_pflash1.a(PFLASH.o): In function `PFLASH_ivsQMap':
try.c: PFLASH.c:(.text+0x...): undefined reference to `polyPow24'
try.c: PFLASH.c:(.text+0x...): undefined reference to `polyPow8'
try.c: PFLASH.c:(.text+0x...): undefined reference to `polyPow8'
try.c: PFLASH.c:(.text+0x...): undefined reference to `polyPow8'
try.c: PFLASH.c:(.text+0x...): undefined reference to `polyPow8'
try.c: PFLASH.c:(.text+0x...): undefined reference to `polyPow56'
try.c: PFLASH.c:(.text+0x...): undefined reference to `polyPow56'
try.c: PFLASH.c:(.text+0x...): undefined reference to `polyPow56'
try.c: PFLASH.c:(.text+0x...): undefined reference to `polyPow8'
try.c: PFLASH.c:(.text+0x...): 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: 1, namely:
CompilerImplementations
clang -O3 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