Implementation notes: amd64, speed2supercop, crypto_hashblocks/sha256

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240107
Operation: crypto_hashblocks
Primitive: sha256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1833611449 0 021589 752 800inplacegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
1838811449 0 023405 752 800inplacegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
1856011417 0 023341 752 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
1856811417 0 021525 752 800refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
1985211158 0 020836 744 800refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
1994811199 0 020916 744 800inplacegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
2319611329 0 020000 728 768inplacegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
2330811497 0 020160 728 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107

Compiler output

Implementation: dolbeau/amd64-sha
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blocks.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/12/include/immintrin.h:103,
blocks.c: from blocks.c:37:
blocks.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/shaintrin.h: In function 'crypto_hashblocks_sha256_dolbeau_amd64_sha_constbranchindex':
blocks.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/shaintrin.h:87:1: error: inlining failed in call to 'always_inline' '_mm_sha256rnds2_epu32': target specific option mismatch
blocks.c: 87 | _mm_sha256rnds2_epu32 (__m128i __A, __m128i __B, __m128i __C)
blocks.c: | ^~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:146:22: note: called from here
blocks.c: 146 | s0 = _mm_sha256rnds2_epu32(x0, s1, h1)
blocks.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:188:17: note: in expansion of macro 'DO16ROUNDS'
blocks.c: 188 | DO16ROUNDS(j0, j1, j2, j3, cc, cd, ce, cf);
blocks.c: | ^~~~~~~~~~
blocks.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/shaintrin.h:87:1: error: inlining failed in call to 'always_inline' '_mm_sha256rnds2_epu32': target specific option mismatch
blocks.c: 87 | _mm_sha256rnds2_epu32 (__m128i __A, __m128i __B, __m128i __C)
blocks.c: | ^~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:144:22: note: called from here
blocks.c: 144 | s1 = _mm_sha256rnds2_epu32(x1, x0, h1); \
blocks.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:188:17: note: in expansion of macro 'DO16ROUNDS'
blocks.c: 188 | DO16ROUNDS(j0, j1, j2, j3, cc, cd, ce, cf);
blocks.c: | ^~~~~~~~~~
blocks.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/shaintrin.h:87:1: error: inlining failed in call to 'always_inline' '_mm_sha256rnds2_epu32': target specific option mismatch
blocks.c: 87 | _mm_sha256rnds2_epu32 (__m128i __A, __m128i __B, __m128i __C)
blocks.c: | ^~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:141:22: note: called from here
blocks.c: ...

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