Implementation notes: amd64, wintermute, crypto_hash/fugue256
Computer: wintermute
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20140505
Operation: crypto_hash
Primitive: fugue256
Time | Implementation | Compiler | Benchmark date | SUPERCOP version |
28404 | ccalik/vperm | clang -O3 -mavx2 | 20140508 | 20140505 |
28456 | ccalik/vperm | clang -O3 -mavx | 20140508 | 20140505 |
36412 | ANSI_opt32 | clang -O3 | 20140508 | 20140505 |
36428 | ANSI_opt32 | clang -O3 -mavx | 20140508 | 20140505 |
36592 | ANSI_opt32 | clang -O3 -mavx2 | 20140508 | 20140505 |
37812 | ANSI_opt64 | clang -O3 -mavx | 20140508 | 20140505 |
37840 | ANSI_opt64 | clang -O3 -mavx2 | 20140508 | 20140505 |
37868 | ANSI_opt64 | clang -O3 | 20140508 | 20140505 |
38936 | sphlib | clang -O3 | 20140508 | 20140505 |
38936 | sphlib | clang -O3 -mavx | 20140508 | 20140505 |
39008 | sphlib | clang -O3 -mavx2 | 20140508 | 20140505 |
102556 | ANSI_opt64 | cc | 20140508 | 20140505 |
105956 | sphlib | cc | 20140508 | 20140505 |
116956 | ANSI_opt32 | cc | 20140508 | 20140505 |
Compiler output
Implementation: crypto_hash/fugue256/ccalik/aesni
Compiler: cc
hash.c: In file included from hash.c:20:
hash.c: In file included from ./hash_api.h:29:
hash.c: /usr/include/clang/3.3/tmmintrin.h:28:2: error: "SSSE3 instruction set not enabled"
hash.c: #error "SSSE3 instruction set not enabled"
hash.c: ^
hash.c: In file included from hash.c:20:
hash.c: ./hash_api.h:35:2: error: unknown type name '__m128i'
hash.c: __m128i state[12];
hash.c: ^
hash.c: In file included from hash.c:26:
hash.c: /usr/include/clang/3.3/wmmintrin.h:30:3: error: "AES/PCLMUL instructions not enabled"
hash.c: # error "AES/PCLMUL instructions not enabled"
hash.c: ^
hash.c: hash.c:449:4: warning: implicit declaration of function '_mm_shuffle_epi8' is invalid in C99 [-Wimplicit-function-declaration]
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:249:10: note: expanded from macro 'SUBSTITUTE'
hash.c: _t2 = _mm_shuffle_epi8(r0, M128(_inv_shift_rows));\
hash.c: ^
hash.c: hash.c:449:4: warning: implicit declaration of function '_mm_aesenclast_si128' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: hash.c:340:2: note: expanded from macro 'SUBROUND256_2'
hash.c: SUBSTITUTE(r0, _t1, _t2, _t3, _t0);\
hash.c: ...
Number of similar (compiler,implementation) pairs: 2, namely:
Compiler | Implementations
|
cc | ccalik/aesni |
clang -O3 | ccalik/aesni
|
Compiler output
Implementation: crypto_hash/fugue256/ccalik/vperm
Compiler: cc
hash.c: In file included from hash.c:20:
hash.c: In file included from ./hash_api.h:29:
hash.c: /usr/include/clang/3.3/tmmintrin.h:28:2: error: "SSSE3 instruction set not enabled"
hash.c: #error "SSSE3 instruction set not enabled"
hash.c: ^
hash.c: In file included from hash.c:20:
hash.c: ./hash_api.h:35:2: error: unknown type name '__m128i'
hash.c: __m128i state[12];
hash.c: ^
hash.c: hash.c:441:2: error: use of undeclared identifier '__m128i'
hash.c: __m128i _t0, _t1, _t2, _t3;
hash.c: ^
hash.c: hash.c:447:77: error: use of undeclared identifier '_t0'
hash.c: TIX256(pmsg, ctx->gt;state[1], ctx->gt;state[0], ctx->gt;state[6], ctx->gt;state[8], _t0, _t1, _t2);
hash.c: ^
hash.c: hash.c:165:2: note: expanded from macro 'TIX256'
hash.c: t1 = _mm_shuffle_epi32(s0, _MM_SHUFFLE(3, 3, 0, 3));\
hash.c: ^
hash.c: hash.c:447:4: warning: implicit declaration of function '_mm_shuffle_epi32' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: TIX256(pmsg, ctx->gt;state[1], ctx->gt;state[0], ctx->gt;state[6], ctx->gt;state[8], _t0, _t1, _t2);
hash.c: ^
hash.c: hash.c:165:7: note: expanded from macro 'TIX256'
hash.c: t1 = _mm_shuffle_epi32(s0, _MM_SHUFFLE(3, 3, 0, 3));\
hash.c: ^
hash.c: hash.c:447:4: warning: implicit declaration of function '_mm_xor_si128' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: ...
Number of similar (compiler,implementation) pairs: 2, namely:
Compiler | Implementations
|
cc | ccalik/vperm |
clang -O3 | ccalik/vperm
|
Compiler output
Implementation: crypto_hash/fugue256/SSSE3
Compiler: cc
hash.c: In file included from hash.c:21:
hash.c: /usr/include/clang/3.3/tmmintrin.h:28:2: error: "SSSE3 instruction set not enabled"
hash.c: #error "SSSE3 instruction set not enabled"
hash.c: ^
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: ./fugue_256_ssse3_code.h:284:16: error: unknown type name '__m128i'
hash.c: void print_xmm(__m128i xmm_var, const char * s)
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: ...
Number of similar (compiler,implementation) pairs: 2, namely:
Compiler | Implementations
|
cc | SSSE3 |
clang -O3 | SSSE3
|
Compiler output
Implementation: crypto_hash/fugue256/SSE4.1
Compiler: cc
hash.c: In file included from hash.c:23:
hash.c: /usr/include/clang/3.3/smmintrin.h:28:2: error: "SSE4.1 instruction set not enabled"
hash.c: #error "SSE4.1 instruction set not enabled"
hash.c: ^
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: In file included from hash.c:24:
hash.c: ./fugue_256_sse4_code.h:344:16: error: unknown type name '__m128i'
hash.c: void print_xmm(__m128i xmm_var, const char * s)
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: ...
Number of similar (compiler,implementation) pairs: 2, namely:
Compiler | Implementations
|
cc | SSE4.1 |
clang -O3 | SSE4.1
|
Compiler output
Implementation: crypto_hash/fugue256/ANSI_opt32
Compiler: cc
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: 8, namely:
Compiler | Implementations
|
cc | ANSI_opt32 ANSI_opt64 |
clang -O3 | ANSI_opt32 ANSI_opt64 |
clang -O3 -mavx | ANSI_opt32 ANSI_opt64 |
clang -O3 -mavx2 | ANSI_opt32 ANSI_opt64
|
Compiler output
Implementation: crypto_hash/fugue256/SSSE3
Compiler: clang -O3 -mavx
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: 2, namely:
Compiler | Implementations
|
clang -O3 -mavx | SSSE3 |
clang -O3 -mavx2 | SSSE3
|
Compiler output
Implementation: crypto_hash/fugue256/SSE4.1
Compiler: clang -O3 -mavx
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: 2, namely:
Compiler | Implementations
|
clang -O3 -mavx | SSE4.1 |
clang -O3 -mavx2 | SSE4.1
|
Compiler output
Implementation: crypto_hash/fugue256/ccalik/aesni
Compiler: clang -O3 -mavx
hash.c: In file included from hash.c:26:
hash.c: /usr/include/clang/3.3/wmmintrin.h:30:3: error: "AES/PCLMUL instructions not enabled"
hash.c: # error "AES/PCLMUL instructions not enabled"
hash.c: ^
hash.c: hash.c:449:4: warning: implicit declaration of function '_mm_aesenclast_si128' is invalid in C99 [-Wimplicit-function-declaration]
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: assigning to '__m128i' from incompatible type 'int'
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:8: note: expanded from macro 'SUBSTITUTE'
hash.c: _t2 = _mm_aesenclast_si128(_t2, M128(_zero))
hash.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c:449:4: error: assigning to '__m128i' from incompatible type 'int'
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: ...
Number of similar (compiler,implementation) pairs: 2, namely:
Compiler | Implementations
|
clang -O3 -mavx | ccalik/aesni |
clang -O3 -mavx2 | ccalik/aesni
|