Implementation notes: amd64, waldorf, crypto_dh/ecfp256e

Computer: waldorf
Architecture: amd64
CPU ID: GenuineIntel-000106e5-bfebfbff
SUPERCOP version: 20160715
Operation: crypto_dh
Primitive: ecfp256e
TimeImplementationCompilerBenchmark dateSUPERCOP version
1021948v01/w8s8gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1132104v01/w8s8gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1133740v01/w8s2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1160040v01/w8s2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1175300v01/w8s4gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1203380v01/w8s4gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1242756v01/w8s1gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1244628v01/w8s8gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1254736v01/w8s8gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1288676v01/w8s4gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1293308v01/w8s1gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1307448v01/w8s4gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1331244v01/w8s2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1337800v01/w8s2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1375988v01/w8s1gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1382324v01/w8s1gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1885456v01/vargcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1925480v01/vargcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
2128428v01/vargcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
2147228v01/vargcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715

Compiler output

Implementation: crypto_dh/ecfp256e/v01/var
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
alloc.c: alloc.c:77:11: warning: passing 'char [13]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
alloc.c: kn_exit("kn_init_fast", ERR_OUT_OF_MEMORY);
alloc.c: ^~~~~~~~~~~~~~
alloc.c: ./_core.h:132:21: note: passing argument to parameter 's' here
alloc.c: void kn_exit(sic_t *s, uni_t code);
alloc.c: ^
alloc.c: alloc.c:92:11: warning: passing 'char [13]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
alloc.c: kn_exit("kn_free_fast", ERR_INVALID_MEMORY);
alloc.c: ^~~~~~~~~~~~~~
alloc.c: ./_core.h:132:21: note: passing argument to parameter 's' here
alloc.c: void kn_exit(sic_t *s, uni_t code);
alloc.c: ^
alloc.c: alloc.c:108:11: warning: passing 'char [8]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
alloc.c: kn_exit("kn_kill", ERR_INVALID_MEMORY);
alloc.c: ^~~~~~~~~
alloc.c: ./_core.h:132:21: note: passing argument to parameter 's' here
alloc.c: void kn_exit(sic_t *s, uni_t code);
alloc.c: ^
alloc.c: alloc.c:131:11: warning: passing 'char [33]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
alloc.c: kn_exit("kn_alloc: cannot allocate memory", 0);
alloc.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alloc.c: ./_core.h:132:21: note: passing argument to parameter 's' here
alloc.c: void kn_exit(sic_t *s, uni_t code);
alloc.c: ^
alloc.c: alloc.c:152:12: warning: passing 'char [8]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
alloc.c: ...
error.c: error.c:44:11: warning: passing 'char [56]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
error.c: kn_exit("Increase the workspace space using crypmix_init(maxlen)", ERR_OUT_OF_BOUNDS);
error.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
error.c: error.c:29:21: note: passing argument to parameter 's' here
error.c: void kn_exit(sic_t *s, uni_t code)
error.c: ^
error.c: 1 warning generated.
integer_hi_stack.c: integer_hi_stack.c:387:11: warning: passing 'char [11]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
integer_hi_stack.c: kn_exit("mi_q_and_r", ERR_DIVIDE_BY_ZERO);
integer_hi_stack.c: ^~~~~~~~~~~~
integer_hi_stack.c: ./kernel.h:814:18: note: passing argument to parameter 's' here
integer_hi_stack.c: void kn_exit(sic s, uni_t code);
integer_hi_stack.c: ^
integer_hi_stack.c: integer_hi_stack.c:417:11: warning: passing 'char [11]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
integer_hi_stack.c: kn_exit("mi_q_and_r", ERR_DIVIDE_BY_ZERO);
integer_hi_stack.c: ^~~~~~~~~~~~
integer_hi_stack.c: ./kernel.h:814:18: note: passing argument to parameter 's' here
integer_hi_stack.c: void kn_exit(sic s, uni_t code);
integer_hi_stack.c: ^
integer_hi_stack.c: integer_hi_stack.c:907:11: warning: passing 'char [33]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
integer_hi_stack.c: kn_exit("mi_modinv_stack: 0 is not a unit", 0);
integer_hi_stack.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
integer_hi_stack.c: ./kernel.h:814:18: note: passing argument to parameter 's' here
integer_hi_stack.c: void kn_exit(sic s, uni_t code);
integer_hi_stack.c: ^
integer_hi_stack.c: integer_hi_stack.c:918:11: warning: passing 'char [16]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
integer_hi_stack.c: kn_exit("mi_modinv_stack", 0);
integer_hi_stack.c: ^~~~~~~~~~~~~~~~~
integer_hi_stack.c: ./kernel.h:814:18: note: passing argument to parameter 's' here
integer_hi_stack.c: void kn_exit(sic s, uni_t code);
integer_hi_stack.c: ^
integer_hi_stack.c: integer_hi_stack.c:943:12: warning: passing 'char [32]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
integer_hi_stack.c: ...
integer_lo.c: integer_lo.c:551:10: warning: passing 'char [35]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
integer_lo.c: kn_exit("min_nres_prepare2: not implemented", 0);
integer_lo.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
integer_lo.c: ./kernel.h:814:18: note: passing argument to parameter 's' here
integer_lo.c: void kn_exit(sic s, uni_t code);
integer_lo.c: ^
integer_lo.c: 1 warning generated.
io.c: io.c:340:11: warning: passing 'char [32]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
io.c: kn_exit("kn_io_fscan: zero length string", ERR_INVALID_STRING);
io.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
io.c: ./_core.h:132:21: note: passing argument to parameter 's' here
io.c: void kn_exit(sic_t *s, uni_t code);
io.c: ^
io.c: io.c:350:12: warning: passing 'char [31]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
io.c: kn_exit("kn_io_fscan: invalid character", ERR_INVALID_CHARACTER);
io.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
io.c: ./_core.h:132:21: note: passing argument to parameter 's' here
io.c: void kn_exit(sic_t *s, uni_t code);
io.c: ^
io.c: io.c:352:14: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
io.c: if((buf[i] == -1)){
io.c: ~~~~~~~^~~~~
io.c: io.c:352:14: note: remove extraneous parentheses around the comparison to silence this warning
io.c: if((buf[i] == -1)){
io.c: ~ ^ ~
io.c: io.c:352:14: note: use '=' to turn this equality comparison into an assignment
io.c: if((buf[i] == -1)){
io.c: ^~
io.c: =
io.c: io.c:353:12: warning: passing 'char [31]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
io.c: kn_exit("kn_io_fscan: invalid character", ERR_INVALID_CHARACTER);
io.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
io.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments v01/var v01/w8s1 v01/w8s2 v01/w8s4 v01/w8s8