Implementation notes: aarch64, supercoplxc, crypto_stream/chacha8

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_stream
Primitive: chacha8
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
51204388 0 417489 912 824dolbeau/arm-neongcc_-O3_-fomit-frame-pointer2019090220190816
51205744 0 420233 912 824dolbeau/arm-neongcc_-funroll-loops_-O3_-fomit-frame-pointer2019090220190816
52003712 0 415464 904 808dolbeau/arm-neongcc_-O2_-fomit-frame-pointer2019090220190816
52005320 0 419152 904 808dolbeau/arm-neongcc_-funroll-loops_-O2_-fomit-frame-pointer2019090220190816
52803792 0 117764 800 840dolbeau/arm-neonclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090220190816
52803808 0 117836 800 840dolbeau/arm-neonclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090220190816
52803808 0 117836 800 840dolbeau/arm-neonclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090220190816
52803808 0 117836 800 840dolbeau/arm-neonclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090220190816
52803732 0 117748 800 840dolbeau/arm-neonclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
58403172 0 414086 888 800dolbeau/arm-neongcc_-Os_-fomit-frame-pointer2019090220190816
58403172 0 414086 888 800dolbeau/arm-neongcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
58403168 0 414142 888 800dolbeau/arm-neongcc_-funroll-loops_-Os_-fomit-frame-pointer2019090220190816
58403168 0 414142 888 800dolbeau/arm-neongcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
60005292 0 419184 904 808dolbeau/arm-neongcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
60005804 0 420217 912 824dolbeau/arm-neongcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
64003640 0 415320 904 808dolbeau/arm-neongcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
64004436 0 417481 912 824dolbeau/arm-neongcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
77602160 0 413896 904 808e/mergedgcc_-O2_-fomit-frame-pointer2019090220190816
77603816 0 417640 904 808e/mergedgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090220190816
77604376 0 418849 912 824e/mergedgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090220190816
78404132 0 416040 904 808dolbeau/arm-neongcc_-O_-fomit-frame-pointer2019090220190816
78404132 0 416040 904 808dolbeau/arm-neongcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
78406172 0 421304 904 808dolbeau/arm-neongcc_-funroll-loops_-O_-fomit-frame-pointer2019090220190816
78406172 0 421304 904 808dolbeau/arm-neongcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
78402988 0 416081 912 824e/mergedgcc_-O3_-fomit-frame-pointer2019090220190816
81602940 0 420073 912 824e/mergedgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
81604316 0 418721 912 824e/mergedgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
82402104 0 413760 904 808e/mergedgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
82403772 0 417656 904 808e/mergedgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
83201892 0 412806 888 800e/mergedgcc_-Os_-fomit-frame-pointer2019090220190816
83201892 0 412806 888 800e/mergedgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
83201892 0 412870 888 800e/mergedgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090220190816
83201892 0 412870 888 800e/mergedgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
84802716 0 415825 912 824dolbeau/mipsel-msagcc_-O3_-fomit-frame-pointer2019090220190816
84802740 0 415793 912 824dolbeau/mipsel-msagcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
84804128 0 418609 912 824dolbeau/mipsel-msagcc_-funroll-loops_-O3_-fomit-frame-pointer2019090220190816
85602740 0 415841 912 824e/refgcc_-O3_-fomit-frame-pointer2019090220190816
85604096 0 418577 912 824e/refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090220190816
85602740 0 415841 912 824e/regsgcc_-O3_-fomit-frame-pointer2019090220190816
85604096 0 418577 912 824e/regsgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090220190816
86402756 0 415801 912 824e/regsgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
87202756 0 415801 912 824e/refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
96802516 0 116532 800 840e/mergedclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090220190816
96802516 0 116532 800 840e/mergedclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090220190816
96802516 0 116532 800 840e/mergedclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090220190816
96802572 0 116580 800 840e/mergedclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
99202472 0 116436 800 840e/mergedclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090220190816
103202340 0 116356 800 840dolbeau/mipsel-msaclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
103202340 0 116340 800 840e/refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
104002412 0 116420 800 840e/regsclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
109602404 0 116428 800 840dolbeau/mipsel-msaclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090220190816
109602404 0 116428 800 840dolbeau/mipsel-msaclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090220190816
109602404 0 116428 800 840dolbeau/mipsel-msaclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090220190816
109602404 0 116412 800 840e/refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090220190816
109602404 0 116412 800 840e/refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090220190816
109602404 0 116412 800 840e/refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090220190816
110402420 0 116396 800 840dolbeau/mipsel-msaclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090220190816
110402420 0 116380 800 840e/refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090220190816
116002544 0 116508 800 840e/regsclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090220190816
116802512 0 116532 800 840e/regsclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090220190816
116802512 0 116532 800 840e/regsclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090220190816
116802512 0 116532 800 840e/regsclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090220190816
120004132 0 418545 912 824dolbeau/mipsel-msagcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
122404100 0 418513 912 824e/refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
122404100 0 418513 912 824e/regsgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
152803636 0 417536 904 808dolbeau/mipsel-msagcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
154403656 0 417496 904 808dolbeau/mipsel-msagcc_-funroll-loops_-O2_-fomit-frame-pointer2019090220190816
154403664 0 417544 904 808e/refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
155203652 0 417472 904 808e/refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090220190816
166403660 0 417488 904 808e/regsgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090220190816
177601980 0 413736 904 808e/regsgcc_-O2_-fomit-frame-pointer2019090220190816
190403656 0 417536 904 808e/regsgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
196001972 0 413648 904 808e/regsgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
221603552 0 415448 904 808e/mergedgcc_-O_-fomit-frame-pointer2019090220190816
221603552 0 415448 904 808e/mergedgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
221605144 0 420256 904 808e/mergedgcc_-funroll-loops_-O_-fomit-frame-pointer2019090220190816
221605144 0 420256 904 808e/mergedgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
253601824 0 412782 888 800e/regsgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090220190816
253601824 0 412782 888 800e/regsgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
272801664 0 412582 888 800dolbeau/mipsel-msagcc_-Os_-fomit-frame-pointer2019090220190816
272801664 0 412582 888 800dolbeau/mipsel-msagcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
272801664 0 412566 888 800e/refgcc_-Os_-fomit-frame-pointer2019090220190816
272801664 0 412566 888 800e/refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
277601664 0 412646 888 800dolbeau/mipsel-msagcc_-funroll-loops_-Os_-fomit-frame-pointer2019090220190816
277601664 0 412646 888 800dolbeau/mipsel-msagcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
277601664 0 412630 888 800e/refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090220190816
277601664 0 412630 888 800e/refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
290401824 0 412718 888 800e/regsgcc_-Os_-fomit-frame-pointer2019090220190816
290401824 0 412718 888 800e/regsgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
295201976 0 413736 904 808dolbeau/mipsel-msagcc_-O2_-fomit-frame-pointer2019090220190816
295201956 0 413704 904 808e/refgcc_-O2_-fomit-frame-pointer2019090220190816
299201976 0 413656 904 808dolbeau/mipsel-msagcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
299201940 0 413616 904 808e/refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
312804556 0 419680 904 808e/regsgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
313604556 0 419680 904 808e/regsgcc_-funroll-loops_-O_-fomit-frame-pointer2019090220190816
315202892 0 414784 904 808e/regsgcc_-O_-fomit-frame-pointer2019090220190816
315202892 0 414784 904 808e/regsgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
347204608 0 419736 904 808dolbeau/mipsel-msagcc_-funroll-loops_-O_-fomit-frame-pointer2019090220190816
347204608 0 419736 904 808dolbeau/mipsel-msagcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
347204608 0 419720 904 808e/refgcc_-funroll-loops_-O_-fomit-frame-pointer2019090220190816
347204608 0 419720 904 808e/refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
397602420 0 414328 904 808dolbeau/mipsel-msagcc_-O_-fomit-frame-pointer2019090220190816
397602420 0 414328 904 808dolbeau/mipsel-msagcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
397602420 0 414312 904 808e/refgcc_-O_-fomit-frame-pointer2019090220190816
397602420 0 414312 904 808e/refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
7224013832 0 433016 888 816dolbeau/arm-neoncc2019090220190816
7224013832 0 433016 888 816dolbeau/arm-neongcc2019090220190816
7224013832 0 433016 888 816dolbeau/arm-neongcc_-funroll-loops2019090220190816
777607192 0 426368 888 816e/mergedcc2019090220190816
777607192 0 426368 888 816e/mergedgcc2019090220190816
777607192 0 426368 888 816e/mergedgcc_-funroll-loops2019090220190816
1147205844 0 425032 888 816e/regscc2019090220190816
1147205844 0 425032 888 816e/regsgcc2019090220190816
1147205844 0 425032 888 816e/regsgcc_-funroll-loops2019090220190816
1620004192 0 423376 888 816e/refcc2019090220190816
1620004192 0 423376 888 816e/refgcc2019090220190816
1620004192 0 423376 888 816e/refgcc_-funroll-loops2019090220190816
1621604228 0 423432 888 816dolbeau/mipsel-msacc2019090220190816
1621604228 0 423432 888 816dolbeau/mipsel-msagcc2019090220190816
1621604228 0 423432 888 816dolbeau/mipsel-msagcc_-funroll-loops2019090220190816

