Implementation notes: amd64, utrecht, crypto_hash/groestl256

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_hash
Primitive: groestl256
TimeImplementationCompilerBenchmark dateSUPERCOP version
37044core2duogcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
37377core2duogcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
37746core2duogcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
37791core2duogcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
38259opterongcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
38529opteron-unrolledgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
38628opterongcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
38673opterongcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
39024opterongcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
39114opteron-unrolledgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
39141opteron-unrolledgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
39258opteron-unrolledgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
45234sphlib-adaptedgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
46485sphlibgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
54342opt64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
54729sphlibgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
54756sphlib-adaptedgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
55836sphlib-adaptedgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
57159sphlib-adaptedgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
58860sphlib-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
60948mmxgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
62379sphlib-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
63135opt64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
64845sphlib-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
65934sphlib-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
68310opt64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
69210opt64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
74538mmxgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
75096mmxgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
77625vperm-intrgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
79344vperm-intrgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
79398vperm-intrgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
79992mmxgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
80334vperm-intrgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
86031sphlibgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
88506sphlibgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
109053vpermgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
109593vpermgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
109818vpermgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
110214vpermgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
137943opt32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
139374opt32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
139518opt32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
140058opt32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
18401432bit-2ktablegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
18615632bit-2ktablegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
18741632bit-2ktablegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
20298632bit-2ktablegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
23120132bit-bytesliced-c-fastgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
27332132bit-bytesliced-c-fastgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
32057132bit-bytesliced-c-fastgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
33424232bit-bytesliced-c-fastgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
33842732bit-bytesliced-c-smallgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
46215932bit-bytesliced-c-smallgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
47061932bit-bytesliced-c-smallgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
4750658bit_cgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
4836788bit_cgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
5044958bit_cgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
61551032bit-bytesliced-c-smallgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
7156808bit_cgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731

Test failure

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

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

Compiler output

Implementation: crypto_hash/groestl256/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:240: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:368:3: note: in expansion of macro 'Matrix_Transpose_A'
hash.c: Matrix_Transpose_A(xmm12, xmm13, xmm14, xmm15, xmm2, xmm6, xmm7, xmm0);
hash.c: ^
hash.c: groestl-intr-aes.h:241:6: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: i1 = _mm_shuffle_epi8(i1, t0);\
hash.c: ^
hash.c: groestl-intr-aes.h:368:3: note: in expansion of macro 'Matrix_Transpose_A'
hash.c: Matrix_Transpose_A(xmm12, xmm13, xmm14, xmm15, xmm2, xmm6, xmm7, xmm0);
hash.c: ^
hash.c: groestl-intr-aes.h:242: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/groestl256/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:9:
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:9:
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:9:0:
hash.c: groestl-intr-avx.h: In function 'TF512':
hash.c: groestl-intr-avx.h:202:6: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: a0 = _mm_aesenclast_si128(a0, b7);\
hash.c: ^
hash.c: groestl-intr-avx.h:224:3: note: in expansion of macro 'ROUND'
hash.c: ROUND(0, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7);\
hash.c: ^
hash.c: groestl-intr-avx.h:403:3: note: in expansion of macro 'ROUNDS_P_Q'
hash.c: ROUNDS_P_Q();
hash.c: ^
hash.c: groestl-intr-avx.h:204:6: error: incompatible types when assigning to type '__m128i' from type 'int'
hash.c: a1 = _mm_aesenclast_si128(a1, b7);\
hash.c: ^
hash.c: groestl-intr-avx.h:224:3: note: in expansion of macro 'ROUND'
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

Compiler output

Implementation: crypto_hash/groestl256/avx
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp/ccy09IRt.o: In function `test':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: /tmp/ccy09IRt.o: In function `doit':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: crypto_hash/groestl256/avx
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp/ccQBNPQ4.o: In function `test':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: /tmp/ccQBNPQ4.o: In function `doit':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: crypto_hash/groestl256/avx
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp/cceHB8cX.o: In function `doit':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: /tmp/cceHB8cX.o: In function `test':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: crypto_hash/groestl256/avx
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp/ccnp52IN.o: In function `test':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: /tmp/ccnp52IN.o: In function `doit':
try.c: try.c:(.text+0x...): undefined reference to `crypto_hash_groestl256_avx'
try.c: collect2: error: ld returned 1 exit status

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