Implementation notes: aarch64, a72, crypto_stream/chacha20

Computer: a72
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20170904
Operation: crypto_stream
Primitive: chacha20
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
8111? ? ?? ? ?dolbeau/arm-neongcc_-funroll-loops_-march=native_-mtune=native_-O22017100720170904
8114? ? ?? ? ?dolbeau/arm-neongcc_-march=native_-mtune=native_-O32017100720170904
8116? ? ?? ? ?dolbeau/arm-neongcc_-funroll-loops_-march=native_-mtune=native_-O32017100720170904
8452? ? ?? ? ?dolbeau/arm-neongcc_-march=native_-mtune=native_-O22017100720170904
10290? ? ?? ? ?dolbeau/arm-neongcc_-march=native_-mtune=native_-Os2017100720170904
10298? ? ?? ? ?dolbeau/arm-neongcc_-funroll-loops_-march=native_-mtune=native_-Os2017100720170904
13819? ? ?? ? ?dolbeau/mipsel-msagcc_-march=native_-mtune=native_-O32017100720170904
13895? ? ?? ? ?e/mergedgcc_-march=native_-mtune=native_-O32017100720170904
13900? ? ?? ? ?e/refgcc_-march=native_-mtune=native_-O32017100720170904
13907? ? ?? ? ?e/regsgcc_-march=native_-mtune=native_-O32017100720170904
13918? ? ?? ? ?e/mergedgcc_-march=native_-mtune=native_-Os2017100720170904
13932? ? ?? ? ?e/regsgcc_-funroll-loops_-march=native_-mtune=native_-O32017100720170904
13950? ? ?? ? ?e/refgcc_-funroll-loops_-march=native_-mtune=native_-O32017100720170904
13964? ? ?? ? ?e/mergedgcc_-funroll-loops_-march=native_-mtune=native_-O32017100720170904
13971? ? ?? ? ?e/mergedgcc_-funroll-loops_-march=native_-mtune=native_-O22017100720170904
14001? ? ?? ? ?dolbeau/mipsel-msagcc_-funroll-loops_-march=native_-mtune=native_-O32017100720170904
14019? ? ?? ? ?e/mergedgcc_-march=native_-mtune=native_-O22017100720170904
14118? ? ?? ? ?e/mergedgcc_-funroll-loops_-march=native_-mtune=native_-Os2017100720170904
16705? ? ?? ? ?dolbeau/mipsel-msagcc_-funroll-loops_-march=native_-mtune=native_-O22017100720170904
16758? ? ?? ? ?e/regsgcc_-funroll-loops_-march=native_-mtune=native_-O22017100720170904
16837? ? ?? ? ?e/refgcc_-funroll-loops_-march=native_-mtune=native_-O22017100720170904
18442? ? ?? ? ?e/regsgcc_-march=native_-mtune=native_-O22017100720170904
19656? ? ?? ? ?e/refgcc_-march=native_-mtune=native_-O22017100720170904
19800? ? ?? ? ?dolbeau/mipsel-msagcc_-march=native_-mtune=native_-Os2017100720170904
19800? ? ?? ? ?e/refgcc_-march=native_-mtune=native_-Os2017100720170904
20432? ? ?? ? ?dolbeau/mipsel-msagcc_-march=native_-mtune=native_-O22017100720170904
20584? ? ?? ? ?e/regsgcc_-funroll-loops_-march=native_-mtune=native_-Os2017100720170904
20674? ? ?? ? ?e/regsgcc_-march=native_-mtune=native_-Os2017100720170904
20783? ? ?? ? ?dolbeau/mipsel-msagcc_-funroll-loops_-march=native_-mtune=native_-Os2017100720170904
20786? ? ?? ? ?e/refgcc_-funroll-loops_-march=native_-mtune=native_-Os2017100720170904

Compiler output

Implementation: crypto_stream/chacha20/dolbeau/ppc-altivec
Compiler: gcc -funroll-loops -march=native -mtune=native -O2
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: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mtune=native -O2 dolbeau/ppc-altivec
gcc -funroll-loops -march=native -mtune=native -O3 dolbeau/ppc-altivec
gcc -funroll-loops -march=native -mtune=native -Os dolbeau/ppc-altivec
gcc -march=native -mtune=native -O2 dolbeau/ppc-altivec
gcc -march=native -mtune=native -O3 dolbeau/ppc-altivec
gcc -march=native -mtune=native -Os dolbeau/ppc-altivec

