Implementation notes: x86, floodyberry, crypto_dh/claus

Computer: floodyberry
Architecture: x86
CPU ID: GenuineIntel-00010676-bfebfbff
SUPERCOP version: 20140505
Operation: crypto_dh
Primitive: claus
TimeImplementationCompilerBenchmark dateSUPERCOP version
16177837cryptoppclang++ -O1 -march=native -m32 -fomit-frame-pointer2014050820140505
16244888cryptoppg++ -m32 -O2 -fomit-frame-pointer2014050820140505
16388775cryptoppg++ -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2014050820140505
16485487cryptoppg++ -m32 -O3 -fomit-frame-pointer2014050820140505
16571650cryptoppicpc -m32 -O3 -static -xHost -fomit-frame-pointer2014050820140505
16574700cryptoppg++ -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2014050820140505
16681375cryptoppicpc -m32 -O1 -static -xHost -fomit-frame-pointer2014050820140505
32897737gmpicpc -m32 -O3 -static -xHost -fomit-frame-pointer2014050820140505
32948537gmpg++ -m32 -O3 -fomit-frame-pointer2014050820140505
32958212gmpicpc -m32 -O1 -static -xHost -fomit-frame-pointer2014050820140505
33071325gmpg++ -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2014050820140505
33180850gmpg++ -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2014050820140505
33241437gmpg++ -m32 -O2 -fomit-frame-pointer2014050820140505
33288162gmpclang++ -O1 -march=native -m32 -fomit-frame-pointer2014050820140505
146044400opensslgcc -m32 -O3 -fomit-frame-pointer2014050820140505
146748213opensslgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2014050820140505
147187487opensslgcc -m32 -O2 -fomit-frame-pointer2014050820140505
148053738opensslclang -O1 -march=native -m32 -fomit-frame-pointer2014050820140505
148305725opensslgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2014050820140505

Test failure

Implementation: crypto_dh/claus/cryptopp
Compiler: clang++ -O3 -march=native -m32 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
clang++ -O3 -march=native -m32 -fomit-frame-pointer cryptopp gmp
clang -O3 -march=native -m32 -fomit-frame-pointer openssl

Compiler output

