Implementation notes: mipso32, loongson, crypto_stream/chacha20

Computer: loongson
Architecture: mipso32
CPU ID: unknown CPU ID
SUPERCOP version: 20161026
Operation: crypto_stream
Primitive: chacha20
TimeImplementationCompilerBenchmark dateSUPERCOP version
28818e/refgcc -march=loongson2f -mabi=n32 -O32016121220161026
29806e/regsgcc -march=loongson2f -mabi=n32 -O32016121220161026
30396e/refgcc -funroll-loops -march=loongson2f -mabi=n32 -O32016121220161026
30628e/regsgcc -funroll-loops -march=loongson2f -mabi=n32 -O32016121220161026
36060e/regsgcc -march=loongson2f -mabi=n32 -O22016121220161026
36302e/refgcc -funroll-loops -march=loongson2f -mabi=n32 -O22016121220161026
37868e/mergedgcc -march=loongson2f -mabi=n32 -O32016121220161026
38300e/mergedgcc -march=loongson2f -mabi=n32 -O22016121220161026
39180e/mergedgcc -funroll-loops -march=loongson2f -mabi=n32 -O22016121220161026
39228e/mergedgcc -funroll-loops -march=loongson2f -mabi=n32 -O32016121220161026
39728e/refgcc -march=loongson2f -mabi=n32 -O22016121220161026
39752e/mergedgcc -funroll-loops -march=loongson2f -mabi=n32 -Os2016121220161026
40008e/mergedgcc -march=loongson2f -mabi=n32 -Os2016121220161026
40088e/regsgcc -funroll-loops -march=loongson2f -mabi=n32 -O22016121220161026
48280e/regsgcc -funroll-loops -march=loongson2f -mabi=n32 -Os2016121220161026
48336e/regsgcc -march=loongson2f -mabi=n32 -Os2016121220161026
53330e/refgcc -funroll-loops -march=loongson2f -mabi=n32 -Os2016121220161026
54010e/refgcc -march=loongson2f -mabi=n32 -Os2016121220161026

Compiler output

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

Compiler output

Implementation: crypto_stream/chacha20/dolbeau/mipsel-msa
Compiler: gcc -funroll-loops -march=loongson2f -mabi=n32 -O2
chacha.c: chacha.c:11:22: fatal error: arm_neon.h: No such file or directory
chacha.c: #include gt;
chacha.c: ^
chacha.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -funroll-loops -march=loongson2f -mabi=n32 -O2 dolbeau/mipsel-msa
gcc -funroll-loops -march=loongson2f -mabi=n32 -O3 dolbeau/mipsel-msa
gcc -funroll-loops -march=loongson2f -mabi=n32 -Os dolbeau/mipsel-msa
gcc -march=loongson2f -mabi=n32 -O2 dolbeau/mipsel-msa
gcc -march=loongson2f -mabi=n32 -O3 dolbeau/mipsel-msa
gcc -march=loongson2f -mabi=n32 -Os dolbeau/mipsel-msa

Compiler output

Implementation: crypto_stream/chacha20/amd64-ssse3
Compiler: gcc -funroll-loops -march=loongson2f -mabi=n32 -O2
chacha.s: chacha.s: Assembler messages:
chacha.s: chacha.s:22: Error: unrecognized opcode `mov %rsp,%r11'
chacha.s: chacha.s:23: Error: bad expression
chacha.s: chacha.s:23: Error: invalid operands `and $31,%r11'
chacha.s: chacha.s:24: Error: bad expression
chacha.s: chacha.s:24: Error: invalid operands `add $384,%r11'
chacha.s: chacha.s:25: Error: bad expression
chacha.s: chacha.s:25: Error: bad expression
chacha.s: chacha.s:25: Error: invalid operands `sub %r11,%rsp'
chacha.s: chacha.s:26: Error: unrecognized opcode `mov %rdi,%r8'
chacha.s: ...
chacha.s: chacha.s:1520: Error: unrecognized opcode `movl %r8d,48(%rdi)'
chacha.s: chacha.s:1522: Error: unrecognized opcode `movl %r9d,52(%rdi)'
chacha.s: chacha.s:1524: Error: unrecognized opcode `movl %eax,56(%rdi)'
chacha.s: chacha.s:1526: Error: unrecognized opcode `movl %esi,60(%rdi)'
chacha.s: chacha.s:1528: Error: bad expression
chacha.s: chacha.s:1528: Error: bad expression
chacha.s: chacha.s:1528: Error: invalid operands `add %r11,%rsp'
chacha.s: chacha.s:1529: Error: unrecognized opcode `mov %rdi,%rax'
chacha.s: chacha.s:1530: Error: unrecognized opcode `mov %rsi,%rdx'
chacha.s: chacha.s:1531: Error: unrecognized opcode `ret'

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

Compiler output

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

Compiler output

Implementation: crypto_stream/chacha20/krovetz/vec128
Compiler: gcc -funroll-loops -march=loongson2f -mabi=n32 -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: error: incompatible types when initializing type 'vec' using type 'int'
stream.c: vec s3 = NONCE(np);
stream.c: ^
stream.c: stream.c:91:19: error: 'VBPI' undeclared (first use in this function)
stream.c: #define BPI (VBPI + GPR_TOO) /* Blocks computed per loop iteration */
stream.c: ^
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' 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=loongson2f -mabi=n32 -O2 krovetz/vec128
gcc -funroll-loops -march=loongson2f -mabi=n32 -O3 krovetz/vec128
gcc -funroll-loops -march=loongson2f -mabi=n32 -Os krovetz/vec128
gcc -march=loongson2f -mabi=n32 -O2 krovetz/vec128
gcc -march=loongson2f -mabi=n32 -O3 krovetz/vec128
gcc -march=loongson2f -mabi=n32 -Os krovetz/vec128

Compiler output

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