Implementation notes: x86, h2atom, crypto_stream/cryptmtv3

Computer: h2atom
Architecture: x86
CPU ID: GenuineIntel-000106ca-bfe9fbff
SUPERCOP version: 20161009
Operation: crypto_stream
Primitive: cryptmtv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
13620e/v3gcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2016102720161009
13740e/v3gcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2016102720161009
14020e/v3gcc -m32 -march=corei7 -O2 -fomit-frame-pointer2016102720161009
14040e/v3gcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2016102720161009
14040e/v3gcc -m32 -march=core2 -O2 -fomit-frame-pointer2016102720161009
14040e/v3gcc -m32 -march=core2 -O3 -fomit-frame-pointer2016102720161009
14040e/v3gcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2016102720161009
14050e/v3gcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016102720161009
14070e/v3gcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2016102720161009
14160e/v3gcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2016102720161009
14300e/v3gcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2016102720161009
14440e/v3gcc -m32 -march=pentium-m -Os -fomit-frame-pointer2016102720161009
14710e/v3gcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2016102720161009
14790e/v3gcc -m32 -march=core2 -Os -fomit-frame-pointer2016102720161009
14790e/v3gcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016102720161009
14790e/v3gcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2016102720161009
14820e/v3gcc -m32 -march=corei7 -Os -fomit-frame-pointer2016102720161009
14880e/v3gcc -m32 -march=k8 -O2 -fomit-frame-pointer2016102720161009
14890e/v3gcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2016102720161009
14890e/v3gcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2016102720161009
14950e/v3gcc -m32 -march=k8 -O3 -fomit-frame-pointer2016102720161009
15050e/v3gcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2016102720161009
15070e/v3gcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2016102720161009
15080e/v3gcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2016102720161009
15120e/v3gcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2016102720161009
15150e/v3gcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2016102720161009
15150e/v3gcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2016102720161009
15170e/v3gcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2016102720161009
15230e/v3gcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2016102720161009
15230e/v3gcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2016102720161009
15270e/v3gcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2016102720161009
15270e/v3gcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2016102720161009
15360e/v3gcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2016102720161009
15480e/v3gcc -m32 -march=pentium4 -O -fomit-frame-pointer2016102720161009
15500e/v3gcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2016102720161009
15530e/v3gcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2016102720161009
15540e/v3gcc -m32 -march=barcelona -O -fomit-frame-pointer2016102720161009
15650e/v3gcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2016102720161009
15650e/v3gcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2016102720161009
15650e/v3gcc -m32 -march=pentium-m -O -fomit-frame-pointer2016102720161009
15680e/v3gcc -m32 -march=k8 -O -fomit-frame-pointer2016102720161009
15690e/v3gcc -m32 -march=nocona -O -fomit-frame-pointer2016102720161009
15690e/v3gcc -m32 -march=prescott -O -fomit-frame-pointer2016102720161009
15710e/v3gcc -m32 -march=nocona -Os -fomit-frame-pointer2016102720161009
15710e/v3gcc -m32 -march=prescott -Os -fomit-frame-pointer2016102720161009
15720e/v3gcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2016102720161009
15740e/v3gcc -m32 -march=nocona -O2 -fomit-frame-pointer2016102720161009
15740e/v3gcc -m32 -march=prescott -O2 -fomit-frame-pointer2016102720161009
15770e/v3gcc -m32 -march=prescott -O3 -fomit-frame-pointer2016102720161009
15780e/v3gcc -m32 -march=nocona -O3 -fomit-frame-pointer2016102720161009
15780e/v3gcc -m32 -march=pentium4 -Os -fomit-frame-pointer2016102720161009
15810e/v3gcc -m32 -march=k8 -Os -fomit-frame-pointer2016102720161009
15830e/v3gcc -m32 -march=barcelona -O2 -fomit-frame-pointer2016102720161009
15900e/v3gcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2016102720161009
15910e/v3gcc -m32 -march=corei7 -O -fomit-frame-pointer2016102720161009
15920e/v3gcc -m32 -march=core2 -O -fomit-frame-pointer2016102720161009
15920e/v3gcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2016102720161009
15920e/v3gcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2016102720161009
16010e/v3gcc -m32 -march=barcelona -O3 -fomit-frame-pointer2016102720161009
16090e/v3gcc -m32 -march=barcelona -Os -fomit-frame-pointer2016102720161009
16540e/v3gcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2016102720161009
17100e/v3gcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2016102720161009
19230e/v3gcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2016102720161009
20350e/v3gcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2016102720161009
20360e/v3gcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2016102720161009
29910e/v3gcc -m32 -march=k6 -O3 -fomit-frame-pointer2016102720161009
29940e/v3gcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2016102720161009
29950e/v3gcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2016102720161009
29950e/v3gcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2016102720161009
29950e/v3gcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2016102720161009
29950e/v3gcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2016102720161009
30040e/v3gcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2016102720161009
30050e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2016102720161009
30190e/v3gcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2016102720161009
30190e/v3gcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2016102720161009
30190e/v3gcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2016102720161009
30280e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2016102720161009
30280e/v3gcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2016102720161009
30420e/v3gcc -m32 -march=athlon -O3 -fomit-frame-pointer2016102720161009
30600e/v3gcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2016102720161009
30600e/v3gcc -m32 -march=pentium -O3 -fomit-frame-pointer2016102720161009
30830e/v3gcc -m32 -O3 -fomit-frame-pointer2016102720161009
30840e/v3gcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2016102720161009
30840e/v3gcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2016102720161009
30920e/v3gcc -funroll-loops -m32 -O3 -fomit-frame-pointer2016102720161009
30960e/v3gcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2016102720161009
30960e/v3gcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2016102720161009
31040e/v3gcc -funroll-loops -m32 -O2 -fomit-frame-pointer2016102720161009
31040e/v3gcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2016102720161009
31040e/v3gcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2016102720161009
31060e/v3gcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2016102720161009
31360e/v3gcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2016102720161009
32110e/v3gcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2016102720161009
32150e/v3gcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2016102720161009
32160e/v3gcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2016102720161009
32160e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2016102720161009
32160e/v3gcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2016102720161009
32210e/v3gcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2016102720161009
32220e/v3gcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2016102720161009
32220e/v3gcc -m32 -march=i486 -O3 -fomit-frame-pointer2016102720161009
32280e/v3gcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2016102720161009
32290e/v3gcc -m32 -march=i386 -O3 -fomit-frame-pointer2016102720161009
32500e/v3gcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2016102720161009
32500e/v3gcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2016102720161009
32500e/v3gcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2016102720161009
32500e/v3gcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2016102720161009
32520e/v3gcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2016102720161009
32830e/v3gcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2016102720161009
37030e/v3gcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2016102720161009
37030e/v3gcc -m32 -march=k6 -O2 -fomit-frame-pointer2016102720161009
37040e/v3gcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2016102720161009
37390e/v3gcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2016102720161009
37390e/v3gcc -m32 -march=pentium -O2 -fomit-frame-pointer2016102720161009
37440e/v3gcc -m32 -march=athlon -O2 -fomit-frame-pointer2016102720161009
37670e/v3gcc -m32 -O2 -fomit-frame-pointer2016102720161009
37890e/v3gcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2016102720161009
37890e/v3gcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2016102720161009
37940e/v3gcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2016102720161009
37940e/v3gcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2016102720161009
37940e/v3gcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2016102720161009
38010e/v3gcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2016102720161009
38020e/v3gcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2016102720161009
38150e/v3gcc -funroll-loops -m32 -Os -fomit-frame-pointer2016102720161009
38150e/v3gcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2016102720161009
38380e/v3gcc -m32 -march=i486 -O2 -fomit-frame-pointer2016102720161009
38460e/v3gcc -m32 -march=i386 -O2 -fomit-frame-pointer2016102720161009
39220e/v3gcc -m32 -march=k6 -Os -fomit-frame-pointer2016102720161009
39230e/v3gcc -m32 -march=k6-2 -Os -fomit-frame-pointer2016102720161009
39230e/v3gcc -m32 -march=k6-3 -Os -fomit-frame-pointer2016102720161009
39300e/v3gcc -m32 -Os -fomit-frame-pointer2016102720161009
39300e/v3gcc -m32 -march=athlon -Os -fomit-frame-pointer2016102720161009
39350e/v3gcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2016102720161009
39370e/v3gcc -m32 -march=pentium -Os -fomit-frame-pointer2016102720161009
39410e/v3gcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2016102720161009
39410e/v3gcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2016102720161009
40430e/v3gcc -m32 -march=i486 -O -fomit-frame-pointer2016102720161009
40520e/v3gcc -m32 -march=i386 -O -fomit-frame-pointer2016102720161009
40540e/v3gcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2016102720161009
40560e/v3gcc -m32 -march=pentium -O -fomit-frame-pointer2016102720161009
40620e/v3gcc -m32 -march=pentium2 -Os -fomit-frame-pointer2016102720161009
40620e/v3gcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2016102720161009
40880e/v3gcc -m32 -march=k6-2 -O -fomit-frame-pointer2016102720161009
40880e/v3gcc -m32 -march=k6-3 -O -fomit-frame-pointer2016102720161009
40890e/v3gcc -m32 -march=k6 -O -fomit-frame-pointer2016102720161009
40910e/v3gcc -m32 -march=pentium2 -O -fomit-frame-pointer2016102720161009
40910e/v3gcc -m32 -march=pentiumpro -O -fomit-frame-pointer2016102720161009
41290e/v3gcc -m32 -march=athlon -O -fomit-frame-pointer2016102720161009
41410e/v3gcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2016102720161009
41410e/v3gcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2016102720161009
41510e/v3gcc -m32 -march=i486 -Os -fomit-frame-pointer2016102720161009
41530e/v3gcc -m32 -march=i386 -Os -fomit-frame-pointer2016102720161009
42480e/v3gcc -m32 -O -fomit-frame-pointer2016102720161009
47330e/v3gcc -funroll-loops -m32 -O -fomit-frame-pointer2016102720161009

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: 9, 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=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/supercop-20161009/supercop-data/h2atom/x86/include/ecrypt-config.h:296,
cryptmt-v3.c: from e/cryptmt-v3.c:9,
cryptmt-v3.c: from cryptmt-v3.c:1:
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:1:
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-20161009/supercop-data/h2atom/x86/include/ecrypt-config.h:296,
cryptmt-v3.c: from e/cryptmt-v3.c:9,
cryptmt-v3.c: from cryptmt-v3.c:1:
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:1:
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