Implementation notes: amd64, utrecht, crypto_hash/groestl512

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: groestl512
TimeImplementationCompilerBenchmark dateSUPERCOP version
58068core2duogcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
58410core2duogcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
59094core2duogcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
59193core2duogcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
75969sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
77220sphlib-adaptedgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
83547opt64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
94320vpermgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
94320vpermgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
94464vpermgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
96642vpermgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
97578opterongcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
98253opterongcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
98847opterongcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
99306opterongcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
103050vperm-intrgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
103203vperm-intrgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
104598vperm-intrgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
104823vperm-intrgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
107856sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
108315sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
109845sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
121257sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
121437sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
122598sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
124434opt64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
126693sphlib-adaptedgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
127269sphlib-adaptedgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
127548mmxgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
129726mmxgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
131229sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
131634mmxgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
133848sphlib-adaptedgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
186309opt64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
188541opt64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
192492mmxgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
208692opt32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
211959opt32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
315333opt32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
320778opt32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
63999032bit-bytesliced-c-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
95117432bit-bytesliced-c-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
96156932bit-bytesliced-c-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
97175732bit-bytesliced-c-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731

Test failure

Implementation: crypto_hash/groestl512/aesni
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
error 111

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

Compiler output

Implementation: crypto_hash/groestl512/aesni-intr
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: In file included from groestl-intr-aes.h:10:0,
hash.c: from hash.c:28:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/smmintrin.h:31:3: error: #error "SSE4.1 instruction set not enabled"
hash.c: # error "SSE4.1 instruction set not enabled"
hash.c: ^
hash.c: In file included from groestl-intr-aes.h:11:0,
hash.c: from hash.c:28:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
hash.c: # error "AES/PCLMUL instructions not enabled"
hash.c: ^
hash.c: In file included from hash.c:28:0:
hash.c: groestl-intr-aes.h: In function 'INIT':
hash.c: groestl-intr-aes.h:629:6: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: i6 = _mm_shuffle_epi8(i6, t0);\
hash.c: ^
hash.c: groestl-intr-aes.h:784:3: note: in expansion of macro 'Matrix_Transpose'
hash.c: Matrix_Transpose(xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7);
hash.c: ^
hash.c: groestl-intr-aes.h:630:6: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: i0 = _mm_shuffle_epi8(i0, t0);\
hash.c: ^
hash.c: groestl-intr-aes.h:784:3: note: in expansion of macro 'Matrix_Transpose'
hash.c: Matrix_Transpose(xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7);
hash.c: ^
hash.c: groestl-intr-aes.h:631:6: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: ...

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

Compiler output

Implementation: crypto_hash/groestl512/avx-intr
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hash.c: In file included from groestl-intr-avx.h:10:0,
hash.c: from hash.c:31:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/smmintrin.h:31:3: error: #error "SSE4.1 instruction set not enabled"
hash.c: # error "SSE4.1 instruction set not enabled"
hash.c: ^
hash.c: In file included from groestl-intr-avx.h:11:0,
hash.c: from hash.c:31:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
hash.c: # error "AES/PCLMUL instructions not enabled"
hash.c: ^
hash.c: In file included from hash.c:31:0:
hash.c: groestl-intr-avx.h:27:1: error: unknown type name '__m256d'
hash.c: __m256d ALL_1B;
hash.c: ^
hash.c: In file included from hash.c:31:0:
hash.c: groestl-intr-avx.h: In function 'TF1024':
hash.c: groestl-intr-avx.h:868:3: error: unknown type name '__m256d'
hash.c: static __m256d ymm0, ymm1, ymm2, ymm3, ymm4, ymm5, ymm6, ymm7;
hash.c: ^
hash.c: groestl-intr-avx.h:869:3: error: unknown type name '__m256d'
hash.c: static __m256d ymm8, ymm9, ymm10, ymm11, ymm12, ymm13, ymm14, ymm15;
hash.c: ^
hash.c: groestl-intr-avx.h:870:3: error: unknown type name '__m256d'
hash.c: static __m256d ymmJ;
hash.c: ^
hash.c: ...

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