Implementation notes: aarch64, supercoplxc, crypto_hash/echosp512

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_hash
Primitive: echosp512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
13240018548 0 029217 904 752generic/opt64gcc_-O2_-fomit-frame-pointer2019083120190816
13368021220 0 034505 904 768generic/opt64gcc_-funroll-loops_-O3_-fomit-frame-pointer2019083120190816
13384021260 0 033169 904 768generic/opt64gcc_-O3_-fomit-frame-pointer2019083120190816
13400021380 0 034129 904 752generic/opt64gcc_-funroll-loops_-O2_-fomit-frame-pointer2019083120190816
14240020716 0 033553 904 752generic/opt64gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
14472020572 0 033817 904 768generic/opt64gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
14776018932 0 031798 800 776generic/opt64clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083120190816
15528018204 0 028073 888 744generic/opt64gcc_-funroll-loops_-Os_-fomit-frame-pointer2019083120190816
15552018204 0 028073 888 744generic/opt64gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
15976020824 0 033720 928 760generic/opt32gcc_-funroll-loops_-O2_-fomit-frame-pointer2019083120190816
16032023024 0 036448 928 776generic/opt32gcc_-funroll-loops_-O3_-fomit-frame-pointer2019083120190816
16048022104 0 038256 928 776generic/opt32gcc_-O3_-fomit-frame-pointer2019083120190816
16232018992 0 029816 928 760generic/opt32gcc_-O2_-fomit-frame-pointer2019083120190816
16248022168 0 035560 928 776generic/opt32gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
16688020280 0 033256 928 760generic/opt32gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
16888019029 0 032055 816 784generic/opt32clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083120190816
18016017825 0 027824 912 752generic/opt32gcc_-funroll-loops_-Os_-fomit-frame-pointer2019083120190816
18016017825 0 027824 912 752generic/opt32gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
18288027324 0 040633 920 776powerpc/pp32cv2gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
18992025340 0 038233 920 760powerpc/pp32cv2gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
19064024340 0 037206 800 784powerpc/pp32cv2clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083120190816
19176022184 0 032105 904 752powerpc/pp32cv2gcc_-funroll-loops_-Os_-fomit-frame-pointer2019083120190816
19176022184 0 032105 904 752powerpc/pp32cv2gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
19248026364 0 038313 920 776powerpc/pp32cv2gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
19608027708 0 039681 920 776powerpc/pp32cv2gcc_-O3_-fomit-frame-pointer2019083120190816
19768019469 0 032439 816 784generic/opt32clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019083120190816
19768019469 0 032495 816 784generic/opt32clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019083120190816
19768019469 0 032495 816 784generic/opt32clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019083120190816
19776019469 0 032495 816 784generic/opt32clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019083120190816
19888028556 0 041905 920 776powerpc/pp32cv2gcc_-funroll-loops_-O3_-fomit-frame-pointer2019083120190816
19912021224 0 037352 928 776generic/opt32gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
19992018332 0 028945 904 752generic/opt64gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
20056020556 0 032441 904 768generic/opt64gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
20184018352 0 029120 928 760generic/opt32gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
20616026324 0 039137 920 760powerpc/pp32cv2gcc_-funroll-loops_-O2_-fomit-frame-pointer2019083120190816
20888024588 0 035329 920 760powerpc/pp32cv2gcc_-O2_-fomit-frame-pointer2019083120190816
21160023524 0 034209 920 760powerpc/pp32cv2gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
21672022204 0 032065 904 752powerpc/pp32cv2gcc_-Os_-fomit-frame-pointer2019083120190816
21696022204 0 032065 904 752powerpc/pp32cv2gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
24112018204 0 028009 888 744generic/opt64gcc_-Os_-fomit-frame-pointer2019083120190816
24136018204 0 028009 888 744generic/opt64gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
25008021668 0 035017 920 776powerpc/pp32cv1gcc_-funroll-loops_-O3_-fomit-frame-pointer2019083120190816
25208018620 0 031486 800 784powerpc/pp32cv1clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083120190816
25224019564 0 032465 920 760powerpc/pp32cv1gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
25336021436 0 034753 920 776powerpc/pp32cv1gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
25480020660 0 032633 920 776powerpc/pp32cv1gcc_-O3_-fomit-frame-pointer2019083120190816
25616019540 0 032361 920 760powerpc/pp32cv1gcc_-funroll-loops_-O2_-fomit-frame-pointer2019083120190816
26328017764 0 028497 920 760powerpc/pp32cv1gcc_-O2_-fomit-frame-pointer2019083120190816
26496017825 0 027760 912 752generic/opt32gcc_-Os_-fomit-frame-pointer2019083120190816
26504017825 0 027760 912 752generic/opt32gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
26664018492 0 031302 800 784powerpc/pp32cv1clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019083120190816
26696018492 0 031358 800 784powerpc/pp32cv1clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019083120190816
26696018492 0 031358 800 784powerpc/pp32cv1clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019083120190816
26696018492 0 031358 800 784powerpc/pp32cv1clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019083120190816
26880018592 0 029225 904 752generic/opt64gcc_-O_-fomit-frame-pointer2019083120190816
26880018592 0 029225 904 752generic/opt64gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
26896021168 0 035025 904 752generic/opt64gcc_-funroll-loops_-O_-fomit-frame-pointer2019083120190816
26904021168 0 035025 904 752generic/opt64gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
26960025912 0 038726 800 784powerpc/pp32cv2clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019083120190816
26960025912 0 038774 800 784powerpc/pp32cv2clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019083120190816
26960025912 0 038774 800 784powerpc/pp32cv2clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019083120190816
26960025912 0 038774 800 784powerpc/pp32cv2clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019083120190816
26968020492 0 032449 920 776powerpc/pp32cv1gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
28496016720 0 026641 904 752powerpc/pp32cv1gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
28504016720 0 026641 904 752powerpc/pp32cv1gcc_-funroll-loops_-Os_-fomit-frame-pointer2019083120190816
28912017716 0 028393 920 760powerpc/pp32cv1gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
29464020180 0 034176 928 760generic/opt32gcc_-funroll-loops_-O_-fomit-frame-pointer2019083120190816
29464020180 0 034176 928 760generic/opt32gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
29568018112 0 028896 928 760generic/opt32gcc_-O_-fomit-frame-pointer2019083120190816
29568018112 0 028896 928 760generic/opt32gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
30008024420 0 038337 920 760powerpc/pp32cv2gcc_-funroll-loops_-O_-fomit-frame-pointer2019083120190816
30008024420 0 038337 920 760powerpc/pp32cv2gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
30184022968 0 035782 800 776generic/opt64clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019083120190816
30200023544 0 036406 800 776generic/opt64clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019083120190816
30200023544 0 036406 800 776generic/opt64clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019083120190816
30208023544 0 036406 800 776generic/opt64clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019083120190816
30280022320 0 033009 920 760powerpc/pp32cv2gcc_-O_-fomit-frame-pointer2019083120190816
30280022320 0 033009 920 760powerpc/pp32cv2gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
31040016720 0 026577 904 752powerpc/pp32cv1gcc_-Os_-fomit-frame-pointer2019083120190816
31104016720 0 026577 904 752powerpc/pp32cv1gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
41152019304 0 033225 920 760powerpc/pp32cv1gcc_-funroll-loops_-O_-fomit-frame-pointer2019083120190816
41152019304 0 033225 920 760powerpc/pp32cv1gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
41376017160 0 027849 920 760powerpc/pp32cv1gcc_-O_-fomit-frame-pointer2019083120190816
41376017160 0 027849 920 760powerpc/pp32cv1gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
68760030528 4096 043337 4984 752generic/opt64cc2019083120190816
68776030528 4096 043337 4984 752generic/opt64gcc_-funroll-loops2019083120190816
68792030528 4096 043337 4984 752generic/opt64gcc2019083120190816
94240030300 4096 043240 5008 760generic/opt32gcc_-funroll-loops2019083120190816
94296030300 4096 043240 5008 760generic/opt32gcc2019083120190816
94416030300 4096 043240 5008 760generic/opt32cc2019083120190816
103768043572 0 056425 904 760powerpc/pp32cv2cc2019083120190816
103864043572 0 056425 904 760powerpc/pp32cv2gcc_-funroll-loops2019083120190816
104208043572 0 056425 904 760powerpc/pp32cv2gcc2019083120190816
141768022312 0 035169 904 760powerpc/pp32cv1cc2019083120190816
141768022312 0 035169 904 760powerpc/pp32cv1gcc2019083120190816
141776022312 0 035169 904 760powerpc/pp32cv1gcc_-funroll-loops2019083120190816

