Implementation notes: amd64, h9trinity, crypto_hashblocks/sha256

Computer: h9trinity
Architecture: amd64
CPU ID: AuthenticAMD-00610f01-178bfbff
SUPERCOP version: 20200618
Operation: crypto_hashblocks
Primitive: sha256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
3001711401 0 023486 776 808inplacegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
3005911378 0 021109 768 808inplacegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
3025911490 0 020497 752 776refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
3030211304 0 020305 752 776inplacegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
3051611583 0 021285 768 808refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
3063611603 0 023646 776 808refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
3183611392 0 021253 768 808inplacegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
3245611772 0 021605 768 808refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020041020200409
3278511303 0 022545 776 752refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020041020200409
3279011303 0 024113 776 752refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020041020200409
3281911303 0 022545 776 752refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020041020200409
3285411311 0 024113 776 752inplaceclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020041020200409
3288211311 0 022545 776 752inplaceclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020041020200409
3291911311 0 022545 776 752inplaceclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020041020200409
3322610849 0 019567 768 736inplaceclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020041020200409
3326310849 0 019567 768 736refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020041020200409
3539811727 0 023457 776 736inplaceclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020041020200409
3542211680 0 023409 776 736refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020041020200409

Compiler output

Implementation: dolbeau/amd64-sha
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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' 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' 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' 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' 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' that is compiled without support for 'sha'
blocks.c: blocks.c:139: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' that is compiled without support for 'sha'
blocks.c: blocks.c:141:8: note: expanded from macro 'DO16ROUNDS'
blocks.c: x0 = _mm_sha256rnds2_epu32(s0, x1, h0); \
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: unknown
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' 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' 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-6.0/lib/clang/6.0.0/include/tmmintrin.h:161:12: note: expanded from macro '_mm_alignr_epi8'
blocks.c: (__m128i)__builtin_ia32_palignr128((__v16qi)(__m128i)(a), \
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' 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' 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' that is compiled without support for 'ssse3'
blocks.c: i2 = _mm_shuffle_epi8(i2, vperm);
blocks.c: ^
blocks.c: blocks.c:116:8: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'crypto_hashblocks_sha256_dolbeau_amd64_sha' that is compiled without support for 'ssse3'
blocks.c: i3 = _mm_shuffle_epi8(i3, vperm);
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' that is compiled without support for 'sha'
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: unknown
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/7/include/immintrin.h:77:0,
blocks.c: from blocks.c:37:
blocks.c: blocks.c: In function 'crypto_hashblocks_sha256_dolbeau_amd64_sha':
blocks.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/shaintrin.h:87:1: error: inlining failed in call to always_inline '_mm_sha256rnds2_epu32': target specific option mismatch
blocks.c: _mm_sha256rnds2_epu32 (__m128i __A, __m128i __B, __m128i __C)
blocks.c: ^~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:146:6: note: called from here
blocks.c: s0 = _mm_sha256rnds2_epu32(x0, s1, h1)
blocks.c: ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:188: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 /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:77:0,
blocks.c: from blocks.c:37:
blocks.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/shaintrin.h:87:1: error: inlining failed in call to always_inline '_mm_sha256rnds2_epu32': target specific option mismatch
blocks.c: _mm_sha256rnds2_epu32 (__m128i __A, __m128i __B, __m128i __C)
blocks.c: ^~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:144:6: note: called from here
blocks.c: s1 = _mm_sha256rnds2_epu32(x1, x0, h1); \
blocks.c: ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:188: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 /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:77:0,
blocks.c: from blocks.c:37:
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