Implementation notes: amd64, bitvise, crypto_stream/chacha12

Computer: bitvise
Architecture: amd64
CPU ID: GenuineIntel-000906ea-bfebfbff
SUPERCOP version: 20190910
Operation: crypto_stream
Primitive: chacha12
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
11836280 0 116823 768 808dolbeau/amd64-avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
11878251 0 122441 776 808dolbeau/amd64-avx2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
11897435 0 121593 776 808dolbeau/amd64-avx2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
11917435 0 121593 776 808dolbeau/amd64-avx2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
13185574 0 020798 776 856goll_guerongcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
13323928 0 018065 776 800goll_gueronclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
13323926 0 015766 776 856goll_guerongcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
13566936 0 417673 752 832dolbeau/amd64-avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
13633152 0 013719 768 800goll_gueronclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
13673928 0 018065 776 800goll_gueronclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
13715624 0 019793 776 800goll_gueronclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
13737585 0 419413 768 864dolbeau/amd64-avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
13788807 0 424086 776 864dolbeau/amd64-avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
13957778 0 419581 768 864dolbeau/amd64-avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
14023519 0 014304 760 824krovetz/avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
14203966 0 015798 776 856goll_guerongcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
14673308 0 014033 752 824goll_guerongcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
15064287 0 016197 784 856krovetz/avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
15574145 0 016053 784 856krovetz/avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
19035887 0 021213 784 856krovetz/avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
24532327 0 014237 784 856krovetz/vec128gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
24634007 0 019317 784 856krovetz/vec128gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
26522281 0 014173 784 856krovetz/vec128gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
27332592 0 016721 776 800krovetz/vec128clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
27332517 0 013087 768 800krovetz/vec128clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
27362592 0 016721 776 800krovetz/vec128clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
27634168 0 018313 776 800krovetz/vec128clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
28592005 0 012800 760 824krovetz/vec128gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
29064478 0 118625 776 808e/amd64-xmm6clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
29104565 0 419798 776 864e/amd64-xmm6gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
29104533 0 416277 768 864e/amd64-xmm6gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
29104385 0 415081 752 832e/amd64-xmm6gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
29144478 0 118625 776 808e/amd64-xmm6clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
29264471 0 115055 768 808e/amd64-xmm6clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
29424581 0 416341 768 864e/amd64-xmm6gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
36454478 0 118641 776 808e/amd64-xmm6clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
57932572 0 113151 768 808e/amd64-3clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
58012662 0 417894 776 864e/amd64-3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
58022678 0 414437 768 864e/amd64-3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
58082574 0 116721 776 808e/amd64-3clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
58092574 0 116721 776 808e/amd64-3clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
58102574 0 116737 776 808e/amd64-3clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
58102484 0 413145 752 832e/amd64-3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
58422630 0 414373 768 864e/amd64-3gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
58442505 0 414285 768 864e/mergedgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
59254131 0 118289 776 808e/mergedclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
61083123 0 117281 776 808e/mergedclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
61142547 0 414309 768 864e/mergedgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
61163319 0 418566 776 864e/mergedgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
61181682 0 112271 768 808e/mergedclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
64153123 0 117281 776 808e/mergedclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
64272981 0 418246 776 864e/regsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
64672201 0 412889 752 832e/mergedgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
73573587 0 117745 776 808e/regsclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
75012971 0 117129 776 808e/refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
75022971 0 117129 776 808e/refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
75152971 0 117129 776 808e/refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
75852627 0 116785 776 808e/regsclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
76072627 0 116785 776 808e/regsclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
77402949 0 418214 776 864e/refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
83302309 0 414101 768 864e/regsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
86732272 0 414037 768 864e/regsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
92971557 0 112135 768 808e/regsclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
96632309 0 414101 768 864e/refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
99081907 0 112487 768 808e/refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091420190910
100802219 0 413989 768 864e/refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
107232093 0 412793 752 832e/regsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
118511962 0 412649 752 832e/refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910

Test failure

