Implementation notes: amd64, h4atom, crypto_hash/fugue256

Computer: h4atom
Architecture: amd64
CPU ID: GenuineIntel-000106ca-bfe9fbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: fugue256
TimeImplementationCompilerBenchmark dateSUPERCOP version
97632ANSI_opt64clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
97848sphlibclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
106480ANSI_opt32clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
107328ANSI_opt64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
107800ANSI_opt64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
108336sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
108376sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
111352sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806
111504ANSI_opt32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
114592ANSI_opt32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
126232ANSI_opt64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806
126320ANSI_opt32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806
139944ANSI_opt64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
148096sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
152536ANSI_opt32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
186000ccalik/vpermclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081220160806
189768ccalik/vpermgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081220160806
189992ccalik/vpermgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081220160806
194272ccalik/vpermgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081220160806
201664ccalik/vpermgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081220160806

Checksum failure

Implementation: crypto_hash/fugue256/SSSE3
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
6280e50d7cb4daa1fd7b5765ca468406e644b95f6678e7009fd179f21e556418
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/fugue256/SSSE3
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: In file included from hash.c:22:
hash.c: In file included from ./fugue_256_ssse3_code.h:15:
hash.c: ./aestab.h:53:93: warning: backslash and newline separated by space [-Wbackslash-newline-escape]
hash.c: w(r,0x8c), w(r,0xa1), w(r,0x89), w(r,0x0d), w(r,0xbf), w(r,0xe6), w(r,0x42), w(r,0x68),\
hash.c: ^
hash.c: In file included from hash.c:22:
hash.c: ./fugue_256_ssse3_code.h:111:24: warning: backslash and newline separated by space [-Wbackslash-newline-escape]
hash.c: t0 = xmm_out ; \
hash.c: ^
hash.c: hash.c:67:27: warning: signed shift result (0x6671135F000000) requires 56 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:20:26: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_xgt;>gt;8)&0xff00)|(_x>gt;>gt;24))
hash.c: ~~^ ~~
hash.c: hash.c:67:27: warning: signed shift result (0x6671135F00) requires 40 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:20:36: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_xgt;>gt;8)&0xff00)|(_x>gt;>gt;24))
hash.c: ~~^ ~
hash.c: hash.c:68:67: warning: signed shift result (0x34F8C248000000) requires 55 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xf96c621d),HO2BE_4(0xfbf929de),HO2BE_4(0x9149e899),HO2BE_4(0x34f8c248),
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:20:26: note: expanded from macro 'HO2BE_4'
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/fugue256/SSE4.1
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: In file included from hash.c:24:
hash.c: In file included from ./fugue_256_sse4_code.h:15:
hash.c: ./aestab.h:53:93: warning: backslash and newline separated by space [-Wbackslash-newline-escape]
hash.c: w(r,0x8c), w(r,0xa1), w(r,0x89), w(r,0x0d), w(r,0xbf), w(r,0xe6), w(r,0x42), w(r,0x68),\
hash.c: ^
hash.c: hash.c:69:27: warning: signed shift result (0x6671135F000000) requires 56 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:20:26: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_xgt;>gt;8)&0xff00)|(_x>gt;>gt;24))
hash.c: ~~^ ~~
hash.c: hash.c:69:27: warning: signed shift result (0x6671135F00) requires 40 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:20:36: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_xgt;>gt;8)&0xff00)|(_x>gt;>gt;24))
hash.c: ~~^ ~
hash.c: hash.c:70:67: warning: signed shift result (0x34F8C248000000) requires 55 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xf96c621d),HO2BE_4(0xfbf929de),HO2BE_4(0x9149e899),HO2BE_4(0x34f8c248),
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:20:26: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_xgt;>gt;8)&0xff00)|(_x>gt;>gt;24))
hash.c: ~~^ ~~
hash.c: hash.c:70:67: warning: signed shift result (0x34F8C24800) requires 39 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xf96c621d),HO2BE_4(0xfbf929de),HO2BE_4(0x9149e899),HO2BE_4(0x34f8c248),
hash.c: ...

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

