Implementation notes: amd64, h8bobcat, crypto_hashblocks/sha256

Computer: h8bobcat
Microarchitecture: amd64; Bobcat (500f10)
Architecture: amd64
CPU ID: AuthenticAMD-00500f20-178bfbff
SUPERCOP version: 20240107
Operation: crypto_hashblocks
Primitive: sha256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
4132011183 0 022118 776 800inplacegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
4152911289 0 022198 776 800refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
4164811755 0 024190 776 800inplacegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
4185211398 0 020929 752 768inplacegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
4185211516 0 021041 752 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
4193311958 0 024350 776 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
4426111709 0 022269 768 800inplacegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
4480711754 0 022285 768 800refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
4503511796 0 021660 816 728inplaceclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
4504411796 0 023756 816 728inplaceclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
4508211796 0 022612 816 728inplaceclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
4523411876 0 023836 816 728refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
4529611876 0 021740 816 728refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
4530111876 0 022692 816 728refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
4570011335 0 020566 808 728inplaceclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
4601311475 0 020710 808 728refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
4659711619 0 023796 816 728refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
4681611721 0 023908 816 728inplaceclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212

Compiler output

Implementation: dolbeau/amd64-sha
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blocks.c: blocks.c:98:7: error: '__builtin_ia32_pblendw128' needs target feature sse4.1
blocks.c: d1 = _mm_blend_epi16(d1, s0, 0xf0);
blocks.c: ^
blocks.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/smmintrin.h:520:14: note: expanded from macro '_mm_blend_epi16'
blocks.c: ((__m128i) __builtin_ia32_pblendw128 ((__v8hi)(__m128i)(V1), \
blocks.c: ^
blocks.c: blocks.c:176:3: error: always_inline function '_mm_sha256rnds2_epu32' requires target feature 'sha', but would be inlined into function 'crypto_hashblocks_sha256_dolbeau_amd64_sha_constbranchindex' that is compiled without support for 'sha'
blocks.c: DO16ROUNDS(i0, i1, i2, i3, c0, c1, c2, c3);
blocks.c: ^
blocks.c: blocks.c:129:8: note: expanded from macro 'DO16ROUNDS'
blocks.c: x1 = _mm_sha256rnds2_epu32(s1, s0, h0); \
blocks.c: ^
blocks.c: blocks.c:176:3: error: always_inline function '_mm_sha256rnds2_epu32' requires target feature 'sha', but would be inlined into function 'crypto_hashblocks_sha256_dolbeau_amd64_sha_constbranchindex' that is compiled without support for 'sha'
blocks.c: blocks.c:131:8: note: expanded from macro 'DO16ROUNDS'
blocks.c: x0 = _mm_sha256rnds2_epu32(s0, x1, h0); \
blocks.c: ^
blocks.c: blocks.c:176:3: error: always_inline function '_mm_sha256rnds2_epu32' requires target feature 'sha', but would be inlined into function 'crypto_hashblocks_sha256_dolbeau_amd64_sha_constbranchindex' that is compiled without support for 'sha'
blocks.c: blocks.c:134:8: note: expanded from macro 'DO16ROUNDS'
blocks.c: s1 = _mm_sha256rnds2_epu32(x1, x0, h1); \
blocks.c: ^
blocks.c: blocks.c:176:3: error: always_inline function '_mm_sha256rnds2_epu32' requires target feature 'sha', but would be inlined into function 'crypto_hashblocks_sha256_dolbeau_amd64_sha_constbranchindex' that is compiled without support for 'sha'
blocks.c: blocks.c:136:8: note: expanded from macro 'DO16ROUNDS'
blocks.c: s0 = _mm_sha256rnds2_epu32(x0, s1, h1); \
blocks.c: ^
blocks.c: blocks.c:176:3: error: always_inline function '_mm_sha256rnds2_epu32' requires target feature 'sha', but would be inlined into function 'crypto_hashblocks_sha256_dolbeau_amd64_sha_constbranchindex' that is compiled without support for 'sha'
blocks.c: ...

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

Compiler output

Implementation: dolbeau/amd64-sha
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blocks.c: blocks.c:85:7: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'crypto_hashblocks_sha256_dolbeau_amd64_sha_constbranchindex' that is compiled without support for 'ssse3'
blocks.c: d0 = _mm_shuffle_epi8(d0, vperm);
blocks.c: ^
blocks.c: blocks.c:86:7: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'crypto_hashblocks_sha256_dolbeau_amd64_sha_constbranchindex' that is compiled without support for 'ssse3'
blocks.c: d1 = _mm_shuffle_epi8(d1, vperm);
blocks.c: ^
blocks.c: blocks.c:97:7: error: '__builtin_ia32_palignr128' needs target feature ssse3
blocks.c: d0 = _mm_alignr_epi8(d0, d1, 0x08);
blocks.c: ^
blocks.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/tmmintrin.h:152:13: note: expanded from macro '_mm_alignr_epi8'
blocks.c: ((__m128i)__builtin_ia32_palignr128((__v16qi)(__m128i)(a), \
blocks.c: ^
blocks.c: blocks.c:98:7: error: '__builtin_ia32_pblendw128' needs target feature sse4.1
blocks.c: d1 = _mm_blend_epi16(d1, s0, 0xf0);
blocks.c: ^
blocks.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/smmintrin.h:520:14: note: expanded from macro '_mm_blend_epi16'
blocks.c: ((__m128i) __builtin_ia32_pblendw128 ((__v8hi)(__m128i)(V1), \
blocks.c: ^
blocks.c: blocks.c:113:8: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'crypto_hashblocks_sha256_dolbeau_amd64_sha_constbranchindex' that is compiled without support for 'ssse3'
blocks.c: i0 = _mm_shuffle_epi8(i0, vperm);
blocks.c: ^
blocks.c: blocks.c:114:8: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'crypto_hashblocks_sha256_dolbeau_amd64_sha_constbranchindex' that is compiled without support for 'ssse3'
blocks.c: i1 = _mm_shuffle_epi8(i1, vperm);
blocks.c: ^
blocks.c: blocks.c:115:8: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'crypto_hashblocks_sha256_dolbeau_amd64_sha_constbranchindex' that is compiled without support for 'ssse3'
blocks.c: ...

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

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/11/include/immintrin.h:39,
blocks.c: from blocks.c:37:
blocks.c: blocks.c: In function 'crypto_hashblocks_sha256_dolbeau_amd64_sha_constbranchindex':
blocks.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h:166:1: error: inlining failed in call to 'always_inline' '_mm_blend_epi16': target specific option mismatch
blocks.c: 166 | _mm_blend_epi16 (__m128i __X, __m128i __Y, const int __M)
blocks.c: | ^~~~~~~~~~~~~~~
blocks.c: blocks.c:98:14: note: called from here
blocks.c: 98 | d1 = _mm_blend_epi16(d1, s0, 0xf0);
blocks.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:39,
blocks.c: from blocks.c:37:
blocks.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h:166:1: error: inlining failed in call to 'always_inline' '_mm_blend_epi16': target specific option mismatch
blocks.c: 166 | _mm_blend_epi16 (__m128i __X, __m128i __Y, const int __M)
blocks.c: | ^~~~~~~~~~~~~~~
blocks.c: blocks.c:98:14: note: called from here
blocks.c: 98 | d1 = _mm_blend_epi16(d1, s0, 0xf0);
blocks.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:97,
blocks.c: from blocks.c:37:
blocks.c: /usr/lib/gcc/x86_64-linux-gnu/11/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: ...

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