Implementation notes: amd64, speed2supercop, crypto_hash/blake512

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240425
Operation: crypto_hash
Primitive: blake512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1083611420 0 023789 752 800sse41gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1085211404 0 021909 752 800sse41gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1089210729 0 019656 728 768sse41gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1107211281 0 021244 744 800sse41gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1131628086 0 040525 752 800sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1140427598 0 038213 752 800sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1144413380 0 025741 752 800ssse3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1148413215 0 023717 752 800ssse3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1167626882 0 036997 752 800sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1173615589 0 027973 752 800bswapgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1178015292 0 025813 752 800bswapgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1179215195 0 025140 744 800bswapgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1179624196 0 033232 728 768sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1188016791 0 027309 752 800regsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1190816956 0 029333 752 800regsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1192814942 0 023848 728 768sandygcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1194013667 0 026029 752 800sse2sgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1194813519 0 024021 752 800sse2sgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1206814476 0 023384 728 768regsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1207614476 0 023384 728 768bswapgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1207615532 0 026053 752 800sandygcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1209212864 0 022828 744 800ssse3gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1214015829 0 028213 752 800sandygcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1216011865 0 020792 728 768ssse3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1245615804 0 025748 744 800sandygcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1267613115 0 023084 744 800sse2sgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1284016861 0 026804 744 800regsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1288012251 0 021176 728 768sse2sgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1353214403 0 026765 752 800sse2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1361214255 0 024757 752 800sse2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1398412819 0 021752 728 768sse2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1418013661 0 023628 744 800sse2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
145487926 0 018061 752 800sphlib-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
147446937 0 015968 728 768sphlib-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
164164059 0 014004 744 800refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
166323002 0 011912 728 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1729210622 0 021237 752 800sphlib-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1740411110 0 023565 752 800sphlib-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
190006987 0 019333 752 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
192526790 0 017277 752 800refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425

Compiler output

Implementation: xop
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/12/include/x86intrin.h:38,
hash.c: from hash.c:5:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/xopintrin.h: In function 'blake512_compress':
hash.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/xopintrin.h:272:1: error: inlining failed in call to 'always_inline' '_mm_roti_epi64': target specific option mismatch
hash.c: 272 | _mm_roti_epi64(__m128i __A, const int __B)
hash.c: | ^~~~~~~~~~~~~~
hash.c: In file included from hash.c:8:
hash.c: rounds.h:825:11: note: called from here
hash.c: 825 | row2h = _mm_roti_epi64(row2h, -11); \
hash.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: rounds.h:867:3: note: in expansion of macro 'G2'
hash.c: 867 | G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
hash.c: | ^~
hash.c: hash.c:132:3: note: in expansion of macro 'ROUND'
hash.c: 132 | ROUND(15);
hash.c: | ^~~~~
hash.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/xopintrin.h:272:1: error: inlining failed in call to 'always_inline' '_mm_roti_epi64': target specific option mismatch
hash.c: 272 | _mm_roti_epi64(__m128i __A, const int __B)
hash.c: | ^~~~~~~~~~~~~~
hash.c: rounds.h:824:11: note: called from here
hash.c: 824 | row2l = _mm_roti_epi64(row2l, -11); \
hash.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: rounds.h:867:3: note: in expansion of macro 'G2'
hash.c: 867 | G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
hash.c: | ^~
hash.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE xop
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE xop
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE xop
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE xop

Compiler output

Implementation: xop-2
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/12/include/x86intrin.h:38,
hash.c: from hash.c:5:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/xopintrin.h: In function 'blake512_compress':
hash.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/xopintrin.h:218:1: error: inlining failed in call to 'always_inline' '_mm_perm_epi8': target specific option mismatch
hash.c: 218 | _mm_perm_epi8(__m128i __A, __m128i __B, __m128i __C)
hash.c: | ^~~~~~~~~~~~~
hash.c: In file included from hash.c:8:
hash.c: rounds.h:15:28: note: called from here
hash.c: 15 | #define BSWAP64(x) _mm_perm_epi8((x),(x),u8to64)
hash.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c:99:15: note: in expansion of macro 'BSWAP64'
hash.c: 99 | m.u128[7] = BSWAP64(m.u128[7]);
hash.c: | ^~~~~~~
hash.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/xopintrin.h:218:1: error: inlining failed in call to 'always_inline' '_mm_perm_epi8': target specific option mismatch
hash.c: 218 | _mm_perm_epi8(__m128i __A, __m128i __B, __m128i __C)
hash.c: | ^~~~~~~~~~~~~
hash.c: rounds.h:15:28: note: called from here
hash.c: 15 | #define BSWAP64(x) _mm_perm_epi8((x),(x),u8to64)
hash.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c:98:15: note: in expansion of macro 'BSWAP64'
hash.c: 98 | m.u128[6] = BSWAP64(m.u128[6]);
hash.c: | ^~~~~~~
hash.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/xopintrin.h:218:1: error: inlining failed in call to 'always_inline' '_mm_perm_epi8': target specific option mismatch
hash.c: 218 | _mm_perm_epi8(__m128i __A, __m128i __B, __m128i __C)
hash.c: | ^~~~~~~~~~~~~
hash.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE xop-2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE xop-2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE xop-2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE xop-2