Implementation notes: x86, thoth, crypto_hash/cubehash81

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: cubehash81
TimeImplementationCompilerBenchmark dateSUPERCOP version
1427410unrolledgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
1430158simplegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
1447037unrolledgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
1465276unrolledgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
1613427unrolledgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
1950480unrolledclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
2585359specgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
3164892specclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
3604173simpleclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
5339697specgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
6051765specgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
7030314specgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
8989401simplegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
9184278simplegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
9309743simplegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724

Compiler output

Implementation: crypto_hash/cubehash81/emmintrin4
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
cubehash.c: cubehash.c:100:19: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'Init' that is compiled without support for 'sse2'
cubehash.c: state->gt;x[0] = _mm_set_epi32(0xe626160f,0x60948910,0xfb0930c7,0x6998f35d);
cubehash.c: ^
cubehash.c: cubehash.c:101:19: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'Init' that is compiled without support for 'sse2'
cubehash.c: state->gt;x[1] = _mm_set_epi32(0x3341e7b8,0x57cf193d,0xb58b0d0c,0x36077cf3);
cubehash.c: ^
cubehash.c: cubehash.c:102:19: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'Init' that is compiled without support for 'sse2'
cubehash.c: state->gt;x[2] = _mm_set_epi32(0x2aef3850,0x31ffc414,0x2089f9ef,0xa334805b);
cubehash.c: ^
cubehash.c: cubehash.c:103:19: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'Init' that is compiled without support for 'sse2'
cubehash.c: state->gt;x[3] = _mm_set_epi32(0x7045ca12,0x7d5293a2,0xe940a452,0xfe121839);
cubehash.c: ^
cubehash.c: cubehash.c:104:19: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'Init' that is compiled without support for 'sse2'
cubehash.c: state->gt;x[4] = _mm_set_epi32(0x93c33edb,0x9a90a44a,0x81bf7034,0x9358096e);
cubehash.c: ^
cubehash.c: cubehash.c:105:19: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'Init' that is compiled without support for 'sse2'
cubehash.c: state->gt;x[5] = _mm_set_epi32(0x5212b3ac,0xbc451df2,0x4a87dbd0,0x14c3e984);
cubehash.c: ^
cubehash.c: cubehash.c:106:19: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'Init' that is compiled without support for 'sse2'
cubehash.c: state->gt;x[6] = _mm_set_epi32(0xfad3cf0f,0xddbb8ae8,0x5df0f63b,0x6aabe51c);
cubehash.c: ^
cubehash.c: cubehash.c:107:19: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'Init' that is compiled without support for 'sse2'
cubehash.c: state->gt;x[7] = _mm_set_epi32(0x21a23d5c,0x094025a5,0xad2e2446,0xd52582fb);
cubehash.c: ^
cubehash.c: cubehash.c:109:19: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'Init' that is compiled without support for 'sse2'
cubehash.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments emmintrin4

Compiler output