Implementation: amd64-ssse3
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
error 111

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

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_chacha12.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: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
chacha.c: In file included from chacha.c:12:
chacha.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/arm_neon.h:28:2: error: "NEON support not enabled"
chacha.c: #error "NEON support not enabled"
chacha.c: ^
chacha.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/arm_neon.h:48:24: error: 'neon_vector_type' attribute is not supported for this target
chacha.c: typedef __attribute__((neon_vector_type(8))) int8_t int8x8_t;
chacha.c: ^
chacha.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/arm_neon.h:49:24: error: 'neon_vector_type' attribute is not supported for this target
chacha.c: typedef __attribute__((neon_vector_type(16))) int8_t int8x16_t;
chacha.c: ^
chacha.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/arm_neon.h:50:24: error: 'neon_vector_type' attribute is not supported for this target
chacha.c: typedef __attribute__((neon_vector_type(4))) int16_t int16x4_t;
chacha.c: ^
chacha.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/arm_neon.h:51:24: error: 'neon_vector_type' attribute is not supported for this target
chacha.c: typedef __attribute__((neon_vector_type(8))) int16_t int16x8_t;
chacha.c: ^
chacha.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/arm_neon.h:52:24: error: 'neon_vector_type' attribute is not supported for this target
chacha.c: typedef __attribute__((neon_vector_type(2))) int32_t int32x2_t;
chacha.c: ^
chacha.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/arm_neon.h:53:24: error: 'neon_vector_type' attribute is not supported for this target
chacha.c: typedef __attribute__((neon_vector_type(4))) int32_t int32x4_t;
chacha.c: ^
chacha.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/arm_neon.h:54:24: error: 'neon_vector_type' attribute is not supported for this target
chacha.c: typedef __attribute__((neon_vector_type(1))) int64_t int64x1_t;
chacha.c: ^
chacha.c: ...

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

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: krovetz/avx2
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
stream.c: stream.c:56:18: warning: implicit declaration of function '_mm_broadcastsi128_si256' is invalid in C99 [-Wimplicit-function-declaration]
stream.c: __m256i s0 = _mm_broadcastsi128_si256((__m128i *)sigma);
stream.c: ^
stream.c: stream.c:56:13: error: initializing '__m256i' (vector of 4 'long long' values) with an expression of incompatible type 'int'
stream.c: __m256i s0 = _mm_broadcastsi128_si256((__m128i *)sigma);
stream.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: 1 warning and 1 error generated.

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

Compiler output

