Implementation notes: armeabi, pi2, crypto_stream/chacha12

Computer: pi2
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20160731
Operation: crypto_stream
Primitive: chacha12
TimeImplementationCompilerBenchmark dateSUPERCOP version
13518dolbeau/arm-neongcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
13524dolbeau/arm-neongcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
13930moon/neon/32gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
13936moon/neon/32gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
13940moon/neon/32clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
13946moon/neon/32gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
14162moon/neon/32gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
17106dolbeau/arm-neongcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
18908moon/armv6/32gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
18908moon/armv6/32gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
18912moon/armv6/32gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
18918moon/armv6/32clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
19504dolbeau/arm-neonclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
19556moon/armv6/32gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
22190dolbeau/arm-neongcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
24770e/mergedgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
25942e/mergedgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
26962e/regsclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
27559e/mergedgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
27898dolbeau/mipsel-msagcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
27904e/refgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
28054e/regsgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
28392dolbeau/mipsel-msaclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
28392e/refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
31609e/mergedclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
33860e/mergedgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
36593e/regsgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
38014e/regsgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
39540dolbeau/mipsel-msagcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
39598e/refgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
42474dolbeau/mipsel-msagcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
42482e/refgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
42589e/regsgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
49162e/refgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
49195dolbeau/mipsel-msagcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731

Test failure

Implementation: crypto_stream/chacha12/krovetz/vec128
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
error 111
crypto_stream_xor does not handle n=c overlap

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments krovetz/vec128
gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv krovetz/vec128
gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv krovetz/vec128
gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv krovetz/vec128
gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv krovetz/vec128

Compiler output

