Implementation notes: amd64, h2atom, crypto_hash/groestl512

Computer: h2atom
Microarchitecture: amd64; Bonnell (106ca)
Architecture: amd64
CPU ID: GenuineIntel-000106ca-bfe9fbff
SUPERCOP version: 20240107
Operation: crypto_hash
Primitive: groestl512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
22846650419 0 063410 828 896T:sphlibclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
22943850419 0 062234 828 896T:sphlibclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
23135253475 0 065306 828 896T:sphlib-adaptedclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
23203053475 0 066482 828 896T:sphlib-adaptedclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
24217749888 0 063330 812 960T:sphlib-adaptedgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
24257849731 0 061417 804 960T:sphlib-adaptedgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
24736348419 0 058484 820 896T:sphlibclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
24873046584 0 058265 804 960T:sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
25234851663 0 061748 820 896T:sphlib-adaptedclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
25430447952 0 061394 812 960T:sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
25564447888 0 060138 812 960T:sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
26065553344 0 065594 812 960T:sphlib-adaptedgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
27794250790 0 061594 828 896T:sphlibclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
28552754262 0 065082 828 896T:sphlib-adaptedclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
30354348321 0 061314 828 896T:sphlibclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
30441822371 0 033978 828 896T:sphlib-smallclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
30467322371 0 035154 828 896T:sphlib-smallclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
30819641880 0 052397 788 928T:sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
30864844715 0 055229 788 928T:sphlib-adaptedgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
31728751409 0 064418 828 896T:sphlib-adaptedclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
33150622816 0 035066 812 960T:sphlib-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
33921919888 0 029748 820 896T:sphlib-smallclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
34551421606 0 032426 828 896T:sphlib-smallclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
36253422515 0 034306 812 960T:opt32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
37066719249 0 152029701 788 2464T:vperm-intrgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
37388223344 0 035659 820 960T:opt32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
37425524656 0 038098 812 960T:sphlib-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
37756423429 0 152035057 804 2496T:vperm-intrgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
38614976421 0 089955 820 960T:mmxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
38911025520 0 039091 820 960T:opt32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
39027473457 0 085226 812 960T:mmxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
39131469867 0 083020 852 896T:mmxclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
39232175456 0 087779 820 960T:mmxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
39579424802 0 152038210 812 2496T:vperm-intrgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
39642024146 0 152036330 812 2496T:vperm-intrgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
39877267621 0 080772 852 896T:mmxclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
40098766813 0 078788 852 896T:mmxclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
40382669440 0 080428 852 896T:mmxclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
40603925485 0 230435579 828 3200T:vperm-intrclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
40610928201 0 230440361 836 3200T:vperm-intrclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
40613726777 0 230438177 836 3200T:vperm-intrclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
41202618271 0 028781 788 928T:sphlib-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
41376364936 0 075100 836 896T:mmxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
44897621037 0 032729 804 960T:sphlib-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
45547021905 0 034690 828 896T:sphlib-smallclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
45698527304 0 040524 852 896T:opt32clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
45717527240 0 039284 852 896T:opt32clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
46901273748 0 084334 796 928T:mmxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
49690242223 0 249653065 836 3392T:vperm-intrclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
50025624427 0 034628 836 896T:opt32clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
53813425861 0 036876 852 896T:opt32clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
54095522179 0 032790 796 928T:opt32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
62056927398 0 040620 852 896T:opt32clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
8307747742 0 021043 804 960T:32bit-bytesliced-c-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
9040235043 0 017962 828 896T:32bit-bytesliced-c-smallclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
9111893943 0 015690 828 896T:32bit-bytesliced-c-smallclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
11182545845 0 018762 828 896T:32bit-bytesliced-c-smallclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
15802572215 0 012196 820 896T:32bit-bytesliced-c-smallclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
17076632658 0 014763 804 960T:32bit-bytesliced-c-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
18193643579 0 014298 828 896T:32bit-bytesliced-c-smallclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231212
18865651932 0 012278 780 928T:32bit-bytesliced-c-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212
27325372785 0 014338 796 960T:32bit-bytesliced-c-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231212

Compiler output

