Implementation notes: amd64, sliver, crypto_dh/gls254

Computer: sliver
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160731
Operation: crypto_dh
Primitive: gls254
TimeImplementationCompilerBenchmark dateSUPERCOP version
277782refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072520160718

Compiler output

Implementation: crypto_dh/gls254/prot
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:18:22: warning: redefinition of typedef 'uint128_t' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef unsigned int uint128_t __attribute__((mode(TI)));
dh.c: ^
dh.c: ./gls254.h:27:22: note: previous definition is here
dh.c: typedef unsigned int uint128_t __attribute__((mode(TI)));
dh.c: ^
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:19:23: warning: redefinition of typedef 'ui64' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef unsigned long ui64;
dh.c: ^
dh.c: ./gls254.h:26:23: note: previous definition is here
dh.c: typedef unsigned long ui64;
dh.c: ^
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:20:14: warning: redefinition of typedef 'elt' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef ui64 elt[2];
dh.c: ^
dh.c: ./gls254.h:34:14: note: previous definition is here
dh.c: typedef ui64 elt[2];
dh.c: ^
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:21:14: warning: redefinition of typedef 'elt254' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef ui64 elt254[4];
dh.c: ^
dh.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments prot

Compiler output

Implementation: crypto_dh/gls254/ref
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:204:14: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^~~~~~~~~~
dh.c: ./scmul.incl:204:14: note: place parentheses around the '==' expression to silence this warning
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^
dh.c: ( )
dh.c: ./scmul.incl:204:14: note: place parentheses around the & expression to evaluate it first
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^
dh.c: ( )
dh.c: 1 warning generated.
try.c: /tmp/try-anything-271a05.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: crypto_dh_gls254.a(dh.o): In function `gen253':
try.c: dh.c:(.text+0x...): warning: warning: rand() may return deterministic values, is that what you want?
try.c: /tmp/try-anything-5ec9ea.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: crypto_dh_gls254.a(dh.o): In function `gen253':
try.c: dh.c:(.text+0x...): warning: warning: rand() may return deterministic values, is that what you want?
measure.c: crypto_dh_gls254.a(dh.o): In function `gen253':
measure.c: dh.c:(.text+0x...): warning: warning: rand() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_dh/gls254/ref
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
dh.c: In file included from dh.c:3:
dh.c: gls254.h:18:23: error: wmmintrin.h: No such file or directory
dh.c: gls254.h:20:23: error: immintrin.h: No such file or directory
dh.c: In file included from dh.c:6:
dh.c: curves.incl: In function 'AESkeyExp':
dh.c: curves.incl:53: error: incompatible types in assignment
dh.c: curves.incl:54: error: incompatible types in assignment
dh.c: curves.incl:55: error: incompatible types in assignment
dh.c: curves.incl:56: error: incompatible types in assignment
dh.c: curves.incl:57: error: incompatible types in assignment
dh.c: curves.incl:58: error: incompatible types in assignment
dh.c: curves.incl:59: error: incompatible types in assignment
dh.c: curves.incl:60: error: incompatible types in assignment
dh.c: curves.incl:61: error: incompatible types in assignment
dh.c: curves.incl:62: error: incompatible types in assignment
dh.c: curves.incl: In function 'AESenc':
dh.c: curves.incl:75: error: incompatible types in assignment
dh.c: curves.incl:79: error: incompatible types in assignment
dh.c: In file included from dh.c:7:
dh.c: low.incl: In function 'low_mul':
dh.c: low.incl:26: error: incompatible types in assignment
dh.c: low.incl:26: error: incompatible types in assignment
dh.c: low.incl:26: error: incompatible types in assignment
dh.c: low.incl:27: error: incompatible types in assignment
dh.c: low.incl: In function 'low_mul254':
dh.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ref

Compiler output

Implementation: crypto_dh/gls254/prot
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
dh.c: In file included from dh.c:3:
dh.c: gls254.h:18:23: error: wmmintrin.h: No such file or directory
dh.c: gls254.h:20:23: error: immintrin.h: No such file or directory
dh.c: In file included from dh.c:7:
dh.c: low.incl: In function 'low_mul':
dh.c: low.incl:26: error: incompatible types in assignment
dh.c: low.incl:26: error: incompatible types in assignment
dh.c: low.incl:26: error: incompatible types in assignment
dh.c: low.incl:27: error: incompatible types in assignment
dh.c: low.incl: In function 'low_mul254':
dh.c: low.incl:45: error: incompatible types in assignment
dh.c: low.incl:45: error: incompatible types in assignment
dh.c: low.incl:45: error: incompatible types in assignment
dh.c: low.incl:46: error: incompatible types in assignment
dh.c: low.incl:46: error: incompatible types in assignment
dh.c: low.incl:46: error: incompatible types in assignment
dh.c: low.incl:47: error: incompatible types in assignment
dh.c: low.incl:47: error: incompatible types in assignment
dh.c: low.incl:47: error: incompatible types in assignment
dh.c: low.incl:55: error: incompatible types in assignment
dh.c: low.incl:56: error: incompatible types in assignment
dh.c: low.incl: In function 'low_mul_nr254':
dh.c: low.incl:74: error: incompatible types in assignment
dh.c: low.incl:74: error: incompatible types in assignment
dh.c: low.incl:74: error: incompatible types in assignment
dh.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv prot
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv prot
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv prot
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv prot