Implementation notes: aarch64, jetsontx1, crypto_hashblocks/sha256

Computer: jetsontx1
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20191017
Operation: crypto_hashblocks
Primitive: sha256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
4001852 0 011353 760 736dolbeau/armv8cryptoclang_-mcpu=native_-march=armv8a+crypto_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
4006852 0 09369 760 720dolbeau/armv8cryptoclang_-mcpu=native_-march=armv8a+crypto_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
4006852 0 09369 760 720dolbeau/armv8cryptoclang_-mcpu=native_-march=armv8a+crypto_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
4006852 0 07487 752 720dolbeau/armv8cryptoclang_-mcpu=native_-march=armv8a+crypto_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
4372908 0 010671 808 720dolbeau/armv8cryptoarmclang_-march=armv8a+crypto_-mcpu=cortex-a57_-mtune=cortex-a57_-O2_-fPIC_-fPIE2019101720190910
4379908 0 012647 808 736dolbeau/armv8cryptoarmclang_-march=armv8a+crypto_-mcpu=cortex-a57_-mtune=cortex-a57_-O3_-fPIC_-fPIE2019101720190910
177948320 0 017791 792 744inplacegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910
178418276 0 016482 784 728refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910
178438276 0 017743 792 744refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910
178688320 0 016538 784 728inplacegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910
209698488 0 016698 784 728refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910
217208240 0 015606 768 720inplacegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910
217448236 0 015606 768 720refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910
220818976 0 017465 760 720refclang_-mcpu=native_-march=armv8a+crypto_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
220818976 0 017465 760 720refclang_-mcpu=native_-march=armv8a+crypto_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
220818976 0 015583 752 720refclang_-mcpu=native_-march=armv8a+crypto_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
222008968 0 019449 760 736refclang_-mcpu=native_-march=armv8a+crypto_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
222238988 0 017481 760 720inplaceclang_-mcpu=native_-march=armv8a+crypto_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
223008984 0 019465 760 736inplaceclang_-mcpu=native_-march=armv8a+crypto_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
223198988 0 017481 760 720inplaceclang_-mcpu=native_-march=armv8a+crypto_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
223198988 0 015599 752 720inplaceclang_-mcpu=native_-march=armv8a+crypto_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
223428984 0 018727 808 720inplacearmclang_-march=armv8a+crypto_-mcpu=cortex-a57_-mtune=cortex-a57_-O2_-fPIC_-fPIE2019101720190910
223438984 0 020703 808 736inplacearmclang_-march=armv8a+crypto_-mcpu=cortex-a57_-mtune=cortex-a57_-O3_-fPIC_-fPIE2019101720190910
224409096 0 018831 808 720refarmclang_-march=armv8a+crypto_-mcpu=cortex-a57_-mtune=cortex-a57_-O2_-fPIC_-fPIE2019101720190910
224419096 0 020807 808 736refarmclang_-march=armv8a+crypto_-mcpu=cortex-a57_-mtune=cortex-a57_-O3_-fPIC_-fPIE2019101720190910
229288488 0 016706 784 728inplacegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910

Compiler output

Implementation: dolbeau/amd64-sha
Security model: unknown
Compiler: armclang -march=armv8a+crypto -mcpu=cortex-a57 -mtune=cortex-a57 -O2 -fPIC -fPIE
blocks.c: In file included from blocks.c:37:
blocks.c: In file included from /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib/clang/7.1.0/include/immintrin.h:28:
blocks.c: /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_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
blocks.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_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
blocks.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_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
blocks.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_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
blocks.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_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
blocks.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_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
blocks.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_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
blocks.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib/clang/7.1.0/include/mmintrin.h:301:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
blocks.c: return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
blocks.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
armclang -march=armv8a+crypto -mcpu=cortex-a57 -mtune=cortex-a57 -O2 -fPIC -fPIE dolbeau/amd64-sha
armclang -march=armv8a+crypto -mcpu=cortex-a57 -mtune=cortex-a57 -O3 -fPIC -fPIE dolbeau/amd64-sha

Compiler output

