Implementation notes: amd64, h4e350, crypto_dh/sclaus1024

Computer: h4e350
Architecture: amd64
CPU ID: AuthenticAMD-00500f10-178bfbff
SUPERCOP version: 20141014
Operation: crypto_dh
Primitive: sclaus1024
TimeImplementationCompilerBenchmark dateSUPERCOP version
2818389cryptoppclang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer2014101920141014
2823504cryptoppclang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer2014080620140622
2835447cryptoppclang++ -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014080620140622
2843229cryptoppg++ -m64 -march=barcelona -O2 -fomit-frame-pointer2014070220140525
2843748cryptoppclang++ -O3 -fomit-frame-pointer2014080620140622
2843928cryptoppclang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101920141014
2845884cryptoppg++ -m64 -march=core2 -O3 -fomit-frame-pointer2014070220140525
2846682cryptoppg++ -O2 -fomit-frame-pointer2014070220140525
2848194cryptoppg++ -m64 -O3 -fomit-frame-pointer2014070220140525
2851701cryptoppg++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014070220140525
2851743cryptoppg++ -march=barcelona -O2 -fomit-frame-pointer2014070220140525
2852070cryptoppg++ -m64 -march=core2 -O2 -fomit-frame-pointer2014070220140525
2853387cryptoppg++ -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014070220140525
2854137cryptoppg++ -fno-schedule-insns -O2 -fomit-frame-pointer2014070220140525
2854614cryptoppg++ -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014070220140525
2854797cryptoppg++ -m64 -march=k8 -O2 -fomit-frame-pointer2014070220140525
2856267cryptoppg++ -O3 -fomit-frame-pointer2014070220140525
2856498cryptoppg++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014070220140525
2857056cryptoppg++ -march=nocona -O3 -fomit-frame-pointer2014070220140525
2857221cryptoppg++ -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014070220140525
2857302cryptoppg++ -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014070220140525
2859546cryptoppg++ -m64 -march=nocona -O3 -fomit-frame-pointer2014070220140525
2861214cryptoppg++ -fno-schedule-insns -O3 -fomit-frame-pointer2014070220140525
2864601cryptoppg++ -m64 -march=k8 -O3 -fomit-frame-pointer2014070220140525
2864634cryptoppg++ -m64 -march=core2 -O -fomit-frame-pointer2014070220140525
2867373cryptoppg++ -m64 -march=corei7 -O2 -fomit-frame-pointer2014070220140525
2868546cryptoppg++ -m64 -O -fomit-frame-pointer2014070220140525
2868921cryptoppg++ -march=k8 -O3 -fomit-frame-pointer2014070220140525
2869077cryptoppg++ -m64 -march=corei7 -O -fomit-frame-pointer2014070220140525
2869731cryptoppg++ -march=k8 -O2 -fomit-frame-pointer2014070220140525
2876022cryptoppg++ -fno-schedule-insns -O -fomit-frame-pointer2014070220140525
2876031cryptoppg++ -m64 -march=core2 -Os -fomit-frame-pointer2014070220140525
2878344cryptoppg++ -m64 -march=native -mtune=native -O -fomit-frame-pointer2014070220140525
2880465cryptoppg++ -march=k8 -O -fomit-frame-pointer2014070220140525
2880795cryptoppg++ -Os -fomit-frame-pointer2014070220140525
2881413cryptoppg++ -m64 -march=nocona -Os -fomit-frame-pointer2014070220140525
2881842cryptoppg++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014070220140525
2882775cryptoppg++ -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014070220140525
2882931cryptoppg++ -m64 -march=nocona -O2 -fomit-frame-pointer2014070220140525
2884953cryptoppg++ -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014070220140525
2885328cryptoppg++ -m64 -march=barcelona -Os -fomit-frame-pointer2014070220140525
2886432cryptoppg++ -m64 -march=barcelona -O -fomit-frame-pointer2014070220140525
2886729cryptoppg++ -march=k8 -Os -fomit-frame-pointer2014070220140525
2889180cryptoppg++ -fno-schedule-insns -Os -fomit-frame-pointer2014070220140525
2892849cryptoppg++ -m64 -march=barcelona -O3 -fomit-frame-pointer2014070220140525
2893326cryptoppg++ -march=nocona -Os -fomit-frame-pointer2014070220140525
2893782cryptoppg++ -march=barcelona -Os -fomit-frame-pointer2014070220140525
2894010cryptoppg++2014070220140525
2895285cryptoppg++ -m64 -march=nocona -O -fomit-frame-pointer2014070220140525
2895582cryptoppg++ -m64 -Os -fomit-frame-pointer2014070220140525
2898321cryptoppg++ -march=barcelona -O -fomit-frame-pointer2014070220140525
2898543cryptoppg++ -march=nocona -O -fomit-frame-pointer2014070220140525
2911347cryptoppg++ -m64 -O2 -fomit-frame-pointer2014070220140525
2917260cryptoppg++ -m64 -march=k8 -O -fomit-frame-pointer2014070220140525
2917293cryptoppg++ -O -fomit-frame-pointer2014070220140525
2961879cryptoppg++ -march=nocona -O2 -fomit-frame-pointer2014070220140525
2961981cryptoppg++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014070220140525
2966853cryptoppg++ -march=barcelona -O3 -fomit-frame-pointer2014070220140525
3003078cryptoppg++ -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014070220140525
3005298cryptoppg++ -m64 -march=corei7 -Os -fomit-frame-pointer2014070220140525
3007158cryptoppg++ -m64 -march=k8 -Os -fomit-frame-pointer2014070220140525
3007497cryptoppg++ -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014070220140525
3027621cryptoppg++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014070220140525

