Implementation notes: amd64, h4atom, crypto_dh/curve2251

Computer: h4atom
Architecture: amd64
CPU ID: GenuineIntel-000106ca-bfe9fbff
SUPERCOP version: 20160806
Operation: crypto_dh
Primitive: curve2251
TimeImplementationCompilerBenchmark dateSUPERCOP version
2536920relic/amd64-ssse3gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081420160806
2540160relic/amd64-ssse3clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081420160806
2568976relic/amd64-ssse3gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081420160806
2584920relic/amd64-ssse3gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081420160806
2598440relic/amd64-ssse3gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081420160806
8410584mpfqgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081420160806
8896944mpfqgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081420160806
8902976mpfqgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081420160806
10706344mpfqgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081420160806

Test failure

Implementation: crypto_dh/curve2251/relic/amd64-avx
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
error 111

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments relic/amd64-avx relic/amd64-clmul
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv relic/amd64-avx relic/amd64-clmul
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv relic/amd64-avx relic/amd64-clmul
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv relic/amd64-avx relic/amd64-clmul
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv relic/amd64-avx relic/amd64-clmul

Compiler output

Implementation: crypto_dh/curve2251/mpfq
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
curve2_251.c: In file included from curve2_251.c:8:
curve2_251.c: In file included from ./field.h:1:
curve2_251.c: In file included from ./mpfq_2_251.h:5:
curve2_251.c: ./x86_64/mpfq_2_251.h:900:14: error: use of unknown builtin '__builtin_ia32_pslldqi128' [-Wimplicit-function-declaration]
curve2_251.c: r.s = t0 ^ SHLD(t1, 64);
curve2_251.c: ^
curve2_251.c: ./x86_64/mpfq_2_251.h:748:25: note: expanded from macro 'SHLD'
curve2_251.c: #define SHLD(x,r) (v2di)__builtin_ia32_pslldqi128 ((gcc43bugfix) (x),(r))
curve2_251.c: ^
curve2_251.c: ./x86_64/mpfq_2_251.h:900:14: error: invalid conversion between vector type 'v2di' (vector of 2 'uint64_t' values) and integer type 'int' of different size
curve2_251.c: r.s = t0 ^ SHLD(t1, 64);
curve2_251.c: ^~~~~~~~~~~~
curve2_251.c: ./x86_64/mpfq_2_251.h:748:19: note: expanded from macro 'SHLD'
curve2_251.c: #define SHLD(x,r) (v2di)__builtin_ia32_pslldqi128 ((gcc43bugfix) (x),(r))
curve2_251.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
curve2_251.c: ./x86_64/mpfq_2_251.h:907:14: error: use of unknown builtin '__builtin_ia32_psrldqi128' [-Wimplicit-function-declaration]
curve2_251.c: r.s = t2 ^ SHRD(t1, 64);
curve2_251.c: ^
curve2_251.c: ./x86_64/mpfq_2_251.h:749:25: note: expanded from macro 'SHRD'
curve2_251.c: #define SHRD(x,r) (v2di)__builtin_ia32_psrldqi128 ((gcc43bugfix) (x),(r))
curve2_251.c: ^
curve2_251.c: ./x86_64/mpfq_2_251.h:907:14: error: invalid conversion between vector type 'v2di' (vector of 2 'uint64_t' values) and integer type 'int' of different size
curve2_251.c: r.s = t2 ^ SHRD(t1, 64);
curve2_251.c: ^~~~~~~~~~~~
curve2_251.c: ./x86_64/mpfq_2_251.h:749:19: note: expanded from macro 'SHRD'
curve2_251.c: ...

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

Compiler output

Implementation: crypto_dh/curve2251/relic/amd64-avx
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
relic.c: In file included from relic.c:4:
relic.c: ./src/relic_rand.c:117:8: warning: implicit declaration of function 'time' is invalid in C99 [-Wimplicit-function-declaration]
relic.c: srand(time(NULL));
relic.c: ^
relic.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3

Compiler output

Implementation: crypto_dh/curve2251/relic/amd64-avx
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
relic.c: In file included from relic.c:4:0:
relic.c: src/relic_rand.c: In function 'rand_init':
relic.c: src/relic_rand.c:117:8: warning: implicit declaration of function 'time' [-Wimplicit-function-declaration]
relic.c: srand(time(NULL));
relic.c: ^

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3