Implementation notes: x86, hydra5, crypto_stream/cryptmtv3

Computer: hydra5
Architecture: x86
CPU ID: AuthenticAMD-00300f10-178bfbff
SUPERCOP version: 20171218
Operation: crypto_stream
Primitive: cryptmtv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
8980e/v3gcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2017090720170904
9003e/v3gcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2017090720170904
9016e/v3gcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2017090720170904
9043e/v3gcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2017090720170904
9065e/v3gcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2017090720170904
9088e/v3gcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2017090720170904
9132e/v3gcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2017090720170904
9153e/v3gcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2017090720170904
9229e/v3gcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2017090720170904
9233e/v3gcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2017090720170904
9322e/v3gcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2017090720170904
9335e/v3gcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2017090720170904
9384e/v3gcc -m32 -march=barcelona -O2 -fomit-frame-pointer2017090720170904
9393e/v3gcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2017090720170904
9423e/v3gcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2017090720170904
9424e/v3gcc -m32 -march=barcelona -O3 -fomit-frame-pointer2017090720170904
9451e/v3gcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2017090720170904
9459e/v3gcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2017090720170904
9486e/v3gcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2017090720170904
9495e/v3gcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2017090720170904
9504e/v3gcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2017090720170904
9712e/v3gcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2017090720170904
9769e/v3gcc -m32 -march=prescott -O -fomit-frame-pointer2017090720170904
9814e/v3gcc -m32 -march=nocona -O -fomit-frame-pointer2017090720170904
9818e/v3gcc -m32 -march=pentium4 -O -fomit-frame-pointer2017090720170904
9818e/v3gcc -m32 -march=prescott -O2 -fomit-frame-pointer2017090720170904
9823e/v3gcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2017090720170904
9827e/v3gcc -m32 -march=nocona -O2 -fomit-frame-pointer2017090720170904
9831e/v3gcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2017090720170904
9832e/v3gcc -m32 -march=prescott -O3 -fomit-frame-pointer2017090720170904
9840e/v3gcc -m32 -march=nocona -O3 -fomit-frame-pointer2017090720170904
9845e/v3gcc -m32 -march=core2 -O -fomit-frame-pointer2017090720170904
9845e/v3gcc -m32 -march=corei7 -O -fomit-frame-pointer2017090720170904
9867e/v3gcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2017090720170904
9902e/v3gcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2017090720170904
9947e/v3gcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2017090720170904
9996e/v3gcc -m32 -march=k8 -O -fomit-frame-pointer2017090720170904
10000e/v3gcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2017090720170904
10048e/v3gcc -m32 -march=pentium-m -O -fomit-frame-pointer2017090720170904
10111e/v3gcc -m32 -march=barcelona -O -fomit-frame-pointer2017090720170904
10115e/v3gcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2017090720170904
10181e/v3gcc -m32 -march=k8 -O2 -fomit-frame-pointer2017090720170904
10226e/v3gcc -m32 -march=k8 -O3 -fomit-frame-pointer2017090720170904
10337e/v3gcc -m32 -march=corei7 -O2 -fomit-frame-pointer2017090720170904
10372e/v3gcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2017090720170904
10376e/v3gcc -m32 -march=core2 -O2 -fomit-frame-pointer2017090720170904
10376e/v3gcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017090720170904
11045e/v3gcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2017090720170904
11046e/v3gcc -m32 -march=barcelona -Os -fomit-frame-pointer2017090720170904
11218e/v3gcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2017090720170904
11329e/v3gcc -m32 -march=nocona -Os -fomit-frame-pointer2017090720170904
11338e/v3gcc -m32 -march=prescott -Os -fomit-frame-pointer2017090720170904
11413e/v3gcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2017090720170904
11422e/v3gcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2017090720170904
11427e/v3gcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2017090720170904
11515e/v3gcc -m32 -march=pentium4 -Os -fomit-frame-pointer2017090720170904
11573e/v3gcc -m32 -march=k8 -Os -fomit-frame-pointer2017090720170904
11599e/v3gcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2017090720170904
11630e/v3gcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2017090720170904
11874e/v3gcc -m32 -march=pentium-m -Os -fomit-frame-pointer2017090720170904
12126e/v3gcc -m32 -O3 -fomit-frame-pointer2017090720170904
12171e/v3gcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017090720170904
12184e/v3gcc -m32 -march=corei7 -Os -fomit-frame-pointer2017090720170904
12189e/v3gcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2017090720170904
12206e/v3gcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2017090720170904
12206e/v3gcc -m32 -march=core2 -Os -fomit-frame-pointer2017090720170904
12215e/v3gcc -m32 -march=i486 -O3 -fomit-frame-pointer2017090720170904
12232e/v3gcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2017090720170904
12246e/v3gcc -m32 -march=k6 -O3 -fomit-frame-pointer2017090720170904
12260e/v3gcc -funroll-loops -m32 -O3 -fomit-frame-pointer2017090720170904
12260e/v3gcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2017090720170904
12277e/v3gcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2017090720170904
12291e/v3gcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2017090720170904
12299e/v3gcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2017090720170904
12300e/v3gcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2017090720170904
12300e/v3gcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2017090720170904
12317e/v3gcc -funroll-loops -m32 -O2 -fomit-frame-pointer2017090720170904
12330e/v3gcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2017090720170904
12339e/v3gcc -m32 -march=i386 -O3 -fomit-frame-pointer2017090720170904
12361e/v3gcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2017090720170904
12366e/v3gcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2017090720170904
12375e/v3gcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2017090720170904
12379e/v3gcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2017090720170904
12388e/v3gcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2017090720170904
12397e/v3gcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2017090720170904
12419e/v3gcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2017090720170904
12419e/v3gcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2017090720170904
12419e/v3gcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2017090720170904
12432e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2017090720170904
12521e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2017090720170904
12521e/v3gcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2017090720170904
12526e/v3gcc -m32 -march=athlon -O3 -fomit-frame-pointer2017090720170904
12552e/v3gcc -m32 -march=pentium -O3 -fomit-frame-pointer2017090720170904
12561e/v3gcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2017090720170904
12565e/v3gcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2017090720170904
12610e/v3gcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2017090720170904
12636e/v3gcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2017090720170904
12640e/v3gcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2017090720170904
12654e/v3gcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2017090720170904
12685e/v3gcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2017090720170904
12689e/v3gcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2017090720170904
12712e/v3gcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2017090720170904
12716e/v3gcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2017090720170904
12720e/v3gcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2017090720170904
12724e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2017090720170904
12738e/v3gcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2017090720170904
12760e/v3gcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2017090720170904
12982e/v3gcc -funroll-loops -m32 -O -fomit-frame-pointer2017090720170904
13536e/v3gcc -m32 -O2 -fomit-frame-pointer2017090720170904
14285e/v3gcc -m32 -march=athlon -O2 -fomit-frame-pointer2017090720170904
14289e/v3gcc -m32 -march=i486 -O2 -fomit-frame-pointer2017090720170904
14546e/v3gcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2017090720170904
14563e/v3gcc -m32 -march=k6 -O2 -fomit-frame-pointer2017090720170904
14568e/v3gcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2017090720170904
14599e/v3gcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2017090720170904
14612e/v3gcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2017090720170904
14794e/v3gcc -m32 -march=pentium -O -fomit-frame-pointer2017090720170904
14803e/v3gcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2017090720170904
14811e/v3gcc -m32 -march=i386 -O2 -fomit-frame-pointer2017090720170904
14936e/v3gcc -m32 -march=i486 -O -fomit-frame-pointer2017090720170904
15259e/v3gcc -m32 -march=pentium -Os -fomit-frame-pointer2017090720170904
15312e/v3gcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2017090720170904
15343e/v3gcc -m32 -march=athlon -O -fomit-frame-pointer2017090720170904
15414e/v3gcc -m32 -march=i386 -Os -fomit-frame-pointer2017090720170904
15432e/v3gcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2017090720170904
15441e/v3gcc -m32 -march=i486 -Os -fomit-frame-pointer2017090720170904
15480e/v3gcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2017090720170904
15507e/v3gcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2017090720170904
15529e/v3gcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2017090720170904
15534e/v3gcc -m32 -march=athlon -Os -fomit-frame-pointer2017090720170904
15538e/v3gcc -m32 -march=pentium2 -Os -fomit-frame-pointer2017090720170904
15543e/v3gcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2017090720170904
15551e/v3gcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2017090720170904
15560e/v3gcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2017090720170904
15582e/v3gcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2017090720170904
15618e/v3gcc -m32 -Os -fomit-frame-pointer2017090720170904
15627e/v3gcc -m32 -march=i386 -O -fomit-frame-pointer2017090720170904
15848e/v3gcc -m32 -march=pentiumpro -O -fomit-frame-pointer2017090720170904
15857e/v3gcc -m32 -march=k6-2 -Os -fomit-frame-pointer2017090720170904
15879e/v3gcc -m32 -march=k6-3 -Os -fomit-frame-pointer2017090720170904
15888e/v3gcc -m32 -march=k6 -Os -fomit-frame-pointer2017090720170904
15888e/v3gcc -m32 -march=pentium2 -O -fomit-frame-pointer2017090720170904
15923e/v3gcc -m32 -march=pentium -O2 -fomit-frame-pointer2017090720170904
15963e/v3gcc -funroll-loops -m32 -Os -fomit-frame-pointer2017090720170904
15986e/v3gcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2017090720170904
15990e/v3gcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2017090720170904
15990e/v3gcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2017090720170904
16030e/v3gcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2017090720170904
16340e/v3gcc -m32 -march=k6-3 -O -fomit-frame-pointer2017090720170904
16367e/v3gcc -m32 -march=k6-2 -O -fomit-frame-pointer2017090720170904
16380e/v3gcc -m32 -march=k6 -O -fomit-frame-pointer2017090720170904
16703e/v3gcc -m32 -O -fomit-frame-pointer2017090720170904

