Implementation notes: aarch64, pmnod145, crypto_hash/echo256

Computer: pmnod145
Architecture: aarch64
CPU ID: 431f0af1
SUPERCOP version: 20191017
Operation: crypto_hash
Primitive: echo256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
8090022612 0 034891 856 768generic/opt64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
8195025500 0 036771 848 744sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
8262519660 0 030827 856 752generic/opt64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
8345027236 0 039611 848 760sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
8370026640 0 042640 864 752sphlibarmclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O3_-fPIC_-fPIE2019101820191017
8415026640 0 041744 864 744sphlibarmclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O2_-fPIC_-fPIE2019101820191017
8527512172 0 024587 848 760sphlib-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
8565020244 0 035248 864 752generic/opt64armclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O2_-fPIC_-fPIE2019101820191017
8615020680 0 036568 864 760generic/opt64armclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O3_-fPIC_-fPIE2019101820191017
8640012944 0 028968 864 752sphlib-smallarmclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O3_-fPIC_-fPIE2019101820191017
8645012940 0 028056 864 744sphlib-smallarmclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O2_-fPIC_-fPIE2019101820191017
8927525692 0 036827 848 744sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
8937518960 0 030027 856 752generic/opt64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
9167524564 0 034919 832 736sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
924758652 0 019939 848 744sphlib-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
9255019012 0 031315 872 776generic/opt32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
9320018780 0 029039 840 744generic/opt64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
9632519204 0 030395 872 760generic/opt32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
9715026852 0 039155 872 776powerpc/pp32cv2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
9770026996 0 038187 872 760powerpc/pp32cv2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
9782523912 0 039816 864 768generic/opt32armclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O3_-fPIC_-fPIE2019101820191017
9807528868 0 043888 864 760powerpc/pp32cv2armclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O2_-fPIC_-fPIE2019101820191017
9840023300 0 038312 864 760generic/opt32armclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O2_-fPIC_-fPIE2019101820191017
9892529160 0 045072 864 768powerpc/pp32cv2armclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O3_-fPIC_-fPIE2019101820191017
1004759844 0 021003 848 744sphlib-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
1011508488 0 018871 832 736sphlib-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
10262521924 0 032191 856 752powerpc/pp32cv2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
10362517596 0 028659 872 760generic/opt32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
10447524684 0 035747 872 760powerpc/pp32cv2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
10725017056 0 027311 856 752generic/opt32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
12300023848 0 039760 864 768powerpc/pp32cv1armclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O3_-fPIC_-fPIE2019101820191017
12340023940 0 038960 864 760powerpc/pp32cv1armclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O2_-fPIC_-fPIE2019101820191017
13250017892 0 029083 872 760powerpc/pp32cv1gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
13352517772 0 030067 872 776powerpc/pp32cv1gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
14272517096 0 028163 872 760powerpc/pp32cv1gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
17070016452 0 026719 856 752powerpc/pp32cv1gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017

Compiler output

Implementation: ccalik/bitsliced
Security model: unknown
Compiler: armclang -march=armv8a+crypto -mcpu=thunderx2t99 -mtune=thunderx2t99 -O2 -fPIC -fPIE
hash.c: In file included from hash.c:18:
hash.c: In file included from /dibona_home_nfs/rdolbeau/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/include/tmmintrin.h:27:
hash.c: In file included from /dibona_home_nfs/rdolbeau/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/include/pmmintrin.h:27:
hash.c: In file included from /dibona_home_nfs/rdolbeau/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/include/emmintrin.h:27:
hash.c: In file included from /dibona_home_nfs/rdolbeau/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/include/xmmintrin.h:27:
hash.c: /dibona_home_nfs/rdolbeau/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/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
hash.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /dibona_home_nfs/rdolbeau/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/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
hash.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /dibona_home_nfs/rdolbeau/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/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
hash.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /dibona_home_nfs/rdolbeau/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/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
hash.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /dibona_home_nfs/rdolbeau/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/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
hash.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /dibona_home_nfs/rdolbeau/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/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
hash.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
hash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: /dibona_home_nfs/rdolbeau/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/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
hash.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
hash.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
armclang -march=armv8a+crypto -mcpu=thunderx2t99 -mtune=thunderx2t99 -O2 -fPIC -fPIE ccalik/bitsliced
armclang -march=armv8a+crypto -mcpu=thunderx2t99 -mtune=thunderx2t99 -O3 -fPIC -fPIE ccalik/bitsliced

Compiler output

Implementation: ccalik/bitsliced
Security model: unknown
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 ccalik/bitsliced
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE ccalik/bitsliced
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE ccalik/bitsliced
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE ccalik/bitsliced

Compiler output

Implementation: generic/opt64
Security model: unknown
Compiler: armclang -march=armv8a+crypto -mcpu=thunderx2t99 -mtune=thunderx2t99 -O2 -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.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
armclang -march=armv8a+crypto -mcpu=thunderx2t99 -mtune=thunderx2t99 -O2 -fPIC -fPIE generic/opt64
armclang -march=armv8a+crypto -mcpu=thunderx2t99 -mtune=thunderx2t99 -O3 -fPIC -fPIE generic/opt64

Compiler output

Implementation: generic/opt64
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
echo64.c: echo64.c: In function 'crypto_hash_echo256_generic_opt64':
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 generic/opt64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE generic/opt64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE generic/opt64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE generic/opt64