Implementation notes: x86, kizomba, crypto_stream/cryptmtv3

Computer: kizomba
Architecture: x86
CPU ID: GenuineIntel-000906e9-bfebfbff
SUPERCOP version: 20181216
Operation: crypto_stream
Primitive: cryptmtv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
6395e/v3gcc -m32 -march=barcelona -O3 -fomit-frame-pointer2018082020180818
6423e/v3gcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2018082020180818
6445e/v3gcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2018082020180818
6445e/v3gcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2018082020180818
6453e/v3gcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2018082020180818
6462e/v3gcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2018082020180818
6469e/v3gcc -m32 -march=k8 -O3 -fomit-frame-pointer2018082020180818
6480e/v3gcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2018082020180818
6484e/v3gcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2018082020180818
6496e/v3gcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2018082020180818
6498e/v3gcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2018082020180818
6504e/v3gcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2018082020180818
6545e/v3gcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2018082020180818
6551e/v3gcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2018082020180818
6554e/v3gcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2018082020180818
6558e/v3gcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2018082020180818
6576e/v3gcc -m32 -march=corei7 -O2 -fomit-frame-pointer2018082020180818
6587e/v3gcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2018082020180818
6591e/v3gcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2018082020180818
6595e/v3gcc -m32 -march=corei7 -O3 -fomit-frame-pointer2018082020180818
6607e/v3gcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2018082020180818
6609e/v3gcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2018082020180818
6618e/v3gcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2018082020180818
6621e/v3gcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2018082020180818
6641e/v3gcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2018082020180818
6649e/v3gcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2018082020180818
6670e/v3gcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2018082020180818
6673e/v3gcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2018082020180818
6788e/v3gcc -m32 -march=corei7 -O -fomit-frame-pointer2018082020180818
6817e/v3gcc -m32 -march=core-avx-i -O -fomit-frame-pointer2018082020180818
6823e/v3gcc -m32 -march=corei7 -Os -fomit-frame-pointer2018082020180818
6825e/v3gcc -m32 -march=core-avx2 -O -fomit-frame-pointer2018082020180818
6829e/v3gcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2018082020180818
6830e/v3gcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2018082020180818
6844e/v3gcc -m32 -march=corei7-avx -O -fomit-frame-pointer2018082020180818
6851e/v3gcc -m32 -march=nocona -O2 -fomit-frame-pointer2018082020180818
6851e/v3gcc -m32 -march=prescott -O2 -fomit-frame-pointer2018082020180818
6853e/v3gcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2018082020180818
6859e/v3gcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2018082020180818
6860e/v3gcc -m32 -march=core2 -O3 -fomit-frame-pointer2018082020180818
6862e/v3gcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2018082020180818
6869e/v3gcc -m32 -march=core2 -O2 -fomit-frame-pointer2018082020180818
6877e/v3gcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2018082020180818
6877e/v3gcc -m32 -march=k8 -O2 -fomit-frame-pointer2018082020180818
6887e/v3gcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2018082020180818
6893e/v3gcc -m32 -march=nocona -O3 -fomit-frame-pointer2018082020180818
6899e/v3gcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2018082020180818
6906e/v3gcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2018082020180818
6907e/v3gcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2018082020180818
6911e/v3gcc -m32 -march=prescott -O3 -fomit-frame-pointer2018082020180818
6920e/v3gcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2018082020180818
6921e/v3gcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2018082020180818
6925e/v3gcc -m32 -march=barcelona -O2 -fomit-frame-pointer2018082020180818
6998e/v3gcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2018082020180818
7004e/v3gcc -m32 -march=nocona -O -fomit-frame-pointer2018082020180818
7006e/v3gcc -m32 -march=core2 -O -fomit-frame-pointer2018082020180818
7015e/v3gcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2018082020180818
7019e/v3gcc -m32 -march=prescott -O -fomit-frame-pointer2018082020180818
7029e/v3gcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2018082020180818
7044e/v3gcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2018082020180818
7072e/v3gcc -m32 -march=pentium4 -O -fomit-frame-pointer2018082020180818
7088e/v3gcc -m32 -march=barcelona -O -fomit-frame-pointer2018082020180818
7107e/v3gcc -m32 -march=k8 -O -fomit-frame-pointer2018082020180818
7131e/v3gcc -m32 -march=pentium-m -O -fomit-frame-pointer2018082020180818
7157e/v3gcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2018082020180818
7163e/v3gcc -m32 -march=barcelona -Os -fomit-frame-pointer2018082020180818
7165e/v3gcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2018082020180818
7179e/v3gcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2018082020180818
7191e/v3gcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2018082020180818
7191e/v3gcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2018082020180818
7201e/v3gcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2018082020180818
7201e/v3gcc -m32 -march=prescott -Os -fomit-frame-pointer2018082020180818
7209e/v3gcc -m32 -march=nocona -Os -fomit-frame-pointer2018082020180818
7212e/v3gcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2018082020180818
7218e/v3gcc -m32 -march=core2 -Os -fomit-frame-pointer2018082020180818
7219e/v3gcc -m32 -march=pentium4 -Os -fomit-frame-pointer2018082020180818
7220e/v3gcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2018082020180818
7280e/v3gcc -m32 -march=k8 -Os -fomit-frame-pointer2018082020180818
7352e/v3gcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2018082020180818
7353e/v3gcc -m32 -march=pentium-m -Os -fomit-frame-pointer2018082020180818
8448e/v3gcc -funroll-loops -m32 -O2 -fomit-frame-pointer2018082020180818
8466e/v3gcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2018082020180818
8466e/v3gcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2018082020180818
8488e/v3gcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2018082020180818
8496e/v3gcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2018082020180818
8511e/v3gcc -m32 -march=k6 -O3 -fomit-frame-pointer2018082020180818
8516e/v3gcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2018082020180818
8579e/v3gcc -m32 -O3 -fomit-frame-pointer2018082020180818
8599e/v3gcc -m32 -march=athlon -O3 -fomit-frame-pointer2018082020180818
8601e/v3gcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2018082020180818
8621e/v3gcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2018082020180818
8623e/v3gcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2018082020180818
8623e/v3gcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2018082020180818
8627e/v3gcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2018082020180818
8629e/v3gcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2018082020180818
8636e/v3gcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2018082020180818
8653e/v3gcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2018082020180818
8655e/v3gcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2018082020180818
8659e/v3gcc -funroll-loops -m32 -O3 -fomit-frame-pointer2018082020180818
8677e/v3gcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2018082020180818
8685e/v3gcc -funroll-loops -m32 -O -fomit-frame-pointer2018082020180818
8714e/v3gcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2018082020180818
8728e/v3gcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2018082020180818
8758e/v3gcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2018082020180818
8776e/v3gcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2018082020180818
8825e/v3gcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2018082020180818
8845e/v3gcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2018082020180818
8848e/v3gcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2018082020180818
8849e/v3gcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2018082020180818
8855e/v3gcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2018082020180818
8865e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2018082020180818
8891e/v3gcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2018082020180818
8948e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2018082020180818
8980e/v3gcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2018082020180818
9026e/v3gcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2018082020180818
9061e/v3gcc -m32 -march=i386 -O3 -fomit-frame-pointer2018082020180818
9064e/v3gcc -m32 -march=pentium -O3 -fomit-frame-pointer2018082020180818
9085e/v3gcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2018082020180818
9092e/v3gcc -m32 -march=i486 -O3 -fomit-frame-pointer2018082020180818
9107e/v3gcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2018082020180818
9125e/v3gcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2018082020180818
9166e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2018082020180818
9190e/v3gcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2018082020180818
9266e/v3gcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2018082020180818
10013e/v3gcc -m32 -march=athlon -O2 -fomit-frame-pointer2018082020180818
10148e/v3gcc -m32 -O2 -fomit-frame-pointer2018082020180818
10163e/v3gcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2018082020180818
10240e/v3gcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2018082020180818
10324e/v3gcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2018082020180818
10339e/v3gcc -m32 -march=k6 -O2 -fomit-frame-pointer2018082020180818
10345e/v3gcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2018082020180818
10530e/v3gcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2018082020180818
10545e/v3gcc -m32 -O -fomit-frame-pointer2018082020180818
10553e/v3gcc -m32 -march=pentium -O2 -fomit-frame-pointer2018082020180818
10565e/v3gcc -m32 -march=pentium -O -fomit-frame-pointer2018082020180818
10589e/v3gcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2018082020180818
10625e/v3gcc -m32 -march=k6 -O -fomit-frame-pointer2018082020180818
10627e/v3gcc -m32 -march=k6-2 -O -fomit-frame-pointer2018082020180818
10633e/v3gcc -m32 -march=k6-3 -O -fomit-frame-pointer2018082020180818
10668e/v3gcc -m32 -march=pentiumpro -O -fomit-frame-pointer2018082020180818
10688e/v3gcc -m32 -march=i486 -O -fomit-frame-pointer2018082020180818
10704e/v3gcc -m32 -march=athlon -O -fomit-frame-pointer2018082020180818
10730e/v3gcc -m32 -march=pentium2 -O -fomit-frame-pointer2018082020180818
10761e/v3gcc -m32 -march=i386 -O2 -fomit-frame-pointer2018082020180818
10788e/v3gcc -m32 -march=i386 -O -fomit-frame-pointer2018082020180818
10907e/v3gcc -m32 -march=i486 -O2 -fomit-frame-pointer2018082020180818
11452e/v3gcc -m32 -Os -fomit-frame-pointer2018082020180818
11472e/v3gcc -m32 -march=athlon -Os -fomit-frame-pointer2018082020180818
11478e/v3gcc -funroll-loops -m32 -Os -fomit-frame-pointer2018082020180818
11490e/v3gcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2018082020180818
11599e/v3gcc -m32 -march=pentium -Os -fomit-frame-pointer2018082020180818
11623e/v3gcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2018082020180818
11641e/v3gcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2018082020180818
11659e/v3gcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2018082020180818
11699e/v3gcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2018082020180818
11732e/v3gcc -m32 -march=i386 -Os -fomit-frame-pointer2018082020180818
11734e/v3gcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2018082020180818
11734e/v3gcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2018082020180818
11735e/v3gcc -m32 -march=k6-2 -Os -fomit-frame-pointer2018082020180818
11736e/v3gcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2018082020180818
11742e/v3gcc -m32 -march=i486 -Os -fomit-frame-pointer2018082020180818
11752e/v3gcc -m32 -march=k6 -Os -fomit-frame-pointer2018082020180818
11758e/v3gcc -m32 -march=k6-3 -Os -fomit-frame-pointer2018082020180818
11760e/v3gcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2018082020180818
12226e/v3gcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2018082020180818
12240e/v3gcc -m32 -march=pentium2 -Os -fomit-frame-pointer2018082020180818
12246e/v3gcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2018082020180818
12293e/v3gcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2018082020180818

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/benchmarking/supercop-20180818/supercop-data/kizomba/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:1290: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/benchmarking/supercop-20180818/supercop-data/kizomba/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:1290: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