Compiler output

Implementation: amd64-ssse3
Security model: unknown
Compiler: cc
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: 19, namely:
CompilerImplementations
cc amd64-ssse3
gcc amd64-ssse3
gcc -O2 -fomit-frame-pointer amd64-ssse3
gcc -O3 -fomit-frame-pointer amd64-ssse3
gcc -O -fomit-frame-pointer amd64-ssse3
gcc -Os -fomit-frame-pointer amd64-ssse3
gcc -fno-schedule-insns -O2 -fomit-frame-pointer amd64-ssse3
gcc -fno-schedule-insns -O3 -fomit-frame-pointer amd64-ssse3
gcc -fno-schedule-insns -O -fomit-frame-pointer amd64-ssse3
gcc -fno-schedule-insns -Os -fomit-frame-pointer amd64-ssse3
gcc -funroll-loops amd64-ssse3
gcc -funroll-loops -O2 -fomit-frame-pointer amd64-ssse3
gcc -funroll-loops -O3 -fomit-frame-pointer amd64-ssse3
gcc -funroll-loops -O -fomit-frame-pointer amd64-ssse3
gcc -funroll-loops -Os -fomit-frame-pointer amd64-ssse3
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer amd64-ssse3
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer amd64-ssse3
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer amd64-ssse3
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer amd64-ssse3