Implementation: T:aesni
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: hash.c:104:12: warning: comparison of array 'ctx->chaining' equal to a null pointer is always false [-Wtautological-pointer-compare]
hash.c: if (ctx->chaining == NULL || ctx->buffer == NULL)
hash.c: ~~~~~^~~~~~~~ ~~~~
hash.c: hash.c:104:37: warning: comparison of array 'ctx->buffer' equal to a null pointer is always false [-Wtautological-pointer-compare]
hash.c: if (ctx->chaining == NULL || ctx->buffer == NULL)
hash.c: ~~~~~^~~~~~ ~~~~
hash.c: In file included from hash.c:13:
hash.c: ./groestl-asm-aes.h:851:8: error: invalid operand for instruction
hash.c: asm ("movaps xmm8, [rdi+0*16]");
hash.c: ^
hash.c: <inline asm>:1:16: note: instantiated into assembly here
hash.c: movaps xmm8, [rdi+0*16]
hash.c: ^~~~~~~~~~
hash.c: In file included from hash.c:13:
hash.c: ./groestl-asm-aes.h:852:8: error: invalid operand for instruction
hash.c: asm ("movaps xmm9, [rdi+1*16]");
hash.c: ^
hash.c: <inline asm>:1:16: note: instantiated into assembly here
hash.c: movaps xmm9, [rdi+1*16]
hash.c: ^~~~~~~~~~
hash.c: In file included from hash.c:13:
hash.c: ./groestl-asm-aes.h:853:8: error: invalid operand for instruction
hash.c: asm ("movaps xmm10, [rdi+2*16]");
hash.c: ^
hash.c: <inline asm>:1:16: note: instantiated into assembly here
hash.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aesni
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aesni
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aesni
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aesni
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aesni

Compiler output

