Implementation notes: amd64, hydra2, crypto_dh/gls1271

Computer: hydra2
Architecture: amd64
CPU ID: GenuineIntel-000206c2-bfebfbff
SUPERCOP version: 20141014
Operation: crypto_dh
Primitive: gls1271
TimeImplementationCompilerBenchmark dateSUPERCOP version
772804ref4gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014061020140525
772988ref4gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014061020140525
773000ref4gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014061020140525
774180ref4gcc -funroll-loops -O2 -fomit-frame-pointer2014061020140525
776280ref4gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014061020140525
776748ref4gcc -m64 -march=core2 -O3 -fomit-frame-pointer2014061020140525
776820ref4gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014061020140525
778360ref4gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014061020140525
779220ref4gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014061020140525
779996ref4gcc -march=k8 -O3 -fomit-frame-pointer2014061020140525
780304ref4gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014061020140525
780328ref4gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2014061020140525
781176ref4gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014061020140525
781348ref4gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014061020140525
781360ref4gcc -march=k8 -O2 -fomit-frame-pointer2014061020140525
781780ref4gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014061020140525
781812ref4gcc -funroll-loops -O3 -fomit-frame-pointer2014061020140525
781912ref4gcc -fno-schedule-insns -O3 -fomit-frame-pointer2014061020140525
782224ref4gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014061020140525
782312ref4gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014061020140525
782336ref4gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014061020140525
782392ref4gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014061020140525
782400ref4gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014061020140525
782432ref4gcc -fno-schedule-insns -O2 -fomit-frame-pointer2014061020140525
782460ref4gcc -m64 -march=nocona -O3 -fomit-frame-pointer2014061020140525
782500ref4gcc -m64 -march=k8 -O3 -fomit-frame-pointer2014061020140525
782628ref4gcc -m64 -O2 -fomit-frame-pointer2014061020140525
782848ref4gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014061020140525
782908ref4gcc -m64 -march=k8 -O2 -fomit-frame-pointer2014061020140525
783200ref4gcc -m64 -march=core2 -O2 -fomit-frame-pointer2014061020140525
783600ref4gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014061020140525
784104ref4gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014061020140525
784444ref4gcc -m64 -march=corei7 -O3 -fomit-frame-pointer2014061020140525
785616ref4gcc -march=nocona -O3 -fomit-frame-pointer2014061020140525
786080ref4gcc -O2 -fomit-frame-pointer2014061020140525
786104ref4gcc -O3 -fomit-frame-pointer2014061020140525
786376ref4gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014061020140525
786500ref4gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014061020140525
787224ref4gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014061020140525
787872ref4gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014061020140525
788440ref4gcc -march=nocona -O2 -fomit-frame-pointer2014061020140525
788600ref4gcc -m64 -march=nocona -O2 -fomit-frame-pointer2014061020140525
789732ref4gcc -m64 -O3 -fomit-frame-pointer2014061020140525
790848ref4gcc -march=barcelona -O3 -fomit-frame-pointer2014061020140525
792012ref4gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014061020140525
792484ref4gcc -march=barcelona -O2 -fomit-frame-pointer2014061020140525
814624ref4gcc -funroll-loops -m64 -O -fomit-frame-pointer2014061020140525
815120ref4gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014061020140525
816124ref4gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014061020140525
817580ref4gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014061020140525
818012ref4gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014061020140525
818336ref4gcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014061020140525
818372ref4gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014061020140525
818628ref4gcc -m64 -march=core2 -O -fomit-frame-pointer2014061020140525
818752ref4gcc -m64 -march=nocona -O -fomit-frame-pointer2014061020140525
818792ref4gcc -march=nocona -O -fomit-frame-pointer2014061020140525
818912ref4gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014061020140525
819276ref4gcc -m64 -O -fomit-frame-pointer2014061020140525
822360ref4gcc -funroll-loops -O -fomit-frame-pointer2014061020140525
822484ref4gcc -m64 -march=corei7 -O -fomit-frame-pointer2014061020140525
823364ref4gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014061020140525
823424ref4gcc -fno-schedule-insns -O -fomit-frame-pointer2014061020140525
823824ref4gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014061020140525
824060ref4gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014061020140525
826936ref4gcc -m64 -march=barcelona -O -fomit-frame-pointer2014061020140525
827440ref4gcc -march=barcelona -O -fomit-frame-pointer2014061020140525
828496ref4gcc -march=k8 -O -fomit-frame-pointer2014061020140525
829980ref4gcc -O -fomit-frame-pointer2014061020140525
836000ref4gcc -m64 -march=k8 -O -fomit-frame-pointer2014061020140525
900196ref4gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014061020140525
902976ref4gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014061020140525
903852ref4gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014061020140525
904036ref4gcc -funroll-loops -m64 -Os -fomit-frame-pointer2014061020140525
904268ref4gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014061020140525
904476ref4gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014061020140525
904724ref4gcc -m64 -march=nocona -Os -fomit-frame-pointer2014061020140525
905568ref4gcc -funroll-loops -Os -fomit-frame-pointer2014061020140525
905712ref4gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014061020140525
906352ref4gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014061020140525
908932ref4gcc -m64 -march=core2 -Os -fomit-frame-pointer2014061020140525
909560ref4gcc -m64 -march=barcelona -Os -fomit-frame-pointer2014061020140525
909576ref4gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014061020140525
909616ref4gcc -m64 -Os -fomit-frame-pointer2014061020140525
909628ref4gcc -fno-schedule-insns -Os -fomit-frame-pointer2014061020140525
910476ref4gcc -march=k8 -Os -fomit-frame-pointer2014061020140525
910952ref4gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014061020140525
911020ref4gcc -march=barcelona -Os -fomit-frame-pointer2014061020140525
911980ref4gcc -m64 -march=corei7 -Os -fomit-frame-pointer2014061020140525
915648ref4gcc -march=nocona -Os -fomit-frame-pointer2014061020140525
917700ref4gcc -Os -fomit-frame-pointer2014061020140525
922288ref4gcc -m64 -march=k8 -Os -fomit-frame-pointer2014061020140525
924948ref4gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014061020140525
1376148ref4gcc2014061020140525
1377024ref4cc2014061020140525
1383292ref4gcc -funroll-loops2014061020140525

