Implementation notes: amd64, haswell, crypto_dh/gls1271

Computer: haswell
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20130419
Operation: crypto_dh
Primitive: gls1271
TimeImplementationCompilerBenchmark dateSUPERCOP version
640724ref4gcc -O2 -fomit-frame-pointer2013060920130419
645012ref4gcc -O3 -fomit-frame-pointer2013060920130419
655224ref4gcc -m64 -O2 -fomit-frame-pointer2013060920130419
667048ref4gcc -m64 -march=k8 -O3 -fomit-frame-pointer2013060920130419
669792ref4gcc -m64 -O3 -fomit-frame-pointer2013060920130419
675364ref4gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2013060920130419
676836ref4gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2013060920130419
681036ref4gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2013060920130419
688712ref4gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2013060920130419
691799ref4gcc -m64 -O -fomit-frame-pointer2013060920130419
695352ref4gcc -m64 -march=core-avx-i -O -fomit-frame-pointer2013060920130419
695852ref4gcc -funroll-loops -O3 -fomit-frame-pointer2013060920130419
698004ref4gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2013060920130419
698129ref4gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2013060920130419
699400ref4gcc -march=nocona -O -fomit-frame-pointer2013060920130419
700806ref4gcc -m64 -march=barcelona -O -fomit-frame-pointer2013060920130419
703291ref4gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2013060920130419
705612ref4gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2013060920130419
706764ref4gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2013060920130419
712276ref4gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2013060920130419
712580ref4gcc -march=barcelona -O2 -fomit-frame-pointer2013060920130419
713540ref4gcc -m64 -march=core2 -O2 -fomit-frame-pointer2013060920130419
716980ref4gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2013060920130419
717568ref4gcc -march=k8 -O2 -fomit-frame-pointer2013060920130419
719222ref4gcc -funroll-loops -O2 -fomit-frame-pointer2013060920130419
721736ref4gcc -fno-schedule-insns -O2 -fomit-frame-pointer2013060920130419
722460ref4gcc -funroll-loops -march=k8 -O -fomit-frame-pointer2013060920130419
722821ref4gcc -fno-schedule-insns -O3 -fomit-frame-pointer2013060920130419
723322ref4gcc -m64 -march=k8 -O2 -fomit-frame-pointer2013060920130419
724068ref4gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2013060920130419
724176ref4gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2013060920130419
727848ref4gcc -march=nocona -O3 -fomit-frame-pointer2013060920130419
730220ref4gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2013060920130419
731522ref4gcc -m64 -march=core2 -O3 -fomit-frame-pointer2013060920130419
732460ref4gcc -m64 -march=nocona -O2 -fomit-frame-pointer2013060920130419
733440ref4gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2013060920130419
734316ref4gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2013060920130419
735082ref4gcc -march=k8 -O3 -fomit-frame-pointer2013060920130419
735108ref4gcc -m64 -march=core2 -O -fomit-frame-pointer2013060920130419
737592ref4gcc -m64 -march=k8 -O -fomit-frame-pointer2013060920130419
737680ref4gcc -m64 -march=nocona -O3 -fomit-frame-pointer2013060920130419
738290ref4gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2013060920130419
741032ref4gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2013060920130419
741680ref4gcc -m64 -march=nocona -O -fomit-frame-pointer2013060920130419
746088ref4gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2013060920130419
746298ref4gcc -funroll-loops -O -fomit-frame-pointer2013060920130419
748338ref4gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2013060920130419
749424ref4gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2013060920130419
752284ref4gcc -march=barcelona -O -fomit-frame-pointer2013060920130419
752416ref4gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2013060920130419
753176ref4gcc -fno-schedule-insns -O -fomit-frame-pointer2013060920130419
753420ref4gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2013060920130419
753776ref4gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2013060920130419
754150ref4gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2013060920130419
755328ref4gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2013060920130419
759092ref4gcc -O -fomit-frame-pointer2013060920130419
759424ref4gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2013060920130419
759850ref4gcc -funroll-loops -Os -fomit-frame-pointer2013060920130419
759904ref4gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2013060920130419
762384ref4gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2013060920130419
762420ref4gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2013060920130419
768766ref4gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2013060920130419
769221ref4gcc -march=nocona -O2 -fomit-frame-pointer2013060920130419
771703ref4gcc -m64 -Os -fomit-frame-pointer2013060920130419
775464ref4gcc -march=k8 -O -fomit-frame-pointer2013060920130419
775536ref4gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2013060920130419
775712ref4gcc -m64 -march=barcelona -Os -fomit-frame-pointer2013060920130419
776736ref4gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2013060920130419
778663ref4gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2013060920130419
781040ref4gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2013060920130419
785262ref4gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2013060920130419
787740ref4gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2013060920130419
787808ref4gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2013060920130419
788664ref4gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2013060920130419
793912ref4gcc -march=barcelona -O3 -fomit-frame-pointer2013060920130419
794952ref4gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2013060920130419
796237ref4gcc -funroll-loops -m64 -O -fomit-frame-pointer2013060920130419
796480ref4gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2013060920130419
801820ref4gcc -m64 -march=corei7 -O -fomit-frame-pointer2013060920130419
802916ref4gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2013060920130419
815852ref4gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2013060920130419
816807ref4gcc -march=k8 -Os -fomit-frame-pointer2013060920130419
819150ref4gcc -m64 -march=nocona -Os -fomit-frame-pointer2013060920130419
819834ref4gcc -march=barcelona -Os -fomit-frame-pointer2013060920130419
821780ref4gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2013060920130419
822268ref4gcc -m64 -march=corei7 -O3 -fomit-frame-pointer2013060920130419
828956ref4gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2013060920130419
832934ref4gcc -m64 -march=corei7-avx -O -fomit-frame-pointer2013060920130419
837348ref4gcc -funroll-loops -m64 -Os -fomit-frame-pointer2013060920130419
845764ref4gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2013060920130419
847260ref4gcc -m64 -march=k8 -Os -fomit-frame-pointer2013060920130419
849896ref4gcc -march=nocona -Os -fomit-frame-pointer2013060920130419
850188ref4gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2013060920130419
854388ref4gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2013060920130419
860508ref4gcc -fno-schedule-insns -Os -fomit-frame-pointer2013060920130419
861456ref4gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2013060920130419
862860ref4gcc -m64 -march=core2 -Os -fomit-frame-pointer2013060920130419
863412ref4gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2013060920130419
867072ref4gcc -Os -fomit-frame-pointer2013060920130419
878977ref4gcc -m64 -march=corei7 -Os -fomit-frame-pointer2013060920130419
1171744ref4gcc2013060920130419
1196466ref4cc2013060920130419
1262068ref4gcc -funroll-loops2013060920130419

