Implementation notes: x86, titan0, crypto_stream/cryptmtv3

Computer: titan0
Architecture: x86
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20190803
Operation: crypto_stream
Primitive: cryptmtv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
6472e/v3gcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2019070620190110
6480e/v3gcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2019070620190110
6508e/v3gcc -m32 -march=barcelona -O3 -fomit-frame-pointer2019070620190110
6508e/v3gcc -m32 -march=k8 -O3 -fomit-frame-pointer2019070620190110
6512e/v3gcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2019070620190110
6512e/v3gcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2019070620190110
6524e/v3gcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2019070620190110
6532e/v3gcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2019070620190110
6532e/v3gcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2019070620190110
6576e/v3gcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2019070620190110
6584e/v3gcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2019070620190110
6588e/v3gcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2019070620190110
6596e/v3gcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2019070620190110
6600e/v3gcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2019070620190110
6632e/v3gcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2019070620190110
6640e/v3gcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2019070620190110
6648e/v3gcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2019070620190110
6656e/v3gcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2019070620190110
6664e/v3gcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2019070620190110
6696e/v3gcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2019070620190110
6840e/v3gcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019070620190110
6844e/v3gcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019070620190110
6848e/v3gcc -m32 -march=corei7 -O3 -fomit-frame-pointer2019070620190110
6856e/v3gcc -m32 -march=corei7 -O2 -fomit-frame-pointer2019070620190110
6864e/v3gcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2019070620190110
6872e/v3gcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2019070620190110
6880e/v3gcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2019070620190110
6880e/v3gcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2019070620190110
6904e/v3gcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019070620190110
6948e/v3gcc -m32 -march=nocona -O2 -fomit-frame-pointer2019070620190110
6948e/v3gcc -m32 -march=prescott -O2 -fomit-frame-pointer2019070620190110
6960e/v3gcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019070620190110
6968e/v3gcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019070620190110
6972e/v3gcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019070620190110
6980e/v3gcc -m32 -march=corei7-avx -O -fomit-frame-pointer2019070620190110
6992e/v3gcc -m32 -march=prescott -O3 -fomit-frame-pointer2019070620190110
6996e/v3gcc -m32 -march=core-avx-i -O -fomit-frame-pointer2019070620190110
7008e/v3gcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2019070620190110
7016e/v3gcc -m32 -march=k8 -O2 -fomit-frame-pointer2019070620190110
7020e/v3gcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2019070620190110
7020e/v3gcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2019070620190110
7036e/v3gcc -m32 -march=nocona -O3 -fomit-frame-pointer2019070620190110
7040e/v3gcc -m32 -march=core2 -O3 -fomit-frame-pointer2019070620190110
7044e/v3gcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2019070620190110
7044e/v3gcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2019070620190110
7044e/v3gcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2019070620190110
7048e/v3gcc -m32 -march=corei7 -O -fomit-frame-pointer2019070620190110
7080e/v3gcc -m32 -march=core2 -O2 -fomit-frame-pointer2019070620190110
7096e/v3gcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2019070620190110
7104e/v3gcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2019070620190110
7128e/v3gcc -m32 -march=barcelona -O2 -fomit-frame-pointer2019070620190110
7128e/v3gcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2019070620190110
7140e/v3gcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019070620190110
7140e/v3gcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019070620190110
7160e/v3gcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2019070620190110
7180e/v3gcc -m32 -march=nocona -O -fomit-frame-pointer2019070620190110
7180e/v3gcc -m32 -march=prescott -O -fomit-frame-pointer2019070620190110
7188e/v3gcc -m32 -march=core2 -O -fomit-frame-pointer2019070620190110
7192e/v3gcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2019070620190110
7204e/v3gcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2019070620190110
7208e/v3gcc -m32 -march=barcelona -O -fomit-frame-pointer2019070620190110
7212e/v3gcc -m32 -march=corei7 -Os -fomit-frame-pointer2019070620190110
7244e/v3gcc -m32 -march=k8 -O -fomit-frame-pointer2019070620190110
7252e/v3gcc -m32 -march=pentium4 -O -fomit-frame-pointer2019070620190110
7296e/v3gcc -m32 -march=pentium-m -O -fomit-frame-pointer2019070620190110
7520e/v3gcc -m32 -march=core2 -Os -fomit-frame-pointer2019070620190110
7532e/v3gcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2019070620190110
7532e/v3gcc -m32 -march=nocona -Os -fomit-frame-pointer2019070620190110
7536e/v3gcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2019070620190110
7536e/v3gcc -m32 -march=barcelona -Os -fomit-frame-pointer2019070620190110
7536e/v3gcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2019070620190110
7540e/v3gcc -m32 -march=prescott -Os -fomit-frame-pointer2019070620190110
7552e/v3gcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2019070620190110
7556e/v3gcc -m32 -march=pentium4 -Os -fomit-frame-pointer2019070620190110
7568e/v3gcc -m32 -march=k8 -Os -fomit-frame-pointer2019070620190110
7572e/v3gcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2019070620190110
7572e/v3gcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2019070620190110
7612e/v3gcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2019070620190110
7648e/v3gcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2019070620190110
7664e/v3gcc -m32 -march=pentium-m -Os -fomit-frame-pointer2019070620190110
9420e/v3gcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2019070620190110
9448e/v3gcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2019070620190110
9452e/v3gcc -m32 -march=athlon -O3 -fomit-frame-pointer2019070620190110
9456e/v3gcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2019070620190110
9460e/v3gcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2019070620190110
9460e/v3gcc -m32 -march=k6 -O3 -fomit-frame-pointer2019070620190110
9468e/v3gcc -funroll-loops -m32 -O2 -fomit-frame-pointer2019070620190110
9488e/v3gcc -m32 -O3 -fomit-frame-pointer2019070620190110
9504e/v3gcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2019070620190110
9524e/v3gcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2019070620190110
9524e/v3gcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019070620190110
9528e/v3gcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2019070620190110
9536e/v3gcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019070620190110
9540e/v3gcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2019070620190110
9544e/v3gcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2019070620190110
9576e/v3gcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019070620190110
9604e/v3gcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2019070620190110
9604e/v3gcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2019070620190110
9632e/v3gcc -funroll-loops -m32 -O -fomit-frame-pointer2019070620190110
9672e/v3gcc -funroll-loops -m32 -O3 -fomit-frame-pointer2019070620190110
9700e/v3gcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2019070620190110
9712e/v3gcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2019070620190110
9724e/v3gcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2019070620190110
9848e/v3gcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2019070620190110
9860e/v3gcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2019070620190110
9868e/v3gcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2019070620190110
9880e/v3gcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2019070620190110
9904e/v3gcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2019070620190110
9920e/v3gcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2019070620190110
9928e/v3gcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2019070620190110
9932e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2019070620190110
9956e/v3gcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2019070620190110
9988e/v3gcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2019070620190110
9988e/v3gcc -m32 -march=i386 -O3 -fomit-frame-pointer2019070620190110
10000e/v3gcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2019070620190110
10004e/v3gcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2019070620190110
10020e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019070620190110
10080e/v3gcc -m32 -march=i486 -O3 -fomit-frame-pointer2019070620190110
10112e/v3gcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2019070620190110
10116e/v3gcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2019070620190110
10144e/v3gcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2019070620190110
10160e/v3gcc -m32 -march=pentium -O3 -fomit-frame-pointer2019070620190110
10168e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019070620190110
10288e/v3gcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019070620190110
11196e/v3gcc -m32 -march=athlon -O2 -fomit-frame-pointer2019070620190110
11228e/v3gcc -m32 -O2 -fomit-frame-pointer2019070620190110
11352e/v3gcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019070620190110
11368e/v3gcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2019070620190110
11548e/v3gcc -m32 -O -fomit-frame-pointer2019070620190110
11580e/v3gcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2019070620190110
11600e/v3gcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2019070620190110
11616e/v3gcc -m32 -march=k6 -O2 -fomit-frame-pointer2019070620190110
11624e/v3gcc -m32 -march=athlon -O -fomit-frame-pointer2019070620190110
11740e/v3gcc -m32 -march=i386 -O -fomit-frame-pointer2019070620190110
11752e/v3gcc -m32 -march=i486 -O -fomit-frame-pointer2019070620190110
11768e/v3gcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2019070620190110
11792e/v3gcc -m32 -march=pentium -O -fomit-frame-pointer2019070620190110
11824e/v3gcc -m32 -march=k6-3 -O -fomit-frame-pointer2019070620190110
11836e/v3gcc -m32 -march=k6 -O -fomit-frame-pointer2019070620190110
11840e/v3gcc -m32 -march=k6-2 -O -fomit-frame-pointer2019070620190110
11856e/v3gcc -m32 -march=i486 -O2 -fomit-frame-pointer2019070620190110
11860e/v3gcc -m32 -march=pentium2 -O -fomit-frame-pointer2019070620190110
11900e/v3gcc -m32 -march=i386 -O2 -fomit-frame-pointer2019070620190110
11904e/v3gcc -m32 -march=pentium -O2 -fomit-frame-pointer2019070620190110
11916e/v3gcc -m32 -march=pentiumpro -O -fomit-frame-pointer2019070620190110
11936e/v3gcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019070620190110
12908e/v3gcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019070620190110
12944e/v3gcc -m32 -march=athlon -Os -fomit-frame-pointer2019070620190110
12948e/v3gcc -m32 -march=pentium -Os -fomit-frame-pointer2019070620190110
12972e/v3gcc -m32 -Os -fomit-frame-pointer2019070620190110
13028e/v3gcc -m32 -march=i386 -Os -fomit-frame-pointer2019070620190110
13056e/v3gcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2019070620190110
13072e/v3gcc -m32 -march=i486 -Os -fomit-frame-pointer2019070620190110
13076e/v3gcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2019070620190110
13092e/v3gcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2019070620190110
13100e/v3gcc -funroll-loops -m32 -Os -fomit-frame-pointer2019070620190110
13136e/v3gcc -m32 -march=k6-3 -Os -fomit-frame-pointer2019070620190110
13144e/v3gcc -m32 -march=k6-2 -Os -fomit-frame-pointer2019070620190110
13208e/v3gcc -m32 -march=k6 -Os -fomit-frame-pointer2019070620190110
13264e/v3gcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2019070620190110
13276e/v3gcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019070620190110
13296e/v3gcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2019070620190110
13364e/v3gcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2019070620190110
13396e/v3gcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2019070620190110
13756e/v3gcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2019070620190110
13788e/v3gcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2019070620190110
13828e/v3gcc -m32 -march=pentium2 -Os -fomit-frame-pointer2019070620190110
13928e/v3gcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2019070620190110

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/7/include/xmmintrin.h:1252:0,
cryptmt-v3.c: from /home/djb/supercop-20190110/supercop-data/titan0/x86/include/ecrypt-config.h:302,
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/7/include/emmintrin.h:1291: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: note: 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/7/include/xmmintrin.h:1252:0,
cryptmt-v3.c: from /home/djb/supercop-20190110/supercop-data/titan0/x86/include/ecrypt-config.h:302,
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/7/include/emmintrin.h:1291: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: note: 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