Implementation notes: amd64, wintermute, crypto_hash/keccakc256treed2
Computer: wintermute
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20140505
Operation: crypto_hash
Primitive: keccakc256treed2
Time | Implementation | Compiler | Benchmark date | SUPERCOP version |
13396 | sseu4 | clang -O3 -mavx2 | 20140508 | 20140505 |
13588 | sseu4 | clang -O3 -mavx | 20140508 | 20140505 |
15296 | sseu24 | clang -O3 -mavx | 20140508 | 20140505 |
15308 | sseu24 | clang -O3 -mavx2 | 20140508 | 20140505 |
Compiler output
Implementation: crypto_hash/keccakc256treed2/xopu24
Compiler: cc
DoublePermutation.c: DoublePermutation.c:507:5: warning: implicit declaration of function '_mm_roti_epi64' is invalid in C99 [-Wimplicit-function-declaration]
DoublePermutation.c: rounds
DoublePermutation.c: ^
DoublePermutation.c: ./KeccakF-1600-unrolling.macros:17:5: note: expanded from macro 'rounds'
DoublePermutation.c: thetaRhoPiChiIotaPrepareTheta( 0, A, E) \
DoublePermutation.c: ^
DoublePermutation.c: DoublePermutation.c:78:21: note: expanded from macro 'thetaRhoPiChiIotaPrepareTheta'
DoublePermutation.c: Da = XOR128(Cu, ROL64in128(Ce, 1)); \
DoublePermutation.c: ^
DoublePermutation.c: DoublePermutation.c:33:37: note: expanded from macro 'ROL64in128'
DoublePermutation.c: #define ROL64in128(a, o) _mm_roti_epi64(a, o)
DoublePermutation.c: ^
DoublePermutation.c: DoublePermutation.c:44:50: note: expanded from macro 'XOR128'
DoublePermutation.c: #define XOR128(a, b) _mm_xor_si128(a, b)
DoublePermutation.c: ^
DoublePermutation.c: DoublePermutation.c:507:5: error: passing 'int' to parameter of incompatible type '__m128i'
DoublePermutation.c: rounds
DoublePermutation.c: ^~~~~~
DoublePermutation.c: ./KeccakF-1600-unrolling.macros:17:5: note: expanded from macro 'rounds'
DoublePermutation.c: thetaRhoPiChiIotaPrepareTheta( 0, A, E) \
DoublePermutation.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DoublePermutation.c: DoublePermutation.c:78:21: note: expanded from macro 'thetaRhoPiChiIotaPrepareTheta'
DoublePermutation.c: Da = XOR128(Cu, ROL64in128(Ce, 1)); \
DoublePermutation.c: ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
DoublePermutation.c: DoublePermutation.c:33:37: note: expanded from macro 'ROL64in128'
DoublePermutation.c: ...
Number of similar (compiler,implementation) pairs: 4, namely:
Compiler | Implementations
|
cc | xopu24 |
clang -O3 | xopu24 |
clang -O3 -mavx | xopu24 |
clang -O3 -mavx2 | xopu24
|
Compiler output
Implementation: crypto_hash/keccakc256treed2/sseu24
Compiler: cc
DoublePermutation.c: DoublePermutation.c:507:5: warning: implicit declaration of function '_mm_shuffle_epi8' is invalid in C99 [-Wimplicit-function-declaration]
DoublePermutation.c: rounds
DoublePermutation.c: ^
DoublePermutation.c: ./KeccakF-1600-unrolling.macros:17:5: note: expanded from macro 'rounds'
DoublePermutation.c: thetaRhoPiChiIotaPrepareTheta( 0, A, E) \
DoublePermutation.c: ^
DoublePermutation.c: DoublePermutation.c:136:11: note: expanded from macro 'thetaRhoPiChiIotaPrepareTheta'
DoublePermutation.c: Bko = ROL64in128_8(A##mu); \
DoublePermutation.c: ^
DoublePermutation.c: DoublePermutation.c:38:37: note: expanded from macro 'ROL64in128_8'
DoublePermutation.c: #define ROL64in128_8(a) _mm_shuffle_epi8(a, CONST128(rho8))
DoublePermutation.c: ^
DoublePermutation.c: DoublePermutation.c:507:5: error: assigning to 'V128' (aka '__m128i') from incompatible type 'int'
DoublePermutation.c: rounds
DoublePermutation.c: ^~~~~~
DoublePermutation.c: ./KeccakF-1600-unrolling.macros:17:5: note: expanded from macro 'rounds'
DoublePermutation.c: thetaRhoPiChiIotaPrepareTheta( 0, A, E) \
DoublePermutation.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DoublePermutation.c: DoublePermutation.c:136:9: note: expanded from macro 'thetaRhoPiChiIotaPrepareTheta'
DoublePermutation.c: Bko = ROL64in128_8(A##mu); \
DoublePermutation.c: ^ ~~~~~~~~~~~~~~~~~~~
DoublePermutation.c: DoublePermutation.c:507:5: error: assigning to 'V128' (aka '__m128i') from incompatible type 'int'
DoublePermutation.c: rounds
DoublePermutation.c: ^~~~~~
DoublePermutation.c: ./KeccakF-1600-unrolling.macros:17:5: note: expanded from macro 'rounds'
DoublePermutation.c: ...
Number of similar (compiler,implementation) pairs: 2, namely:
Compiler | Implementations
|
cc | sseu24 |
clang -O3 | sseu24
|
Compiler output
Implementation: crypto_hash/keccakc256treed2/sseu4
Compiler: cc
DoublePermutation.c: DoublePermutation.c:507:5: warning: implicit declaration of function '_mm_shuffle_epi8' is invalid in C99 [-Wimplicit-function-declaration]
DoublePermutation.c: rounds
DoublePermutation.c: ^
DoublePermutation.c: ./KeccakF-1600-unrolling.macros:90:9: note: expanded from macro 'rounds'
DoublePermutation.c: thetaRhoPiChiIotaPrepareTheta(i , A, E) \
DoublePermutation.c: ^
DoublePermutation.c: DoublePermutation.c:136:11: note: expanded from macro 'thetaRhoPiChiIotaPrepareTheta'
DoublePermutation.c: Bko = ROL64in128_8(A##mu); \
DoublePermutation.c: ^
DoublePermutation.c: DoublePermutation.c:38:37: note: expanded from macro 'ROL64in128_8'
DoublePermutation.c: #define ROL64in128_8(a) _mm_shuffle_epi8(a, CONST128(rho8))
DoublePermutation.c: ^
DoublePermutation.c: DoublePermutation.c:507:5: error: assigning to 'V128' (aka '__m128i') from incompatible type 'int'
DoublePermutation.c: rounds
DoublePermutation.c: ^~~~~~
DoublePermutation.c: ./KeccakF-1600-unrolling.macros:90:9: note: expanded from macro 'rounds'
DoublePermutation.c: thetaRhoPiChiIotaPrepareTheta(i , A, E) \
DoublePermutation.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DoublePermutation.c: DoublePermutation.c:136:9: note: expanded from macro 'thetaRhoPiChiIotaPrepareTheta'
DoublePermutation.c: Bko = ROL64in128_8(A##mu); \
DoublePermutation.c: ^ ~~~~~~~~~~~~~~~~~~~
DoublePermutation.c: DoublePermutation.c:507:5: error: assigning to 'V128' (aka '__m128i') from incompatible type 'int'
DoublePermutation.c: rounds
DoublePermutation.c: ^~~~~~
DoublePermutation.c: ./KeccakF-1600-unrolling.macros:90:9: note: expanded from macro 'rounds'
DoublePermutation.c: ...
Number of similar (compiler,implementation) pairs: 2, namely:
Compiler | Implementations
|
cc | sseu4 |
clang -O3 | sseu4
|