Implementation notes: x86, thoth, crypto_hash/round3jh512

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: round3jh512
TimeImplementationCompilerBenchmark dateSUPERCOP version
233967sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
239406sphlibclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
274107sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
274333sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
275504simpleclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
275991sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
276560sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
284781sphlib-smallclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
292928sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
297143sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
297293sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
316768simplegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
319845simplegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
322026simplegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
338233simplegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724

Compiler output

Implementation: crypto_hash/round3jh512/ssse3
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:108:25: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'F8' that is compiled without support for 'sse2'
hash.c: const __m128i swap8 = _mm_set_epi8(14,15,12,13,10,11,8,9,6,7,4,5,2,3,0,1);
hash.c: ^
hash.c: hash.c:109:26: error: always_inline function '_mm_set_epi8' requires target feature 'sse2', but would be inlined into function 'F8' that is compiled without support for 'sse2'
hash.c: const __m128i swap16 = _mm_set_epi8(13,12,15,14,9,8,11,10,5,4,7,6,1,0,3,2);
hash.c: ^
hash.c: hash.c:122:9: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'F8' that is compiled without support for 'sse2'
hash.c: x0 ^= LOAD(0+(__m128i *) buf);
hash.c: ^
hash.c: hash.c:69:31: note: expanded from macro 'LOAD'
hash.c: #define LOAD(p) _mm_loadu_si128((__m128i *)(p))
hash.c: ^
hash.c: hash.c:123:9: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'F8' that is compiled without support for 'sse2'
hash.c: x1 ^= LOAD(1+(__m128i *) buf);
hash.c: ^
hash.c: hash.c:69:31: note: expanded from macro 'LOAD'
hash.c: #define LOAD(p) _mm_loadu_si128((__m128i *)(p))
hash.c: ^
hash.c: hash.c:124:9: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'F8' that is compiled without support for 'sse2'
hash.c: x2 ^= LOAD(2+(__m128i *) buf);
hash.c: ^
hash.c: hash.c:69:31: note: expanded from macro 'LOAD'
hash.c: #define LOAD(p) _mm_loadu_si128((__m128i *)(p))
hash.c: ^
hash.c: hash.c:125:9: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'F8' that is compiled without support for 'sse2'
hash.c: ...

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

Compiler output

Implementation: crypto_hash/round3jh512/sse2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:124:9: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'F8' that is compiled without support for 'sse2'
hash.c: x0 ^= LOAD(0+(__m128i *) buf);
hash.c: ^
hash.c: hash.c:73:31: note: expanded from macro 'LOAD'
hash.c: #define LOAD(p) _mm_loadu_si128((__m128i *)(p))
hash.c: ^
hash.c: hash.c:125:9: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'F8' that is compiled without support for 'sse2'
hash.c: x1 ^= LOAD(1+(__m128i *) buf);
hash.c: ^
hash.c: hash.c:73:31: note: expanded from macro 'LOAD'
hash.c: #define LOAD(p) _mm_loadu_si128((__m128i *)(p))
hash.c: ^
hash.c: hash.c:126:9: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'F8' that is compiled without support for 'sse2'
hash.c: x2 ^= LOAD(2+(__m128i *) buf);
hash.c: ^
hash.c: hash.c:73:31: note: expanded from macro 'LOAD'
hash.c: #define LOAD(p) _mm_loadu_si128((__m128i *)(p))
hash.c: ^
hash.c: hash.c:127:9: error: always_inline function '_mm_loadu_si128' requires target feature 'sse2', but would be inlined into function 'F8' that is compiled without support for 'sse2'
hash.c: x3 ^= LOAD(3+(__m128i *) buf);
hash.c: ^
hash.c: hash.c:73:31: note: expanded from macro 'LOAD'
hash.c: #define LOAD(p) _mm_loadu_si128((__m128i *)(p))
hash.c: ^
hash.c: hash.c:130:32: error: always_inline function '_mm_load_si128' requires target feature 'sse2', but would be inlined into function 'F8' that is compiled without support for 'sse2'
hash.c: ...

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

Compiler output

Implementation: crypto_hash/round3jh512/ssse3
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'F8':
hash.c: hash.c:108:17: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
hash.c: const __m128i swap8 = _mm_set_epi8(14,15,12,13,10,11,8,9,6,7,4,5,2,3,0,1);
hash.c: ^
hash.c: In file included from /usr/lib/gcc/i686-linux-gnu/5/include/pmmintrin.h:31:0,
hash.c: from /usr/lib/gcc/i686-linux-gnu/5/include/tmmintrin.h:31,
hash.c: from hash.c:3:
hash.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
hash.c: _mm_loadu_si128 (__m128i const *__P)
hash.c: ^
hash.c: hash.c:69:31: error: called from here
hash.c: #define LOAD(p) _mm_loadu_si128((__m128i *)(p))
hash.c: ^
hash.c: hash.c:125:9: note: in expansion of macro 'LOAD'
hash.c: x3 ^= LOAD(3+(__m128i *) buf);
hash.c: ^
hash.c: In file included from /usr/lib/gcc/i686-linux-gnu/5/include/pmmintrin.h:31:0,
hash.c: from /usr/lib/gcc/i686-linux-gnu/5/include/tmmintrin.h:31,
hash.c: from hash.c:3:
hash.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
hash.c: _mm_loadu_si128 (__m128i const *__P)
hash.c: ^
hash.c: hash.c:69:31: error: called from here
hash.c: #define LOAD(p) _mm_loadu_si128((__m128i *)(p))
hash.c: ^
hash.c: ...

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

Compiler output

Implementation: crypto_hash/round3jh512/sse2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: hash.c: In function 'F8':
hash.c: hash.c:73:31: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
hash.c: #define LOAD(p) _mm_loadu_si128((__m128i *)(p))
hash.c: ^
hash.c: hash.c:124:9: note: in expansion of macro 'LOAD'
hash.c: x0 ^= LOAD(0+(__m128i *) buf);
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.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
hash.c: _mm_loadu_si128 (__m128i const *__P)
hash.c: ^
hash.c: hash.c:73:31: error: called from here
hash.c: #define LOAD(p) _mm_loadu_si128((__m128i *)(p))
hash.c: ^
hash.c: hash.c:127:9: note: in expansion of macro 'LOAD'
hash.c: x3 ^= LOAD(3+(__m128i *) buf);
hash.c: ^
hash.c: In file included from hash.c:3:0:
hash.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
hash.c: _mm_loadu_si128 (__m128i const *__P)
hash.c: ^
hash.c: hash.c:73:31: error: called from here
hash.c: #define LOAD(p) _mm_loadu_si128((__m128i *)(p))
hash.c: ^
hash.c: hash.c:126:9: note: in expansion of macro 'LOAD'
hash.c: ...

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