Implementation notes: amd64, latour, crypto_hashblocks/sha256

Computer: latour
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_hashblocks
Primitive: sha256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2936711895 0 022067 728 808refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020082920200826
2942111845 0 020991 712 776inplacegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020082920200826
2950211890 0 024292 736 808refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020082920200826
2956511605 0 020751 712 776refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020082920200826
2965512013 0 024452 736 808inplacegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020082920200826
2978112018 0 022227 728 808inplacegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020082920200826
3011412677 0 024192 792 736refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020082920200826
3016812542 0 023112 792 736inplaceclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020082920200826
3016812542 0 024048 792 736inplaceclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020082920200826
3018612677 0 023256 792 736refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020082920200826
3023112539 0 021998 784 736inplaceclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020082920200826
3024012674 0 022126 784 736refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020082920200826
3029412677 0 023256 792 736refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020082920200826
3032112677 0 024064 792 736refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020082920200826
3033912542 0 023920 792 736inplaceclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020082920200826
3048312542 0 023112 792 736inplaceclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020082920200826
3114012075 0 022171 728 808inplacegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020082920200826
3134712019 0 022075 728 808refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020082920200826

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: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: 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_constbranchindex' 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: 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-3.8/bin/../lib/clang/3.8.0/include/tmmintrin.h:69: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_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: 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_constbranchindex' 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_constbranchindex' 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: 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/5/include/immintrin.h:37:0,
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/5/include/smmintrin.h:166:1: error: inlining failed in call to always_inline '_mm_blend_epi16': target specific option mismatch
blocks.c: _mm_blend_epi16 (__m128i __X, __m128i __Y, const int __M)
blocks.c: ^
blocks.c: blocks.c:98:5: error: called from here
blocks.c: d1 = _mm_blend_epi16(d1, s0, 0xf0);
blocks.c: ^
blocks.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:37:0,
blocks.c: from blocks.c:37:
blocks.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h:166:1: error: inlining failed in call to always_inline '_mm_blend_epi16': target specific option mismatch
blocks.c: _mm_blend_epi16 (__m128i __X, __m128i __Y, const int __M)
blocks.c: ^
blocks.c: blocks.c:98:5: error: called from here
blocks.c: d1 = _mm_blend_epi16(d1, s0, 0xf0);
blocks.c: ^
blocks.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:71:0,
blocks.c: from blocks.c:37:
blocks.c: /usr/lib/gcc/x86_64-linux-gnu/5/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: error: called from here
blocks.c: 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