Implementation: T:aesni
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): relocation R_X86_64_32S against symbol `TRANSP_MASK' can not be used when making a PIE object; recompile with -fPIE
try.c: /usr/bin/ld: failed to set dynamic section sizes: bad value
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: T:aesni-intr
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: In file included from hash.c:28:
hash.c: ./groestl-intr-aes.h:850:3: error: always_inline function '_mm_aesenclast_si128' requires target feature 'aes', but would be inlined into function 'TF1024' that is compiled without support for 'aes'
hash.c: ROUNDS_P();
hash.c: ^
hash.c: ./groestl-intr-aes.h:554:5: note: expanded from macro 'ROUNDS_P'
hash.c: SUBMIX(xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:527:8: note: expanded from macro 'SUBMIX'
hash.c: a0 = _mm_aesenclast_si128(a0, b0);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:850:3: error: always_inline function '_mm_aesenclast_si128' requires target feature 'aes', but would be inlined into function 'TF1024' that is compiled without support for 'aes'
hash.c: ./groestl-intr-aes.h:554:5: note: expanded from macro 'ROUNDS_P'
hash.c: SUBMIX(xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:528:8: note: expanded from macro 'SUBMIX'
hash.c: a1 = _mm_aesenclast_si128(a1, b0);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:850:3: error: always_inline function '_mm_aesenclast_si128' requires target feature 'aes', but would be inlined into function 'TF1024' that is compiled without support for 'aes'
hash.c: ./groestl-intr-aes.h:554:5: note: expanded from macro 'ROUNDS_P'
hash.c: SUBMIX(xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:529:8: note: expanded from macro 'SUBMIX'
hash.c: a2 = _mm_aesenclast_si128(a2, b0);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:850:3: error: always_inline function '_mm_aesenclast_si128' requires target feature 'aes', but would be inlined into function 'TF1024' that is compiled without support for 'aes'
hash.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aesni-intr
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aesni-intr
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aesni-intr
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aesni-intr

Compiler output

Implementation: T:aesni-intr
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: In file included from hash.c:28:
hash.c: ./groestl-intr-aes.h:786:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'INIT' that is compiled without support for 'ssse3'
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:8: note: expanded from macro 'Matrix_Transpose'
hash.c: i6 = _mm_shuffle_epi8(i6, t0);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:786:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'INIT' that is compiled without support for 'ssse3'
hash.c: ./groestl-intr-aes.h:632:8: note: expanded from macro 'Matrix_Transpose'
hash.c: i0 = _mm_shuffle_epi8(i0, t0);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:786:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'INIT' that is compiled without support for 'ssse3'
hash.c: ./groestl-intr-aes.h:633:8: note: expanded from macro 'Matrix_Transpose'
hash.c: i1 = _mm_shuffle_epi8(i1, t0);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:786:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'INIT' that is compiled without support for 'ssse3'
hash.c: ./groestl-intr-aes.h:634:8: note: expanded from macro 'Matrix_Transpose'
hash.c: i2 = _mm_shuffle_epi8(i2, t0);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:786:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'INIT' that is compiled without support for 'ssse3'
hash.c: ./groestl-intr-aes.h:635:8: note: expanded from macro 'Matrix_Transpose'
hash.c: i3 = _mm_shuffle_epi8(i3, t0);\
hash.c: ^
hash.c: ./groestl-intr-aes.h:786:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'INIT' that is compiled without support for 'ssse3'
hash.c: ./groestl-intr-aes.h:637:8: note: expanded from macro 'Matrix_Transpose'
hash.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aesni-intr

Compiler output

Implementation: T:aesni-intr
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: In file included from groestl-intr-aes.h:11,
hash.c: from hash.c:28:
hash.c: groestl-intr-aes.h: In function 'TF1024':
hash.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h:69:1: error: inlining failed in call to 'always_inline' '_mm_aesenclast_si128': target specific option mismatch
hash.c: 69 | _mm_aesenclast_si128 (__m128i __X, __m128i __Y)
hash.c: | ^~~~~~~~~~~~~~~~~~~~
hash.c: In file included from hash.c:28:
hash.c: groestl-intr-aes.h:534:8: note: called from here
hash.c: 534 | a7 = _mm_aesenclast_si128(a7, b0);\
hash.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: groestl-intr-aes.h:568:5: note: in expansion of macro 'SUBMIX'
hash.c: 568 | SUBMIX(xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15);\
hash.c: | ^~~~~~
hash.c: groestl-intr-aes.h:850:3: note: in expansion of macro 'ROUNDS_P'
hash.c: 850 | ROUNDS_P();
hash.c: | ^~~~~~~~
hash.c: In file included from groestl-intr-aes.h:11,
hash.c: from hash.c:28:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h:69:1: error: inlining failed in call to 'always_inline' '_mm_aesenclast_si128': target specific option mismatch
hash.c: 69 | _mm_aesenclast_si128 (__m128i __X, __m128i __Y)
hash.c: | ^~~~~~~~~~~~~~~~~~~~
hash.c: In file included from hash.c:28:
hash.c: groestl-intr-aes.h:533:8: note: called from here
hash.c: 533 | a6 = _mm_aesenclast_si128(a6, b0);\
hash.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: ...

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

Compiler output

Implementation: T:avx
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: hash.c:104:12: warning: comparison of array 'ctx->chaining' equal to a null pointer is always false [-Wtautological-pointer-compare]
hash.c: if (ctx->chaining == NULL || ctx->buffer == NULL)
hash.c: ~~~~~^~~~~~~~ ~~~~
hash.c: hash.c:104:37: warning: comparison of array 'ctx->buffer' equal to a null pointer is always false [-Wtautological-pointer-compare]
hash.c: if (ctx->chaining == NULL || ctx->buffer == NULL)
hash.c: ~~~~~^~~~~~ ~~~~
hash.c: In file included from hash.c:16:
hash.c: ./groestl-asm-avx.h:925:8: error: invalid operand for instruction
hash.c: asm ("vmovaps xmm8, [rdi+0*16]");
hash.c: ^
hash.c: <inline asm>:1:17: note: instantiated into assembly here
hash.c: vmovaps xmm8, [rdi+0*16]
hash.c: ^~~~~~~~~~
hash.c: In file included from hash.c:16:
hash.c: ./groestl-asm-avx.h:926:8: error: invalid operand for instruction
hash.c: asm ("vmovaps xmm9, [rdi+1*16]");
hash.c: ^
hash.c: <inline asm>:1:17: note: instantiated into assembly here
hash.c: vmovaps xmm9, [rdi+1*16]
hash.c: ^~~~~~~~~~
hash.c: In file included from hash.c:16:
hash.c: ./groestl-asm-avx.h:927:8: error: invalid operand for instruction
hash.c: asm ("vmovaps xmm10, [rdi+2*16]");
hash.c: ^
hash.c: <inline asm>:1:17: note: instantiated into assembly here
hash.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx

Compiler output

Implementation: T:avx-intr
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: In file included from hash.c:31:
hash.c: ./groestl-intr-avx.h:909:11: error: '__builtin_ia32_vinsertf128_si256' needs target feature avx
hash.c: ymm8 = insert_m128i_in_m256d(ymm8, xmm8, 0);
hash.c: ^
hash.c: ./groestl-intr-avx.h:36:67: note: expanded from macro 'insert_m128i_in_m256d'
hash.c: #define insert_m128i_in_m256d(ymm, xmm, pos) (_mm256_castsi256_pd(_mm256_insertf128_si256(_mm256_castpd_si256(ymm), xmm, pos)))
hash.c: ^
hash.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/avxintrin.h:4671:13: note: expanded from macro '_mm256_insertf128_si256'
hash.c: ((__m256i)__builtin_ia32_vinsertf128_si256((__v8si)(__m256i)(V1), \
hash.c: ^
hash.c: In file included from hash.c:31:
hash.c: ./groestl-intr-avx.h:909:11: error: always_inline function '_mm256_castpd_si256' requires target feature 'avx', but would be inlined into function 'TF1024' that is compiled without support for 'avx'
hash.c: ./groestl-intr-avx.h:36:91: note: expanded from macro 'insert_m128i_in_m256d'
hash.c: #define insert_m128i_in_m256d(ymm, xmm, pos) (_mm256_castsi256_pd(_mm256_insertf128_si256(_mm256_castpd_si256(ymm), xmm, pos)))
hash.c: ^
hash.c: ./groestl-intr-avx.h:909:11: error: AVX vector argument of type '__m256d' (vector of 4 'double' values) without 'avx' enabled changes the ABI
hash.c: ./groestl-intr-avx.h:36:91: note: expanded from macro 'insert_m128i_in_m256d'
hash.c: #define insert_m128i_in_m256d(ymm, xmm, pos) (_mm256_castsi256_pd(_mm256_insertf128_si256(_mm256_castpd_si256(ymm), xmm, pos)))
hash.c: ^
hash.c: ./groestl-intr-avx.h:909:11: error: always_inline function '_mm256_castsi256_pd' requires target feature 'avx', but would be inlined into function 'TF1024' that is compiled without support for 'avx'
hash.c: ./groestl-intr-avx.h:36:47: note: expanded from macro 'insert_m128i_in_m256d'
hash.c: #define insert_m128i_in_m256d(ymm, xmm, pos) (_mm256_castsi256_pd(_mm256_insertf128_si256(_mm256_castpd_si256(ymm), xmm, pos)))
hash.c: ^
hash.c: ./groestl-intr-avx.h:909:11: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
hash.c: ./groestl-intr-avx.h:36:47: note: expanded from macro 'insert_m128i_in_m256d'
hash.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx-intr
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx-intr
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx-intr
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx-intr

Compiler output

Implementation: T:avx-intr
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: In file included from hash.c:31:
hash.c: ./groestl-intr-avx.h:851:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'INIT' that is compiled without support for 'ssse3'
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-avx.h:725:8: note: expanded from macro 'Matrix_Transpose'
hash.c: i6 = _mm_shuffle_epi8(i6, t0);\
hash.c: ^
hash.c: ./groestl-intr-avx.h:851:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'INIT' that is compiled without support for 'ssse3'
hash.c: ./groestl-intr-avx.h:726:8: note: expanded from macro 'Matrix_Transpose'
hash.c: i0 = _mm_shuffle_epi8(i0, t0);\
hash.c: ^
hash.c: ./groestl-intr-avx.h:851:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'INIT' that is compiled without support for 'ssse3'
hash.c: ./groestl-intr-avx.h:727:8: note: expanded from macro 'Matrix_Transpose'
hash.c: i1 = _mm_shuffle_epi8(i1, t0);\
hash.c: ^
hash.c: ./groestl-intr-avx.h:851:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'INIT' that is compiled without support for 'ssse3'
hash.c: ./groestl-intr-avx.h:728:8: note: expanded from macro 'Matrix_Transpose'
hash.c: i2 = _mm_shuffle_epi8(i2, t0);\
hash.c: ^
hash.c: ./groestl-intr-avx.h:851:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'INIT' that is compiled without support for 'ssse3'
hash.c: ./groestl-intr-avx.h:729:8: note: expanded from macro 'Matrix_Transpose'
hash.c: i3 = _mm_shuffle_epi8(i3, t0);\
hash.c: ^
hash.c: ./groestl-intr-avx.h:851:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'INIT' that is compiled without support for 'ssse3'
hash.c: ./groestl-intr-avx.h:730:8: note: expanded from macro 'Matrix_Transpose'
hash.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx-intr

Compiler output

Implementation: T:avx-intr
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: In file included from hash.c:31:
hash.c: groestl-intr-avx.h: In function 'TF1024':
hash.c: groestl-intr-avx.h:909:8: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
hash.c: 909 | ymm8 = insert_m128i_in_m256d(ymm8, xmm8, 0);
hash.c: | ^
hash.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
hash.c: from groestl-intr-avx.h:12,
hash.c: from hash.c:31:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:1449:1: error: inlining failed in call to 'always_inline' '_mm256_castsi256_pd': target specific option mismatch
hash.c: 1449 | _mm256_castsi256_pd (__m256i __A)
hash.c: | ^~~~~~~~~~~~~~~~~~~
hash.c: In file included from hash.c:31:
hash.c: groestl-intr-avx.h:36:47: note: called from here
hash.c: 36 | #define insert_m128i_in_m256d(ymm, xmm, pos) (_mm256_castsi256_pd(_mm256_insertf128_si256(_mm256_castpd_si256(ymm), xmm, pos)))
hash.c: | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: groestl-intr-avx.h:925:11: note: in expansion of macro 'insert_m128i_in_m256d'
hash.c: 925 | ymm15 = insert_m128i_in_m256d(ymm15, xmm7, 1);
hash.c: | ^~~~~~~~~~~~~~~~~~~~~
hash.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
hash.c: from groestl-intr-avx.h:12,
hash.c: from hash.c:31:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:775:1: error: inlining failed in call to 'always_inline' '_mm256_insertf128_si256': target specific option mismatch
hash.c: 775 | _mm256_insertf128_si256 (__m256i __X, __m128i __Y, const int __O)
hash.c: | ^~~~~~~~~~~~~~~~~~~~~~~
hash.c: In file included from hash.c:31:
hash.c: ...

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

Compiler output

Implementation: T:core2duo
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): relocation R_X86_64_32S against symbol `T0' can not be used when making a PIE object; recompile with -fPIE
try.c: /usr/bin/ld: failed to set dynamic section sizes: bad value
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:core2duo
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:core2duo
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:core2duo
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:core2duo
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:core2duo
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opteron
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opteron
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opteron
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opteron
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opteron

