Implementation notes: amd64, avx512imath, crypto_hash/blake512

Computer: avx512imath
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20210125
Operation: crypto_hash
Primitive: blake512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
949212273 0 023983 796 952sse41gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
950412273 0 026848 804 952sse41gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
959312424 0 024007 796 952sse41gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
969411677 0 022371 780 920sse41gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1013827323 0 041960 804 952sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1023513399 0 024083 780 920sandygcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1040813727 0 024419 780 920regsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1042813727 0 024419 780 920bswapgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1045414229 0 025791 796 952bswapgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1047825696 0 037592 804 952sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1051414419 0 028984 804 952regsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1056714419 0 026119 796 952regsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1057014419 0 026119 796 952bswapgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1060414492 0 029072 804 952bswapgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1063025109 0 035891 780 920sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1077725872 0 037616 804 952sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1080412747 0 027328 804 952ssse3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1082312747 0 024463 796 952ssse3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1092613382 0 024951 796 952ssse3gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1120815075 0 026775 796 952sandygcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1121714868 0 026431 796 952sandygcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1124512322 0 023027 780 920ssse3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1138315148 0 029728 804 952sandygcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1149813736 0 025319 796 952sse2sgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1154113019 0 027600 804 952sse2sgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1157613019 0 024735 796 952sse2sgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1171216105 0 027663 796 952regsgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1189512568 0 023267 780 920sse2sgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
126077809 0 018579 780 920sphlib-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
126568450 0 020184 804 952sphlib-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1308313272 0 023979 780 920sse2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1311513963 0 025679 796 952sse2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1311513963 0 028544 804 952sse2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1312814465 0 026047 796 952sse2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
142824457 0 016023 796 952refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
145793388 0 014067 780 920refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1549410112 0 022008 804 952sphlib-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
1591511723 0 026360 804 952sphlib-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
164835834 0 020384 804 952refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125
174834810 0 016511 796 952refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210125

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/9/include/x86intrin.h:38,
hash.c: from hash.c:5:
hash.c: hash.c: In function 'blake512_compress':
hash.c: /usr/lib/gcc/x86_64-linux-gnu/9/include/xopintrin.h:266:1: error: inlining failed in call to always_inline '_mm_roti_epi64': target specific option mismatch
hash.c: 266 | _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: In file included from /usr/lib/gcc/x86_64-linux-gnu/9/include/x86intrin.h:38,
hash.c: from hash.c:5:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/9/include/xopintrin.h:266:1: error: inlining failed in call to always_inline '_mm_roti_epi64': target specific option mismatch
hash.c: 266 | _mm_roti_epi64(__m128i __A, const int __B)
hash.c: | ^~~~~~~~~~~~~~
hash.c: In file included from hash.c:8:
hash.c: rounds.h:824:11: note: called from here
hash.c: 824 | row2l = _mm_roti_epi64(row2l, -11); \
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/9/include/x86intrin.h:38,
hash.c: from hash.c:5:
hash.c: hash.c: In function 'blake512_compress':
hash.c: /usr/lib/gcc/x86_64-linux-gnu/9/include/xopintrin.h:212:1: error: inlining failed in call to always_inline '_mm_perm_epi8': target specific option mismatch
hash.c: 212 | _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:21: 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: In file included from /usr/lib/gcc/x86_64-linux-gnu/9/include/x86intrin.h:38,
hash.c: from hash.c:5:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/9/include/xopintrin.h:212:1: error: inlining failed in call to always_inline '_mm_perm_epi8': target specific option mismatch
hash.c: 212 | _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:21: 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: ...

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