Compiler output

Implementation: crypto_stream/chacha20/amd64-ssse3
Compiler: gcc -funroll-loops -march=native -mtune=native -O2
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: chacha.s:1514: Error: operand 1 must be an integer register -- `mov $0,%r9'
chacha.s: chacha.s:1516: Error: unknown mnemonic `movl' -- `movl 0(%rsi),%eax'
chacha.s: chacha.s:1518: Error: unknown mnemonic `movl' -- `movl 4(%rsi),%esi'
chacha.s: chacha.s:1520: Error: unknown mnemonic `movl' -- `movl %r8d,48(%rdi)'
chacha.s: chacha.s:1522: Error: unknown mnemonic `movl' -- `movl %r9d,52(%rdi)'
chacha.s: chacha.s:1524: Error: unknown mnemonic `movl' -- `movl %eax,56(%rdi)'
chacha.s: chacha.s:1526: Error: unknown mnemonic `movl' -- `movl %esi,60(%rdi)'
chacha.s: chacha.s:1528: Error: operand 1 must be an integer or stack pointer register -- `add %r11,%rsp'
chacha.s: chacha.s:1529: Error: operand 1 must be an integer register -- `mov %rdi,%rax'
chacha.s: chacha.s:1530: Error: operand 1 must be an integer register -- `mov %rsi,%rdx'

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mtune=native -O2 amd64-ssse3
gcc -funroll-loops -march=native -mtune=native -O3 amd64-ssse3
gcc -funroll-loops -march=native -mtune=native -Os amd64-ssse3
gcc -march=native -mtune=native -O2 amd64-ssse3
gcc -march=native -mtune=native -O3 amd64-ssse3
gcc -march=native -mtune=native -Os amd64-ssse3

Compiler output

Implementation: crypto_stream/chacha20/goll_gueron
Compiler: gcc -funroll-loops -march=native -mtune=native -O2
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: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mtune=native -O2 goll_gueron
gcc -funroll-loops -march=native -mtune=native -O3 goll_gueron
gcc -funroll-loops -march=native -mtune=native -Os goll_gueron
gcc -march=native -mtune=native -O2 goll_gueron
gcc -march=native -mtune=native -O3 goll_gueron
gcc -march=native -mtune=native -Os goll_gueron

Compiler output

Implementation: crypto_stream/chacha20/krovetz/vec128
Compiler: gcc -funroll-loops -march=native -mtune=native -O2
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_chacha20_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: stream.c:248:13: note: in expansion of macro 'DQROUND_VECTORS'
stream.c: DQROUND_VECTORS(v0,v1,v2,v3)
stream.c: ^~~~~~~~~~~~~~~
stream.c: stream.c:103:35: error: incompatible types when assigning to type 'vec {aka __vector(4) unsigned int}' from type 'int'
stream.c: b = ROTV3(b); c = ROTV2(c); d = ROTV1(d);
stream.c: ^
stream.c: stream.c:248:13: note: in expansion of macro 'DQROUND_VECTORS'
stream.c: DQROUND_VECTORS(v0,v1,v2,v3)
stream.c: ^~~~~~~~~~~~~~~

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mtune=native -O2 krovetz/vec128
gcc -funroll-loops -march=native -mtune=native -O3 krovetz/vec128
gcc -funroll-loops -march=native -mtune=native -Os krovetz/vec128
gcc -march=native -mtune=native -O2 krovetz/vec128
gcc -march=native -mtune=native -O3 krovetz/vec128
gcc -march=native -mtune=native -Os krovetz/vec128

Compiler output

Implementation: crypto_stream/chacha20/krovetz/avx2
Compiler: gcc -funroll-loops -march=native -mtune=native -O2
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: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=native -mtune=native -O2 krovetz/avx2
gcc -funroll-loops -march=native -mtune=native -O3 krovetz/avx2
gcc -funroll-loops -march=native -mtune=native -Os krovetz/avx2
gcc -march=native -mtune=native -O2 krovetz/avx2
gcc -march=native -mtune=native -O3 krovetz/avx2
gcc -march=native -mtune=native -Os krovetz/avx2