Implementation: crypto_hash/cubehash81/emmintrin2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
cubehash.c: cubehash.c:102:39: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'Init' that is compiled without support for 'sse2'
cubehash.c: for (i = 0;i gt;x[i] = _mm_set_epi32(0,0,0,0);
cubehash.c: ^
cubehash.c: cubehash.c:103:17: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'Init' that is compiled without support for 'sse2'
cubehash.c: state->gt;x[0] = _mm_set_epi32(0,CUBEHASH_ROUNDS,CUBEHASH_BLOCKBYTES,hashbitlen / 8);
cubehash.c: ^
cubehash.c: 2 errors generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments emmintrin2

Compiler output

Implementation: crypto_hash/cubehash81/emmintrin
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
cubehash.c: cubehash.c:31:8: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'transform' that is compiled without support for 'sse2'
cubehash.c: x0 = _mm_loadu_si128(0 + (__m128i *) state->gt;x);
cubehash.c: ^
cubehash.c: cubehash.c:32:8: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'transform' that is compiled without support for 'sse2'
cubehash.c: x1 = _mm_loadu_si128(1 + (__m128i *) state->gt;x);
cubehash.c: ^
cubehash.c: cubehash.c:33:8: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'transform' that is compiled without support for 'sse2'
cubehash.c: x2 = _mm_loadu_si128(2 + (__m128i *) state->gt;x);
cubehash.c: ^
cubehash.c: cubehash.c:34:8: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'transform' that is compiled without support for 'sse2'
cubehash.c: x3 = _mm_loadu_si128(3 + (__m128i *) state->gt;x);
cubehash.c: ^
cubehash.c: cubehash.c:35:8: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'transform' that is compiled without support for 'sse2'
cubehash.c: x4 = _mm_loadu_si128(4 + (__m128i *) state->gt;x);
cubehash.c: ^
cubehash.c: cubehash.c:36:8: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'transform' that is compiled without support for 'sse2'
cubehash.c: x5 = _mm_loadu_si128(5 + (__m128i *) state->gt;x);
cubehash.c: ^
cubehash.c: cubehash.c:37:8: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'transform' that is compiled without support for 'sse2'
cubehash.c: x6 = _mm_loadu_si128(6 + (__m128i *) state->gt;x);
cubehash.c: ^
cubehash.c: cubehash.c:38:8: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'transform' that is compiled without support for 'sse2'
cubehash.c: x7 = _mm_loadu_si128(7 + (__m128i *) state->gt;x);
cubehash.c: ^
cubehash.c: cubehash.c:41:10: error: always_inline function '_mm_add_epi32' requires target feature 'sse2', but would be inlined into function 'transform' that is compiled without support for 'sse2'
cubehash.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments emmintrin

Compiler output

Implementation: crypto_hash/cubehash81/emmintrin3
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
cubehash.c: cubehash.c:97:39: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'Init' that is compiled without support for 'sse2'
cubehash.c: for (i = 0;i gt;x[i] = _mm_set_epi32(0,0,0,0);
cubehash.c: ^
cubehash.c: cubehash.c:98:17: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'Init' that is compiled without support for 'sse2'
cubehash.c: state->gt;x[0] = _mm_set_epi32(0,CUBEHASH_ROUNDS,CUBEHASH_BLOCKBYTES,hashbitlen / 8);
cubehash.c: ^
cubehash.c: 2 errors generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments emmintrin3

Compiler output

Implementation: crypto_hash/cubehash81/emmintrin4
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
cubehash.c: cubehash.c: In function 'Init':
cubehash.c: cubehash.c:100:17: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
cubehash.c: state->gt;x[0] = _mm_set_epi32(0xe626160f,0x60948910,0xfb0930c7,0x6998f35d);
cubehash.c: ^
cubehash.c: In file included from cubehash.h:14:0,
cubehash.c: from cubehash.c:9:
cubehash.c: cubehash.c: In function 'transform':
cubehash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:1415:1: error: inlining failed in call to always_inline '_mm_shuffle_epi32': target specific option mismatch
cubehash.c: _mm_shuffle_epi32 (__m128i __A, const int __mask)
cubehash.c: ^
cubehash.c: cubehash.c:75:8: error: called from here
cubehash.c: x7 = _mm_shuffle_epi32(x7,0xb1);
cubehash.c: ^
cubehash.c: In file included from cubehash.h:14:0,
cubehash.c: from cubehash.c:9:
cubehash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:1415:1: error: inlining failed in call to always_inline '_mm_shuffle_epi32': target specific option mismatch
cubehash.c: _mm_shuffle_epi32 (__m128i __A, const int __mask)
cubehash.c: ^
cubehash.c: cubehash.c:74:8: error: called from here
cubehash.c: x6 = _mm_shuffle_epi32(x6,0xb1);
cubehash.c: ^
cubehash.c: In file included from cubehash.h:14:0,
cubehash.c: from cubehash.c:9:
cubehash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:1415:1: error: inlining failed in call to always_inline '_mm_shuffle_epi32': target specific option mismatch
cubehash.c: _mm_shuffle_epi32 (__m128i __A, const int __mask)
cubehash.c: ...

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

Compiler output

Implementation: crypto_hash/cubehash81/emmintrin2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
cubehash.c: cubehash.c: In function 'Init':
cubehash.c: cubehash.c:102:37: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
cubehash.c: for (i = 0;i gt;x[i] = _mm_set_epi32(0,0,0,0);
cubehash.c: ^
cubehash.c: In file included from cubehash.h:14:0,
cubehash.c: from cubehash.c:8:
cubehash.c: cubehash.c: In function 'transform':
cubehash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:690:1: error: inlining failed in call to always_inline '_mm_load_si128': target specific option mismatch
cubehash.c: _mm_load_si128 (__m128i const *__P)
cubehash.c: ^
cubehash.c: cubehash.c:37:6: error: called from here
cubehash.c: x7 = _mm_load_si128(7 + state->gt;x);
cubehash.c: ^
cubehash.c: In file included from cubehash.h:14:0,
cubehash.c: from cubehash.c:8:
cubehash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:690:1: error: inlining failed in call to always_inline '_mm_load_si128': target specific option mismatch
cubehash.c: _mm_load_si128 (__m128i const *__P)
cubehash.c: ^
cubehash.c: cubehash.c:36:6: error: called from here
cubehash.c: x6 = _mm_load_si128(6 + state->gt;x);
cubehash.c: ^
cubehash.c: In file included from cubehash.h:14:0,
cubehash.c: from cubehash.c:8:
cubehash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:690:1: error: inlining failed in call to always_inline '_mm_load_si128': target specific option mismatch
cubehash.c: _mm_load_si128 (__m128i const *__P)
cubehash.c: ...

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

Compiler output

Implementation: crypto_hash/cubehash81/emmintrin3
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
cubehash.c: cubehash.c: In function 'Init':
cubehash.c: cubehash.c:97:37: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
cubehash.c: for (i = 0;i gt;x[i] = _mm_set_epi32(0,0,0,0);
cubehash.c: ^
cubehash.c: In file included from cubehash.h:14:0,
cubehash.c: from cubehash.c:9:
cubehash.c: cubehash.c: In function 'transform':
cubehash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:1415:1: error: inlining failed in call to always_inline '_mm_shuffle_epi32': target specific option mismatch
cubehash.c: _mm_shuffle_epi32 (__m128i __A, const int __mask)
cubehash.c: ^
cubehash.c: cubehash.c:75:8: error: called from here
cubehash.c: x7 = _mm_shuffle_epi32(x7,0xb1);
cubehash.c: ^
cubehash.c: In file included from cubehash.h:14:0,
cubehash.c: from cubehash.c:9:
cubehash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:1415:1: error: inlining failed in call to always_inline '_mm_shuffle_epi32': target specific option mismatch
cubehash.c: _mm_shuffle_epi32 (__m128i __A, const int __mask)
cubehash.c: ^
cubehash.c: cubehash.c:74:8: error: called from here
cubehash.c: x6 = _mm_shuffle_epi32(x6,0xb1);
cubehash.c: ^
cubehash.c: In file included from cubehash.h:14:0,
cubehash.c: from cubehash.c:9:
cubehash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:1415:1: error: inlining failed in call to always_inline '_mm_shuffle_epi32': target specific option mismatch
cubehash.c: _mm_shuffle_epi32 (__m128i __A, const int __mask)
cubehash.c: ...

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

Compiler output

Implementation: crypto_hash/cubehash81/emmintrin
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
cubehash.c: cubehash.c: In function 'transform':
cubehash.c: cubehash.c:31:6: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
cubehash.c: x0 = _mm_loadu_si128(0 + (__m128i *) state->gt;x);
cubehash.c: ^
cubehash.c: In file included from cubehash.c:9:0:
cubehash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:696:1: error: inlining failed in call to always_inline '_mm_loadu_si128': target specific option mismatch
cubehash.c: _mm_loadu_si128 (__m128i const *__P)
cubehash.c: ^
cubehash.c: cubehash.c:38:6: error: called from here
cubehash.c: x7 = _mm_loadu_si128(7 + (__m128i *) state->gt;x);
cubehash.c: ^
cubehash.c: In file included from cubehash.c:9:0:
cubehash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:696:1: error: inlining failed in call to always_inline '_mm_loadu_si128': target specific option mismatch
cubehash.c: _mm_loadu_si128 (__m128i const *__P)
cubehash.c: ^
cubehash.c: cubehash.c:37:6: error: called from here
cubehash.c: x6 = _mm_loadu_si128(6 + (__m128i *) state->gt;x);
cubehash.c: ^
cubehash.c: In file included from cubehash.c:9:0:
cubehash.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:696:1: error: inlining failed in call to always_inline '_mm_loadu_si128': target specific option mismatch
cubehash.c: _mm_loadu_si128 (__m128i const *__P)
cubehash.c: ^
cubehash.c: cubehash.c:36:6: error: called from here
cubehash.c: x5 = _mm_loadu_si128(5 + (__m128i *) state->gt;x);
cubehash.c: ^
cubehash.c: ...

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