Implementation notes: aarch64, pi3bplus, crypto_hashblocks/sha256

Computer: pi3bplus
Microarchitecture: aarch64; Cortex-A53 (410fd034)
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 202311020231107
Operation: crypto_hashblocks
Primitive: sha256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
248758416 0 019631 824 752inplacegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023111020231107
248758416 0 020471 824 752inplacegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023111020231107
248758404 0 019615 824 752refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023111020231107
248758404 0 020455 824 752refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023111020231107
295008224 0 018391 808 736refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023111020231107
300008220 0 018383 808 736inplacegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023111020231107
390008432 0 019542 816 744inplacegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023111020231107
393758444 0 019550 816 744refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023111020231107

Compiler output

Implementation: dolbeau/amd64-sha
Security model: constbranchindex
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: 37 | #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: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blocks.c: In file included from blocks.c:37:
blocks.c: /usr/lib/gcc/aarch64-linux-gnu/12/include/arm_neon.h: In function 'crypto_hashblocks_sha256_dolbeau_armv8crypto_constbranchindex':
blocks.c: /usr/lib/gcc/aarch64-linux-gnu/12/include/arm_neon.h:23578:1: error: inlining failed in call to 'always_inline' 'vsha256h2q_u32': target specific option mismatch
blocks.c: 23578 | vsha256h2q_u32 (uint32x4_t __hash_efgh, uint32x4_t __hash_abcd, uint32x4_t __wk)
blocks.c: | ^~~~~~~~~~~~~~
blocks.c: blocks.c:118:22: note: called from here
blocks.c: 118 | s1 = vsha256h2q_u32(x1, x0, h1)
blocks.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:146:17: note: in expansion of macro 'DO16ROUNDS'
blocks.c: 146 | DO16ROUNDS(j0, j1, j2, j3, cc, cd, ce, cf);
blocks.c: | ^~~~~~~~~~
blocks.c: /usr/lib/gcc/aarch64-linux-gnu/12/include/arm_neon.h:23570:1: error: inlining failed in call to 'always_inline' 'vsha256hq_u32': target specific option mismatch
blocks.c: 23570 | vsha256hq_u32 (uint32x4_t __hash_abcd, uint32x4_t __hash_efgh, uint32x4_t __wk)
blocks.c: | ^~~~~~~~~~~~~
blocks.c: blocks.c:117:22: note: called from here
blocks.c: 117 | s0 = vsha256hq_u32(x0, x1, h1); \
blocks.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:146:17: note: in expansion of macro 'DO16ROUNDS'
blocks.c: 146 | DO16ROUNDS(j0, j1, j2, j3, cc, cd, ce, cf);
blocks.c: | ^~~~~~~~~~
blocks.c: /usr/lib/gcc/aarch64-linux-gnu/12/include/arm_neon.h:23578:1: error: inlining failed in call to 'always_inline' 'vsha256h2q_u32': target specific option mismatch
blocks.c: 23578 | vsha256h2q_u32 (uint32x4_t __hash_efgh, uint32x4_t __hash_abcd, uint32x4_t __wk)
blocks.c: | ^~~~~~~~~~~~~~
blocks.c: blocks.c:115:22: note: called from here
blocks.c: 115 | x1 = vsha256h2q_u32(s1, s0, h0); \
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