Implementation notes: armeabi, pi2, crypto_stream/chacha8

Computer: pi2
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20160731
Operation: crypto_stream
Primitive: chacha8
TimeImplementationCompilerBenchmark dateSUPERCOP version
9982moon/neon/32gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
9984moon/neon/32gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
9988moon/neon/32gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
9992moon/neon/32clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
9993moon/neon/32gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
10010dolbeau/arm-neongcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
10014dolbeau/arm-neongcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
12263dolbeau/arm-neongcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
13668moon/armv6/32gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
13668moon/armv6/32gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
13670moon/armv6/32gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
13672moon/armv6/32gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
13678moon/armv6/32clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
14120dolbeau/arm-neonclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
15756dolbeau/arm-neongcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
19244e/mergedgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
20444e/mergedgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
20507e/mergedgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
20911e/regsclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
21506dolbeau/mipsel-msagcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
21518e/refgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
21654e/regsgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
22010dolbeau/mipsel-msaclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
22032e/refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
25278e/mergedclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
26502e/mergedgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
30269e/regsgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
31930e/regsgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
33250dolbeau/mipsel-msagcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
33768e/refgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
35433e/refgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
35580dolbeau/mipsel-msagcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
36922e/regsgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
43498e/refgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
43521dolbeau/mipsel-msagcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731

Test failure

Implementation: crypto_stream/chacha8/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/chacha8/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/chacha8/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/chacha8/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/chacha8/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/chacha8/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/chacha8/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/chacha8/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/chacha8/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