Implementation notes: aarch64, minimac, crypto_hash/echo256

Computer: minimac
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20211108
Operation: crypto_hash
Primitive: echo256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
27999? ? ?? ? ?T:sphlibclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021053020210529
29065? ? ?? ? ?T:generic/opt64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021053020210529
29999? ? ?? ? ?T:generic/opt64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
29999? ? ?? ? ?T:generic/opt64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
30132? ? ?? ? ?T:sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
31065? ? ?? ? ?T:generic/opt64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
31199? ? ?? ? ?T:sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
31332? ? ?? ? ?T:sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
31332? ? ?? ? ?T:sphlib-smallclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021053020210529
31466? ? ?? ? ?T:sphlib-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
34399? ? ?? ? ?T:generic/opt32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
34798? ? ?? ? ?T:sphlib-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
35331? ? ?? ? ?T:generic/opt32clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021053020210529
35466? ? ?? ? ?T:sphlib-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
35999? ? ?? ? ?T:generic/opt32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
36665? ? ?? ? ?T:generic/opt32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
37865? ? ?? ? ?T:powerpc/pp32cv2clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021053020210529
39998? ? ?? ? ?T:powerpc/pp32cv2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
40932? ? ?? ? ?T:powerpc/pp32cv2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
41198? ? ?? ? ?T:sphlib-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
41731? ? ?? ? ?T:sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
41732? ? ?? ? ?T:generic/opt64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
42132? ? ?? ? ?T:powerpc/pp32cv2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
42532? ? ?? ? ?T:generic/opt32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
47598? ? ?? ? ?T:powerpc/pp32cv1clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021053020210529
49198? ? ?? ? ?T:powerpc/pp32cv1gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
50531? ? ?? ? ?T:powerpc/pp32cv1gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
50665? ? ?? ? ?T:powerpc/pp32cv1gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
51732? ? ?? ? ?T:powerpc/pp32cv2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
58131? ? ?? ? ?T:powerpc/pp32cv1gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326

Compiler output

Implementation: T:ccalik/bitsliced
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: In file included from hash.c:18:
hash.c: In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/tmmintrin.h:13:
hash.c: In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/pmmintrin.h:13:
hash.c: In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/emmintrin.h:13:
hash.c: In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/xmmintrin.h:13:
hash.c: /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:50:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
hash.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:129:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
hash.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:159:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
hash.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:189:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
hash.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:216:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
hash.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:239:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
hash.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/mmintrin.h:260:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
hash.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
hash.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ccalik/bitsliced

Compiler output

Implementation: T:ccalik/bitsliced
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
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 (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ccalik/bitsliced
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ccalik/bitsliced
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ccalik/bitsliced
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ccalik/bitsliced

Compiler output

Implementation: T:generic/opt32
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame
measure.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
measure.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
measure.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:generic/opt32 T:powerpc/pp32cv1

Compiler output

Implementation: T:generic/opt64
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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: 1 warning generated.
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame
measure.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
measure.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
measure.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:generic/opt64

Compiler output

Implementation: T:generic/opt64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
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 (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:generic/opt64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:generic/opt64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:generic/opt64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:generic/opt64

Compiler output

Implementation: T:powerpc/pp32cv2
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame
measure.c: ld: warning: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
measure.c:
measure.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:powerpc/pp32cv2

Compiler output

Implementation: T:sphlib
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame
measure.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
measure.c:
measure.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sphlib

Compiler output

Implementation: T:sphlib-small
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame
measure.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
measure.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame
measure.c:

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sphlib-small