Implementation notes: x86, hydra1, crypto_stream/cryptmtv3

Computer: hydra1
Architecture: x86
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20161220
Operation: crypto_stream
Primitive: cryptmtv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
9755e/v3gcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2016101420161009
9763e/v3gcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2016101420161009
9808e/v3gcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2016101420161009
9886e/v3gcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2016101420161009
9902e/v3gcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2016101420161009
9904e/v3gcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2016101420161009
9907e/v3gcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2016101420161009
9913e/v3gcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2016101420161009
9997e/v3gcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2016101420161009
9997e/v3gcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2016101420161009
10010e/v3gcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2016101420161009
10088e/v3gcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2016101420161009
10120e/v3gcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2016101420161009
10139e/v3gcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2016101420161009
10200e/v3gcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2016101420161009
10217e/v3gcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2016101320161009
10278e/v3gcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2016101420161009
10285e/v3gcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2016101420161009
10291e/v3gcc -m32 -march=nocona -O3 -fomit-frame-pointer2016101320161009
10298e/v3gcc -m32 -march=prescott -O3 -fomit-frame-pointer2016101320161009
10333e/v3gcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2016101420161009
10336e/v3gcc -m32 -march=prescott -O -fomit-frame-pointer2016101320161009
10338e/v3gcc -m32 -march=barcelona -O -fomit-frame-pointer2016101320161009
10352e/v3gcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2016101320161009
10352e/v3gcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2016101420161009
10390e/v3gcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2016101420161009
10432e/v3gcc -m32 -march=pentium4 -O -fomit-frame-pointer2016101420161009
10453e/v3gcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2016101420161009
10484e/v3gcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2016101320161009
10493e/v3gcc -m32 -march=pentium-m -O -fomit-frame-pointer2016101420161009
10496e/v3gcc -m32 -march=prescott -O2 -fomit-frame-pointer2016101320161009
10659e/v3gcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2016101320161009
10677e/v3gcc -m32 -march=barcelona -O2 -fomit-frame-pointer2016101320161009
10677e/v3gcc -m32 -march=barcelona -O3 -fomit-frame-pointer2016101320161009
10730e/v3gcc -m32 -march=k8 -O -fomit-frame-pointer2016101320161009
10795e/v3gcc -m32 -march=corei7 -O -fomit-frame-pointer2016101320161009
10837e/v3gcc -m32 -march=core2 -O -fomit-frame-pointer2016101320161009
10848e/v3gcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2016101320161009
10860e/v3gcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2016101320161009
10861e/v3gcc -m32 -march=nocona -O -fomit-frame-pointer2016101320161009
10973e/v3gcc -m32 -march=nocona -O2 -fomit-frame-pointer2016101320161009
11011e/v3gcc -m32 -march=k8 -O2 -fomit-frame-pointer2016101320161009
11229e/v3gcc -m32 -march=core2 -O2 -fomit-frame-pointer2016101320161009
11234e/v3gcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016101320161009
11236e/v3gcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2016101320161009
11267e/v3gcc -m32 -march=corei7 -O2 -fomit-frame-pointer2016101320161009
11343e/v3gcc -m32 -march=k8 -O3 -fomit-frame-pointer2016101320161009
11917e/v3gcc -m32 -march=prescott -Os -fomit-frame-pointer2016101320161009
11925e/v3gcc -m32 -march=nocona -Os -fomit-frame-pointer2016101320161009
11925e/v3gcc -m32 -march=pentium4 -Os -fomit-frame-pointer2016101420161009
12037e/v3gcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2016101420161009
12064e/v3gcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2016101420161009
12071e/v3gcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2016101420161009
12072e/v3gcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2016101420161009
12204e/v3gcc -m32 -march=barcelona -Os -fomit-frame-pointer2016101320161009
12212e/v3gcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2016101320161009
12313e/v3gcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2016101420161009
12491e/v3gcc -funroll-loops -m32 -O3 -fomit-frame-pointer2016101420161009
12520e/v3gcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2016101420161009
12568e/v3gcc -m32 -O3 -fomit-frame-pointer2016101320161009
12581e/v3gcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2016101420161009
12590e/v3gcc -m32 -march=pentium-m -Os -fomit-frame-pointer2016101420161009
12619e/v3gcc -m32 -march=k8 -Os -fomit-frame-pointer2016101320161009
12634e/v3gcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2016101420161009
12675e/v3gcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2016101420161009
12685e/v3gcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2016101420161009
12693e/v3gcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2016101420161009
12706e/v3gcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2016101420161009
12711e/v3gcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2016101420161009
12716e/v3gcc -funroll-loops -m32 -O2 -fomit-frame-pointer2016101420161009
12731e/v3gcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2016101420161009
12763e/v3gcc -m32 -march=i486 -O3 -fomit-frame-pointer2016101420161009
12768e/v3gcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2016101420161009
12779e/v3gcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2016101320161009
12792e/v3gcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2016101420161009
12799e/v3gcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2016101320161009
12806e/v3gcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2016101420161009
12813e/v3gcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2016101420161009
12824e/v3gcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2016101420161009
12834e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2016101420161009
12837e/v3gcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2016101420161009
12837e/v3gcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2016101420161009
12848e/v3gcc -m32 -march=k6 -O3 -fomit-frame-pointer2016101320161009
12871e/v3gcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2016101420161009
12874e/v3gcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2016101420161009
12875e/v3gcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2016101420161009
12909e/v3gcc -m32 -march=i386 -O3 -fomit-frame-pointer2016101420161009
12928e/v3gcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2016101420161009
12934e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2016101420161009
12957e/v3gcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2016101420161009
12973e/v3gcc -m32 -march=athlon -O3 -fomit-frame-pointer2016101320161009
12987e/v3gcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2016101420161009
13003e/v3gcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2016101420161009
13034e/v3gcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2016101420161009
13053e/v3gcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2016101420161009
13088e/v3gcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2016101420161009
13096e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2016101420161009
13110e/v3gcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2016101420161009
13219e/v3gcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2016101420161009
13235e/v3gcc -m32 -march=corei7 -Os -fomit-frame-pointer2016101320161009
13258e/v3gcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2016101420161009
13275e/v3gcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2016101420161009
13283e/v3gcc -m32 -march=core2 -Os -fomit-frame-pointer2016101320161009
13285e/v3gcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016101320161009
13298e/v3gcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2016101320161009
13474e/v3gcc -m32 -march=pentium -O3 -fomit-frame-pointer2016101420161009
13493e/v3gcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2016101420161009
14040e/v3gcc -funroll-loops -m32 -O -fomit-frame-pointer2016101420161009
14307e/v3gcc -m32 -O2 -fomit-frame-pointer2016101320161009
14558e/v3gcc -m32 -march=athlon -O2 -fomit-frame-pointer2016101320161009
14627e/v3gcc -m32 -march=i486 -O2 -fomit-frame-pointer2016101420161009
14848e/v3gcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2016101420161009
14850e/v3gcc -m32 -march=pentium -O2 -fomit-frame-pointer2016101420161009
14946e/v3gcc -m32 -march=i386 -O2 -fomit-frame-pointer2016101420161009
14966e/v3gcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2016101420161009
14976e/v3gcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2016101420161009
14994e/v3gcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2016101420161009
15115e/v3gcc -m32 -march=k6 -O2 -fomit-frame-pointer2016101320161009
15118e/v3gcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2016101320161009
15120e/v3gcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2016101420161009
15152e/v3gcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2016101420161009
15158e/v3gcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2016101320161009
15341e/v3gcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2016101420161009
15437e/v3gcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2016101420161009
15454e/v3gcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2016101420161009
15456e/v3gcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2016101420161009
15462e/v3gcc -m32 -march=pentium -O -fomit-frame-pointer2016101420161009
15502e/v3gcc -m32 -march=athlon -Os -fomit-frame-pointer2016101320161009
15619e/v3gcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2016101420161009
15620e/v3gcc -m32 -march=pentium -Os -fomit-frame-pointer2016101420161009
15671e/v3gcc -m32 -Os -fomit-frame-pointer2016101320161009
15746e/v3gcc -m32 -march=athlon -O -fomit-frame-pointer2016101320161009
15754e/v3gcc -m32 -march=i386 -O -fomit-frame-pointer2016101420161009
15808e/v3gcc -m32 -march=i486 -O -fomit-frame-pointer2016101420161009
15835e/v3gcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2016101420161009
15861e/v3gcc -m32 -march=pentium2 -Os -fomit-frame-pointer2016101420161009
15883e/v3gcc -m32 -march=i386 -Os -fomit-frame-pointer2016101420161009
15890e/v3gcc -m32 -march=i486 -Os -fomit-frame-pointer2016101420161009
16003e/v3gcc -m32 -march=pentium2 -O -fomit-frame-pointer2016101420161009
16029e/v3gcc -m32 -march=pentiumpro -O -fomit-frame-pointer2016101420161009
16035e/v3gcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2016101420161009
16045e/v3gcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2016101420161009
16077e/v3gcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2016101420161009
16219e/v3gcc -funroll-loops -m32 -Os -fomit-frame-pointer2016101420161009
16237e/v3gcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2016101420161009
16381e/v3gcc -m32 -march=k6-2 -Os -fomit-frame-pointer2016101320161009
16382e/v3gcc -m32 -march=k6-3 -Os -fomit-frame-pointer2016101320161009
16408e/v3gcc -m32 -march=k6 -Os -fomit-frame-pointer2016101320161009
16579e/v3gcc -m32 -march=k6 -O -fomit-frame-pointer2016101320161009
16581e/v3gcc -m32 -march=k6-3 -O -fomit-frame-pointer2016101320161009
16584e/v3gcc -m32 -march=k6-2 -O -fomit-frame-pointer2016101320161009
17277e/v3gcc -m32 -O -fomit-frame-pointer2016101320161009

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: 10, 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=core2 -O3 -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/supercop/supercop-20161009/supercop-data/hydra1/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/supercop/supercop-20161009/supercop-data/hydra1/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