Compiler output

Implementation: crypto_dh/gls1271/ref4
Compiler: clang -O3
gls1271.c: gls1271.c:385:2: warning: implicit declaration of function 'ecn2_brick_init' is invalid in C99 [-Wimplicit-function-declaration]
gls1271.c: ecn2_brick_init(&binst,prom,A,B,p,6,128);
gls1271.c: ^
gls1271.c: gls1271.c:391:5: warning: implicit declaration of function 'randombytes' is invalid in C99 [-Wimplicit-function-declaration]
gls1271.c: randombytes(sk,32);
gls1271.c: ^
gls1271.c: gls1271.c:395:22: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
gls1271.c: bytes_to_big(mip,16,sk,a[0]);
gls1271.c: ^~
gls1271.c: ./miracl.h:842:50: note: passing argument to parameter here
gls1271.c: extern void bytes_to_big(_MIPT_ int,const char *,big);
gls1271.c: ^
gls1271.c: gls1271.c:396:22: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
gls1271.c: bytes_to_big(mip,16,&sk[16],a[1]);
gls1271.c: ^~~~~~~
gls1271.c: ./miracl.h:842:50: note: passing argument to parameter here
gls1271.c: extern void bytes_to_big(_MIPT_ int,const char *,big);
gls1271.c: ^
gls1271.c: gls1271.c:400:29: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
gls1271.c: big_to_bytes(mip,16,x.a,pk,TRUE);
gls1271.c: ^~
gls1271.c: ./miracl.h:843:48: note: passing argument to parameter here
gls1271.c: extern int big_to_bytes(_MIPT_ int,big,char *,BOOL);
gls1271.c: ^
gls1271.c: gls1271.c:401:29: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
gls1271.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 ref4
clang -O3 -mavx ref4