Implementation notes: amd64, pluton1mn, crypto_hash/blake256

Computer: pluton1mn
Architecture: amd64
CPU ID: GenuineIntel-00050671-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: blake256
TimeImplementationCompilerBenchmark dateSUPERCOP version
27440bswapgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
27468regsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
27734bswapicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
27832bswapicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
27874bswapgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
27930bswapgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
27930regsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
27958regsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
28042sphlibicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
28224sphlibicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
28308sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
28308sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
28798bswapgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
28798sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
29330regsicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
29414regsicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
29456sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
30016sse2icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
30114sse2icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
30184sse2-2icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
30422sse2-2icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
30436regsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
32690sse2-2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
32746sse2-2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
32998sse2-2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
33110sse2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
33404sse2-2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
33460sse2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
33502sse2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
33586sse2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
34664sandygcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
34902sphlib-smallicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
36344sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
36498sphlib-smallicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
36568sandyicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
36750sandyicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
36890sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
37604reficc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
38038reficc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
38472avxiccgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
38472avxiccicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
38472avxiccicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
38486avxiccgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
38626avxiccgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
39032avxsicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
39046avxsicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
39200avxsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
39200avxsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
39298avxsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
39438avxsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
39774sandygcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
39816sse41icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
39816sse41icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
39886sandygcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
40320vect128icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
40334ssse3icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
40390vect128icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
40432ssse3icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
40488sandygcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
41006refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
41188vect128-mmxhackicc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
41258sse41-2icc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
41328sse41-2icc -xMIC-AVX512 -O2 -fomit-frame-pointer2016080620160731
41440vect128-mmxhackicc -xMIC-AVX512 -O3 -fomit-frame-pointer2016080620160731
41482refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
41944sse41gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
42364sse41gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
42420vect128gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
42476sse41gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
42672vect128gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
42798vect128gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
42896vect128gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
42924sse41gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
43400ssse3gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
43736sse41-2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
43778ssse3gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
43834ssse3gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
43988vect128-mmxhackgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080620160731
44016ssse3gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
44086sse41-2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
44296vect128-mmxhackgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
44324sse41-2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
44338vect128-mmxhackgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
44450vect128-mmxhackgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
44534sse41-2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
45710avxiccgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080620160731
56098sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
56896sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731
59934refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080620160731
65772refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080620160731

Compiler output

Implementation: crypto_hash/blake256/xop
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: In file included from /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/x86intrin.h:54:0,
hash.c: from blake256.h:7,
hash.c: from hash.c:2:
hash.c: hash.c: In function 'blake256_compress':
hash.c: /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/xopintrin.h:260:1: error: inlining failed in call to always_inline '_mm_roti_epi32': target specific option mismatch
hash.c: _mm_roti_epi32(__m128i __A, const int __B)
hash.c: ^~~~~~~~~~~~~~
hash.c: In file included from blake256.h:127:0,
hash.c: from hash.c:2:
hash.c: rounds.h:19:8: note: called from here
hash.c: row2 = _mm_roti_epi32(row2, -7); \
hash.c: ^
hash.c: rounds.h:59:3: note: in expansion of macro 'G2'
hash.c: G2(row1,row2,row3,row4,buf4); \
hash.c: ^~
hash.c: hash.c:128:3: note: in expansion of macro 'ROUND'
hash.c: ROUND(13);
hash.c: ^~~~~
hash.c: In file included from /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/x86intrin.h:54:0,
hash.c: from blake256.h:7,
hash.c: from hash.c:2:
hash.c: /usr/local/gcc-6.1.0/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/xopintrin.h:260:1: error: inlining failed in call to always_inline '_mm_roti_epi32': target specific option mismatch
hash.c: _mm_roti_epi32(__m128i __A, const int __B)
hash.c: ^~~~~~~~~~~~~~
hash.c: In file included from blake256.h:127:0,
hash.c: ...

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

Compiler output

Implementation: crypto_hash/blake256/xop
Compiler: icc -xMIC-AVX512 -O2 -fomit-frame-pointer
hash.c: hash.c(115): warning #266: function "_mm_perm_epi8" declared implicitly
hash.c: ROUND( 0);
hash.c: ^
hash.c:
hash.c: hash.c(115): error: a value of type "int" cannot be assigned to an entity of type "__m128i"
hash.c: ROUND( 0);
hash.c: ^
hash.c:
hash.c: hash.c(115): warning #266: function "_mm_roti_epi32" declared implicitly
hash.c: ROUND( 0);
hash.c: ^
hash.c:
hash.c: hash.c(115): error: a value of type "int" cannot be assigned to an entity of type "__m128i"
hash.c: ROUND( 0);
hash.c: ^
hash.c:
hash.c: hash.c(115): error: a value of type "int" cannot be assigned to an entity of type "__m128i"
hash.c: ROUND( 0);
hash.c: ^
hash.c:
hash.c: hash.c(115): error: a value of type "int" cannot be assigned to an entity of type "__m128i"
hash.c: ROUND( 0);
hash.c: ^
hash.c:
hash.c: hash.c(115): error: a value of type "int" cannot be assigned to an entity of type "__m128i"
hash.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icc -xMIC-AVX512 -O2 -fomit-frame-pointer xop
icc -xMIC-AVX512 -O3 -fomit-frame-pointer xop

Compiler output

Implementation: crypto_hash/blake256/avxicc
Compiler: icc -xMIC-AVX512 -O2 -fomit-frame-pointer
try.c: ipo: remark #11035: Il version for crypto_hash_blake256.a (214006) does not match compiler's il version (349149), ignoring object file
try.c: ipo: remark #11035: Il version for crypto_hash_blake256.a (214006) does not match compiler's il version (349149), ignoring object file
measure.c: ipo: remark #11035: Il version for crypto_hash_blake256.a (214006) does not match compiler's il version (349149), ignoring object file

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icc -xMIC-AVX512 -O2 -fomit-frame-pointer avxicc
icc -xMIC-AVX512 -O3 -fomit-frame-pointer avxicc