Implementation notes: amd64, devoptimis, crypto_stream/chacha8

Computer: devoptimis
Architecture: amd64
CPU ID: GenuineIntel-000206c2-bfebfbff
SUPERCOP version: 20190910
Operation: crypto_stream
Primitive: chacha8
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
24482461 0 014333 784 856krovetz/vec128gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
31412503 0 014397 784 856krovetz/vec128gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
35023671 0 017757 784 856krovetz/vec128gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
36065179 0 416933 768 864dolbeau/amd64-avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
37115257 0 417037 768 864dolbeau/amd64-avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
37256831 0 420870 776 864dolbeau/amd64-avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
39974385 0 415081 752 832e/amd64-xmm6gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
40714581 0 416341 768 864e/amd64-xmm6gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
40922001 0 012752 760 824krovetz/vec128gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
40984636 0 415337 752 832dolbeau/amd64-avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
43674565 0 418606 776 864e/amd64-xmm6gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
47084533 0 416277 768 864e/amd64-xmm6gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
48772662 0 416702 776 864e/amd64-3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
52313615 0 417654 776 864e/mergedgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
86882630 0 414373 768 864e/amd64-3gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
88342678 0 414437 768 864e/amd64-3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
90682275 0 414021 768 864e/regsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
96202484 0 413145 752 832e/amd64-3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
104562478 0 414229 768 864e/mergedgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
105322940 0 416998 776 864e/regsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
107912425 0 414205 768 864e/mergedgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
109842956 0 417014 776 864e/refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
118122136 0 412809 752 832e/mergedgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
119722260 0 414053 768 864e/refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
158342260 0 414053 768 864e/regsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
189102013 0 412681 752 832e/regsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
193202171 0 413925 768 864e/refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910
251201888 0 412553 752 832e/refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019100320190910

Compiler output

Implementation: amd64-ssse3
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: crypto_stream_chacha8.a(chacha.o): relocation R_X86_64_32S against symbol `R16' can not be used when making a PIE object; recompile with -fPIC
try.c: /usr/bin/ld: final link failed: Nonrepresentable section on output
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: dolbeau/mipsel-msa
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
chacha.c: chacha.c:12:10: fatal error: arm_neon.h: No such file or directory
chacha.c: #include <arm_neon.h>
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 -fPIC -fPIE dolbeau/mipsel-msa
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/mipsel-msa
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/mipsel-msa
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/mipsel-msa

Compiler output

Implementation: goll_gueron
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
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 -fPIC -fPIE goll_gueron
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE goll_gueron
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE goll_gueron
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE goll_gueron

Compiler output

Implementation: krovetz/avx2
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
stream.c: stream.c: In function 'crypto_stream_chacha8_krovetz_avx2_xor':
stream.c: stream.c:58:13: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
stream.c: __m256i s0 = _mm256_broadcastsi128_si256(*(__m128i *)sigma);
stream.c: ^~
stream.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
stream.c: from stream.c:8:
stream.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:574:1: error: inlining failed in call to always_inline '_mm256_or_si256': target specific option mismatch
stream.c: _mm256_or_si256 (__m256i __A, __m256i __B)
stream.c: ^~~~~~~~~~~~~~~
stream.c: stream.c:63:13: note: called from here
stream.c: __m256i s3 = _mm256_or_si256(
stream.c: ^~
stream.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
stream.c: from stream.c:8:
stream.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:655:1: error: inlining failed in call to always_inline '_mm256_slli_si256': target specific option mismatch
stream.c: _mm256_slli_si256 (__m256i __A, const int __N)
stream.c: ^~~~~~~~~~~~~~~~~
stream.c: stream.c:63:18: note: called from here
stream.c: __m256i s3 = _mm256_or_si256(
stream.c: ^~~~~~~~~~~~~~~~
stream.c: _mm256_slli_si256(_mm256_broadcastq_epi64(*(__m128i *)n), 8),
stream.c: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: _mm256_set_epi32(0,0,0,1,0,0,0,0)
stream.c: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: );
stream.c: ...

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

Compiler output

Implementation: moon/avx/64
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_avx_64':
try.c: crypto_stream.c:(.text+0x...): multiple definition of `crypto_stream_chacha8_moon_avx_64'
try.c: crypto_stream_chacha8.a(chacha.o):(.text+0x...): first defined here
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_avx_64_xor':
try.c: crypto_stream.c:(.text+0x...): undefined reference to `crypto_stream_chacha12_moon_avx_64'
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_avx_64':
try.c: crypto_stream.c:(.text+0x...): undefined reference to `crypto_stream_chacha12_moon_avx_64'
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: moon/avx2/64
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_avx2_64':
try.c: crypto_stream.c:(.text+0x...): multiple definition of `crypto_stream_chacha8_moon_avx2_64'
try.c: crypto_stream_chacha8.a(chacha.o):(.text+0x...): first defined here
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_avx2_64_xor':
try.c: crypto_stream.c:(.text+0x...): undefined reference to `crypto_stream_chacha12_moon_avx2_64'
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_avx2_64':
try.c: crypto_stream.c:(.text+0x...): undefined reference to `crypto_stream_chacha12_moon_avx2_64'
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: moon/sse2/64
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_sse2_64':
try.c: crypto_stream.c:(.text+0x...): multiple definition of `crypto_stream_chacha8_moon_sse2_64'
try.c: crypto_stream_chacha8.a(chacha.o):(.text+0x...): first defined here
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_sse2_64_xor':
try.c: crypto_stream.c:(.text+0x...): undefined reference to `crypto_stream_chacha12_moon_sse2_64'
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_sse2_64':
try.c: crypto_stream.c:(.text+0x...): undefined reference to `crypto_stream_chacha12_moon_sse2_64'
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: moon/ssse3/64
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_ssse3_64':
try.c: crypto_stream.c:(.text+0x...): multiple definition of `crypto_stream_chacha8_moon_ssse3_64'
try.c: crypto_stream_chacha8.a(chacha.o):(.text+0x...): first defined here
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_ssse3_64_xor':
try.c: crypto_stream.c:(.text+0x...): undefined reference to `crypto_stream_chacha12_moon_ssse3_64'
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_ssse3_64':
try.c: crypto_stream.c:(.text+0x...): undefined reference to `crypto_stream_chacha12_moon_ssse3_64'
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: moon/xop/64
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_xop_64':
try.c: crypto_stream.c:(.text+0x...): multiple definition of `crypto_stream_chacha8_moon_xop_64'
try.c: crypto_stream_chacha8.a(chacha.o):(.text+0x...): first defined here
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_xop_64_xor':
try.c: crypto_stream.c:(.text+0x...): undefined reference to `crypto_stream_chacha12_moon_xop_64'
try.c: crypto_stream_chacha8.a(crypto_stream.o): In function `crypto_stream_chacha8_moon_xop_64':
try.c: crypto_stream.c:(.text+0x...): undefined reference to `crypto_stream_chacha12_moon_xop_64'
try.c: collect2: error: ld returned 1 exit status

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