Implementation notes: amd64, h4e350, crypto_dh/gls1271

Computer: h4e350
Architecture: amd64
CPU ID: AuthenticAMD-00500f10-178bfbff
SUPERCOP version: 20141014
Operation: crypto_dh
Primitive: gls1271
TimeImplementationCompilerBenchmark dateSUPERCOP version
1052394ref4gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014070120140525
1053276ref4gcc -funroll-loops -O2 -fomit-frame-pointer2014070120140525
1054437ref4gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014070120140525
1055127ref4gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014070120140525
1055247ref4gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014070120140525
1057281ref4gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014070120140525
1061160ref4gcc -m64 -O3 -fomit-frame-pointer2014070120140525
1061346ref4gcc -O3 -fomit-frame-pointer2014070120140525
1061931ref4gcc -fno-schedule-insns -O3 -fomit-frame-pointer2014070120140525
1065054ref4gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014070120140525
1065336ref4gcc -march=k8 -O3 -fomit-frame-pointer2014070120140525
1065582ref4gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014070120140525
1068396ref4gcc -march=barcelona -O2 -fomit-frame-pointer2014070120140525
1068564ref4gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014070120140525
1068927ref4gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014070120140525
1069920ref4gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014070120140525
1070352ref4gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014070120140525
1070607ref4gcc -funroll-loops -O3 -fomit-frame-pointer2014070120140525
1070778ref4gcc -m64 -march=core2 -O3 -fomit-frame-pointer2014070120140525
1070790ref4gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014070120140525
1072338ref4gcc -march=barcelona -O3 -fomit-frame-pointer2014070120140525
1072686ref4gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014070120140525
1072971ref4gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014070120140525
1072971ref4gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014070120140525
1073742ref4gcc -m64 -march=core2 -O2 -fomit-frame-pointer2014070120140525
1073853ref4gcc -O2 -fomit-frame-pointer2014070120140525
1074198ref4gcc -fno-schedule-insns -O2 -fomit-frame-pointer2014070120140525
1076142ref4gcc -march=k8 -O2 -fomit-frame-pointer2014070120140525
1076955ref4gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014070120140525
1077576ref4gcc -m64 -O2 -fomit-frame-pointer2014070120140525
1078008ref4gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014070120140525
1078377ref4gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014070120140525
1079586ref4gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014070120140525
1080849ref4gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014070120140525
1089528ref4gcc -march=nocona -O2 -fomit-frame-pointer2014070120140525
1089765ref4gcc -march=nocona -O3 -fomit-frame-pointer2014070120140525
1090911ref4gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014070120140525
1092729ref4gcc -m64 -march=k8 -O3 -fomit-frame-pointer2014070120140525
1094565ref4gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014070120140525
1096053ref4gcc -m64 -march=nocona -O2 -fomit-frame-pointer2014070120140525
1097388ref4gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014070120140525
1100490ref4gcc -m64 -march=k8 -O2 -fomit-frame-pointer2014070120140525
1106820ref4gcc -m64 -march=nocona -O3 -fomit-frame-pointer2014070120140525
1147197ref4gcc -funroll-loops -O -fomit-frame-pointer2014070120140525
1148604ref4gcc -funroll-loops -m64 -O -fomit-frame-pointer2014070120140525
1151226ref4gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014070120140525
1153410ref4gcc -m64 -march=k8 -O -fomit-frame-pointer2014070120140525
1156110ref4gcc -march=k8 -O -fomit-frame-pointer2014070120140525
1158342ref4gcc -march=barcelona -O -fomit-frame-pointer2014070120140525
1158945ref4gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014070120140525
1160076ref4gcc -m64 -march=barcelona -O -fomit-frame-pointer2014070120140525
1162899ref4gcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014070120140525
1163190ref4gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014070120140525
1163661ref4gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014070120140525
1163769ref4gcc -march=nocona -O -fomit-frame-pointer2014070120140525
1166913ref4gcc -m64 -O -fomit-frame-pointer2014070120140525
1167120ref4gcc -m64 -march=core2 -O -fomit-frame-pointer2014070120140525
1167441ref4gcc -m64 -march=corei7 -O -fomit-frame-pointer2014070120140525
1167627ref4gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014070120140525
1168269ref4gcc -fno-schedule-insns -O -fomit-frame-pointer2014070120140525
1168437ref4gcc -O -fomit-frame-pointer2014070120140525
1168584ref4gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014070120140525
1168740ref4gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014070120140525
1169847ref4gcc -m64 -march=nocona -O -fomit-frame-pointer2014070120140525
1170519ref4gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014070120140525
1183362ref4gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014070120140525
1284756ref4gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014070120140525
1285191ref4gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014070120140525
1285617ref4gcc -funroll-loops -Os -fomit-frame-pointer2014070120140525
1285650ref4gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014070120140525
1285866ref4gcc -funroll-loops -m64 -Os -fomit-frame-pointer2014070120140525
1287138ref4gcc -m64 -march=k8 -Os -fomit-frame-pointer2014070120140525
1287504ref4gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014070120140525
1287621ref4gcc -m64 -march=corei7 -Os -fomit-frame-pointer2014070120140525
1288284ref4gcc -m64 -march=barcelona -Os -fomit-frame-pointer2014070120140525
1288575ref4gcc -fno-schedule-insns -Os -fomit-frame-pointer2014070120140525
1288593ref4gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014070120140525
1288836ref4gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014070120140525
1289166ref4gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014070120140525
1289385ref4gcc -m64 -Os -fomit-frame-pointer2014070120140525
1292055ref4gcc -march=barcelona -Os -fomit-frame-pointer2014070120140525
1292064ref4gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014070120140525
1292445ref4gcc -m64 -march=core2 -Os -fomit-frame-pointer2014070120140525
1292799ref4gcc -Os -fomit-frame-pointer2014070120140525
1298556ref4gcc -m64 -march=nocona -Os -fomit-frame-pointer2014070120140525
1299474ref4gcc -march=nocona -Os -fomit-frame-pointer2014070120140525
1306989ref4gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014070120140525
1308342ref4gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014070120140525
1308921ref4gcc -march=k8 -Os -fomit-frame-pointer2014070120140525
1951914ref4cc2014070120140525
1952586ref4gcc -funroll-loops2014070120140525
1953153ref4gcc2014070120140525

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: 1, namely:
CompilerImplementations
clang -O3 -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