Implementation notes: x86, rumba5, crypto_stream/cryptmtv3

Computer: rumba5
Architecture: x86
CPU ID: AuthenticAMD-00800f11-178bfbff
SUPERCOP version: 20181216
Operation: crypto_stream
Primitive: cryptmtv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
6048e/v3gcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2018051720171218
6080e/v3gcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2018051720171218
6080e/v3gcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2018051720171218
6080e/v3gcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2018051720171218
6080e/v3gcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2018051720171218
6112e/v3gcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2018051720171218
6112e/v3gcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2018051720171218
6144e/v3gcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2018051720171218
6176e/v3gcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2018051720171218
6176e/v3gcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2018051720171218
6272e/v3gcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2018051720171218
6272e/v3gcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2018051720171218
6304e/v3gcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2018051720171218
6336e/v3gcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2018051720171218
6336e/v3gcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2018051720171218
6368e/v3gcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2018051720171218
6400e/v3gcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2018051720171218
6432e/v3gcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2018051720171218
6432e/v3gcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2018051720171218
6528e/v3gcc -m32 -march=core2 -O3 -fomit-frame-pointer2018051720171218
6560e/v3gcc -m32 -march=k8 -O2 -fomit-frame-pointer2018051720171218
6592e/v3gcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2018051720171218
6592e/v3gcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2018051720171218
6592e/v3gcc -m32 -march=corei7 -O2 -fomit-frame-pointer2018051720171218
6592e/v3gcc -m32 -march=corei7 -O3 -fomit-frame-pointer2018051720171218
6592e/v3gcc -m32 -march=nocona -O3 -fomit-frame-pointer2018051720171218
6624e/v3gcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2018051720171218
6624e/v3gcc -m32 -march=core2 -O2 -fomit-frame-pointer2018051720171218
6624e/v3gcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2018051720171218
6624e/v3gcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2018051720171218
6624e/v3gcc -m32 -march=nocona -O2 -fomit-frame-pointer2018051720171218
6624e/v3gcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2018051720171218
6624e/v3gcc -m32 -march=prescott -O2 -fomit-frame-pointer2018051720171218
6624e/v3gcc -m32 -march=prescott -O3 -fomit-frame-pointer2018051720171218
6656e/v3gcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2018051720171218
6656e/v3gcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2018051720171218
6656e/v3gcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2018051720171218
6656e/v3gcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2018051720171218
6688e/v3gcc -m32 -march=nocona -O -fomit-frame-pointer2018051720171218
6688e/v3gcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2018051720171218
6688e/v3gcc -m32 -march=prescott -O -fomit-frame-pointer2018051720171218
6720e/v3gcc -m32 -march=core-avx-i -O -fomit-frame-pointer2018051720171218
6720e/v3gcc -m32 -march=core-avx2 -O -fomit-frame-pointer2018051720171218
6720e/v3gcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2018051720171218
6720e/v3gcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2018051720171218
6720e/v3gcc -m32 -march=corei7-avx -O -fomit-frame-pointer2018051720171218
6720e/v3gcc -m32 -march=corei7 -O -fomit-frame-pointer2018051720171218
6720e/v3gcc -m32 -march=k8 -O3 -fomit-frame-pointer2018051720171218
6752e/v3gcc -m32 -march=core2 -O -fomit-frame-pointer2018051720171218
6752e/v3gcc -m32 -march=pentium4 -O -fomit-frame-pointer2018051720171218
6784e/v3gcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2018051720171218
6816e/v3gcc -m32 -march=barcelona -O3 -fomit-frame-pointer2018051720171218
6816e/v3gcc -m32 -march=barcelona -O -fomit-frame-pointer2018051720171218
6816e/v3gcc -m32 -march=k8 -O -fomit-frame-pointer2018051720171218
6848e/v3gcc -m32 -march=pentium-m -O -fomit-frame-pointer2018051720171218
6880e/v3gcc -m32 -march=barcelona -O2 -fomit-frame-pointer2018051720171218
6912e/v3gcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2018051720171218
6944e/v3gcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2018051720171218
6976e/v3gcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2018051720171218
7648e/v3gcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2018051720171218
7648e/v3gcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2018051720171218
7744e/v3gcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2018051720171218
7840e/v3gcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2018051720171218
7904e/v3gcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2018051720171218
7904e/v3gcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2018051720171218
7904e/v3gcc -m32 -march=nocona -Os -fomit-frame-pointer2018051720171218
7904e/v3gcc -m32 -march=prescott -Os -fomit-frame-pointer2018051720171218
7968e/v3gcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2018051720171218
7968e/v3gcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2018051720171218
8000e/v3gcc -m32 -march=core2 -Os -fomit-frame-pointer2018051720171218
8000e/v3gcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2018051720171218
8000e/v3gcc -m32 -march=corei7 -Os -fomit-frame-pointer2018051720171218
8000e/v3gcc -m32 -march=pentium-m -Os -fomit-frame-pointer2018051720171218
8032e/v3gcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2018051720171218
8032e/v3gcc -m32 -march=barcelona -Os -fomit-frame-pointer2018051720171218
8032e/v3gcc -m32 -march=pentium4 -Os -fomit-frame-pointer2018051720171218
8064e/v3gcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2018051720171218
8064e/v3gcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2018051720171218
8128e/v3gcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2018051720171218
8128e/v3gcc -m32 -march=k8 -Os -fomit-frame-pointer2018051720171218
9632e/v3gcc -m32 -O3 -fomit-frame-pointer2018051720171218
9888e/v3gcc -funroll-loops -m32 -O3 -fomit-frame-pointer2018051720171218
9920e/v3gcc -funroll-loops -m32 -O2 -fomit-frame-pointer2018051720171218
10016e/v3gcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2018051720171218
10048e/v3gcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2018051720171218
10048e/v3gcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2018051720171218
10048e/v3gcc -m32 -march=i386 -O3 -fomit-frame-pointer2018051720171218
10048e/v3gcc -m32 -march=i486 -O3 -fomit-frame-pointer2018051720171218
10080e/v3gcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2018051720171218
10080e/v3gcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2018051720171218
10144e/v3gcc -funroll-loops -m32 -O -fomit-frame-pointer2018051720171218
10144e/v3gcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2018051720171218
10176e/v3gcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2018051720171218
10176e/v3gcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2018051720171218
10176e/v3gcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2018051720171218
10208e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2018051720171218
10208e/v3gcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2018051720171218
10208e/v3gcc -m32 -march=pentium -O3 -fomit-frame-pointer2018051720171218
10240e/v3gcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2018051720171218
10240e/v3gcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2018051720171218
10240e/v3gcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2018051720171218
10240e/v3gcc -m32 -march=athlon -O3 -fomit-frame-pointer2018051720171218
10240e/v3gcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2018051720171218
10272e/v3gcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2018051720171218
10272e/v3gcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2018051720171218
10272e/v3gcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2018051720171218
10304e/v3gcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2018051720171218
10304e/v3gcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2018051720171218
10304e/v3gcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2018051720171218
10336e/v3gcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2018051720171218
10336e/v3gcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2018051720171218
10336e/v3gcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2018051720171218
10336e/v3gcc -m32 -march=k6 -O3 -fomit-frame-pointer2018051720171218
10368e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2018051720171218
10368e/v3gcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2018051720171218
10400e/v3gcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2018051720171218
10400e/v3gcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2018051720171218
10432e/v3gcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2018051720171218
10432e/v3gcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2018051720171218
10432e/v3gcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2018051720171218
10432e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2018051720171218
10432e/v3gcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2018051720171218
10464e/v3gcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2018051720171218
10464e/v3gcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2018051720171218
11456e/v3gcc -m32 -O2 -fomit-frame-pointer2018051720171218
11776e/v3gcc -m32 -march=athlon -O2 -fomit-frame-pointer2018051720171218
11872e/v3gcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2018051720171218
11872e/v3gcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2018051720171218
11872e/v3gcc -m32 -march=k6 -O2 -fomit-frame-pointer2018051720171218
11904e/v3gcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2018051720171218
11936e/v3gcc -m32 -march=pentium -O2 -fomit-frame-pointer2018051720171218
11936e/v3gcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2018051720171218
11968e/v3gcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2018051720171218
12096e/v3gcc -m32 -march=i486 -O2 -fomit-frame-pointer2018051720171218
12128e/v3gcc -m32 -march=i386 -O2 -fomit-frame-pointer2018051720171218
12128e/v3gcc -m32 -march=k6 -Os -fomit-frame-pointer2018051720171218
12160e/v3gcc -m32 -march=k6-2 -Os -fomit-frame-pointer2018051720171218
12192e/v3gcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2018051720171218
12192e/v3gcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2018051720171218
12192e/v3gcc -m32 -march=i486 -O -fomit-frame-pointer2018051720171218
12192e/v3gcc -m32 -march=k6-3 -Os -fomit-frame-pointer2018051720171218
12224e/v3gcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2018051720171218
12224e/v3gcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2018051720171218
12224e/v3gcc -m32 -march=pentium -O -fomit-frame-pointer2018051720171218
12256e/v3gcc -m32 -march=i386 -O -fomit-frame-pointer2018051720171218
12256e/v3gcc -m32 -march=i386 -Os -fomit-frame-pointer2018051720171218
12256e/v3gcc -m32 -march=i486 -Os -fomit-frame-pointer2018051720171218
12288e/v3gcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2018051720171218
12288e/v3gcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2018051720171218
12288e/v3gcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2018051720171218
12288e/v3gcc -m32 -Os -fomit-frame-pointer2018051720171218
12320e/v3gcc -funroll-loops -m32 -Os -fomit-frame-pointer2018051720171218
12320e/v3gcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2018051720171218
12320e/v3gcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2018051720171218
12352e/v3gcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2018051720171218
12384e/v3gcc -m32 -march=pentium -Os -fomit-frame-pointer2018051720171218
12416e/v3gcc -m32 -O -fomit-frame-pointer2018051720171218
12512e/v3gcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2018051720171218
12608e/v3gcc -m32 -march=pentium2 -Os -fomit-frame-pointer2018051720171218
12640e/v3gcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2018051720171218
12672e/v3gcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2018051720171218
12736e/v3gcc -m32 -march=athlon -O -fomit-frame-pointer2018051720171218
12864e/v3gcc -m32 -march=k6-3 -O -fomit-frame-pointer2018051720171218
12896e/v3gcc -m32 -march=k6-2 -O -fomit-frame-pointer2018051720171218
12896e/v3gcc -m32 -march=k6 -O -fomit-frame-pointer2018051720171218
12896e/v3gcc -m32 -march=pentiumpro -O -fomit-frame-pointer2018051720171218
12928e/v3gcc -m32 -march=pentium2 -O -fomit-frame-pointer2018051720171218
13440e/v3gcc -m32 -march=athlon -Os -fomit-frame-pointer2018051720171218

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/supercop-20171218/supercop-data/rumba5/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/supercop-20171218/supercop-data/rumba5/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