Implementation notes: aarch64, pi4b, crypto_hash/echo256

Computer: pi4b
Microarchitecture: aarch64; Cortex-A72 (410fd083)
Architecture: aarch64
CPU ID: 410fd083
SUPERCOP version: 20240716
Operation: crypto_hash
Primitive: echo256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
5687220392 0 134841 896 752T:generic/opt64clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
5687219216 0 131675 872 744T:generic/opt64gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
5687222192 0 135699 872 752T:generic/opt64gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
5687218988 0 131411 872 744T:generic/opt64gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
5687218696 0 130099 856 736T:generic/opt64gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
5687225544 0 040121 896 744T:sphlibclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
5687228644 0 042259 872 752T:sphlibgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
5687225988 0 038507 872 744T:sphlibgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
5687210584 0 025177 896 744T:sphlib-smallclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
5778524860 0 037403 872 744T:sphlibgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
640088836 0 020379 856 736T:sphlib-smallgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
7109017088 0 1631585 896 760T:generic/opt32clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
7109018568 0 1631114 880 760T:generic/opt32gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
7109020120 0 1633730 880 768T:generic/opt32gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
7109017112 0 1629626 880 760T:generic/opt32gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
7109017164 0 1628658 864 752T:generic/opt32gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
7109024444 0 035947 856 736T:sphlibgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
710908932 0 021499 872 744T:sphlib-smallgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
7109014116 0 027771 872 752T:sphlib-smallgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
7109010176 0 022731 872 744T:sphlib-smallgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
8530822912 0 1637409 896 760T:powerpc/pp32cv2clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
8530824648 0 1637194 880 760T:powerpc/pp32cv2gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
8530826744 0 1640354 880 768T:powerpc/pp32cv2gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
8530822252 0 1634762 880 760T:powerpc/pp32cv2gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
8530822028 0 1633514 864 752T:powerpc/pp32cv2gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
11374417352 0 1631857 896 760T:powerpc/pp32cv1clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
11374417656 0 1630202 880 760T:powerpc/pp32cv1gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
11374419016 0 1632626 880 768T:powerpc/pp32cv1gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
12796217108 0 1629626 880 760T:powerpc/pp32cv1gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
15639816648 0 1628122 864 752T:powerpc/pp32cv1gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625

Compiler output


hash.c: In file included from hash.c:18:
hash.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/tmmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
hash.c: #error "This header is only meant to be used on x86 and x64 architecture"
hash.c:  ^
hash.c: In file included from hash.c:18:
hash.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/tmmintrin.h:17:
hash.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/pmmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
hash.c: #error "This header is only meant to be used on x86 and x64 architecture"
hash.c:  ^
hash.c: In file included from hash.c:18:
hash.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/tmmintrin.h:17:
hash.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/pmmintrin.h:17:
hash.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/emmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
hash.c: #error "This header is only meant to be used on x86 and x64 architecture"
hash.c:  ^
hash.c: In file included from hash.c:18:
hash.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/tmmintrin.h:17:
hash.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/pmmintrin.h:17:
hash.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/emmintrin.h:17:
hash.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/xmmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
hash.c: #error "This header is only meant to be used on x86 and x64 architecture"
hash.c:  ^
hash.c: In file included from hash.c:18:
hash.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/tmmintrin.h:17:
hash.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/pmmintrin.h:17:
hash.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:ccalik/bitslicedclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


hash.c: hash.c:18:10: fatal error: tmmintrin.h: No such file or directory
hash.c:    18 | #include <tmmintrin.h>
hash.c:       |          ^~~~~~~~~~~~~
hash.c: compilation terminated.

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:ccalik/bitslicedgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:ccalik/bitslicedgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:ccalik/bitslicedgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:ccalik/bitslicedgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


echo32.c: echo32.c:105:18: warning: unused variable 'j' [-Wunused-variable]
echo32.c:         unsigned int i, j;
echo32.c:                         ^
echo32.c: echo32.c:106:16: warning: unused variable 'endianess' [-Wunused-variable]
echo32.c:         unsigned char endianess;
echo32.c:                       ^
echo32.c: echo32.c:342:15: warning: unused variable 'i' [-Wunused-variable]
echo32.c:         unsigned int i;
echo32.c:                      ^
echo32.c: echo32.c:343:21: warning: unused variable 'c0' [-Wunused-variable]
echo32.c:         unsigned long long c0, c1;
echo32.c:                            ^
echo32.c: echo32.c:343:25: warning: unused variable 'c1' [-Wunused-variable]
echo32.c:         unsigned long long c0, c1;
echo32.c:                                ^
echo32.c: echo32.c:441:21: warning: unused variable 'hashlen' [-Wunused-variable]
echo32.c:         unsigned short int hashlen = 0;
echo32.c:                            ^
echo32.c: echo32.c:442:21: warning: unused variable 'messlen_l' [-Wunused-variable]
echo32.c:         unsigned long long messlen_l = 0;
echo32.c:                            ^
echo32.c: echo32.c:443:21: warning: unused variable 'messlen_h' [-Wunused-variable]
echo32.c:         unsigned long long messlen_h = 0;
echo32.c:                            ^
echo32.c: 8 warnings generated.

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:generic/opt32clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


