Implementation notes: amd64, sliver, crypto_hash/keccakc256treed2

Computer: sliver
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160731
Operation: crypto_hash
Primitive: keccakc256treed2
TimeImplementationCompilerBenchmark dateSUPERCOP version
31032sseu24clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072420160718
32538sseu4clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072420160718

Compiler output

Implementation: crypto_hash/keccakc256treed2/xopu24
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
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: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments xopu24

Compiler output

Implementation: crypto_hash/keccakc256treed2/sseu24
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-651b15.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp/try-anything-66786c.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

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

Compiler output

Implementation: crypto_hash/keccakc256treed2/sseu4
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-c09845.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp/try-anything-6a2094.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

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

Compiler output

Implementation: crypto_hash/keccakc256treed2/sseu24
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
DoublePermutation.c: DoublePermutation.c:17:23: error: x86intrin.h: No such file or directory
DoublePermutation.c: In file included from DoublePermutation.c:18:
DoublePermutation.c: DoublePermutation.h:18: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'V128'
DoublePermutation.c: DoublePermutation.h:20: error: expected ')' before '*' token
DoublePermutation.c: DoublePermutation.h:21: error: expected ')' before '*' token
DoublePermutation.c: DoublePermutation.h:22: error: expected ')' before '*' token
DoublePermutation.c: DoublePermutation.h:23: error: expected ')' before '*' token
DoublePermutation.c: DoublePermutation.h:24: error: expected ')' before '*' token
DoublePermutation.c: DoublePermutation.h:25: error: expected ')' before '*' token
DoublePermutation.c: DoublePermutation.c:499: error: expected ')' before '*' token
DoublePermutation.c: DoublePermutation.c:513: error: expected ')' before '*' token
DoublePermutation.c: DoublePermutation.c:527: error: expected ')' before '*' token
DoublePermutation.c: DoublePermutation.c:541: error: expected ')' before '*' token
DoublePermutation.c: DoublePermutation.c:555: error: expected ')' before '*' token
DoublePermutation.c: DoublePermutation.c:569: error: expected ')' before '*' token

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