Implementation notes: aarch64, pi3bplus, crypto_stream/chacha8

Computer: pi3bplus
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_stream
Primitive: chacha8
TimeImplementationCompilerBenchmark dateSUPERCOP version
4088dolbeau/arm-neongcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2019081920190816
6230e/mergedgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2019081920190816
6714dolbeau/mipsel-msagcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2019081920190816
6780e/refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2019081920190816
6780e/regsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2019081920190816

Compiler output

Implementation: crypto_stream/chacha8/dolbeau/ppc-altivec
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
chacha.c: chacha.c:12:10: fatal error: altivec.h: No such file or directory
chacha.c: #include <altivec.h>
chacha.c: ^~~~~~~~~~~
chacha.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv dolbeau/ppc-altivec

Compiler output

Implementation: crypto_stream/chacha8/amd64-ssse3
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
chacha.s: chacha.s: Assembler messages:
chacha.s: chacha.s:22: Error: operand 1 must be an integer register -- `mov %rsp,%r11'
chacha.s: chacha.s:23: Error: operand 1 must be an integer or stack pointer register -- `and $31,%r11'
chacha.s: chacha.s:24: Error: operand 1 must be an integer or stack pointer register -- `add $384,%r11'
chacha.s: chacha.s:25: Error: operand 1 must be an integer or stack pointer register -- `sub %r11,%rsp'
chacha.s: chacha.s:26: Error: operand 1 must be an integer register -- `mov %rdi,%r8'
chacha.s: chacha.s:27: Error: operand 1 must be an integer register -- `mov %rsi,%rsi'
chacha.s: chacha.s:28: Error: operand 1 must be an integer register -- `mov %rsi,%rdi'
chacha.s: chacha.s:29: Error: operand 1 must be an integer register -- `mov %rdx,%rdx'
chacha.s: chacha.s:30: Error: operand 1 must be an integer or stack pointer register -- `cmp $0,%rdx'
chacha.s: chacha.s:32: Error: unknown mnemonic `jbe' -- `jbe ._done'
chacha.s: chacha.s:34: Error: operand 1 must be an integer register -- `mov $0,%rax'
chacha.s: chacha.s:36: Error: operand 1 must be an integer register -- `mov %rdx,%rcx'
chacha.s: chacha.s:38: Error: unknown mnemonic `rep' -- `rep stosb'
chacha.s: chacha.s:40: Error: operand 1 must be an integer or stack pointer register -- `sub %rdx,%rdi'
chacha.s: chacha.s:42: Error: unknown mnemonic `jmp' -- `jmp ._start'
chacha.s: chacha.s:50: Error: operand 1 must be an integer register -- `mov %rsp,%r11'
chacha.s: chacha.s:51: Error: operand 1 must be an integer or stack pointer register -- `and $31,%r11'
chacha.s: chacha.s:52: Error: operand 1 must be an integer or stack pointer register -- `add $384,%r11'
chacha.s: chacha.s:53: Error: operand 1 must be an integer or stack pointer register -- `sub %r11,%rsp'
chacha.s: chacha.s:55: Error: operand 1 must be an integer register -- `mov %rdi,%r8'
chacha.s: chacha.s:57: Error: operand 1 must be an integer register -- `mov %rsi,%rsi'
chacha.s: chacha.s:59: Error: operand 1 must be an integer register -- `mov %rdx,%rdi'
chacha.s: chacha.s:61: Error: operand 1 must be an integer register -- `mov %rcx,%rdx'
chacha.s: chacha.s:63: Error: operand 1 must be an integer or stack pointer register -- `cmp $0,%rdx'
chacha.s: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv amd64-ssse3

Compiler output

Implementation: crypto_stream/chacha8/goll_gueron
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
stream.c: stream.c:11:10: fatal error: immintrin.h: No such file or directory
stream.c: #include <immintrin.h>
stream.c: ^~~~~~~~~~~~~
stream.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv goll_gueron

Compiler output

Implementation: crypto_stream/chacha8/krovetz/vec128
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
stream.c: stream.c:80:2: error: #error -- Implementation supports only machines with neon, altivec or SSE2
stream.c: #error -- Implementation supports only machines with neon, altivec or SSE2
stream.c: ^~~~~
stream.c: stream.c: In function 'crypto_stream_chacha8_krovetz_vec128_xor':
stream.c: stream.c:151:14: warning: implicit declaration of function 'NONCE' [-Wimplicit-function-declaration]
stream.c: vec s3 = NONCE(np);
stream.c: ^~~~~
stream.c: stream.c:151:14: error: incompatible types when initializing type 'vec' {aka '__vector(4) unsigned int'} using type 'int'
stream.c: stream.c:91:19: error: 'VBPI' undeclared (first use in this function); did you mean 'BPI'?
stream.c: #define BPI (VBPI + GPR_TOO) /* Blocks computed per loop iteration */
stream.c: ^~~~
stream.c: stream.c:152:36: note: in expansion of macro 'BPI'
stream.c: for (iters = 0; iters < inlen/(BPI*64); iters++) {
stream.c: ^~~
stream.c: stream.c:91:19: note: each undeclared identifier is reported only once for each function it appears in
stream.c: #define BPI (VBPI + GPR_TOO) /* Blocks computed per loop iteration */
stream.c: ^~~~
stream.c: stream.c:152:36: note: in expansion of macro 'BPI'
stream.c: for (iters = 0; iters < inlen/(BPI*64); iters++) {
stream.c: ^~~
stream.c: stream.c:91:26: error: 'GPR_TOO' undeclared (first use in this function)
stream.c: #define BPI (VBPI + GPR_TOO) /* Blocks computed per loop iteration */
stream.c: ^~~~~~~
stream.c: stream.c:152:36: note: in expansion of macro 'BPI'
stream.c: for (iters = 0; iters < inlen/(BPI*64); iters++) {
stream.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv krovetz/vec128

Compiler output

Implementation: crypto_stream/chacha8/krovetz/avx2
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
stream.c: stream.c:8:10: fatal error: immintrin.h: No such file or directory
stream.c: #include <immintrin.h>
stream.c: ^~~~~~~~~~~~~
stream.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv krovetz/avx2