Implementation notes: amd64, pmnod003, crypto_hashblocks/sha256

Computer: pmnod003
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20190910
Operation: crypto_hashblocks
Primitive: sha256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1758810691 0 020350 824 776inplacegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
1766410691 0 023099 832 776inplacegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
1805410805 0 020430 824 776refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
1811810805 0 023179 832 776refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
1958211001 0 020654 824 776refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
1960011017 0 020702 824 776inplacegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
1981411246 0 020054 808 776refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
1990811135 0 019942 808 776inplacegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
2034412304 0 028077 856 776inplaceicc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
2035612368 0 028141 856 776reficc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
2035812368 0 028013 856 776reficc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
2037412224 0 027773 856 776inplaceicc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
2038412224 0 027189 856 744inplaceicc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
2045212368 0 027333 856 744reficc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
2046612368 0 027613 856 776reficc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
2046812368 0 027917 856 776reficc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
2047012304 0 027949 856 776inplaceicc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
2047212304 0 027685 856 744inplaceicc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
2048212368 0 027749 856 744reficc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
2049012224 0 027469 856 776inplaceicc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
2377413008 0 026691 856 744reficc_-xSSE4.2_-O2_-fomit-frame-pointer2019091220190910
2383413008 0 026815 856 744reficc_-xSSE4.1_-O2_-fomit-frame-pointer2019091220190910
2420412992 0 026731 856 744reficc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
2420812992 0 026871 856 744reficc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
2421812752 0 026491 856 744inplaceicc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
2422012752 0 026631 856 744inplaceicc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
2433213584 0 028563 856 744reficc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
2434613584 0 028563 856 744reficc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
2435012928 0 026611 856 744inplaceicc_-xSSE4.2_-O2_-fomit-frame-pointer2019091220190910
2436012928 0 026735 856 744inplaceicc_-xSSE4.1_-O2_-fomit-frame-pointer2019091220190910
2436213456 0 028467 856 744inplaceicc_-xAVX_-O3_-fomit-frame-pointer2019091220190910
2437013456 0 028467 856 744inplaceicc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
2440213584 0 028595 856 744reficc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
2441413632 0 028611 856 744inplaceicc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
2442013632 0 028611 856 744inplaceicc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
2442613584 0 028595 856 744reficc_-xAVX_-O3_-fomit-frame-pointer2019091220190910

Test failure

Implementation: dolbeau/amd64-sha
Security model: unknown
Compiler: icc -xAVX -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 14, namely:
CompilerImplementations
icc -xAVX -O2 -fomit-frame-pointer dolbeau/amd64-sha
icc -xAVX -O3 -fomit-frame-pointer dolbeau/amd64-sha
icc -xCOMMON-AVX512 -O2 -fomit-frame-pointer dolbeau/amd64-sha
icc -xCOMMON-AVX512 -O3 -fomit-frame-pointer dolbeau/amd64-sha
icc -xCORE-AVX-I -O2 -fomit-frame-pointer dolbeau/amd64-sha
icc -xCORE-AVX-I -O3 -fomit-frame-pointer dolbeau/amd64-sha
icc -xCORE-AVX2 -O2 -fomit-frame-pointer dolbeau/amd64-sha
icc -xCORE-AVX2 -O3 -fomit-frame-pointer dolbeau/amd64-sha
icc -xCORE-AVX512 -O2 -fomit-frame-pointer dolbeau/amd64-sha
icc -xCORE-AVX512 -O3 -fomit-frame-pointer dolbeau/amd64-sha
icc -xSSE4.1 -O2 -fomit-frame-pointer dolbeau/amd64-sha
icc -xSSE4.1 -O3 -fomit-frame-pointer dolbeau/amd64-sha
icc -xSSE4.2 -O2 -fomit-frame-pointer dolbeau/amd64-sha
icc -xSSE4.2 -O3 -fomit-frame-pointer 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 /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/immintrin.h:99,
blocks.c: from blocks.c:37:
blocks.c: blocks.c: In function 'crypto_hashblocks_sha256_dolbeau_amd64_sha':
blocks.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/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:8: note: called from here
blocks.c: 146 | s0 = _mm_sha256rnds2_epu32(x0, s1, h1)
blocks.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:188:3: note: in expansion of macro 'DO16ROUNDS'
blocks.c: 188 | DO16ROUNDS(j0, j1, j2, j3, cc, cd, ce, cf);
blocks.c: | ^~~~~~~~~~
blocks.c: In file included from /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/immintrin.h:99,
blocks.c: from blocks.c:37:
blocks.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/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:8: note: called from here
blocks.c: 144 | s1 = _mm_sha256rnds2_epu32(x1, x0, h1); \
blocks.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.c: blocks.c:188:3: note: in expansion of macro 'DO16ROUNDS'
blocks.c: 188 | DO16ROUNDS(j0, j1, j2, j3, cc, cd, ce, cf);
blocks.c: | ^~~~~~~~~~
blocks.c: In file included from /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/immintrin.h:99,
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