echo32.c: echo32.c: In function 'Init':
echo32.c: echo32.c:106:23: warning: unused variable 'endianess' [-Wunused-variable]
echo32.c:   106 |         unsigned char endianess;
echo32.c:       |                       ^~~~~~~~~
echo32.c: echo32.c:105:25: warning: unused variable 'j' [-Wunused-variable]
echo32.c:   105 |         unsigned int i, j;
echo32.c:       |                         ^
echo32.c: echo32.c: In function 'Compress':
echo32.c: echo32.c:343:32: warning: unused variable 'c1' [-Wunused-variable]
echo32.c:   343 |         unsigned long long c0, c1;
echo32.c:       |                                ^~
echo32.c: echo32.c:343:28: warning: unused variable 'c0' [-Wunused-variable]
echo32.c:   343 |         unsigned long long c0, c1;
echo32.c:       |                            ^~
echo32.c: echo32.c:342:22: warning: unused variable 'i' [-Wunused-variable]
echo32.c:   342 |         unsigned int i;
echo32.c:       |                      ^
echo32.c: echo32.c: In function 'Final':
echo32.c: echo32.c:443:28: warning: unused variable 'messlen_h' [-Wunused-variable]
echo32.c:   443 |         unsigned long long messlen_h = 0;
echo32.c:       |                            ^~~~~~~~~
echo32.c: echo32.c:442:28: warning: unused variable 'messlen_l' [-Wunused-variable]
echo32.c:   442 |         unsigned long long messlen_l = 0;
echo32.c:       |                            ^~~~~~~~~
echo32.c: echo32.c:441:28: warning: unused variable 'hashlen' [-Wunused-variable]
echo32.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:generic/opt32gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:generic/opt32gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:generic/opt32gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:generic/opt32gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


echo64.c: echo64.c:290:30: warning: unused variable 'WT5' [-Wunused-variable]
echo64.c:     WT0, WT1, WT2, WT3, WT4, WT5;
echo64.c:                              ^
echo64.c: echo64.c:432:16: warning: unused variable 'i' [-Wunused-variable]
echo64.c:   unsigned int i;
echo64.c:                ^
echo64.c: echo64.c:501: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:488:46: note: passing argument to parameter 'data' here
echo64.c: HashReturn Hash(int hashbitlen, BitSequence *data, DataLength databitlen, BitSequence *hashval)
echo64.c:                                              ^
echo64.c: 3 warnings generated.

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:generic/opt64clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


echo64.c: echo64.c: In function 'Compress':
echo64.c: echo64.c:290:30: warning: unused variable 'WT5' [-Wunused-variable]
echo64.c:   290 |     WT0, WT1, WT2, WT3, WT4, WT5;
echo64.c:       |                              ^~~
echo64.c: echo64.c: In function 'Final':
echo64.c: echo64.c:432:16: warning: unused variable 'i' [-Wunused-variable]
echo64.c:   432 |   unsigned int i;
echo64.c:       |                ^
echo64.c: echo64.c: In function 'crypto_hash_echo256_generic_opt64_timingleaks':
echo64.c: echo64.c:501:29: warning: passing argument 2 of 'Hash' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
echo64.c:   501 |   if (Hash(CRYPTO_BYTES * 8,in,inlen * 8,out) == SUCCESS) return 0;
echo64.c:       |                             ^~
echo64.c: echo64.c:488:46: note: expected 'BitSequence *' {aka 'unsigned char *'} but argument is of type 'const unsigned char *'
echo64.c:   488 | HashReturn Hash(int hashbitlen, BitSequence *data, DataLength databitlen, BitSequence *hashval)
echo64.c:       |                                 ~~~~~~~~~~~~~^~~~

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:generic/opt64gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:generic/opt64gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:generic/opt64gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:generic/opt64gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


echo32.c: echo32.c:106:18: warning: unused variable 'j' [-Wunused-variable]
echo32.c:         unsigned int i, j;
echo32.c:                         ^
echo32.c: echo32.c:107:16: warning: unused variable 'endianess' [-Wunused-variable]
echo32.c:         unsigned char endianess;
echo32.c:                       ^
echo32.c: echo32.c:472:21: warning: unused variable 'c0' [-Wunused-variable]
echo32.c:         unsigned long long c0, c1;
echo32.c:                            ^
echo32.c: echo32.c:472:25: warning: unused variable 'c1' [-Wunused-variable]
echo32.c:         unsigned long long c0, c1;
echo32.c:                                ^
echo32.c: echo32.c:599:21: warning: unused variable 'hashlen' [-Wunused-variable]
echo32.c:         unsigned short int hashlen = 0;
echo32.c:                            ^
echo32.c: echo32.c:600:21: warning: unused variable 'messlen_l' [-Wunused-variable]
echo32.c:         unsigned long long messlen_l = 0;
echo32.c:                            ^
echo32.c: echo32.c:601:21: warning: unused variable 'messlen_h' [-Wunused-variable]
echo32.c:         unsigned long long messlen_h = 0;
echo32.c:                            ^
echo32.c: 7 warnings generated.

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:powerpc/pp32cv1clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