Compiler output

Implementation: generic/opt32
Security model: unknown
Compiler: cc
echo32.c: echo32.c: In function 'PrintState':
echo32.c: echo32.c:37:4: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration]
echo32.c: printf ("row %d,col %d :",i,j);
echo32.c: ^~~~~~
echo32.c: echo32.c:37:4: warning: incompatible implicit declaration of built-in function 'printf'
echo32.c: echo32.c:37:4: note: include '<stdio.h>' or provide a declaration of 'printf'
echo32.c: echo32.c:12:1:
echo32.c: +#include <stdio.h>
echo32.c:
echo32.c: echo32.c:37:4:
echo32.c: printf ("row %d,col %d :",i,j);
echo32.c: ^~~~~~
echo32.c: echo32.c:47:2: warning: incompatible implicit declaration of built-in function 'printf'
echo32.c: printf("-----------------------------------\n");
echo32.c: ^~~~~~
echo32.c: echo32.c:47:2: note: include '<stdio.h>' or provide a declaration of 'printf'

Number of similar (compiler,implementation) pairs: 19, namely:
CompilerImplementations
cc generic/opt32
gcc generic/opt32
gcc -O2 -fomit-frame-pointer generic/opt32
gcc -O3 -fomit-frame-pointer generic/opt32
gcc -O -fomit-frame-pointer generic/opt32
gcc -Os -fomit-frame-pointer generic/opt32
gcc -fno-schedule-insns -O2 -fomit-frame-pointer generic/opt32
gcc -fno-schedule-insns -O3 -fomit-frame-pointer generic/opt32
gcc -fno-schedule-insns -O -fomit-frame-pointer generic/opt32
gcc -fno-schedule-insns -Os -fomit-frame-pointer generic/opt32
gcc -funroll-loops generic/opt32
gcc -funroll-loops -O2 -fomit-frame-pointer generic/opt32
gcc -funroll-loops -O3 -fomit-frame-pointer generic/opt32
gcc -funroll-loops -O -fomit-frame-pointer generic/opt32
gcc -funroll-loops -Os -fomit-frame-pointer generic/opt32
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer generic/opt32
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer generic/opt32
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer generic/opt32
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer generic/opt32

