Implementation notes: x86, h4e450, crypto_stream/cryptmtv3

Computer: h4e450
Architecture: x86
CPU ID: AuthenticAMD-00500f20-178bfbff
SUPERCOP version: 20171218
Operation: crypto_stream
Primitive: cryptmtv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
13015e/v3gcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2017111020171020
13063e/v3gcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2017111020171020
13115e/v3gcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2017111020171020
13172e/v3gcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2017111020171020
13233e/v3gcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2017111020171020
13281e/v3gcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2017111020171020
13281e/v3gcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2017111020171020
13333e/v3gcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2017111020171020
13334e/v3gcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2017111020171020
13423e/v3gcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2017111020171020
13424e/v3gcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2017111020171020
13438e/v3gcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2017111020171020
13504e/v3gcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2017111020171020
13505e/v3gcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2017111020171020
13533e/v3gcc -m32 -march=k8 -O2 -fomit-frame-pointer2017111020171020
13575e/v3gcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2017111020171020
13585e/v3gcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2017111020171020
13609e/v3gcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2017111020171020
13618e/v3gcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2017111020171020
13766e/v3gcc -m32 -march=prescott -O2 -fomit-frame-pointer2017111020171020
13779e/v3gcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2017111020171020
13779e/v3gcc -m32 -march=nocona -O2 -fomit-frame-pointer2017111020171020
13784e/v3gcc -m32 -march=nocona -O3 -fomit-frame-pointer2017111020171020
13794e/v3gcc -m32 -march=prescott -O3 -fomit-frame-pointer2017111020171020
13851e/v3gcc -m32 -march=nocona -O -fomit-frame-pointer2017111020171020
13860e/v3gcc -m32 -march=prescott -O -fomit-frame-pointer2017111020171020
13861e/v3gcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2017111020171020
13884e/v3gcc -m32 -march=barcelona -O2 -fomit-frame-pointer2017111020171020
13894e/v3gcc -m32 -march=k8 -O3 -fomit-frame-pointer2017111020171020
13932e/v3gcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2017111020171020
13956e/v3gcc -m32 -march=pentium4 -O -fomit-frame-pointer2017111020171020
13993e/v3gcc -m32 -march=core2 -O3 -fomit-frame-pointer2017111020171020
14003e/v3gcc -m32 -march=k8 -O -fomit-frame-pointer2017111020171020
14022e/v3gcc -m32 -march=pentium-m -O -fomit-frame-pointer2017111020171020
14065e/v3gcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2017111020171020
14075e/v3gcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017111020171020
14088e/v3gcc -m32 -march=corei7 -O -fomit-frame-pointer2017111020171020
14103e/v3gcc -m32 -march=barcelona -O3 -fomit-frame-pointer2017111020171020
14108e/v3gcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2017111020171020
14108e/v3gcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2017111020171020
14112e/v3gcc -m32 -march=core2 -O -fomit-frame-pointer2017111020171020
14131e/v3gcc -m32 -march=core2 -O2 -fomit-frame-pointer2017111020171020
14131e/v3gcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2017111020171020
14136e/v3gcc -m32 -march=corei7 -O2 -fomit-frame-pointer2017111020171020
14231e/v3gcc -m32 -march=barcelona -O -fomit-frame-pointer2017111020171020
14241e/v3gcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2017111020171020
14278e/v3gcc -m32 -march=barcelona -Os -fomit-frame-pointer2017111020171020
14359e/v3gcc -m32 -march=prescott -Os -fomit-frame-pointer2017111020171020
14388e/v3gcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2017111020171020
14398e/v3gcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2017111020171020
14411e/v3gcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2017111020171020
14492e/v3gcc -m32 -march=nocona -Os -fomit-frame-pointer2017111020171020
14559e/v3gcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2017111020171020
14573e/v3gcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2017111020171020
14577e/v3gcc -m32 -march=k8 -Os -fomit-frame-pointer2017111020171020
14626e/v3gcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017111020171020
14635e/v3gcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2017111020171020
14659e/v3gcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2017111020171020
14659e/v3gcc -m32 -march=corei7 -Os -fomit-frame-pointer2017111020171020
14754e/v3gcc -m32 -march=pentium4 -Os -fomit-frame-pointer2017111020171020
14815e/v3gcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2017111020171020
14834e/v3gcc -m32 -march=core2 -Os -fomit-frame-pointer2017111020171020
14863e/v3gcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2017111020171020
15029e/v3gcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2017111020171020
15300e/v3gcc -m32 -march=pentium-m -Os -fomit-frame-pointer2017111020171020
16773e/v3gcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2017111020171020
17034e/v3gcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2017111020171020
17062e/v3gcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2017111020171020
17114e/v3gcc -m32 -march=i486 -O3 -fomit-frame-pointer2017111020171020
17119e/v3gcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2017111020171020
17133e/v3gcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2017111020171020
17167e/v3gcc -m32 -march=i386 -O3 -fomit-frame-pointer2017111020171020
17342e/v3gcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2017111020171020
17342e/v3gcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2017111020171020
17351e/v3gcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2017111020171020
17352e/v3gcc -m32 -O3 -fomit-frame-pointer2017111020171020
17376e/v3gcc -funroll-loops -m32 -O -fomit-frame-pointer2017111020171020
17408e/v3gcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2017111020171020
17423e/v3gcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2017111020171020
17442e/v3gcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2017111020171020
17442e/v3gcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2017111020171020
17471e/v3gcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2017111020171020
17513e/v3gcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2017111020171020
17513e/v3gcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2017111020171020
17556e/v3gcc -funroll-loops -m32 -O2 -fomit-frame-pointer2017111020171020
17603e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2017111020171020
17604e/v3gcc -m32 -march=k6 -O3 -fomit-frame-pointer2017111020171020
17632e/v3gcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2017111020171020
17656e/v3gcc -funroll-loops -m32 -O3 -fomit-frame-pointer2017111020171020
17674e/v3gcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2017111020171020
17708e/v3gcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2017111020171020
17727e/v3gcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2017111020171020
17780e/v3gcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2017111020171020
17799e/v3gcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2017111020171020
17822e/v3gcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2017111020171020
17822e/v3gcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2017111020171020
17860e/v3gcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2017111020171020
17870e/v3gcc -m32 -march=athlon -O3 -fomit-frame-pointer2017111020171020
17874e/v3gcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2017111020171020
17955e/v3gcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2017111020171020
17959e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2017111020171020
17959e/v3gcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2017111020171020
17970e/v3gcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2017111020171020
17984e/v3gcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2017111020171020
18021e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2017111020171020
18036e/v3gcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2017111020171020
18040e/v3gcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2017111020171020
18150e/v3gcc -m32 -march=pentium -O3 -fomit-frame-pointer2017111020171020
18173e/v3gcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2017111020171020
19613e/v3gcc -m32 -march=i486 -O2 -fomit-frame-pointer2017111020171020
20335e/v3gcc -m32 -march=i386 -O2 -fomit-frame-pointer2017111020171020
20377e/v3gcc -m32 -O2 -fomit-frame-pointer2017111020171020
20416e/v3gcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2017111020171020
20425e/v3gcc -m32 -march=pentium -O2 -fomit-frame-pointer2017111020171020
20558e/v3gcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2017111020171020
20563e/v3gcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2017111020171020
20596e/v3gcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2017111020171020
20611e/v3gcc -m32 -march=athlon -O2 -fomit-frame-pointer2017111020171020
20615e/v3gcc -m32 -march=pentium -O -fomit-frame-pointer2017111020171020
20924e/v3gcc -m32 -march=i386 -O -fomit-frame-pointer2017111020171020
21061e/v3gcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2017111020171020
21062e/v3gcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2017111020171020
21062e/v3gcc -m32 -march=i386 -Os -fomit-frame-pointer2017111020171020
21062e/v3gcc -m32 -march=i486 -Os -fomit-frame-pointer2017111020171020
21062e/v3gcc -m32 -march=pentiumpro -O -fomit-frame-pointer2017111020171020
21204e/v3gcc -m32 -march=athlon -Os -fomit-frame-pointer2017111020171020
21251e/v3gcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2017111020171020
21256e/v3gcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2017111020171020
21280e/v3gcc -m32 -march=i486 -O -fomit-frame-pointer2017111020171020
21313e/v3gcc -m32 -march=k6 -O2 -fomit-frame-pointer2017111020171020
21314e/v3gcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2017111020171020
21361e/v3gcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2017111020171020
21375e/v3gcc -m32 -march=k6 -Os -fomit-frame-pointer2017111020171020
21389e/v3gcc -m32 -Os -fomit-frame-pointer2017111020171020
21427e/v3gcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2017111020171020
21432e/v3gcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2017111020171020
21499e/v3gcc -m32 -march=k6-3 -O -fomit-frame-pointer2017111020171020
21513e/v3gcc -m32 -march=k6 -O -fomit-frame-pointer2017111020171020
21580e/v3gcc -m32 -march=pentium -Os -fomit-frame-pointer2017111020171020
21679e/v3gcc -m32 -march=pentium2 -O -fomit-frame-pointer2017111020171020
21702e/v3gcc -m32 -march=athlon -O -fomit-frame-pointer2017111020171020
21703e/v3gcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2017111020171020
21726e/v3gcc -m32 -O -fomit-frame-pointer2017111020171020
21764e/v3gcc -funroll-loops -m32 -Os -fomit-frame-pointer2017111020171020
21846e/v3gcc -m32 -march=k6-3 -Os -fomit-frame-pointer2017111020171020
21860e/v3gcc -m32 -march=k6-2 -Os -fomit-frame-pointer2017111020171020
22097e/v3gcc -m32 -march=k6-2 -O -fomit-frame-pointer2017111020171020
22220e/v3gcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2017111020171020
22249e/v3gcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2017111020171020
22454e/v3gcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2017111020171020
22458e/v3gcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2017111020171020
22800e/v3gcc -m32 -march=pentium2 -Os -fomit-frame-pointer2017111020171020
22843e/v3gcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2017111020171020

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-20171020/supercop-data/h4e450/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-20171020/supercop-data/h4e450/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