Implementation notes: amd64, utrecht, crypto_stream/chacha12

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_stream
Primitive: chacha12
TimeImplementationCompilerBenchmark dateSUPERCOP version
4050e/amd64-xmm6gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
4059e/amd64-xmm6gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
4104e/amd64-xmm6gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
4104e/amd64-xmm6gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
4167amd64-ssse3gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
4176amd64-ssse3gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
4176amd64-ssse3gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
4185amd64-ssse3gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
4770dolbeau/amd64-avx2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
5022dolbeau/amd64-avx2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
5103dolbeau/amd64-avx2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
5112dolbeau/amd64-avx2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
5373moon/sse2/64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
5400moon/sse2/64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
5445moon/sse2/64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
5454moon/sse2/64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
6498moon/ssse3/64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
6498moon/ssse3/64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
6516moon/ssse3/64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
6525moon/ssse3/64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
7416e/amd64-3gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
7425e/amd64-3gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
7434e/amd64-3gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
7461e/amd64-3gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
7623krovetz/vec128gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
7677krovetz/vec128gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
8559krovetz/vec128gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
8712krovetz/vec128gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
8730e/mergedgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
8748e/refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
8856e/mergedgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
8901e/mergedgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
10665e/mergedgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
13095e/regsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
16326e/refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
16992e/regsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
19233e/refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
19602e/regsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
22194e/regsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
22203e/refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731

Test failure

Implementation: crypto_stream/chacha12/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/chacha12/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/chacha12/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/chacha12/krovetz/avx2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
stream.c: stream.c: In function 'crypto_stream_chacha12_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/chacha12/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