Implementation: crypto_stream/chacha12/dolbeau/ppc-altivec
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
chacha.c: In file included from chacha.c:11:
chacha.c: /usr/bin/../lib/clang/3.8.1/include/altivec.h:27:2: error: "AltiVec support not enabled"
chacha.c: #error "AltiVec support not enabled"
chacha.c: ^
chacha.c: /usr/bin/../lib/clang/3.8.1/include/altivec.h:39:8: error: unknown type name 'vector'
chacha.c: static vector signed char __ATTRS_o_ai vec_perm(vector signed char __a,
chacha.c: ^
chacha.c: /usr/bin/../lib/clang/3.8.1/include/altivec.h:39:15: error: expected identifier or '('
chacha.c: static vector signed char __ATTRS_o_ai vec_perm(vector signed char __a,
chacha.c: ^
chacha.c: /usr/bin/../lib/clang/3.8.1/include/altivec.h:43:8: error: unknown type name 'vector'
chacha.c: static vector unsigned char __ATTRS_o_ai vec_perm(vector unsigned char __a,
chacha.c: ^
chacha.c: /usr/bin/../lib/clang/3.8.1/include/altivec.h:43:15: error: expected identifier or '('
chacha.c: static vector unsigned char __ATTRS_o_ai vec_perm(vector unsigned char __a,
chacha.c: ^
chacha.c: /usr/bin/../lib/clang/3.8.1/include/altivec.h:47:8: error: unknown type name 'vector'
chacha.c: static vector bool char __ATTRS_o_ai vec_perm(vector bool char __a,
chacha.c: ^
chacha.c: /usr/bin/../lib/clang/3.8.1/include/altivec.h:47:19: error: expected ';' after top level declarator
chacha.c: static vector bool char __ATTRS_o_ai vec_perm(vector bool char __a,
chacha.c: ^
chacha.c: /usr/bin/../lib/clang/3.8.1/include/altivec.h:47:47: error: unknown type name 'vector'
chacha.c: static vector bool char __ATTRS_o_ai vec_perm(vector bool char __a,
chacha.c: ^
chacha.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments dolbeau/ppc-altivec

Compiler output

Implementation: crypto_stream/chacha12/amd64-ssse3
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
chacha.s: chacha.s:22:5: error: unexpected token in operand
chacha.s: mov %rsp,%r11
chacha.s: ^
chacha.s: chacha.s:23:9: error: unknown token in expression
chacha.s: and $31,%r11
chacha.s: ^
chacha.s: chacha.s:23:9: error: malformed expression
chacha.s: and $31,%r11
chacha.s: ^
chacha.s: chacha.s:24:10: error: unknown token in expression
chacha.s: add $384,%r11
chacha.s: ^
chacha.s: chacha.s:24:10: error: malformed expression
chacha.s: add $384,%r11
chacha.s: ^
chacha.s: chacha.s:25:5: error: unexpected token in operand
chacha.s: sub %r11,%rsp
chacha.s: ^
chacha.s: chacha.s:26:6: error: unexpected token in operand
chacha.s: mov %rdi,%r8
chacha.s: ^
chacha.s: chacha.s:27:6: error: unexpected token in operand
chacha.s: mov %rsi,%rsi
chacha.s: ^
chacha.s: chacha.s:28:6: error: unexpected token in operand
chacha.s: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments amd64-ssse3

Compiler output

Implementation: crypto_stream/chacha12/goll_gueron
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
stream.c: In file included from stream.c:11:
stream.c: In file included from /usr/bin/../lib/clang/3.8.1/include/immintrin.h:27:
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:45:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:69:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:75:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:81:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:87:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:93:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:99:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:105:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
stream.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments goll_gueron

Compiler output

Implementation: crypto_stream/chacha12/krovetz/avx2
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
stream.c: In file included from stream.c:8:
stream.c: In file included from /usr/bin/../lib/clang/3.8.1/include/immintrin.h:27:
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:45:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:69:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:75:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:81:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:87:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:93:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:99:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:105:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
stream.c: return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
stream.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments krovetz/avx2

Compiler output

Implementation: crypto_stream/chacha12/dolbeau/ppc-altivec
Compiler: gcc -mcpu=native -mfpu=neon -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 -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv dolbeau/ppc-altivec
gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv dolbeau/ppc-altivec
gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv dolbeau/ppc-altivec
gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv dolbeau/ppc-altivec

Compiler output

Implementation: crypto_stream/chacha12/amd64-ssse3
Compiler: gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv
chacha.s: chacha.s: Assembler messages:
chacha.s: chacha.s:22: Error: ARM register expected -- `mov %rsp,%r11'
chacha.s: chacha.s:23: Error: ARM register expected -- `and $31,%r11'
chacha.s: chacha.s:24: Error: ARM register expected -- `add $384,%r11'
chacha.s: chacha.s:25: Error: immediate expression requires a # prefix -- `sub %r11,%rsp'
chacha.s: chacha.s:26: Error: ARM register expected -- `mov %rdi,%r8'
chacha.s: chacha.s:27: Error: ARM register expected -- `mov %rsi,%rsi'
chacha.s: chacha.s:28: Error: ARM register expected -- `mov %rsi,%rdi'
chacha.s: chacha.s:29: Error: ARM register expected -- `mov %rdx,%rdx'
chacha.s: chacha.s:30: Error: ARM register expected -- `cmp $0,%rdx'
chacha.s: chacha.s:32: Error: bad instruction `jbe ._done'
chacha.s: chacha.s:34: Error: ARM register expected -- `mov $0,%rax'
chacha.s: chacha.s:36: Error: ARM register expected -- `mov %rdx,%rcx'
chacha.s: chacha.s:38: Error: bad instruction `rep stosb'
chacha.s: chacha.s:40: Error: ARM register expected -- `sub %rdx,%rdi'
chacha.s: chacha.s:42: Error: bad instruction `jmp ._start'
chacha.s: chacha.s:50: Error: ARM register expected -- `mov %rsp,%r11'
chacha.s: chacha.s:51: Error: ARM register expected -- `and $31,%r11'
chacha.s: chacha.s:52: Error: ARM register expected -- `add $384,%r11'
chacha.s: chacha.s:53: Error: immediate expression requires a # prefix -- `sub %r11,%rsp'
chacha.s: chacha.s:55: Error: ARM register expected -- `mov %rdi,%r8'
chacha.s: chacha.s:57: Error: ARM register expected -- `mov %rsi,%rsi'
chacha.s: chacha.s:59: Error: ARM register expected -- `mov %rdx,%rdi'
chacha.s: chacha.s:61: Error: ARM register expected -- `mov %rcx,%rdx'
chacha.s: chacha.s:63: Error: ARM register expected -- `cmp $0,%rdx'
chacha.s: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv amd64-ssse3
gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv amd64-ssse3
gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv amd64-ssse3
gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv amd64-ssse3

Compiler output

Implementation: crypto_stream/chacha12/goll_gueron
Compiler: gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv
stream.c: stream.c:11:23: fatal error: immintrin.h: No such file or directory
stream.c: #include gt;
stream.c: ^
stream.c: compilation terminated.

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

Compiler output

Implementation: crypto_stream/chacha12/krovetz/avx2
Compiler: gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv
stream.c: stream.c:8:23: fatal error: immintrin.h: No such file or directory
stream.c: #include gt;
stream.c: ^
stream.c: compilation terminated.

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