Compiler output

Implementation: crypto_hash/fugue256/ANSI_opt32
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:32:27: warning: signed shift result (0x6671135F000000) requires 56 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:19:26: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_xgt;>gt;8)&0xff00)|(_x>gt;>gt;24))
hash.c: ~~^ ~~
hash.c: hash.c:32:27: warning: signed shift result (0x6671135F00) requires 40 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:19:36: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_xgt;>gt;8)&0xff00)|(_x>gt;>gt;24))
hash.c: ~~^ ~
hash.c: hash.c:33:67: warning: signed shift result (0x34F8C248000000) requires 55 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xf96c621d),HO2BE_4(0xfbf929de),HO2BE_4(0x9149e899),HO2BE_4(0x34f8c248)};
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:19:26: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_xgt;>gt;8)&0xff00)|(_x>gt;>gt;24))
hash.c: ~~^ ~~
hash.c: hash.c:33:67: warning: signed shift result (0x34F8C24800) requires 39 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xf96c621d),HO2BE_4(0xfbf929de),HO2BE_4(0x9149e899),HO2BE_4(0x34f8c248)};
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:19:36: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_xgt;>gt;8)&0xff00)|(_x>gt;>gt;24))
hash.c: ~~^ ~
hash.c: 4 warnings generated.

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

Compiler output

Implementation: crypto_hash/fugue256/ccalik/aesni
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hash.c: hash.c:449:4: error: always_inline function '_mm_aesenclast_si128' requires target feature 'aes', but would be inlined into function 'Compress256' that is compiled without support for 'aes'
hash.c: SUBROUND256_2(ctx->gt;state[8], ctx->gt;state[9], ctx->gt;state[7], ctx->gt;state[2], ctx->gt;state[7], ctx->gt;state[8], ctx->gt;state[6], ctx->gt;state[1]);
hash.c: ^
hash.c: hash.c:340:2: note: expanded from macro 'SUBROUND256_2'
hash.c: SUBSTITUTE(r0, _t1, _t2, _t3, _t0);\
hash.c: ^
hash.c: hash.c:250:10: note: expanded from macro 'SUBSTITUTE'
hash.c: _t2 = _mm_aesenclast_si128(_t2, M128(_zero))
hash.c: ^
hash.c: hash.c:449:4: error: always_inline function '_mm_aesenclast_si128' requires target feature 'aes', but would be inlined into function 'Compress256' that is compiled without support for 'aes'
hash.c: hash.c:347:2: note: expanded from macro 'SUBROUND256_2'
hash.c: SUBSTITUTE(s0, _t1, _t2, _t3, _t0);\
hash.c: ^
hash.c: hash.c:250:10: note: expanded from macro 'SUBSTITUTE'
hash.c: _t2 = _mm_aesenclast_si128(_t2, M128(_zero))
hash.c: ^
hash.c: hash.c:457:4: error: always_inline function '_mm_aesenclast_si128' requires target feature 'aes', but would be inlined into function 'Compress256' that is compiled without support for 'aes'
hash.c: SUBROUND256_2(ctx->gt;state[6], ctx->gt;state[7], ctx->gt;state[5], ctx->gt;state[0], ctx->gt;state[5], ctx->gt;state[6], ctx->gt;state[4], ctx->gt;state[9]);
hash.c: ^
hash.c: hash.c:340:2: note: expanded from macro 'SUBROUND256_2'
hash.c: SUBSTITUTE(r0, _t1, _t2, _t3, _t0);\
hash.c: ^
hash.c: hash.c:250:10: note: expanded from macro 'SUBSTITUTE'
hash.c: _t2 = _mm_aesenclast_si128(_t2, M128(_zero))
hash.c: ^
hash.c: ...

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

Compiler output