Implementation: crypto_dh/claus/cryptopp
Compiler: clang++ -O1 -march=native -m32 -fomit-frame-pointer
keypair.cpp: In file included from keypair.cpp:1:
keypair.cpp: In file included from /home/bloom/supercop-20140505/supercop-data/floodyberry/x86/include/cryptopp/dh.h:7:
keypair.cpp: In file included from /home/bloom/supercop-20140505/supercop-data/floodyberry/x86/include/cryptopp/gfpcrypt.h:8:
keypair.cpp: In file included from /home/bloom/supercop-20140505/supercop-data/floodyberry/x86/include/cryptopp/pubkey.h:35:
keypair.cpp: In file included from /home/bloom/supercop-20140505/supercop-data/floodyberry/x86/include/cryptopp/modarith.h:7:
keypair.cpp: /home/bloom/supercop-20140505/supercop-data/floodyberry/x86/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression keypair.cpp: if (a keypair.cpp: ~ ^ ~
keypair.cpp: /home/bloom/supercop-20140505/supercop-data/floodyberry/x86/include/cryptopp/simple.h:35:110: note: in instantiation of function template specialization 'CryptoPP::IntToStringgt;' requested here
keypair.cpp: explicit InvalidKeyLength(const std::string &algorithm, size_t length) : InvalidArgument(algorithm + ": " + IntToString(length) + " is not a valid key length") {}
keypair.cpp: ^
keypair.cpp: 1 warning generated.
sharedsecret.cpp: In file included from sharedsecret.cpp:1:
sharedsecret.cpp: In file included from /home/bloom/supercop-20140505/supercop-data/floodyberry/x86/include/cryptopp/dh.h:7:
sharedsecret.cpp: In file included from /home/bloom/supercop-20140505/supercop-data/floodyberry/x86/include/cryptopp/gfpcrypt.h:8:
sharedsecret.cpp: In file included from /home/bloom/supercop-20140505/supercop-data/floodyberry/x86/include/cryptopp/pubkey.h:35:
sharedsecret.cpp: In file included from /home/bloom/supercop-20140505/supercop-data/floodyberry/x86/include/cryptopp/modarith.h:7:
sharedsecret.cpp: /home/bloom/supercop-20140505/supercop-data/floodyberry/x86/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression sharedsecret.cpp: if (a sharedsecret.cpp: ~ ^ ~
sharedsecret.cpp: /home/bloom/supercop-20140505/supercop-data/floodyberry/x86/include/cryptopp/simple.h:35:110: note: in instantiation of function template specialization 'CryptoPP::IntToStringgt;' requested here
sharedsecret.cpp: explicit InvalidKeyLength(const std::string &algorithm, size_t length) : InvalidArgument(algorithm + ": " + IntToString(length) + " is not a valid key length") {}
sharedsecret.cpp: ^
sharedsecret.cpp: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang++ -O1 -march=native -m32 -fomit-frame-pointer cryptopp
clang++ -O3 -march=native -m32 -fomit-frame-pointer cryptopp

Compiler output

Implementation: crypto_dh/claus/ntl
Compiler: clang++ -O1 -march=native -m32 -fomit-frame-pointer
keypair.cpp: keypair.cpp:1:10: fatal error: 'NTL/ZZ.h' file not found
keypair.cpp: #include gt;
keypair.cpp: ^
keypair.cpp: 1 error generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang++ -O1 -march=native -m32 -fomit-frame-pointer ntl
clang++ -O3 -march=native -m32 -fomit-frame-pointer ntl

Compiler output

Implementation: crypto_dh/claus/ntl
Compiler: g++ -m32 -O2 -fomit-frame-pointer
keypair.cpp: keypair.cpp:1:20: fatal error: NTL/ZZ.h: No such file or directory
keypair.cpp: compilation terminated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
g++ -m32 -O2 -fomit-frame-pointer ntl
g++ -m32 -O3 -fomit-frame-pointer ntl
g++ -m32 -march=native -mtune=native -O2 -fomit-frame-pointer ntl
g++ -m32 -march=native -mtune=native -O3 -fomit-frame-pointer ntl

Compiler output

Implementation: crypto_dh/claus/openssl
Compiler: icc -m32 -O1 -static -xHost -fomit-frame-pointer
try.c: ld: warning: skipping incompatible //usr/lib/x86_64-linux-gnu/libcrypto.a while searching for crypto
try.c: ld: error: cannot find -lcrypto
try.c: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc
try.c: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/ipp/../compiler/lib/intel64/libirc.a while searching for irc
try.c: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc
try.c: /tmp/iccOl7oqC.o:try.c:function preallocate: error: undefined reference to 'RAND_status'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'DH_new'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_new'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_new'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_bin2bn'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_set_word'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'DH_generate_key'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_num_bits'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_bn2bin'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_bn2bin'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_num_bits'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_bn2bin'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'DH_free'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'DH_free'
try.c: crypto_dh_claus.a(sharedsecret.o):sharedsecret.c:function crypto_dh_claus_openssl: error: undefined reference to 'DH_new'
try.c: crypto_dh_claus.a(sharedsecret.o):sharedsecret.c:function crypto_dh_claus_openssl: error: undefined reference to 'BN_new'
try.c: crypto_dh_claus.a(sharedsecret.o):sharedsecret.c:function crypto_dh_claus_openssl: error: undefined reference to 'BN_new'
try.c: crypto_dh_claus.a(sharedsecret.o):sharedsecret.c:function crypto_dh_claus_openssl: error: undefined reference to 'BN_bin2bn'
try.c: crypto_dh_claus.a(sharedsecret.o):sharedsecret.c:function crypto_dh_claus_openssl: error: undefined reference to 'BN_set_word'
try.c: crypto_dh_claus.a(sharedsecret.o):sharedsecret.c:function crypto_dh_claus_openssl: error: undefined reference to 'BN_bin2bn'
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
icc -m32 -O1 -static -xHost -fomit-frame-pointer openssl

Compiler output

Implementation: crypto_dh/claus/openssl
Compiler: icc -m32 -O3 -static -xHost -fomit-frame-pointer
try.c: ld: warning: skipping incompatible //usr/lib/x86_64-linux-gnu/libcrypto.a while searching for crypto
try.c: ld: error: cannot find -lcrypto
try.c: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc
try.c: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/ipp/../compiler/lib/intel64/libirc.a while searching for irc
try.c: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc
try.c: /tmp/icc1kiy0y.o:try.c:function preallocate: error: undefined reference to 'RAND_status'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'DH_new'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_new'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_new'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_bin2bn'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_set_word'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'DH_generate_key'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_num_bits'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_bn2bin'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_bn2bin'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_num_bits'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'DH_free'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'BN_bn2bin'
try.c: crypto_dh_claus.a(keypair.o):keypair.c:function crypto_dh_claus_openssl_keypair: error: undefined reference to 'DH_free'
try.c: crypto_dh_claus.a(sharedsecret.o):sharedsecret.c:function crypto_dh_claus_openssl: error: undefined reference to 'DH_new'
try.c: crypto_dh_claus.a(sharedsecret.o):sharedsecret.c:function crypto_dh_claus_openssl: error: undefined reference to 'BN_new'
try.c: crypto_dh_claus.a(sharedsecret.o):sharedsecret.c:function crypto_dh_claus_openssl: error: undefined reference to 'BN_new'
try.c: crypto_dh_claus.a(sharedsecret.o):sharedsecret.c:function crypto_dh_claus_openssl: error: undefined reference to 'BN_bin2bn'
try.c: crypto_dh_claus.a(sharedsecret.o):sharedsecret.c:function crypto_dh_claus_openssl: error: undefined reference to 'BN_set_word'
try.c: crypto_dh_claus.a(sharedsecret.o):sharedsecret.c:function crypto_dh_claus_openssl: error: undefined reference to 'BN_bin2bn'
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
icc -m32 -O3 -static -xHost -fomit-frame-pointer openssl

Compiler output

Implementation: crypto_dh/claus/ntl
Compiler: icpc -m32 -O1 -static -xHost -fomit-frame-pointer
keypair.cpp: keypair.cpp(1): catastrophic error: cannot open source file "NTL/ZZ.h"
keypair.cpp: #include gt;
keypair.cpp: ^
keypair.cpp:
keypair.cpp: compilation aborted for keypair.cpp (code 4)

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icpc -m32 -O1 -static -xHost -fomit-frame-pointer ntl
icpc -m32 -O3 -static -xHost -fomit-frame-pointer ntl

Compiler output

Implementation: crypto_dh/claus/cryptopp
Compiler: icpc -m32 -O1 -static -xHost -fomit-frame-pointer
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libimf.a while searching for imf
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/ipp/../compiler/lib/intel64/libimf.a while searching for imf
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libimf.a while searching for imf
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/ipp/../compiler/lib/intel64/libirc.a while searching for irc
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libimf.a while searching for imf
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/ipp/../compiler/lib/intel64/libimf.a while searching for imf
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libimf.a while searching for imf
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/ipp/../compiler/lib/intel64/libirc.a while searching for irc
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc
measure.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libimf.a while searching for imf
measure.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/ipp/../compiler/lib/intel64/libimf.a while searching for imf
measure.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libimf.a while searching for imf
measure.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc
measure.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/ipp/../compiler/lib/intel64/libirc.a while searching for irc
measure.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icpc -m32 -O1 -static -xHost -fomit-frame-pointer cryptopp
icpc -m32 -O3 -static -xHost -fomit-frame-pointer cryptopp

Compiler output

Implementation: crypto_dh/claus/gmp
Compiler: icpc -m32 -O1 -static -xHost -fomit-frame-pointer
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/ipp/../compiler/lib/intel64/libirc.a while searching for irc
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/ipp/../compiler/lib/intel64/libirc.a while searching for irc
try.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc
measure.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc
measure.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/ipp/../compiler/lib/intel64/libirc.a while searching for irc
measure.cpp: ld: warning: skipping incompatible /opt/intel/composer_xe_2013_sp1.0.080/compiler/lib/intel64/libirc.a while searching for irc

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icpc -m32 -O1 -static -xHost -fomit-frame-pointer gmp
icpc -m32 -O3 -static -xHost -fomit-frame-pointer gmp