Compiler output

Implementation: generic/opt32
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
echo32.c: echo32.c:37:4: warning: implicitly declaring library function 'printf' with type 'int (const char *, ...)' [-Wimplicit-function-declaration]
echo32.c: printf ("row %d,col %d :",i,j);
echo32.c: ^
echo32.c: echo32.c:37:4: note: include the header <stdio.h> or explicitly provide a declaration for 'printf'
echo32.c: 1 warning generated.

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

Compiler output

Implementation: generic/opt64
Security model: unknown
Compiler: cc
echo64.c: echo64.c: In function 'crypto_hash_echosp512_generic_opt64':
echo64.c: echo64.c:555:29: warning: passing argument 2 of 'Hash' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
echo64.c: if (Hash(CRYPTO_BYTES * 8,in,inlen * 8,out) == SUCCESS) return 0;
echo64.c: ^~
echo64.c: echo64.c:542:46: note: expected 'BitSequence *' {aka 'unsigned char *'} but argument is of type 'const unsigned char *'
echo64.c: HashReturn Hash(int hashbitlen, BitSequence *data, DataLength databitlen, BitSequence *hashval)
echo64.c: ~~~~~~~~~~~~~^~~~

Number of similar (compiler,implementation) pairs: 19, namely:
CompilerImplementations
cc generic/opt64
gcc generic/opt64
gcc -O2 -fomit-frame-pointer generic/opt64
gcc -O3 -fomit-frame-pointer generic/opt64
gcc -O -fomit-frame-pointer generic/opt64
gcc -Os -fomit-frame-pointer generic/opt64
gcc -fno-schedule-insns -O2 -fomit-frame-pointer generic/opt64
gcc -fno-schedule-insns -O3 -fomit-frame-pointer generic/opt64
gcc -fno-schedule-insns -O -fomit-frame-pointer generic/opt64
gcc -fno-schedule-insns -Os -fomit-frame-pointer generic/opt64
gcc -funroll-loops generic/opt64
gcc -funroll-loops -O2 -fomit-frame-pointer generic/opt64
gcc -funroll-loops -O3 -fomit-frame-pointer generic/opt64
gcc -funroll-loops -O -fomit-frame-pointer generic/opt64
gcc -funroll-loops -Os -fomit-frame-pointer generic/opt64
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer generic/opt64
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer generic/opt64
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer generic/opt64
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer generic/opt64

Compiler output

Implementation: generic/opt64
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
echo64.c: echo64.c:555:29: warning: passing 'const unsigned char *' to parameter of type 'BitSequence *' (aka 'unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
echo64.c: if (Hash(CRYPTO_BYTES * 8,in,inlen * 8,out) == SUCCESS) return 0;
echo64.c: ^~
echo64.c: echo64.c:542:46: note: passing argument to parameter 'data' here
echo64.c: HashReturn Hash(int hashbitlen, BitSequence *data, DataLength databitlen, BitSequence *hashval)
echo64.c: ^
echo64.c: 1 warning generated.

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