Implementation: crypto_hash/fugue256/SSE4.1
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: In file included from fugue_256_sse4_code.h:15:0,
hash.c: from hash.c:24:
hash.c: aestab.h:53:92: warning: backslash and newline separated by space
hash.c: w(r,0x8c), w(r,0xa1), w(r,0x89), w(r,0x0d), w(r,0xbf), w(r,0xe6), w(r,0x42), w(r,0x68),\
hash.c: ^
hash.c: In file included from hash.c:23:0:
hash.c: hash.c: In function 'crypto_hash_fugue256_SSE4_1':
hash.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h:346:1: error: inlining failed in call to always_inline '_mm_insert_ps': target specific option mismatch
hash.c: _mm_insert_ps (__m128 __D, __m128 __S, const int __N)
hash.c: ^
hash.c: In file included from hash.c:24:0:
hash.c: fugue_256_sse4_code.h:135:23: error: called from here
hash.c: t3 = (__m128i) _mm_insert_ps((__m128) t3, (__m128) xmm_out, 0x77); \
hash.c: ^
hash.c: fugue_256_sse4_code.h:285:14: note: in expansion of macro 'cmix_odd_2'
hash.c: cmix##variety(ptr); super_mix(ptr,type)
hash.c: ^
hash.c: fugue_256_sse4_code.h:335:4: note: in expansion of macro 'sub_round_var'
hash.c: sub_round_var(((-3)*(2*num+2)),type, _odd_2); \
hash.c: ^
hash.c: hash.c:136:7: note: in expansion of macro 'o_round'
hash.c: o_round(j,9,in,IMPL_TYPE); j++;
hash.c: ^
hash.c: In file included from hash.c:23:0:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h:550:1: error: inlining failed in call to always_inline '_mm_cvtepu8_epi16': target specific option mismatch
hash.c: ...

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

Compiler output

Implementation: crypto_hash/fugue256/SSSE3
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: In file included from fugue_256_ssse3_code.h:15:0,
hash.c: from hash.c:22:
hash.c: aestab.h:53:92: warning: backslash and newline separated by space
hash.c: w(r,0x8c), w(r,0xa1), w(r,0x89), w(r,0x0d), w(r,0xbf), w(r,0xe6), w(r,0x42), w(r,0x68),\
hash.c: ^
hash.c: In file included from hash.c:22:0:
hash.c: fugue_256_ssse3_code.h:111:23: warning: backslash and newline separated by space
hash.c: t0 = xmm_out ; \
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/fugue256/ccalik/aesni
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: In file included from hash.c:26:0:
hash.c: hash.c: In function 'Compress256':
hash.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/wmmintrin.h:69:1: error: inlining failed in call to always_inline '_mm_aesenclast_si128': target specific option mismatch
hash.c: _mm_aesenclast_si128 (__m128i __X, __m128i __Y)
hash.c: ^
hash.c: hash.c:250:8: error: called from here
hash.c: _t2 = _mm_aesenclast_si128(_t2, M128(_zero))
hash.c: ^
hash.c: hash.c:347:2: note: in expansion of macro 'SUBSTITUTE'
hash.c: SUBSTITUTE(s0, _t1, _t2, _t3, _t0);\
hash.c: ^
hash.c: hash.c:449:4: note: in expansion of macro 'SUBROUND256_2'
hash.c: SUBROUND256_2(ctx->gt;state[8], ctx->gt;state[9], ctx->gt;state[7], ctx->gt;state[2], ctx->gt;state[7], ctx->gt;state[8], ctx->gt;state[6], ctx->gt;state[1]);
hash.c: ^
hash.c: In file included from hash.c:26:0:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/wmmintrin.h:69:1: error: inlining failed in call to always_inline '_mm_aesenclast_si128': target specific option mismatch
hash.c: _mm_aesenclast_si128 (__m128i __X, __m128i __Y)
hash.c: ^
hash.c: hash.c:250:8: error: called from here
hash.c: _t2 = _mm_aesenclast_si128(_t2, M128(_zero))
hash.c: ^
hash.c: hash.c:340:2: note: in expansion of macro 'SUBSTITUTE'
hash.c: SUBSTITUTE(r0, _t1, _t2, _t3, _t0);\
hash.c: ^
hash.c: hash.c:449:4: note: in expansion of macro 'SUBROUND256_2'
hash.c: ...

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