Compiler output

Implementation: crypto_dh/sclaus1024/cryptopp
Compiler: clang++ -O3 -fomit-frame-pointer
keypair.cpp: In file included from keypair.cpp:1:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
keypair.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression keypair.cpp: if (a keypair.cpp: ~ ^ ~
keypair.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/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: In file included from keypair.cpp:1:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
keypair.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression keypair.cpp: if (a keypair.cpp: ~ ^ ~
keypair.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/simple.h:42:113: note: in instantiation of function template specialization 'CryptoPP::IntToStringgt;' requested here
keypair.cpp: explicit InvalidRounds(const std::string &algorithm, unsigned int rounds) : InvalidArgument(algorithm + ": " + IntToString(rounds) + " is not a valid number of rounds") {}
keypair.cpp: ^
keypair.cpp: 2 warnings generated.
sharedsecret.cpp: In file included from sharedsecret.cpp:1:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
sharedsecret.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression sharedsecret.cpp: if (a sharedsecret.cpp: ~ ^ ~
sharedsecret.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/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: In file included from sharedsecret.cpp:1:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
sharedsecret.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression sharedsecret.cpp: if (a sharedsecret.cpp: ~ ^ ~
sharedsecret.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/simple.h:42:113: note: in instantiation of function template specialization 'CryptoPP::IntToStringgt;' requested here
sharedsecret.cpp: explicit InvalidRounds(const std::string &algorithm, unsigned int rounds) : InvalidArgument(algorithm + ": " + IntToString(rounds) + " is not a valid number of rounds") {}
sharedsecret.cpp: ^
sharedsecret.cpp: 2 warnings generated.
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fomit-frame-pointer cryptopp

Compiler output

Implementation: crypto_dh/sclaus1024/gmp
Compiler: clang++ -O3 -fomit-frame-pointer
keypair.cpp: keypair.cpp:1:10: fatal error: 'gmpxx.h' file not found
keypair.cpp: #include gt;
keypair.cpp: ^
keypair.cpp: 1 error generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fomit-frame-pointer gmp

Compiler output

Implementation: crypto_dh/sclaus1024/cryptopp
Compiler: clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
keypair.cpp: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
keypair.cpp: clang: warning: argument unused during compilation: '-mavx2'
keypair.cpp: clang: warning: argument unused during compilation: '-mpclmul'
keypair.cpp: In file included from keypair.cpp:1:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
keypair.cpp: /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression keypair.cpp: if (a keypair.cpp: ~ ^ ~
keypair.cpp: /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/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: In file included from keypair.cpp:1:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
keypair.cpp: /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression keypair.cpp: if (a keypair.cpp: ~ ^ ~
keypair.cpp: /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/simple.h:42:113: note: in instantiation of function template specialization 'CryptoPP::IntToStringgt;' requested here
keypair.cpp: explicit InvalidRounds(const std::string &algorithm, unsigned int rounds) : InvalidArgument(algorithm + ": " + IntToString(rounds) + " is not a valid number of rounds") {}
keypair.cpp: ^
keypair.cpp: ...
sharedsecret.cpp: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
sharedsecret.cpp: clang: warning: argument unused during compilation: '-mavx2'
sharedsecret.cpp: clang: warning: argument unused during compilation: '-mpclmul'
sharedsecret.cpp: In file included from sharedsecret.cpp:1:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
sharedsecret.cpp: /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression sharedsecret.cpp: if (a sharedsecret.cpp: ~ ^ ~
sharedsecret.cpp: /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/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: In file included from sharedsecret.cpp:1:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
sharedsecret.cpp: /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression sharedsecret.cpp: if (a sharedsecret.cpp: ~ ^ ~
sharedsecret.cpp: /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/simple.h:42:113: note: in instantiation of function template specialization 'CryptoPP::IntToStringgt;' requested here
sharedsecret.cpp: explicit InvalidRounds(const std::string &algorithm, unsigned int rounds) : InvalidArgument(algorithm + ": " + IntToString(rounds) + " is not a valid number of rounds") {}
sharedsecret.cpp: ^
sharedsecret.cpp: ...
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer cryptopp

Compiler output

Implementation: crypto_dh/sclaus1024/gmp
Compiler: clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
keypair.cpp: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
keypair.cpp: clang: warning: argument unused during compilation: '-mavx2'
keypair.cpp: clang: warning: argument unused during compilation: '-mpclmul'
keypair.cpp: keypair.cpp:1:10: fatal error: 'gmpxx.h' file not found
keypair.cpp: #include gt;
keypair.cpp: ^
keypair.cpp: 1 error generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer gmp

Compiler output

Implementation: crypto_dh/sclaus1024/cryptopp
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
keypair.cpp: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
keypair.cpp: clang: warning: argument unused during compilation: '-mavx2'
keypair.cpp: clang: warning: argument unused during compilation: '-mpclmul'
keypair.cpp: clang: warning: argument unused during compilation: '-fpolly'
keypair.cpp: clang: warning: argument unused during compilation: '-fvectorize'
keypair.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize'
keypair.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
keypair.cpp: In file included from keypair.cpp:1:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
keypair.cpp: /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression keypair.cpp: if (a keypair.cpp: ~ ^ ~
keypair.cpp: /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/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: In file included from keypair.cpp:1:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
keypair.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
keypair.cpp: /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression keypair.cpp: if (a keypair.cpp: ...
sharedsecret.cpp: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
sharedsecret.cpp: clang: warning: argument unused during compilation: '-mavx2'
sharedsecret.cpp: clang: warning: argument unused during compilation: '-mpclmul'
sharedsecret.cpp: clang: warning: argument unused during compilation: '-fpolly'
sharedsecret.cpp: clang: warning: argument unused during compilation: '-fvectorize'
sharedsecret.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize'
sharedsecret.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
sharedsecret.cpp: In file included from sharedsecret.cpp:1:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
sharedsecret.cpp: /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression sharedsecret.cpp: if (a sharedsecret.cpp: ~ ^ ~
sharedsecret.cpp: /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/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: In file included from sharedsecret.cpp:1:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
sharedsecret.cpp: In file included from /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
sharedsecret.cpp: /home/djb/benchmarking/supercop-20141014/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression sharedsecret.cpp: if (a sharedsecret.cpp: ...
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.

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 cryptopp

Compiler output

Implementation: crypto_dh/sclaus1024/gmp
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
keypair.cpp: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
keypair.cpp: clang: warning: argument unused during compilation: '-mavx2'
keypair.cpp: clang: warning: argument unused during compilation: '-mpclmul'
keypair.cpp: clang: warning: argument unused during compilation: '-fpolly'
keypair.cpp: clang: warning: argument unused during compilation: '-fvectorize'
keypair.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize'
keypair.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
keypair.cpp: keypair.cpp:1:10: fatal error: 'gmpxx.h' file not found
keypair.cpp: #include gt;
keypair.cpp: ^
keypair.cpp: 1 error generated.

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 gmp

Compiler output

Implementation: crypto_dh/sclaus1024/cryptopp
Compiler: clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer
keypair.cpp: clang: warning: argument unused during compilation: '-mavx2'
keypair.cpp: In file included from keypair.cpp:1:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
keypair.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression keypair.cpp: if (a keypair.cpp: ~ ^ ~
keypair.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/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: In file included from keypair.cpp:1:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
keypair.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression keypair.cpp: if (a keypair.cpp: ~ ^ ~
keypair.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/simple.h:42:113: note: in instantiation of function template specialization 'CryptoPP::IntToStringgt;' requested here
keypair.cpp: explicit InvalidRounds(const std::string &algorithm, unsigned int rounds) : InvalidArgument(algorithm + ": " + IntToString(rounds) + " is not a valid number of rounds") {}
keypair.cpp: ^
keypair.cpp: 2 warnings generated.
sharedsecret.cpp: clang: warning: argument unused during compilation: '-mavx2'
sharedsecret.cpp: In file included from sharedsecret.cpp:1:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
sharedsecret.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression sharedsecret.cpp: if (a sharedsecret.cpp: ~ ^ ~
sharedsecret.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/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: In file included from sharedsecret.cpp:1:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
sharedsecret.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression sharedsecret.cpp: if (a sharedsecret.cpp: ~ ^ ~
sharedsecret.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/simple.h:42:113: note: in instantiation of function template specialization 'CryptoPP::IntToStringgt;' requested here
sharedsecret.cpp: explicit InvalidRounds(const std::string &algorithm, unsigned int rounds) : InvalidArgument(algorithm + ": " + IntToString(rounds) + " is not a valid number of rounds") {}
sharedsecret.cpp: ^
sharedsecret.cpp: 2 warnings generated.
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer cryptopp

Compiler output

Implementation: crypto_dh/sclaus1024/gmp
Compiler: clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer
keypair.cpp: clang: warning: argument unused during compilation: '-mavx2'
keypair.cpp: keypair.cpp:1:10: fatal error: 'gmpxx.h' file not found
keypair.cpp: #include gt;
keypair.cpp: ^
keypair.cpp: 1 error generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer gmp

Compiler output

Implementation: crypto_dh/sclaus1024/cryptopp
Compiler: clang++ -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
keypair.cpp: clang: warning: argument unused during compilation: '-mavx2'
keypair.cpp: clang: warning: argument unused during compilation: '-fpolly'
keypair.cpp: clang: warning: argument unused during compilation: '-fvectorize'
keypair.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize'
keypair.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
keypair.cpp: In file included from keypair.cpp:1:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
keypair.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression keypair.cpp: if (a keypair.cpp: ~ ^ ~
keypair.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/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: In file included from keypair.cpp:1:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
keypair.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
keypair.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression keypair.cpp: if (a keypair.cpp: ~ ^ ~
keypair.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/simple.h:42:113: note: in instantiation of function template specialization 'CryptoPP::IntToStringgt;' requested here
keypair.cpp: ...
sharedsecret.cpp: clang: warning: argument unused during compilation: '-mavx2'
sharedsecret.cpp: clang: warning: argument unused during compilation: '-fpolly'
sharedsecret.cpp: clang: warning: argument unused during compilation: '-fvectorize'
sharedsecret.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize'
sharedsecret.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
sharedsecret.cpp: In file included from sharedsecret.cpp:1:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
sharedsecret.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression sharedsecret.cpp: if (a sharedsecret.cpp: ~ ^ ~
sharedsecret.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/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: In file included from sharedsecret.cpp:1:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/dh.h:7:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/gfpcrypt.h:8:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/pubkey.h:35:
sharedsecret.cpp: In file included from /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/modarith.h:7:
sharedsecret.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/misc.h:414:8: warning: comparison of unsigned expression sharedsecret.cpp: if (a sharedsecret.cpp: ~ ^ ~
sharedsecret.cpp: /home/djb/supercop-20140622/supercop-data/h4e350/amd64/include/cryptopp/simple.h:42:113: note: in instantiation of function template specialization 'CryptoPP::IntToStringgt;' requested here
sharedsecret.cpp: ...
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.
try.cpp: try-anything.cpp:110:19: warning: if statement has empty body [-Wempty-body]
try.cpp: ;
try.cpp: ^
try.cpp: 1 warning generated.

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 cryptopp

Compiler output

Implementation: crypto_dh/sclaus1024/gmp
Compiler: clang++ -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
keypair.cpp: clang: warning: argument unused during compilation: '-mavx2'
keypair.cpp: clang: warning: argument unused during compilation: '-fpolly'
keypair.cpp: clang: warning: argument unused during compilation: '-fvectorize'
keypair.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize'
keypair.cpp: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
keypair.cpp: keypair.cpp:1:10: fatal error: 'gmpxx.h' file not found
keypair.cpp: #include gt;
keypair.cpp: ^
keypair.cpp: 1 error generated.

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 gmp

Compiler output

Implementation: crypto_dh/sclaus1024/gmp
Compiler: g++
keypair.cpp: keypair.cpp:1:19: fatal error: gmpxx.h: No such file or directory
keypair.cpp: compilation terminated.

Number of similar (compiler,implementation) pairs: 54, namely:
CompilerImplementations
g++ gmp
g++ -O2 -fomit-frame-pointer gmp
g++ -O3 -fomit-frame-pointer gmp
g++ -O -fomit-frame-pointer gmp
g++ -Os -fomit-frame-pointer gmp
g++ -fno-schedule-insns -O2 -fomit-frame-pointer gmp
g++ -fno-schedule-insns -O3 -fomit-frame-pointer gmp
g++ -fno-schedule-insns -O -fomit-frame-pointer gmp
g++ -fno-schedule-insns -Os -fomit-frame-pointer gmp
g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer gmp
g++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer gmp
g++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer gmp
g++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer gmp
g++ -m64 -O2 -fomit-frame-pointer gmp
g++ -m64 -O3 -fomit-frame-pointer gmp
g++ -m64 -O -fomit-frame-pointer gmp
g++ -m64 -Os -fomit-frame-pointer gmp
g++ -m64 -march=core2 -O2 -fomit-frame-pointer gmp
g++ -m64 -march=core2 -O3 -fomit-frame-pointer gmp
g++ -m64 -march=core2 -O -fomit-frame-pointer gmp
g++ -m64 -march=core2 -Os -fomit-frame-pointer gmp
g++ -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer gmp
g++ -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer gmp
g++ -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer gmp
g++ -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer gmp
g++ -m64 -march=core2 -msse4 -O -fomit-frame-pointer gmp
g++ -m64 -march=core2 -msse4 -Os -fomit-frame-pointer gmp
g++ -m64 -march=corei7 -O2 -fomit-frame-pointer gmp
g++ -m64 -march=corei7 -O -fomit-frame-pointer gmp
g++ -m64 -march=corei7 -Os -fomit-frame-pointer gmp
g++ -m64 -march=k8 -O2 -fomit-frame-pointer gmp
g++ -m64 -march=k8 -O3 -fomit-frame-pointer gmp
g++ -m64 -march=k8 -O -fomit-frame-pointer gmp
g++ -m64 -march=k8 -Os -fomit-frame-pointer gmp
g++ -m64 -march=native -mtune=native -O2 -fomit-frame-pointer gmp
g++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer gmp
g++ -m64 -march=native -mtune=native -O -fomit-frame-pointer gmp
g++ -m64 -march=native -mtune=native -Os -fomit-frame-pointer gmp
g++ -m64 -march=nocona -O2 -fomit-frame-pointer gmp
g++ -m64 -march=nocona -O3 -fomit-frame-pointer gmp
g++ -m64 -march=nocona -O -fomit-frame-pointer gmp
g++ -m64 -march=nocona -Os -fomit-frame-pointer gmp
g++ -march=barcelona -O2 -fomit-frame-pointer gmp
g++ -march=barcelona -O3 -fomit-frame-pointer gmp
g++ -march=barcelona -O -fomit-frame-pointer gmp
g++ -march=barcelona -Os -fomit-frame-pointer gmp
g++ -march=k8 -O2 -fomit-frame-pointer gmp
g++ -march=k8 -O3 -fomit-frame-pointer gmp
g++ -march=k8 -O -fomit-frame-pointer gmp
g++ -march=k8 -Os -fomit-frame-pointer gmp
g++ -march=nocona -O2 -fomit-frame-pointer gmp
g++ -march=nocona -O3 -fomit-frame-pointer gmp
g++ -march=nocona -O -fomit-frame-pointer gmp
g++ -march=nocona -Os -fomit-frame-pointer gmp

Compiler output

Implementation: crypto_dh/sclaus1024/gmp
Compiler: g++ -m64 -march=barcelona -O2 -fomit-frame-pointer
keypair.cpp: keypair.cpp:1:19: fatal error: gmpxx.h: No such file or directory
keypair.cpp: compilation terminated.
keypair.cpp: keypair.cpp:1:19: fatal error: gmpxx.h: No such file or directory
keypair.cpp: compilation terminated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
g++ -m64 -march=barcelona -O2 -fomit-frame-pointer gmp
g++ -m64 -march=barcelona -O3 -fomit-frame-pointer gmp
g++ -m64 -march=barcelona -O -fomit-frame-pointer gmp
g++ -m64 -march=barcelona -Os -fomit-frame-pointer gmp