Implementation notes: amd64, utrecht, crypto_stream/chacha20

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_stream
Primitive: chacha20
TimeImplementationCompilerBenchmark dateSUPERCOP version
7929moon/sse2/64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
7956moon/sse2/64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
8001moon/sse2/64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
8001moon/sse2/64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
9297e/amd64-xmm6gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
9306e/amd64-xmm6gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
9342e/amd64-xmm6gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
9378e/amd64-xmm6gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
9603amd64-ssse3gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
9612amd64-ssse3gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
9621amd64-ssse3gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
9621amd64-ssse3gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
9828moon/ssse3/64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
9846moon/ssse3/64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
9873moon/ssse3/64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
9873moon/ssse3/64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
11097dolbeau/amd64-avx2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
11646dolbeau/amd64-avx2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
11772dolbeau/amd64-avx2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
12006dolbeau/amd64-avx2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
12492krovetz/vec128gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
12555krovetz/vec128gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
13149e/mergedgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
13284e/refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
13284e/regsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
13455e/mergedgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
13806krovetz/vec128gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
14085krovetz/vec128gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
16713e/mergedgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
17316e/refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
17496e/amd64-3gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
17505e/amd64-3gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
17559e/amd64-3gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
17586e/amd64-3gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
19179e/refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
19719e/mergedgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
21546e/refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
23616e/regsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
23670e/regsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
30276e/regsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731

Test failure

Implementation: crypto_stream/chacha20/moon/avx/64
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
error 111

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv moon/avx/64 moon/avx2/64 moon/xop/64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv moon/avx/64 moon/avx2/64 moon/xop/64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv moon/avx/64 moon/avx2/64 moon/xop/64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv moon/avx/64 moon/avx2/64 moon/xop/64

Compiler output

Implementation: crypto_stream/chacha20/dolbeau/ppc-altivec
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
chacha.c: chacha.c:11:21: fatal error: altivec.h: No such file or directory
chacha.c: #include gt;
chacha.c: ^
chacha.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv dolbeau/ppc-altivec
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv dolbeau/ppc-altivec
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv dolbeau/ppc-altivec
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv dolbeau/ppc-altivec

Compiler output

Implementation: crypto_stream/chacha20/dolbeau/mipsel-msa
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
chacha.c: chacha.c:11:22: fatal error: arm_neon.h: No such file or directory
chacha.c: #include gt;
chacha.c: ^
chacha.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv dolbeau/mipsel-msa
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv dolbeau/mipsel-msa
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv dolbeau/mipsel-msa
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv dolbeau/mipsel-msa

Compiler output

Implementation: crypto_stream/chacha20/krovetz/avx2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
stream.c: stream.c: In function 'crypto_stream_chacha20_krovetz_avx2_xor':
stream.c: stream.c:54:5: error: unknown type name '__m256i'
stream.c: __m256i v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11;
stream.c: ^
stream.c: stream.c:58:5: error: unknown type name '__m256i'
stream.c: __m256i s0 = _mm256_broadcastsi128_si256(*(__m128i *)sigma);
stream.c: ^
stream.c: stream.c:60:5: error: unknown type name '__m256i'
stream.c: __m256i s1 = _mm256_loadu_si256((__m256i *)k);
stream.c: ^
stream.c: stream.c:60:38: error: '__m256i' undeclared (first use in this function)
stream.c: __m256i s1 = _mm256_loadu_si256((__m256i *)k);
stream.c: ^
stream.c: stream.c:60:38: note: each undeclared identifier is reported only once for each function it appears in
stream.c: stream.c:60:47: error: expected expression before ')' token
stream.c: __m256i s1 = _mm256_loadu_si256((__m256i *)k);
stream.c: ^
stream.c: stream.c:61:13: error: expected ';' before 's2'
stream.c: __m256i s2 = _mm256_permute2x128_si256(s1,s1,0x11);
stream.c: ^
stream.c: stream.c:63:13: error: expected ';' before 's3'
stream.c: __m256i s3 = _mm256_or_si256(
stream.c: ^
stream.c: stream.c:69:25: error: 's2' undeclared (first use in this function)
stream.c: v10 = v6 = v2 = s2; v3 = s3; v7 = INC(v3); v11 = INC(v7);
stream.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv krovetz/avx2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv krovetz/avx2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv krovetz/avx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv krovetz/avx2

Compiler output

Implementation: crypto_stream/chacha20/goll_gueron
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
stream.c: stream.c:126:2: error: #error -- Implementation supports only microarchitectures with support for Advanced Vector Extensions (AVX2 or AVX512).
stream.c: #error -- Implementation supports only microarchitectures with support for Advanced Vector Extensions (AVX2 or AVX512).
stream.c: ^

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv goll_gueron
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv goll_gueron
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv goll_gueron
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv goll_gueron