Implementation: moon/avx/64
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
crypto_stream.c: crypto_stream.c:6:13: error: conflicting types for 'crypto_stream_chacha12_moon_avx_64'
crypto_stream.c: extern void chacha_fn(const unsigned char *k, const unsigned char *n, const unsigned char *in, unsigned char *out, size_t inlen, size_t rounds);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:1:19: note: expanded from macro 'chacha_fn'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_avx_64
crypto_stream.c: ^
crypto_stream.c: ./crypto_stream_chacha12.h:11:12: note: previous declaration is here
crypto_stream.c: extern int crypto_stream_chacha12_moon_avx_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:9:27: error: too many arguments to function call, expected 4, have 6
crypto_stream.c: chacha_fn(k, n, in, out, (size_t)inlen, 12);
crypto_stream.c: ~~~~~~~~~ ^~~~~~~~~~~~~~~~~
crypto_stream.c: ./crypto_stream_chacha12.h:11:1: note: 'crypto_stream_chacha12_moon_avx_64' declared here
crypto_stream.c: extern int crypto_stream_chacha12_moon_avx_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:14:29: error: too many arguments to function call, expected 4, have 6
crypto_stream.c: chacha_fn(k, n, NULL, out, (size_t)outlen, 12);
crypto_stream.c: ~~~~~~~~~ ^~~~~~~~~~~~~~~~~~
crypto_stream.c: crypto_stream.c:13:1: note: 'crypto_stream_chacha12_moon_avx_64' declared here
crypto_stream.c: int crypto_stream(unsigned char *out, unsigned long long outlen, const unsigned char *n, const unsigned char *k) {
crypto_stream.c: ^
crypto_stream.c: 3 errors generated.

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

Compiler output

Implementation: moon/avx/64
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
crypto_stream.c: crypto_stream.c:1:19: error: conflicting types for 'crypto_stream_chacha12_moon_avx_64'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_avx_64
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:1:19: note: in definition of macro 'chacha_fn'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_avx_64
crypto_stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
crypto_stream.c: In file included from crypto_stream.h:4:0,
crypto_stream.c: from crypto_stream.c:3:
crypto_stream.c: crypto_stream_chacha12.h:11:12: note: previous declaration of 'crypto_stream_chacha12_moon_avx_64' was here
crypto_stream.c: extern int crypto_stream_chacha12_moon_avx_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
crypto_stream.c: crypto_stream.c:6:13: error: conflicting types for 'crypto_stream_chacha12_moon_avx2_64'
crypto_stream.c: extern void chacha_fn(const unsigned char *k, const unsigned char *n, const unsigned char *in, unsigned char *out, size_t inlen, size_t rounds);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:1:19: note: expanded from macro 'chacha_fn'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_avx2_64
crypto_stream.c: ^
crypto_stream.c: ./crypto_stream_chacha12.h:11:12: note: previous declaration is here
crypto_stream.c: extern int crypto_stream_chacha12_moon_avx2_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:9:27: error: too many arguments to function call, expected 4, have 6
crypto_stream.c: chacha_fn(k, n, in, out, (size_t)inlen, 12);
crypto_stream.c: ~~~~~~~~~ ^~~~~~~~~~~~~~~~~
crypto_stream.c: ./crypto_stream_chacha12.h:11:1: note: 'crypto_stream_chacha12_moon_avx2_64' declared here
crypto_stream.c: extern int crypto_stream_chacha12_moon_avx2_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:14:29: error: too many arguments to function call, expected 4, have 6
crypto_stream.c: chacha_fn(k, n, NULL, out, (size_t)outlen, 12);
crypto_stream.c: ~~~~~~~~~ ^~~~~~~~~~~~~~~~~~
crypto_stream.c: crypto_stream.c:13:1: note: 'crypto_stream_chacha12_moon_avx2_64' declared here
crypto_stream.c: int crypto_stream(unsigned char *out, unsigned long long outlen, const unsigned char *n, const unsigned char *k) {
crypto_stream.c: ^
crypto_stream.c: 3 errors generated.

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

Compiler output

Implementation: moon/avx2/64
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
crypto_stream.c: crypto_stream.c:1:19: error: conflicting types for 'crypto_stream_chacha12_moon_avx2_64'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_avx2_64
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:1:19: note: in definition of macro 'chacha_fn'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_avx2_64
crypto_stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
crypto_stream.c: In file included from crypto_stream.h:4:0,
crypto_stream.c: from crypto_stream.c:3:
crypto_stream.c: crypto_stream_chacha12.h:11:12: note: previous declaration of 'crypto_stream_chacha12_moon_avx2_64' was here
crypto_stream.c: extern int crypto_stream_chacha12_moon_avx2_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
crypto_stream.c: crypto_stream.c:6:13: error: conflicting types for 'crypto_stream_chacha12_moon_sse2_64'
crypto_stream.c: extern void chacha_fn(const unsigned char *k, const unsigned char *n, const unsigned char *in, unsigned char *out, size_t inlen, size_t rounds);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:1:19: note: expanded from macro 'chacha_fn'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_sse2_64
crypto_stream.c: ^
crypto_stream.c: ./crypto_stream_chacha12.h:11:12: note: previous declaration is here
crypto_stream.c: extern int crypto_stream_chacha12_moon_sse2_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:9:27: error: too many arguments to function call, expected 4, have 6
crypto_stream.c: chacha_fn(k, n, in, out, (size_t)inlen, 12);
crypto_stream.c: ~~~~~~~~~ ^~~~~~~~~~~~~~~~~
crypto_stream.c: ./crypto_stream_chacha12.h:11:1: note: 'crypto_stream_chacha12_moon_sse2_64' declared here
crypto_stream.c: extern int crypto_stream_chacha12_moon_sse2_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:14:29: error: too many arguments to function call, expected 4, have 6
crypto_stream.c: chacha_fn(k, n, NULL, out, (size_t)outlen, 12);
crypto_stream.c: ~~~~~~~~~ ^~~~~~~~~~~~~~~~~~
crypto_stream.c: crypto_stream.c:13:1: note: 'crypto_stream_chacha12_moon_sse2_64' declared here
crypto_stream.c: int crypto_stream(unsigned char *out, unsigned long long outlen, const unsigned char *n, const unsigned char *k) {
crypto_stream.c: ^
crypto_stream.c: 3 errors generated.

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

Compiler output

Implementation: moon/sse2/64
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
crypto_stream.c: crypto_stream.c:1:19: error: conflicting types for 'crypto_stream_chacha12_moon_sse2_64'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_sse2_64
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:1:19: note: in definition of macro 'chacha_fn'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_sse2_64
crypto_stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
crypto_stream.c: In file included from crypto_stream.h:4:0,
crypto_stream.c: from crypto_stream.c:3:
crypto_stream.c: crypto_stream_chacha12.h:11:12: note: previous declaration of 'crypto_stream_chacha12_moon_sse2_64' was here
crypto_stream.c: extern int crypto_stream_chacha12_moon_sse2_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
crypto_stream.c: crypto_stream.c:6:13: error: conflicting types for 'crypto_stream_chacha12_moon_ssse3_64'
crypto_stream.c: extern void chacha_fn(const unsigned char *k, const unsigned char *n, const unsigned char *in, unsigned char *out, size_t inlen, size_t rounds);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:1:19: note: expanded from macro 'chacha_fn'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_ssse3_64
crypto_stream.c: ^
crypto_stream.c: ./crypto_stream_chacha12.h:11:12: note: previous declaration is here
crypto_stream.c: extern int crypto_stream_chacha12_moon_ssse3_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:9:27: error: too many arguments to function call, expected 4, have 6
crypto_stream.c: chacha_fn(k, n, in, out, (size_t)inlen, 12);
crypto_stream.c: ~~~~~~~~~ ^~~~~~~~~~~~~~~~~
crypto_stream.c: ./crypto_stream_chacha12.h:11:1: note: 'crypto_stream_chacha12_moon_ssse3_64' declared here
crypto_stream.c: extern int crypto_stream_chacha12_moon_ssse3_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:14:29: error: too many arguments to function call, expected 4, have 6
crypto_stream.c: chacha_fn(k, n, NULL, out, (size_t)outlen, 12);
crypto_stream.c: ~~~~~~~~~ ^~~~~~~~~~~~~~~~~~
crypto_stream.c: crypto_stream.c:13:1: note: 'crypto_stream_chacha12_moon_ssse3_64' declared here
crypto_stream.c: int crypto_stream(unsigned char *out, unsigned long long outlen, const unsigned char *n, const unsigned char *k) {
crypto_stream.c: ^
crypto_stream.c: 3 errors generated.

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

Compiler output

Implementation: moon/ssse3/64
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
crypto_stream.c: crypto_stream.c:1:19: error: conflicting types for 'crypto_stream_chacha12_moon_ssse3_64'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_ssse3_64
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:1:19: note: in definition of macro 'chacha_fn'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_ssse3_64
crypto_stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
crypto_stream.c: In file included from crypto_stream.h:4:0,
crypto_stream.c: from crypto_stream.c:3:
crypto_stream.c: crypto_stream_chacha12.h:11:12: note: previous declaration of 'crypto_stream_chacha12_moon_ssse3_64' was here
crypto_stream.c: extern int crypto_stream_chacha12_moon_ssse3_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
crypto_stream.c: crypto_stream.c:6:13: error: conflicting types for 'crypto_stream_chacha12_moon_xop_64'
crypto_stream.c: extern void chacha_fn(const unsigned char *k, const unsigned char *n, const unsigned char *in, unsigned char *out, size_t inlen, size_t rounds);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:1:19: note: expanded from macro 'chacha_fn'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_xop_64
crypto_stream.c: ^
crypto_stream.c: ./crypto_stream_chacha12.h:11:12: note: previous declaration is here
crypto_stream.c: extern int crypto_stream_chacha12_moon_xop_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:9:27: error: too many arguments to function call, expected 4, have 6
crypto_stream.c: chacha_fn(k, n, in, out, (size_t)inlen, 12);
crypto_stream.c: ~~~~~~~~~ ^~~~~~~~~~~~~~~~~
crypto_stream.c: ./crypto_stream_chacha12.h:11:1: note: 'crypto_stream_chacha12_moon_xop_64' declared here
crypto_stream.c: extern int crypto_stream_chacha12_moon_xop_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:14:29: error: too many arguments to function call, expected 4, have 6
crypto_stream.c: chacha_fn(k, n, NULL, out, (size_t)outlen, 12);
crypto_stream.c: ~~~~~~~~~ ^~~~~~~~~~~~~~~~~~
crypto_stream.c: crypto_stream.c:13:1: note: 'crypto_stream_chacha12_moon_xop_64' declared here
crypto_stream.c: int crypto_stream(unsigned char *out, unsigned long long outlen, const unsigned char *n, const unsigned char *k) {
crypto_stream.c: ^
crypto_stream.c: 3 errors generated.

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

Compiler output

Implementation: moon/xop/64
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
crypto_stream.c: crypto_stream.c:1:19: error: conflicting types for 'crypto_stream_chacha12_moon_xop_64'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_xop_64
crypto_stream.c: ^
crypto_stream.c: crypto_stream.c:1:19: note: in definition of macro 'chacha_fn'
crypto_stream.c: #define chacha_fn crypto_stream_chacha12_moon_xop_64
crypto_stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
crypto_stream.c: In file included from crypto_stream.h:4:0,
crypto_stream.c: from crypto_stream.c:3:
crypto_stream.c: crypto_stream_chacha12.h:11:12: note: previous declaration of 'crypto_stream_chacha12_moon_xop_64' was here
crypto_stream.c: extern int crypto_stream_chacha12_moon_xop_64(unsigned char *,unsigned long long,const unsigned char *,const unsigned char *);
crypto_stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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