echo32.c: echo32.c: In function 'Init':
echo32.c: echo32.c:107:23: warning: unused variable 'endianess' [-Wunused-variable]
echo32.c:   107 |         unsigned char endianess;
echo32.c:       |                       ^~~~~~~~~
echo32.c: echo32.c:106:25: warning: unused variable 'j' [-Wunused-variable]
echo32.c:   106 |         unsigned int i, j;
echo32.c:       |                         ^
echo32.c: echo32.c: In function 'Compress':
echo32.c: echo32.c:472:32: warning: unused variable 'c1' [-Wunused-variable]
echo32.c:   472 |         unsigned long long c0, c1;
echo32.c:       |                                ^~
echo32.c: echo32.c:472:28: warning: unused variable 'c0' [-Wunused-variable]
echo32.c:   472 |         unsigned long long c0, c1;
echo32.c:       |                            ^~
echo32.c: echo32.c: In function 'Final':
echo32.c: echo32.c:601:28: warning: unused variable 'messlen_h' [-Wunused-variable]
echo32.c:   601 |         unsigned long long messlen_h = 0;
echo32.c:       |                            ^~~~~~~~~
echo32.c: echo32.c:600:28: warning: unused variable 'messlen_l' [-Wunused-variable]
echo32.c:   600 |         unsigned long long messlen_l = 0;
echo32.c:       |                            ^~~~~~~~~
echo32.c: echo32.c:599:28: warning: unused variable 'hashlen' [-Wunused-variable]
echo32.c:   599 |         unsigned short int hashlen = 0;
echo32.c:       |                            ^~~~~~~

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:powerpc/pp32cv1gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:powerpc/pp32cv1gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:powerpc/pp32cv1gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:powerpc/pp32cv1gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


echo32.c: echo32.c:106:18: warning: unused variable 'j' [-Wunused-variable]
echo32.c:         unsigned int i, j;
echo32.c:                         ^
echo32.c: echo32.c:107:16: warning: unused variable 'endianess' [-Wunused-variable]
echo32.c:         unsigned char endianess;
echo32.c:                       ^
echo32.c: echo32.c:440:21: warning: unused variable 'c0' [-Wunused-variable]
echo32.c:         unsigned long long c0, c1;
echo32.c:                            ^
echo32.c: echo32.c:440:25: warning: unused variable 'c1' [-Wunused-variable]
echo32.c:         unsigned long long c0, c1;
echo32.c:                                ^
echo32.c: echo32.c:567:21: warning: unused variable 'hashlen' [-Wunused-variable]
echo32.c:         unsigned short int hashlen = 0;
echo32.c:                            ^
echo32.c: echo32.c:568:21: warning: unused variable 'messlen_l' [-Wunused-variable]
echo32.c:         unsigned long long messlen_l = 0;
echo32.c:                            ^
echo32.c: echo32.c:569:21: warning: unused variable 'messlen_h' [-Wunused-variable]
echo32.c:         unsigned long long messlen_h = 0;
echo32.c:                            ^
echo32.c: 7 warnings generated.

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:powerpc/pp32cv2clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


echo32.c: echo32.c: In function 'Init':
echo32.c: echo32.c:107:23: warning: unused variable 'endianess' [-Wunused-variable]
echo32.c:   107 |         unsigned char endianess;
echo32.c:       |                       ^~~~~~~~~
echo32.c: echo32.c:106:25: warning: unused variable 'j' [-Wunused-variable]
echo32.c:   106 |         unsigned int i, j;
echo32.c:       |                         ^
echo32.c: echo32.c: In function 'Compress':
echo32.c: echo32.c:440:32: warning: unused variable 'c1' [-Wunused-variable]
echo32.c:   440 |         unsigned long long c0, c1;
echo32.c:       |                                ^~
echo32.c: echo32.c:440:28: warning: unused variable 'c0' [-Wunused-variable]
echo32.c:   440 |         unsigned long long c0, c1;
echo32.c:       |                            ^~
echo32.c: echo32.c: In function 'Final':
echo32.c: echo32.c:569:28: warning: unused variable 'messlen_h' [-Wunused-variable]
echo32.c:   569 |         unsigned long long messlen_h = 0;
echo32.c:       |                            ^~~~~~~~~
echo32.c: echo32.c:568:28: warning: unused variable 'messlen_l' [-Wunused-variable]
echo32.c:   568 |         unsigned long long messlen_l = 0;
echo32.c:       |                            ^~~~~~~~~
echo32.c: echo32.c:567:28: warning: unused variable 'hashlen' [-Wunused-variable]
echo32.c:   567 |         unsigned short int hashlen = 0;
echo32.c:       |                            ^~~~~~~

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:powerpc/pp32cv2gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:powerpc/pp32cv2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:powerpc/pp32cv2gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:powerpc/pp32cv2gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)