Compiler output

Implementation: amd64-ssse3
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
chacha.s: chacha.s:22:5: error: unknown token in expression
chacha.s: mov %rsp,%r11
chacha.s: ^
chacha.s: chacha.s:22:5: error: invalid operand
chacha.s: mov %rsp,%r11
chacha.s: ^
chacha.s: chacha.s:23:5: error: invalid token in expression
chacha.s: and $31,%r11
chacha.s: ^
chacha.s: chacha.s:23:5: error: invalid operand
chacha.s: and $31,%r11
chacha.s: ^
chacha.s: chacha.s:24:5: error: invalid token in expression
chacha.s: add $384,%r11
chacha.s: ^
chacha.s: chacha.s:24:5: error: invalid operand
chacha.s: add $384,%r11
chacha.s: ^
chacha.s: chacha.s:25:5: error: unknown token in expression
chacha.s: sub %r11,%rsp
chacha.s: ^
chacha.s: chacha.s:25:5: error: invalid operand
chacha.s: sub %r11,%rsp
chacha.s: ^
chacha.s: chacha.s:26:6: error: unknown token in expression
chacha.s: ...

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

Compiler output

Implementation: goll_gueron
Security model: unknown
Compiler: cc
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: 19, namely:
CompilerImplementations
cc goll_gueron
gcc goll_gueron
gcc -O2 -fomit-frame-pointer goll_gueron
gcc -O3 -fomit-frame-pointer goll_gueron
gcc -O -fomit-frame-pointer goll_gueron
gcc -Os -fomit-frame-pointer goll_gueron
gcc -fno-schedule-insns -O2 -fomit-frame-pointer goll_gueron
gcc -fno-schedule-insns -O3 -fomit-frame-pointer goll_gueron
gcc -fno-schedule-insns -O -fomit-frame-pointer goll_gueron
gcc -fno-schedule-insns -Os -fomit-frame-pointer goll_gueron
gcc -funroll-loops goll_gueron
gcc -funroll-loops -O2 -fomit-frame-pointer goll_gueron
gcc -funroll-loops -O3 -fomit-frame-pointer goll_gueron
gcc -funroll-loops -O -fomit-frame-pointer goll_gueron
gcc -funroll-loops -Os -fomit-frame-pointer goll_gueron
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer goll_gueron
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer goll_gueron
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer goll_gueron
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer goll_gueron

Compiler output

Implementation: goll_gueron
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
stream.c: In file included from stream.c:11:
stream.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/immintrin.h:28:
stream.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:64: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/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:143: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/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:173: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/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:203: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/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:230: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/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:253: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/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:274: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/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:301: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: 5, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments goll_gueron
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments goll_gueron
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments goll_gueron
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments goll_gueron
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments goll_gueron

Compiler output