Compiler output

Implementation: T:core2duo
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `OutputTransformation':
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:core2duo
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:core2duo
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:core2duo
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opteron
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opteron
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opteron

Compiler output

Implementation: T:core2duo
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `Transform.constprop.0':
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `Q1024ASM'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `OutputTransformation':
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `Final':
try.c: hash.c:(.text+0x...): undefined reference to `P1024ASM'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:core2duo T:opteron

Compiler output

Implementation: T:opt64
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: hash.c:191:3: warning: non-constant static local variable in inline function may be different in different files [-Wstatic-local-in-inline]
hash.c: static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:190:1: note: use 'static' to give inline function 'F1024' internal linkage
hash.c: inline void F1024(u64 *h, const u64 *m) {
hash.c: ^
hash.c: static
hash.c: hash.c:192:3: warning: non-constant static local variable in inline function may be different in different files [-Wstatic-local-in-inline]
hash.c: static u64 z[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:190:1: note: use 'static' to give inline function 'F1024' internal linkage
hash.c: inline void F1024(u64 *h, const u64 *m) {
hash.c: ^
hash.c: static
hash.c: hash.c:193:3: warning: non-constant static local variable in inline function may be different in different files [-Wstatic-local-in-inline]
hash.c: static u64 outQ[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:190:1: note: use 'static' to give inline function 'F1024' internal linkage
hash.c: inline void F1024(u64 *h, const u64 *m) {
hash.c: ^
hash.c: static
hash.c: hash.c:194:3: warning: non-constant static local variable in inline function may be different in different files [-Wstatic-local-in-inline]
hash.c: static u64 inP[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:190:1: note: use 'static' to give inline function 'F1024' internal linkage
hash.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt64
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt64
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt64
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt64
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt64

Compiler output

Implementation: T:opt64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c:194:14: warning: 'inP' is static but declared in inline function 'F1024' which is not static
hash.c: 194 | static u64 inP[COLS1024] __attribute__((aligned(16)));
hash.c: | ^~~
hash.c: hash.c:193:14: warning: 'outQ' is static but declared in inline function 'F1024' which is not static
hash.c: 193 | static u64 outQ[COLS1024] __attribute__((aligned(16)));
hash.c: | ^~~~
hash.c: hash.c:192:14: warning: 'z' is static but declared in inline function 'F1024' which is not static
hash.c: 192 | static u64 z[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
hash.c: hash.c:191:14: warning: 'y' is static but declared in inline function 'F1024' which is not static
hash.c: 191 | static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt64

Compiler output

Implementation: T:opt64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c:194:14: warning: 'inP' is static but declared in inline function 'F1024' which is not static
hash.c: 194 | static u64 inP[COLS1024] __attribute__((aligned(16)));
hash.c: | ^~~
hash.c: hash.c:193:14: warning: 'outQ' is static but declared in inline function 'F1024' which is not static
hash.c: 193 | static u64 outQ[COLS1024] __attribute__((aligned(16)));
hash.c: | ^~~~
hash.c: hash.c:192:14: warning: 'z' is static but declared in inline function 'F1024' which is not static
hash.c: 192 | static u64 z[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
hash.c: hash.c:191:14: warning: 'y' is static but declared in inline function 'F1024' which is not static
hash.c: 191 | static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `Update':
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `Final':
try.c: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F512'
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 -fPIC -fPIE T:opt64

Compiler output

Implementation: T:opt64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c:194:14: warning: 'inP' is static but declared in inline function 'F1024' which is not static
hash.c: 194 | static u64 inP[COLS1024] __attribute__((aligned(16)));
hash.c: | ^~~
hash.c: hash.c:193:14: warning: 'outQ' is static but declared in inline function 'F1024' which is not static
hash.c: 193 | static u64 outQ[COLS1024] __attribute__((aligned(16)));
hash.c: | ^~~~
hash.c: hash.c:192:14: warning: 'z' is static but declared in inline function 'F1024' which is not static
hash.c: 192 | static u64 z[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
hash.c: hash.c:191:14: warning: 'y' is static but declared in inline function 'F1024' which is not static
hash.c: 191 | static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): in function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/ld: hash.c:(.text+0x...): undefined reference to `F1024'
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 -fPIC -fPIE T:opt64

Compiler output

Implementation: T:vperm
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: hash.c:104:12: warning: comparison of array 'ctx->chaining' equal to a null pointer is always false [-Wtautological-pointer-compare]
hash.c: if (ctx->chaining == NULL || ctx->buffer == NULL)
hash.c: ~~~~~^~~~~~~~ ~~~~
hash.c: hash.c:104:37: warning: comparison of array 'ctx->buffer' equal to a null pointer is always false [-Wtautological-pointer-compare]
hash.c: if (ctx->chaining == NULL || ctx->buffer == NULL)
hash.c: ~~~~~^~~~~~ ~~~~
hash.c: In file included from hash.c:19:
hash.c: ./groestl-asm-vperm.h:1196:3: error: invalid operand for instruction
hash.c: VPERM_Transform_RoundConst();
hash.c: ^
hash.c: ./groestl-asm-vperm.h:1173:3: note: expanded from macro 'VPERM_Transform_RoundConst'
hash.c: VPERM_Transform_RoundConst_CNT2(0, 1);\
hash.c: ^
hash.c: ./groestl-asm-vperm.h:1158:8: note: expanded from macro 'VPERM_Transform_RoundConst_CNT2'
hash.c: asm ("movaps xmm0, [ROUND_CONST_P+"tostr(i)"*16]");\
hash.c: ^
hash.c: <inline asm>:1:15: note: instantiated into assembly here
hash.c: movaps xmm0, [ROUND_CONST_P+0*16]
hash.c: ^~~~~~~~~~~~~~~~~~~~
hash.c: In file included from hash.c:19:
hash.c: ./groestl-asm-vperm.h:1196:3: error: invalid operand for instruction
hash.c: VPERM_Transform_RoundConst();
hash.c: ^
hash.c: ./groestl-asm-vperm.h:1173:3: note: expanded from macro 'VPERM_Transform_RoundConst'
hash.c: VPERM_Transform_RoundConst_CNT2(0, 1);\
hash.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:vperm
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:vperm
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:vperm
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:vperm
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:vperm

Compiler output

Implementation: T:vperm
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_hash_groestl512.a(hash.o): relocation R_X86_64_32S against symbol `ROUND_CONST_P' can not be used when making a PIE object; recompile with -fPIE
try.c: /usr/bin/ld: failed to set dynamic section sizes: bad value
try.c: collect2: error: ld returned 1 exit status

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

Compiler output

Implementation: T:vperm-intr
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: hash.c:104:12: warning: comparison of array 'ctx->chaining' equal to a null pointer is always false [-Wtautological-pointer-compare]
hash.c: if (ctx->chaining == NULL || ctx->buffer == NULL)
hash.c: ~~~~~^~~~~~~~ ~~~~
hash.c: hash.c:104:37: warning: comparison of array 'ctx->buffer' equal to a null pointer is always false [-Wtautological-pointer-compare]
hash.c: if (ctx->chaining == NULL || ctx->buffer == NULL)
hash.c: ~~~~~^~~~~~ ~~~~
hash.c: 2 warnings generated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:vperm-intr
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:vperm-intr
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:vperm-intr
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:vperm-intr

Compiler output

Implementation: T:vperm-intr
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: In file included from hash.c:34:
hash.c: ./groestl-intr-vperm.h:1102:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'INIT' that is compiled without support for 'ssse3'
hash.c: VPERM_Transform_RoundConst();
hash.c: ^
hash.c: ./groestl-intr-vperm.h:1081:3: note: expanded from macro 'VPERM_Transform_RoundConst'
hash.c: VPERM_Transform_RoundConst_CNT2(0, 1);\
hash.c: ^
hash.c: ./groestl-intr-vperm.h:1070:3: note: expanded from macro 'VPERM_Transform_RoundConst_CNT2'
hash.c: VPERM_Transform_State(xmm0, xmm1, xmm2, xmm3, VPERM_IPT, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10);\
hash.c: ^
hash.c: ./groestl-intr-vperm.h:133:3: note: expanded from macro 'VPERM_Transform_State'
hash.c: VPERM_Transform_No_Const(a0, a1, t0, t1, t2, t3, c0, c1, c2);\
hash.c: ^
hash.c: ./groestl-intr-vperm.h:88:8: note: expanded from macro 'VPERM_Transform_No_Const'
hash.c: t2 = _mm_shuffle_epi8(t2, a0);\
hash.c: ^
hash.c: ./groestl-intr-vperm.h:1102:3: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'INIT' that is compiled without support for 'ssse3'
hash.c: ./groestl-intr-vperm.h:1081:3: note: expanded from macro 'VPERM_Transform_RoundConst'
hash.c: VPERM_Transform_RoundConst_CNT2(0, 1);\
hash.c: ^
hash.c: ./groestl-intr-vperm.h:1070:3: note: expanded from macro 'VPERM_Transform_RoundConst_CNT2'
hash.c: VPERM_Transform_State(xmm0, xmm1, xmm2, xmm3, VPERM_IPT, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10);\
hash.c: ^
hash.c: ./groestl-intr-vperm.h:133:3: note: expanded from macro 'VPERM_Transform_State'
hash.c: VPERM_Transform_No_Const(a0, a1, t0, t1, t2, t3, c0, c1, c2);\
hash.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:vperm-intr