Implementation notes: x86, margaux, crypto_stream/cryptmtv3

Computer: margaux
Architecture: x86
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20171218
Operation: crypto_stream
Primitive: cryptmtv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
8028e/v3gcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2017090820170904
8055e/v3gcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2017090820170904
8118e/v3gcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2017090820170904
8127e/v3gcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2017090820170904
8181e/v3gcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2017090820170904
8280e/v3gcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2017090820170904
8289e/v3gcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2017090820170904
8316e/v3gcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2017090820170904
8343e/v3gcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2017090820170904
8469e/v3gcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2017090820170904
8487e/v3gcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2017090820170904
8532e/v3gcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2017090820170904
8613e/v3gcc -m32 -march=k8 -O3 -fomit-frame-pointer2017090820170904
8685e/v3gcc -m32 -march=barcelona -O3 -fomit-frame-pointer2017090820170904
8748e/v3gcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2017090820170904
8748e/v3gcc -m32 -march=nocona -O3 -fomit-frame-pointer2017090820170904
8757e/v3gcc -m32 -march=core2 -O3 -fomit-frame-pointer2017090820170904
8757e/v3gcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2017090820170904
8766e/v3gcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2017090820170904
8775e/v3gcc -m32 -march=prescott -O3 -fomit-frame-pointer2017090820170904
8793e/v3gcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2017090820170904
8802e/v3gcc -m32 -march=core2 -O -fomit-frame-pointer2017090820170904
8802e/v3gcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2017090820170904
8811e/v3gcc -m32 -march=nocona -O -fomit-frame-pointer2017090820170904
8820e/v3gcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2017090820170904
8829e/v3gcc -m32 -march=prescott -O -fomit-frame-pointer2017090820170904
8838e/v3gcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2017090820170904
8847e/v3gcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2017090820170904
8847e/v3gcc -m32 -march=pentium-m -Os -fomit-frame-pointer2017090820170904
8865e/v3gcc -m32 -march=corei7 -O -fomit-frame-pointer2017090820170904
8874e/v3gcc -m32 -march=pentium4 -O -fomit-frame-pointer2017090820170904
8910e/v3gcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2017090820170904
8910e/v3gcc -m32 -march=k8 -O -fomit-frame-pointer2017090820170904
8910e/v3gcc -m32 -march=k8 -Os -fomit-frame-pointer2017090820170904
8910e/v3gcc -m32 -march=pentium-m -O -fomit-frame-pointer2017090820170904
8928e/v3gcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2017090820170904
8937e/v3gcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2017090820170904
8982e/v3gcc -m32 -march=barcelona -O -fomit-frame-pointer2017090820170904
9027e/v3gcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2017090820170904
9036e/v3gcc -m32 -march=core2 -Os -fomit-frame-pointer2017090820170904
9054e/v3gcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2017090820170904
9054e/v3gcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2017090820170904
9063e/v3gcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017090820170904
9090e/v3gcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2017090820170904
9117e/v3gcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2017090820170904
9135e/v3gcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2017090820170904
9162e/v3gcc -m32 -march=corei7 -Os -fomit-frame-pointer2017090820170904
9207e/v3gcc -m32 -march=barcelona -Os -fomit-frame-pointer2017090820170904
9234e/v3gcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2017090820170904
9252e/v3gcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2017090820170904
9252e/v3gcc -m32 -march=pentium4 -Os -fomit-frame-pointer2017090820170904
9261e/v3gcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2017090820170904
9261e/v3gcc -m32 -march=nocona -Os -fomit-frame-pointer2017090820170904
9288e/v3gcc -m32 -march=prescott -Os -fomit-frame-pointer2017090820170904
9351e/v3gcc -m32 -march=barcelona -O2 -fomit-frame-pointer2017090820170904
9504e/v3gcc -m32 -march=core2 -O2 -fomit-frame-pointer2017090820170904
9504e/v3gcc -m32 -march=corei7 -O2 -fomit-frame-pointer2017090820170904
9504e/v3gcc -m32 -march=prescott -O2 -fomit-frame-pointer2017090820170904
9522e/v3gcc -m32 -march=nocona -O2 -fomit-frame-pointer2017090820170904
9531e/v3gcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017090820170904
9531e/v3gcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2017090820170904
9567e/v3gcc -m32 -march=k8 -O2 -fomit-frame-pointer2017090820170904
9576e/v3gcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2017090820170904
9594e/v3gcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2017090820170904
9810e/v3gcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2017090820170904
12114e/v3gcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2017090820170904
12204e/v3gcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2017090820170904
12294e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2017090820170904
12303e/v3gcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2017090820170904
12312e/v3gcc -funroll-loops -m32 -O -fomit-frame-pointer2017090820170904
12357e/v3gcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2017090820170904
12420e/v3gcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2017090820170904
12456e/v3gcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2017090820170904
12582e/v3gcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2017090820170904
12582e/v3gcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2017090820170904
12663e/v3gcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2017090820170904
13680e/v3gcc -m32 -march=i486 -O -fomit-frame-pointer2017090820170904
13842e/v3gcc -m32 -march=i386 -O -fomit-frame-pointer2017090820170904
13905e/v3gcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2017090820170904
13932e/v3gcc -m32 -march=pentium -O -fomit-frame-pointer2017090820170904
14544e/v3gcc -m32 -O -fomit-frame-pointer2017090820170904
14679e/v3gcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2017090820170904
14679e/v3gcc -m32 -march=k6-2 -Os -fomit-frame-pointer2017090820170904
14733e/v3gcc -m32 -march=pentiumpro -O -fomit-frame-pointer2017090820170904
14769e/v3gcc -m32 -march=pentium2 -Os -fomit-frame-pointer2017090820170904
14778e/v3gcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2017090820170904
14787e/v3gcc -m32 -march=k6 -Os -fomit-frame-pointer2017090820170904
14796e/v3gcc -m32 -O3 -fomit-frame-pointer2017090820170904
14796e/v3gcc -m32 -march=athlon -O -fomit-frame-pointer2017090820170904
14814e/v3gcc -m32 -march=pentium -Os -fomit-frame-pointer2017090820170904
14823e/v3gcc -m32 -march=k6-2 -O -fomit-frame-pointer2017090820170904
14823e/v3gcc -m32 -march=pentium2 -O -fomit-frame-pointer2017090820170904
14850e/v3gcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2017090820170904
14850e/v3gcc -m32 -march=k6-3 -Os -fomit-frame-pointer2017090820170904
14859e/v3gcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2017090820170904
14868e/v3gcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2017090820170904
14877e/v3gcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2017090820170904
14886e/v3gcc -funroll-loops -m32 -Os -fomit-frame-pointer2017090820170904
14886e/v3gcc -m32 -march=k6-3 -O -fomit-frame-pointer2017090820170904
14913e/v3gcc -m32 -O2 -fomit-frame-pointer2017090820170904
14922e/v3gcc -m32 -Os -fomit-frame-pointer2017090820170904
14922e/v3gcc -m32 -march=k6 -O -fomit-frame-pointer2017090820170904
14931e/v3gcc -m32 -march=athlon -Os -fomit-frame-pointer2017090820170904
14967e/v3gcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2017090820170904
14994e/v3gcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2017090820170904
15003e/v3gcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2017090820170904
15003e/v3gcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2017090820170904
15057e/v3gcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2017090820170904
15075e/v3gcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2017090820170904
15138e/v3gcc -m32 -march=i386 -Os -fomit-frame-pointer2017090820170904
15138e/v3gcc -m32 -march=i486 -Os -fomit-frame-pointer2017090820170904
15201e/v3gcc -funroll-loops -m32 -O3 -fomit-frame-pointer2017090820170904
15201e/v3gcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2017090820170904
15228e/v3gcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2017090820170904
15336e/v3gcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2017090820170904
15390e/v3gcc -m32 -march=athlon -O2 -fomit-frame-pointer2017090820170904
15462e/v3gcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2017090820170904
15471e/v3gcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2017090820170904
15480e/v3gcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2017090820170904
15507e/v3gcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2017090820170904
15543e/v3gcc -m32 -march=k6 -O2 -fomit-frame-pointer2017090820170904
15606e/v3gcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2017090820170904
15660e/v3gcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2017090820170904
15660e/v3gcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2017090820170904
15678e/v3gcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2017090820170904
15687e/v3gcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2017090820170904
15687e/v3gcc -m32 -march=i486 -O3 -fomit-frame-pointer2017090820170904
15696e/v3gcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2017090820170904
15696e/v3gcc -m32 -march=athlon -O3 -fomit-frame-pointer2017090820170904
15795e/v3gcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2017090820170904
15795e/v3gcc -m32 -march=pentium -O2 -fomit-frame-pointer2017090820170904
15840e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2017090820170904
15849e/v3gcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2017090820170904
15867e/v3gcc -m32 -march=i386 -O3 -fomit-frame-pointer2017090820170904
15867e/v3gcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2017090820170904
15867e/v3gcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2017090820170904
15885e/v3gcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2017090820170904
15894e/v3gcc -m32 -march=k6 -O3 -fomit-frame-pointer2017090820170904
15966e/v3gcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2017090820170904
16029e/v3gcc -m32 -march=i486 -O2 -fomit-frame-pointer2017090820170904
16146e/v3gcc -m32 -march=pentium -O3 -fomit-frame-pointer2017090820170904
16236e/v3gcc -m32 -march=i386 -O2 -fomit-frame-pointer2017090820170904
16398e/v3gcc -funroll-loops -m32 -O2 -fomit-frame-pointer2017090820170904
16749e/v3gcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2017090820170904
16803e/v3gcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2017090820170904
16830e/v3gcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2017090820170904
16830e/v3gcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2017090820170904
16839e/v3gcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2017090820170904
16866e/v3gcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2017090820170904
16893e/v3gcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2017090820170904
17073e/v3gcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2017090820170904
17091e/v3gcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2017090820170904
17181e/v3gcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2017090820170904

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 e/sse2.c:5:0,
cryptmt-v3.c: from e/cryptmt-v3.c:66,
cryptmt-v3.c: from cryptmt-v3.c:2:
cryptmt-v3.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/emmintrin.h:31:3: error: #error "SSE2 instruction set not enabled"
cryptmt-v3.c: # error "SSE2 instruction set not enabled"
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:15:1: error: unknown type name '__m128i'
cryptmt-v3.c: static INLINE __m128i _mm_recursion(const __m128i *x, const __m128i *y,
cryptmt-v3.c: ^
cryptmt-v3.c: e/sse2.c:15:1: error: unknown type name '__m128i'
cryptmt-v3.c: e/sse2.c:15:1: error: unknown type name '__m128i'
cryptmt-v3.c: e/sse2.c:16:9: error: unknown type name '__m128i'
cryptmt-v3.c: __m128i z, const __m128i mask);
cryptmt-v3.c: ^
cryptmt-v3.c: e/sse2.c:16:9: error: unknown type name '__m128i'
cryptmt-v3.c: e/sse2.c:18:39: error: unknown type name '__m128i'
cryptmt-v3.c: static INLINE void _mm_filter_16bytes(__m128i *sfmt, __m128i *p_accum,
cryptmt-v3.c: ^
cryptmt-v3.c: e/sse2.c:18:54: error: unknown type name '__m128i'
cryptmt-v3.c: static INLINE void _mm_filter_16bytes(__m128i *sfmt, __m128i *p_accum,
cryptmt-v3.c: ^
cryptmt-v3.c: e/sse2.c:21:34: error: unknown type name '__m128i'
cryptmt-v3.c: static INLINE void _mm_booter_am(__m128i *acc, __m128i *pos1, __m128i *pos2,
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