Test failure

Implementation: crypto_stream/cryptmtv3/e/v3
Compiler: gcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
gcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer e/v3
gcc -m32 -march=core-avx-i -O -fomit-frame-pointer e/v3
gcc -m32 -march=core-avx-i -Os -fomit-frame-pointer e/v3
gcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer e/v3
gcc -m32 -march=core-avx2 -O -fomit-frame-pointer e/v3
gcc -m32 -march=core-avx2 -Os -fomit-frame-pointer e/v3
gcc -m32 -march=core2 -O3 -fomit-frame-pointer e/v3
gcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer e/v3
gcc -m32 -march=corei7-avx -O -fomit-frame-pointer e/v3
gcc -m32 -march=corei7-avx -Os -fomit-frame-pointer e/v3

Compiler output

Implementation: crypto_stream/cryptmtv3/e/v3
Compiler: gcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer
cryptmt-v3.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h:1249:0,
cryptmt-v3.c: from /home/djb/benchmarking/supercop-20170904/supercop-data/hydra5/x86/include/ecrypt-config.h:296,
cryptmt-v3.c: from e/cryptmt-v3.c:9,
cryptmt-v3.c: from cryptmt-v3.c:2:
cryptmt-v3.c: e/sse2.c: In function '_mm_recursion':
cryptmt-v3.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h:1286:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
cryptmt-v3.c: _mm_xor_si128 (__m128i __A, __m128i __B)
cryptmt-v3.c: ^
cryptmt-v3.c: In file included from e/cryptmt-v3.c:66:0,
cryptmt-v3.c: from cryptmt-v3.c:2:
cryptmt-v3.c: e/sse2.c:39:7: error: called from here
cryptmt-v3.c: c = _mm_xor_si128(c, a);
cryptmt-v3.c: ^
cryptmt-v3.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h:1249:0,
cryptmt-v3.c: from /home/djb/benchmarking/supercop-20170904/supercop-data/hydra5/x86/include/ecrypt-config.h:296,
cryptmt-v3.c: from e/cryptmt-v3.c:9,
cryptmt-v3.c: from cryptmt-v3.c:2:
cryptmt-v3.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h:1286:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
cryptmt-v3.c: _mm_xor_si128 (__m128i __A, __m128i __B)
cryptmt-v3.c: ^
cryptmt-v3.c: In file included from e/cryptmt-v3.c:66:0,
cryptmt-v3.c: from cryptmt-v3.c:2:
cryptmt-v3.c: e/sse2.c:38:7: error: called from here
cryptmt-v3.c: c = _mm_xor_si128(c, b);
cryptmt-v3.c: ^
cryptmt-v3.c: ...

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
gcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer e/v3
gcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer e/v3
gcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer e/v3
gcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer e/v3
gcc -m32 -march=pentium3 -O2 -fomit-frame-pointer e/v3
gcc -m32 -march=pentium3 -O3 -fomit-frame-pointer e/v3
gcc -m32 -march=pentium3 -O -fomit-frame-pointer e/v3
gcc -m32 -march=pentium3 -Os -fomit-frame-pointer e/v3