Implementation notes: aarch64, supercoplxc, crypto_hash/echosp256

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_hash
Primitive: echosp256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
8344018548 0 029113 904 752generic/opt64gcc_-O2_-fomit-frame-pointer2019083120190816
8368021220 0 034377 904 768generic/opt64gcc_-funroll-loops_-O3_-fomit-frame-pointer2019083120190816
8400021260 0 033041 904 768generic/opt64gcc_-O3_-fomit-frame-pointer2019083120190816
8400021380 0 034017 904 752generic/opt64gcc_-funroll-loops_-O2_-fomit-frame-pointer2019083120190816
8912020716 0 033449 904 752generic/opt64gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
9072020572 0 033689 904 768generic/opt64gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
9264018932 0 031798 800 776generic/opt64clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083120190816
9760018204 0 028073 888 744generic/opt64gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
9768018204 0 028073 888 744generic/opt64gcc_-funroll-loops_-Os_-fomit-frame-pointer2019083120190816
10224023024 0 036320 928 776generic/opt32gcc_-funroll-loops_-O3_-fomit-frame-pointer2019083120190816
10232020824 0 033608 928 760generic/opt32gcc_-funroll-loops_-O2_-fomit-frame-pointer2019083120190816
10272022104 0 038128 928 776generic/opt32gcc_-O3_-fomit-frame-pointer2019083120190816
10376022168 0 035432 928 776generic/opt32gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
10488018992 0 029712 928 760generic/opt32gcc_-O2_-fomit-frame-pointer2019083120190816
10608019029 0 032055 816 784generic/opt32clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083120190816
10648020280 0 033152 928 760generic/opt32gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
11536017825 0 027824 912 752generic/opt32gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
11544017825 0 027824 912 752generic/opt32gcc_-funroll-loops_-Os_-fomit-frame-pointer2019083120190816
11704027324 0 040505 920 776powerpc/pp32cv2gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
11976024340 0 037206 800 784powerpc/pp32cv2clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083120190816
12288025340 0 038129 920 760powerpc/pp32cv2gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
12320026364 0 038185 920 776powerpc/pp32cv2gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
12368019469 0 032495 816 784generic/opt32clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019083120190816
12376019469 0 032439 816 784generic/opt32clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019083120190816
12376019469 0 032495 816 784generic/opt32clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019083120190816
12384019469 0 032495 816 784generic/opt32clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019083120190816
12464022184 0 032105 904 752powerpc/pp32cv2gcc_-funroll-loops_-Os_-fomit-frame-pointer2019083120190816
12464022184 0 032105 904 752powerpc/pp32cv2gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
12520018332 0 028841 904 752generic/opt64gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
12544020556 0 032313 904 768generic/opt64gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
12544027708 0 039553 920 776powerpc/pp32cv2gcc_-O3_-fomit-frame-pointer2019083120190816
12680021224 0 037224 928 776generic/opt32gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
12728028556 0 041777 920 776powerpc/pp32cv2gcc_-funroll-loops_-O3_-fomit-frame-pointer2019083120190816
12976018352 0 029016 928 760generic/opt32gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
13280026324 0 039025 920 760powerpc/pp32cv2gcc_-funroll-loops_-O2_-fomit-frame-pointer2019083120190816
13608024588 0 035225 920 760powerpc/pp32cv2gcc_-O2_-fomit-frame-pointer2019083120190816
13792023524 0 034105 920 760powerpc/pp32cv2gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
14048022204 0 032065 904 752powerpc/pp32cv2gcc_-Os_-fomit-frame-pointer2019083120190816
14056022204 0 032065 904 752powerpc/pp32cv2gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
15088018204 0 028009 888 744generic/opt64gcc_-Os_-fomit-frame-pointer2019083120190816
15088018204 0 028009 888 744generic/opt64gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
15816018620 0 031486 800 784powerpc/pp32cv1clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083120190816
15888021668 0 034889 920 776powerpc/pp32cv1gcc_-funroll-loops_-O3_-fomit-frame-pointer2019083120190816
16064021436 0 034625 920 776powerpc/pp32cv1gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
16152019564 0 032361 920 760powerpc/pp32cv1gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
16200020660 0 032505 920 776powerpc/pp32cv1gcc_-O3_-fomit-frame-pointer2019083120190816
16296019540 0 032249 920 760powerpc/pp32cv1gcc_-funroll-loops_-O2_-fomit-frame-pointer2019083120190816
16712018492 0 031302 800 784powerpc/pp32cv1clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019083120190816
16736018492 0 031358 800 784powerpc/pp32cv1clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019083120190816
16744018492 0 031358 800 784powerpc/pp32cv1clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019083120190816
16760018492 0 031358 800 784powerpc/pp32cv1clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019083120190816
16808018592 0 029225 904 752generic/opt64gcc_-O_-fomit-frame-pointer2019083120190816
16808018592 0 029225 904 752generic/opt64gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
16824017825 0 027760 912 752generic/opt32gcc_-Os_-fomit-frame-pointer2019083120190816
16824017825 0 027760 912 752generic/opt32gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
16832021168 0 035025 904 752generic/opt64gcc_-funroll-loops_-O_-fomit-frame-pointer2019083120190816
16832021168 0 035025 904 752generic/opt64gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
16896025912 0 038726 800 784powerpc/pp32cv2clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019083120190816
16896025912 0 038774 800 784powerpc/pp32cv2clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019083120190816
16896025912 0 038774 800 784powerpc/pp32cv2clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019083120190816
16896025912 0 038774 800 784powerpc/pp32cv2clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019083120190816
16984017764 0 028393 920 760powerpc/pp32cv1gcc_-O2_-fomit-frame-pointer2019083120190816
17136020492 0 032321 920 776powerpc/pp32cv1gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083120190816
18280016720 0 026641 904 752powerpc/pp32cv1gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
18320016720 0 026641 904 752powerpc/pp32cv1gcc_-funroll-loops_-Os_-fomit-frame-pointer2019083120190816
18584020180 0 034176 928 760generic/opt32gcc_-funroll-loops_-O_-fomit-frame-pointer2019083120190816
18584020180 0 034176 928 760generic/opt32gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
18616017716 0 028289 920 760powerpc/pp32cv1gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083120190816
18848018112 0 028896 928 760generic/opt32gcc_-O_-fomit-frame-pointer2019083120190816
18848018112 0 028896 928 760generic/opt32gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
18856022968 0 035782 800 776generic/opt64clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019083120190816
18856023544 0 036406 800 776generic/opt64clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019083120190816
18864023544 0 036406 800 776generic/opt64clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019083120190816
18872023544 0 036406 800 776generic/opt64clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019083120190816
19144024420 0 038337 920 760powerpc/pp32cv2gcc_-funroll-loops_-O_-fomit-frame-pointer2019083120190816
19144024420 0 038337 920 760powerpc/pp32cv2gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
19552022320 0 033009 920 760powerpc/pp32cv2gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
19560022320 0 033009 920 760powerpc/pp32cv2gcc_-O_-fomit-frame-pointer2019083120190816
19872016720 0 026577 904 752powerpc/pp32cv1gcc_-Os_-fomit-frame-pointer2019083120190816
19872016720 0 026577 904 752powerpc/pp32cv1gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083120190816
26104019304 0 033225 920 760powerpc/pp32cv1gcc_-funroll-loops_-O_-fomit-frame-pointer2019083120190816
26104019304 0 033225 920 760powerpc/pp32cv1gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
26456017160 0 027849 920 760powerpc/pp32cv1gcc_-O_-fomit-frame-pointer2019083120190816
26464017160 0 027849 920 760powerpc/pp32cv1gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019083120190816
43088030528 4096 043337 4984 752generic/opt64gcc2019083120190816
43088030528 4096 043337 4984 752generic/opt64gcc_-funroll-loops2019083120190816
43096030528 4096 043337 4984 752generic/opt64cc2019083120190816
60376030300 4096 043240 5008 760generic/opt32gcc2019083120190816
60424030300 4096 043240 5008 760generic/opt32cc2019083120190816
60432030300 4096 043240 5008 760generic/opt32gcc_-funroll-loops2019083120190816
69656043572 0 056425 904 760powerpc/pp32cv2cc2019083120190816
69712043572 0 056425 904 760powerpc/pp32cv2gcc_-funroll-loops2019083120190816
69888043572 0 056425 904 760powerpc/pp32cv2gcc2019083120190816
93328022312 0 035169 904 760powerpc/pp32cv1gcc2019083120190816
93336022312 0 035169 904 760powerpc/pp32cv1cc2019083120190816
93352022312 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_echosp256_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