Implementation notes: x86, h9trinity, crypto_stream/cryptmtv3

Computer: h9trinity
Architecture: x86
CPU ID: AuthenticAMD-00610f01-178bfbff
SUPERCOP version: 20171218
Operation: crypto_stream
Primitive: cryptmtv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
11191e/v3gcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2017111620171020
11222e/v3gcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2017111620171020
11290e/v3gcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2017111620171020
11322e/v3gcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2017111620171020
11386e/v3gcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2017111620171020
11409e/v3gcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2017111620171020
11448e/v3gcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2017111620171020
11508e/v3gcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2017111620171020
11512e/v3gcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2017111620171020
11562e/v3gcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2017111620171020
11564e/v3gcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2017111620171020
11598e/v3gcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2017111620171020
11670e/v3gcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2017111620171020
11803e/v3gcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2017111620171020
11829e/v3gcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2017111620171020
11864e/v3gcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2017111620171020
11920e/v3gcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2017111620171020
12069e/v3gcc -m32 -march=core2 -O3 -fomit-frame-pointer2017111620171020
12085e/v3gcc -m32 -march=core2 -O2 -fomit-frame-pointer2017111620171020
12100e/v3gcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2017111620171020
12102e/v3gcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2017111620171020
12110e/v3gcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017111620171020
12112e/v3gcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2017111620171020
12122e/v3gcc -m32 -march=corei7 -O2 -fomit-frame-pointer2017111620171020
12128e/v3gcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2017111620171020
12130e/v3gcc -m32 -march=prescott -O3 -fomit-frame-pointer2017111620171020
12143e/v3gcc -m32 -march=prescott -O2 -fomit-frame-pointer2017111620171020
12145e/v3gcc -m32 -march=nocona -O2 -fomit-frame-pointer2017111620171020
12159e/v3gcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017111620171020
12161e/v3gcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2017111620171020
12161e/v3gcc -m32 -march=nocona -O3 -fomit-frame-pointer2017111620171020
12164e/v3gcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2017111620171020
12169e/v3gcc -m32 -march=corei7 -O3 -fomit-frame-pointer2017111620171020
12247e/v3gcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2017111620171020
12298e/v3gcc -m32 -march=k8 -O3 -fomit-frame-pointer2017111620171020
12313e/v3gcc -m32 -march=k8 -O2 -fomit-frame-pointer2017111620171020
12315e/v3gcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2017111620171020
12343e/v3gcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2017111620171020
12371e/v3gcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2017111620171020
12377e/v3gcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2017111620171020
12423e/v3gcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2017111620171020
12456e/v3gcc -m32 -march=barcelona -O2 -fomit-frame-pointer2017111620171020
12486e/v3gcc -m32 -march=barcelona -O3 -fomit-frame-pointer2017111620171020
12493e/v3gcc -m32 -march=prescott -O -fomit-frame-pointer2017111620171020
12570e/v3gcc -m32 -march=nocona -O -fomit-frame-pointer2017111620171020
12574e/v3gcc -m32 -march=core-avx-i -O -fomit-frame-pointer2017111620171020
12578e/v3gcc -m32 -march=corei7 -Os -fomit-frame-pointer2017111620171020
12587e/v3gcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2017111620171020
12592e/v3gcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2017111620171020
12611e/v3gcc -m32 -march=corei7 -O -fomit-frame-pointer2017111620171020
12616e/v3gcc -m32 -march=corei7-avx -O -fomit-frame-pointer2017111620171020
12639e/v3gcc -m32 -march=core2 -O -fomit-frame-pointer2017111620171020
12650e/v3gcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2017111620171020
12652e/v3gcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2017111620171020
12656e/v3gcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2017111620171020
12661e/v3gcc -m32 -march=prescott -Os -fomit-frame-pointer2017111620171020
12680e/v3gcc -m32 -march=nocona -Os -fomit-frame-pointer2017111620171020
12691e/v3gcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2017111620171020
12705e/v3gcc -m32 -march=pentium4 -O -fomit-frame-pointer2017111620171020
12723e/v3gcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2017111620171020
12726e/v3gcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017111620171020
12730e/v3gcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2017111620171020
12756e/v3gcc -m32 -march=k8 -O -fomit-frame-pointer2017111620171020
12763e/v3gcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2017111620171020
12765e/v3gcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2017111620171020
12773e/v3gcc -m32 -march=pentium4 -Os -fomit-frame-pointer2017111620171020
12779e/v3gcc -m32 -march=barcelona -O -fomit-frame-pointer2017111620171020
12782e/v3gcc -m32 -march=core2 -Os -fomit-frame-pointer2017111620171020
12834e/v3gcc -m32 -march=k8 -Os -fomit-frame-pointer2017111620171020
12848e/v3gcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2017111620171020
12947e/v3gcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2017111620171020
12967e/v3gcc -m32 -march=pentium-m -O -fomit-frame-pointer2017111620171020
12987e/v3gcc -m32 -march=barcelona -Os -fomit-frame-pointer2017111620171020
13013e/v3gcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2017111620171020
13070e/v3gcc -m32 -march=pentium-m -Os -fomit-frame-pointer2017111620171020
13079e/v3gcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2017111620171020
15701e/v3gcc -m32 -O3 -fomit-frame-pointer2017111620171020
16081e/v3gcc -funroll-loops -m32 -O3 -fomit-frame-pointer2017111620171020
16139e/v3gcc -funroll-loops -m32 -O2 -fomit-frame-pointer2017111620171020
16259e/v3gcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2017111620171020
16458e/v3gcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2017111620171020
16510e/v3gcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2017111620171020
16550e/v3gcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2017111620171020
16565e/v3gcc -m32 -march=k6 -O3 -fomit-frame-pointer2017111620171020
16573e/v3gcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2017111620171020
16609e/v3gcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2017111620171020
16631e/v3gcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2017111620171020
16639e/v3gcc -funroll-loops -m32 -O -fomit-frame-pointer2017111620171020
16659e/v3gcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2017111620171020
16663e/v3gcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2017111620171020
16669e/v3gcc -m32 -march=athlon -O3 -fomit-frame-pointer2017111620171020
16670e/v3gcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2017111620171020
16672e/v3gcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2017111620171020
16722e/v3gcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2017111620171020
16724e/v3gcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2017111620171020
16742e/v3gcc -m32 -march=i386 -O3 -fomit-frame-pointer2017111620171020
16778e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2017111620171020
16790e/v3gcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2017111620171020
16826e/v3gcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2017111620171020
16842e/v3gcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2017111620171020
16846e/v3gcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2017111620171020
16866e/v3gcc -m32 -march=i486 -O3 -fomit-frame-pointer2017111620171020
16908e/v3gcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2017111620171020
16924e/v3gcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2017111620171020
16930e/v3gcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2017111620171020
16982e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2017111620171020
17006e/v3gcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2017111620171020
17051e/v3gcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2017111620171020
17074e/v3gcc -m32 -march=pentium -O3 -fomit-frame-pointer2017111620171020
17095e/v3gcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2017111620171020
17100e/v3gcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2017111620171020
17119e/v3gcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2017111620171020
17133e/v3gcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2017111620171020
17167e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2017111620171020
17305e/v3gcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2017111620171020
17314e/v3gcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2017111620171020
17376e/v3gcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2017111620171020
17396e/v3gcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2017111620171020
17607e/v3gcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2017111620171020
17714e/v3gcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2017111620171020
18849e/v3gcc -m32 -O2 -fomit-frame-pointer2017111620171020
19653e/v3gcc -m32 -march=athlon -O2 -fomit-frame-pointer2017111620171020
19816e/v3gcc -m32 -march=pentium -O2 -fomit-frame-pointer2017111620171020
19851e/v3gcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2017111620171020
19935e/v3gcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2017111620171020
20135e/v3gcc -m32 -march=k6-3 -Os -fomit-frame-pointer2017111620171020
20139e/v3gcc -m32 -march=k6-2 -Os -fomit-frame-pointer2017111620171020
20162e/v3gcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2017111620171020
20165e/v3gcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2017111620171020
20214e/v3gcc -m32 -march=k6 -O2 -fomit-frame-pointer2017111620171020
20238e/v3gcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2017111620171020
20241e/v3gcc -m32 -march=i486 -O2 -fomit-frame-pointer2017111620171020
20256e/v3gcc -m32 -march=k6 -Os -fomit-frame-pointer2017111620171020
20273e/v3gcc -m32 -march=i386 -Os -fomit-frame-pointer2017111620171020
20296e/v3gcc -m32 -march=i386 -O2 -fomit-frame-pointer2017111620171020
20372e/v3gcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2017111620171020
20420e/v3gcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2017111620171020
20427e/v3gcc -m32 -march=pentium -Os -fomit-frame-pointer2017111620171020
20437e/v3gcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2017111620171020
20440e/v3gcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2017111620171020
20467e/v3gcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2017111620171020
20475e/v3gcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2017111620171020
20481e/v3gcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2017111620171020
20489e/v3gcc -m32 -march=i486 -Os -fomit-frame-pointer2017111620171020
20525e/v3gcc -m32 -march=athlon -Os -fomit-frame-pointer2017111620171020
20566e/v3gcc -m32 -Os -fomit-frame-pointer2017111620171020
20567e/v3gcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2017111620171020
20642e/v3gcc -funroll-loops -m32 -Os -fomit-frame-pointer2017111620171020
20830e/v3gcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2017111620171020
20861e/v3gcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2017111620171020
20861e/v3gcc -m32 -march=pentium2 -Os -fomit-frame-pointer2017111620171020
20879e/v3gcc -m32 -O -fomit-frame-pointer2017111620171020
21009e/v3gcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2017111620171020
21194e/v3gcc -m32 -march=i486 -O -fomit-frame-pointer2017111620171020
21264e/v3gcc -m32 -march=athlon -O -fomit-frame-pointer2017111620171020
21289e/v3gcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2017111620171020
21308e/v3gcc -m32 -march=i386 -O -fomit-frame-pointer2017111620171020
21435e/v3gcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2017111620171020
21462e/v3gcc -m32 -march=pentiumpro -O -fomit-frame-pointer2017111620171020
21507e/v3gcc -m32 -march=pentium -O -fomit-frame-pointer2017111620171020
21550e/v3gcc -m32 -march=k6-3 -O -fomit-frame-pointer2017111620171020
21705e/v3gcc -m32 -march=pentium2 -O -fomit-frame-pointer2017111620171020
21765e/v3gcc -m32 -march=k6 -O -fomit-frame-pointer2017111620171020
21890e/v3gcc -m32 -march=k6-2 -O -fomit-frame-pointer2017111620171020

Test failure

Implementation: crypto_stream/cryptmtv3/e/v3
Compiler: gcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
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

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