Compiler output

Implementation: crypto_dh/gls1271/ref4
Compiler: clang -O3 -fomit-frame-pointer
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 -fomit-frame-pointer ref4
clang -O3 -fwrapv -march=native -fomit-frame-pointer ref4

Compiler output

Implementation: crypto_dh/gls1271/ref4
Compiler: clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
gls1271.c: clang: warning: argument unused during compilation: '-fpolly'
gls1271.c: clang: warning: argument unused during compilation: '-fvectorize'
gls1271.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
gls1271.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
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: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref4

Compiler output

Implementation: crypto_dh/gls1271/ref4
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
gls1271.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
gls1271.c: clang: warning: argument unused during compilation: '-mavx2'
gls1271.c: clang: warning: argument unused during compilation: '-mpclmul'
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: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer ref4

Compiler output

Implementation: crypto_dh/gls1271/ref4
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
gls1271.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
gls1271.c: clang: warning: argument unused during compilation: '-mavx2'
gls1271.c: clang: warning: argument unused during compilation: '-mpclmul'
gls1271.c: clang: warning: argument unused during compilation: '-fpolly'
gls1271.c: clang: warning: argument unused during compilation: '-fvectorize'
gls1271.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
gls1271.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
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: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref4

Compiler output

Implementation: crypto_dh/gls1271/ref4
Compiler: clang -O3 -fwrapv -mavx2 -fomit-frame-pointer
gls1271.c: clang: warning: argument unused during compilation: '-mavx2'
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: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer ref4

Compiler output

Implementation: crypto_dh/gls1271/ref4
Compiler: clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
gls1271.c: clang: warning: argument unused during compilation: '-mavx2'
gls1271.c: clang: warning: argument unused during compilation: '-fpolly'
gls1271.c: clang: warning: argument unused during compilation: '-fvectorize'
gls1271.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
gls1271.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
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: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref4