Implementation notes: x86, hiphop, crypto_stream/cryptmtv3

Computer: hiphop
Architecture: x86
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20171218
Operation: crypto_stream
Primitive: cryptmtv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
6404e/v3gcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2017090620170904
6436e/v3gcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2017090620170904
6436e/v3gcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2017090620170904
6484e/v3gcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2017090620170904
6488e/v3gcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2017090620170904
6516e/v3gcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2017090620170904
6564e/v3gcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2017090620170904
6580e/v3gcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2017090620170904
6584e/v3gcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2017090620170904
6588e/v3gcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2017090620170904
6592e/v3gcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2017090620170904
6608e/v3gcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2017090620170904
6612e/v3gcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2017090620170904
6612e/v3gcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2017090620170904
6628e/v3gcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2017090620170904
6668e/v3gcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2017090620170904
6696e/v3gcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2017090620170904
6772e/v3gcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2017090620170904
6872e/v3gcc -m32 -march=corei7 -O3 -fomit-frame-pointer2017090620170904
6896e/v3gcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2017090620170904
6900e/v3gcc -m32 -march=prescott -O3 -fomit-frame-pointer2017090620170904
6904e/v3gcc -m32 -march=nocona -O3 -fomit-frame-pointer2017090620170904
6908e/v3gcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2017090620170904
6916e/v3gcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2017090620170904
6920e/v3gcc -m32 -march=core2 -O2 -fomit-frame-pointer2017090620170904
6920e/v3gcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017090620170904
6920e/v3gcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2017090620170904
6924e/v3gcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2017090620170904
6924e/v3gcc -m32 -march=core2 -O3 -fomit-frame-pointer2017090620170904
6924e/v3gcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2017090620170904
6928e/v3gcc -m32 -march=nocona -O2 -fomit-frame-pointer2017090620170904
6932e/v3gcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2017090620170904
6932e/v3gcc -m32 -march=corei7 -O2 -fomit-frame-pointer2017090620170904
6936e/v3gcc -m32 -march=prescott -O2 -fomit-frame-pointer2017090620170904
6948e/v3gcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2017090620170904
6948e/v3gcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2017090620170904
6952e/v3gcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2017090620170904
6956e/v3gcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2017090620170904
6960e/v3gcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2017090620170904
6960e/v3gcc -m32 -march=k8 -O2 -fomit-frame-pointer2017090620170904
6976e/v3gcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017090620170904
6984e/v3gcc -m32 -march=pentium4 -O -fomit-frame-pointer2017090620170904
7000e/v3gcc -m32 -march=nocona -O -fomit-frame-pointer2017090620170904
7000e/v3gcc -m32 -march=prescott -O -fomit-frame-pointer2017090620170904
7008e/v3gcc -m32 -march=barcelona -O -fomit-frame-pointer2017090620170904
7012e/v3gcc -m32 -march=core2 -O -fomit-frame-pointer2017090620170904
7016e/v3gcc -m32 -march=corei7 -O -fomit-frame-pointer2017090620170904
7020e/v3gcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2017090620170904
7028e/v3gcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2017090620170904
7032e/v3gcc -m32 -march=core-avx2 -O -fomit-frame-pointer2017090620170904
7036e/v3gcc -m32 -march=k8 -O -fomit-frame-pointer2017090620170904
7040e/v3gcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2017090620170904
7040e/v3gcc -m32 -march=corei7-avx -O -fomit-frame-pointer2017090620170904
7044e/v3gcc -m32 -march=core-avx-i -O -fomit-frame-pointer2017090620170904
7072e/v3gcc -m32 -march=pentium-m -O -fomit-frame-pointer2017090620170904
7092e/v3gcc -m32 -march=k8 -O3 -fomit-frame-pointer2017090620170904
7096e/v3gcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2017090620170904
7176e/v3gcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2017090620170904
7196e/v3gcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2017090620170904
7200e/v3gcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2017090620170904
7204e/v3gcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2017090620170904
7208e/v3gcc -m32 -march=barcelona -O2 -fomit-frame-pointer2017090620170904
7212e/v3gcc -m32 -march=barcelona -O3 -fomit-frame-pointer2017090620170904
7212e/v3gcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2017090620170904
7276e/v3gcc -m32 -march=nocona -Os -fomit-frame-pointer2017090620170904
7292e/v3gcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2017090620170904
7292e/v3gcc -m32 -march=prescott -Os -fomit-frame-pointer2017090620170904
7304e/v3gcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2017090620170904
7308e/v3gcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017090620170904
7312e/v3gcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2017090620170904
7312e/v3gcc -m32 -march=corei7 -Os -fomit-frame-pointer2017090620170904
7316e/v3gcc -m32 -march=core2 -Os -fomit-frame-pointer2017090620170904
7356e/v3gcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2017090620170904
7360e/v3gcc -m32 -march=pentium4 -Os -fomit-frame-pointer2017090620170904
7452e/v3gcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2017090620170904
7488e/v3gcc -m32 -march=k8 -Os -fomit-frame-pointer2017090620170904
7556e/v3gcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2017090620170904
7588e/v3gcc -m32 -march=barcelona -Os -fomit-frame-pointer2017090620170904
7672e/v3gcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2017090620170904
7680e/v3gcc -m32 -march=pentium-m -Os -fomit-frame-pointer2017090620170904
9500e/v3gcc -m32 -O3 -fomit-frame-pointer2017090620170904
9512e/v3gcc -funroll-loops -m32 -O3 -fomit-frame-pointer2017090620170904
9644e/v3gcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2017090620170904
9652e/v3gcc -funroll-loops -m32 -O2 -fomit-frame-pointer2017090620170904
9668e/v3gcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2017090620170904
9688e/v3gcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2017090620170904
9700e/v3gcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2017090620170904
9708e/v3gcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2017090620170904
9720e/v3gcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2017090620170904
9728e/v3gcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2017090620170904
9732e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2017090620170904
9752e/v3gcc -m32 -march=athlon -O3 -fomit-frame-pointer2017090620170904
9760e/v3gcc -m32 -march=i386 -O3 -fomit-frame-pointer2017090620170904
9776e/v3gcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2017090620170904
9792e/v3gcc -m32 -march=i486 -O3 -fomit-frame-pointer2017090620170904
9828e/v3gcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2017090620170904
9844e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2017090620170904
9848e/v3gcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2017090620170904
9856e/v3gcc -funroll-loops -m32 -O -fomit-frame-pointer2017090620170904
9860e/v3gcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2017090620170904
9860e/v3gcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2017090620170904
9864e/v3gcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2017090620170904
9880e/v3gcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2017090620170904
9888e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2017090620170904
9892e/v3gcc -m32 -march=pentium -O3 -fomit-frame-pointer2017090620170904
9908e/v3gcc -m32 -march=k6 -O3 -fomit-frame-pointer2017090620170904
9916e/v3gcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2017090620170904
9916e/v3gcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2017090620170904
9916e/v3gcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2017090620170904
9920e/v3gcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2017090620170904
9920e/v3gcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2017090620170904
9948e/v3gcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2017090620170904
9968e/v3gcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2017090620170904
9976e/v3gcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2017090620170904
9976e/v3gcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2017090620170904
9976e/v3gcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2017090620170904
9988e/v3gcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2017090620170904
9996e/v3gcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2017090620170904
10000e/v3gcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2017090620170904
10012e/v3gcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2017090620170904
10032e/v3gcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2017090620170904
10032e/v3gcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2017090620170904
10052e/v3gcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2017090620170904
10144e/v3gcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2017090620170904
11184e/v3gcc -m32 -O2 -fomit-frame-pointer2017090620170904
11304e/v3gcc -m32 -march=athlon -O2 -fomit-frame-pointer2017090620170904
11464e/v3gcc -m32 -march=i486 -O2 -fomit-frame-pointer2017090620170904
11520e/v3gcc -m32 -march=i386 -O2 -fomit-frame-pointer2017090620170904
11588e/v3gcc -m32 -march=pentium -O2 -fomit-frame-pointer2017090620170904
11636e/v3gcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2017090620170904
11752e/v3gcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2017090620170904
11756e/v3gcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2017090620170904
11772e/v3gcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2017090620170904
11784e/v3gcc -m32 -Os -fomit-frame-pointer2017090620170904
11788e/v3gcc -m32 -march=k6 -O2 -fomit-frame-pointer2017090620170904
11796e/v3gcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2017090620170904
11800e/v3gcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2017090620170904
11804e/v3gcc -funroll-loops -m32 -Os -fomit-frame-pointer2017090620170904
11812e/v3gcc -m32 -march=pentium -Os -fomit-frame-pointer2017090620170904
11816e/v3gcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2017090620170904
11828e/v3gcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2017090620170904
11832e/v3gcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2017090620170904
11856e/v3gcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2017090620170904
11856e/v3gcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2017090620170904
11896e/v3gcc -m32 -march=athlon -Os -fomit-frame-pointer2017090620170904
11904e/v3gcc -m32 -march=i486 -O -fomit-frame-pointer2017090620170904
11924e/v3gcc -m32 -march=k6-3 -Os -fomit-frame-pointer2017090620170904
11932e/v3gcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2017090620170904
11940e/v3gcc -m32 -march=i386 -O -fomit-frame-pointer2017090620170904
11940e/v3gcc -m32 -march=k6-2 -Os -fomit-frame-pointer2017090620170904
11940e/v3gcc -m32 -march=k6 -Os -fomit-frame-pointer2017090620170904
11944e/v3gcc -m32 -march=pentium -O -fomit-frame-pointer2017090620170904
11952e/v3gcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2017090620170904
11956e/v3gcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2017090620170904
11968e/v3gcc -m32 -march=i386 -Os -fomit-frame-pointer2017090620170904
11972e/v3gcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2017090620170904
11972e/v3gcc -m32 -march=i486 -Os -fomit-frame-pointer2017090620170904
12180e/v3gcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2017090620170904
12204e/v3gcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2017090620170904
12216e/v3gcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2017090620170904
12232e/v3gcc -m32 -march=pentium2 -Os -fomit-frame-pointer2017090620170904
12600e/v3gcc -m32 -march=athlon -O -fomit-frame-pointer2017090620170904
12688e/v3gcc -m32 -march=pentiumpro -O -fomit-frame-pointer2017090620170904
12696e/v3gcc -m32 -O -fomit-frame-pointer2017090620170904
12736e/v3gcc -m32 -march=pentium2 -O -fomit-frame-pointer2017090620170904
12828e/v3gcc -m32 -march=k6-2 -O -fomit-frame-pointer2017090620170904
12832e/v3gcc -m32 -march=k6 -O -fomit-frame-pointer2017090620170904
12944e/v3gcc -m32 -march=k6-3 -O -fomit-frame-pointer2017090620170904

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/hiphop/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/hiphop/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