Implementation: dolbeau/amd64-sha
Security model: unknown
Compiler: clang -mcpu=native -march=armv8a+crypto -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blocks.c: In file included from blocks.c:37:
blocks.c: In file included from /usr/local/llvm-8.0.1/lib/clang/8.0.1/include/immintrin.h:28:
blocks.c: /usr/local/llvm-8.0.1/lib/clang/8.0.1/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
blocks.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: /usr/local/llvm-8.0.1/lib/clang/8.0.1/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
blocks.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: /usr/local/llvm-8.0.1/lib/clang/8.0.1/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
blocks.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: /usr/local/llvm-8.0.1/lib/clang/8.0.1/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
blocks.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: /usr/local/llvm-8.0.1/lib/clang/8.0.1/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
blocks.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: /usr/local/llvm-8.0.1/lib/clang/8.0.1/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
blocks.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: /usr/local/llvm-8.0.1/lib/clang/8.0.1/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
blocks.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: /usr/local/llvm-8.0.1/lib/clang/8.0.1/include/mmintrin.h:301:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
blocks.c: return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
blocks.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -mcpu=native -march=armv8a+crypto -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/amd64-sha
clang -mcpu=native -march=armv8a+crypto -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/amd64-sha
clang -mcpu=native -march=armv8a+crypto -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/amd64-sha
clang -mcpu=native -march=armv8a+crypto -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/amd64-sha

Compiler output

Implementation: dolbeau/amd64-sha
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blocks.c: blocks.c:37:10: fatal error: immintrin.h: No such file or directory
blocks.c: #include <immintrin.h>
blocks.c: ^~~~~~~~~~~~~
blocks.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/amd64-sha
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/amd64-sha
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/amd64-sha
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/amd64-sha

Compiler output

Implementation: dolbeau/armv8crypto
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blocks.c: In file included from blocks.c:37:
blocks.c: blocks.c: In function 'crypto_hashblocks_sha256_dolbeau_armv8crypto':
blocks.c: /opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib/gcc/aarch64-linux-gnu/8.2.0/include/arm_neon.h:26073:1: error: inlining failed in call to always_inline 'vsha256h2q_u32': target specific option mismatch
blocks.c: vsha256h2q_u32 (uint32x4_t hash_efgh, uint32x4_t hash_abcd, uint32x4_t wk)
blocks.c: ^~~~~~~~~~~~~~
blocks.c: blocks.c:118:8: note: called from here
blocks.c: s1 = vsha256h2q_u32(x1, x0, h1)
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:146:3: note: in expansion of macro 'DO16ROUNDS'
blocks.c: DO16ROUNDS(j0, j1, j2, j3, cc, cd, ce, cf);
blocks.c: ^~~~~~~~~~
blocks.c: In file included from blocks.c:37:
blocks.c: /opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib/gcc/aarch64-linux-gnu/8.2.0/include/arm_neon.h:26066:1: error: inlining failed in call to always_inline 'vsha256hq_u32': target specific option mismatch
blocks.c: vsha256hq_u32 (uint32x4_t hash_abcd, uint32x4_t hash_efgh, uint32x4_t wk)
blocks.c: ^~~~~~~~~~~~~
blocks.c: blocks.c:117:8: note: called from here
blocks.c: s0 = vsha256hq_u32(x0, x1, h1); \
blocks.c: ^~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:146:3: note: in expansion of macro 'DO16ROUNDS'
blocks.c: DO16ROUNDS(j0, j1, j2, j3, cc, cd, ce, cf);
blocks.c: ^~~~~~~~~~
blocks.c: In file included from blocks.c:37:
blocks.c: /opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib/gcc/aarch64-linux-gnu/8.2.0/include/arm_neon.h:26073:1: error: inlining failed in call to always_inline 'vsha256h2q_u32': target specific option mismatch
blocks.c: vsha256h2q_u32 (uint32x4_t hash_efgh, uint32x4_t hash_abcd, uint32x4_t wk)
blocks.c: ^~~~~~~~~~~~~~
blocks.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/armv8crypto
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/armv8crypto
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/armv8crypto
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/armv8crypto