Implementation: krovetz/avx2
Security model: unknown
Compiler: cc
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: 19, namely:
CompilerImplementations
cc krovetz/avx2
gcc krovetz/avx2
gcc -O2 -fomit-frame-pointer krovetz/avx2
gcc -O3 -fomit-frame-pointer krovetz/avx2
gcc -O -fomit-frame-pointer krovetz/avx2
gcc -Os -fomit-frame-pointer krovetz/avx2
gcc -fno-schedule-insns -O2 -fomit-frame-pointer krovetz/avx2
gcc -fno-schedule-insns -O3 -fomit-frame-pointer krovetz/avx2
gcc -fno-schedule-insns -O -fomit-frame-pointer krovetz/avx2
gcc -fno-schedule-insns -Os -fomit-frame-pointer krovetz/avx2
gcc -funroll-loops krovetz/avx2
gcc -funroll-loops -O2 -fomit-frame-pointer krovetz/avx2
gcc -funroll-loops -O3 -fomit-frame-pointer krovetz/avx2
gcc -funroll-loops -O -fomit-frame-pointer krovetz/avx2
gcc -funroll-loops -Os -fomit-frame-pointer krovetz/avx2
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer krovetz/avx2
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer krovetz/avx2
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer krovetz/avx2
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer krovetz/avx2

Compiler output

Implementation: krovetz/avx2
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
stream.c: In file included from stream.c:8:
stream.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/immintrin.h:28:
stream.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:64: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/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:143: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/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:173: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/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:203: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/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:230: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/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:253: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/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:274: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/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:301: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: 5, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments krovetz/avx2
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments krovetz/avx2
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments krovetz/avx2
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments krovetz/avx2
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments krovetz/avx2

Compiler output

Implementation: krovetz/vec128
Security model: unknown
Compiler: cc
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: 19, namely:
CompilerImplementations
cc krovetz/vec128
gcc krovetz/vec128
gcc -O2 -fomit-frame-pointer krovetz/vec128
gcc -O3 -fomit-frame-pointer krovetz/vec128
gcc -O -fomit-frame-pointer krovetz/vec128
gcc -Os -fomit-frame-pointer krovetz/vec128
gcc -fno-schedule-insns -O2 -fomit-frame-pointer krovetz/vec128
gcc -fno-schedule-insns -O3 -fomit-frame-pointer krovetz/vec128
gcc -fno-schedule-insns -O -fomit-frame-pointer krovetz/vec128
gcc -fno-schedule-insns -Os -fomit-frame-pointer krovetz/vec128
gcc -funroll-loops krovetz/vec128
gcc -funroll-loops -O2 -fomit-frame-pointer krovetz/vec128
gcc -funroll-loops -O3 -fomit-frame-pointer krovetz/vec128
gcc -funroll-loops -O -fomit-frame-pointer krovetz/vec128
gcc -funroll-loops -Os -fomit-frame-pointer krovetz/vec128
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer krovetz/vec128
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer krovetz/vec128
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer krovetz/vec128
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer krovetz/vec128

Compiler output

Implementation: krovetz/vec128
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
stream.c: stream.c:80:2: 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:151:14: warning: implicit declaration of function 'NONCE' is invalid in C99 [-Wimplicit-function-declaration]
stream.c: vec s3 = NONCE(np);
stream.c: ^
stream.c: stream.c:151:9: error: initializing 'vec' (vector of 4 'unsigned int' values) with an expression of incompatible type 'int'
stream.c: vec s3 = NONCE(np);
stream.c: ^ ~~~~~~~~~
stream.c: stream.c:152:36: error: use of undeclared identifier 'VBPI'
stream.c: for (iters = 0; iters < inlen/(BPI*64); iters++) {
stream.c: ^
stream.c: stream.c:91:19: note: expanded from macro 'BPI'
stream.c: #define BPI (VBPI + GPR_TOO) /* Blocks computed per loop iteration */
stream.c: ^
stream.c: stream.c:152:36: error: use of undeclared identifier 'GPR_TOO'
stream.c: stream.c:91:26: note: expanded from macro 'BPI'
stream.c: #define BPI (VBPI + GPR_TOO) /* Blocks computed per loop iteration */
stream.c: ^
stream.c: stream.c:155:19: error: use of undeclared identifier 'ONE'
stream.c: v7 = v3 + ONE;
stream.c: ^
stream.c: stream.c:176:13: warning: implicit declaration of function 'ROTW16' is invalid in C99 [-Wimplicit-function-declaration]
stream.c: DQROUND_VECTORS(v0,v1,v2,v3)
stream.c: ^
stream.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments krovetz/vec128
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments krovetz/vec128
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments krovetz/vec128
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments krovetz/vec128
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments krovetz/vec128