Implementation notes: armeabi, tinker, crypto_hash/groestl256

Computer: tinker
Microarchitecture: armeabi; Cortex-A17 (410fc0d1)
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20240107
Operation: crypto_hash
Primitive: groestl256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
9492714732 0 023325 388 752T:arm11gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
9513514592 0 022449 388 752T:arm11gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
9516715636 0 026182 416 752T:arm11clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012820240107
9701314274 0 020877 380 744T:arm11gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
9824814532 0 022200 384 744T:arm11gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
14602650838 0 057449 376 744T:sphlib-adaptedgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
14752948890 0 055493 376 744T:sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
15180720738 0 027341 376 744T:sphlib-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
15430020461 0 027189 384 744T:opt32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
15471922745 0 030504 388 744T:opt32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
15593924509 0 033217 392 752T:opt32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
15611523117 0 031089 392 752T:opt32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
15859522710 0 030417 384 744T:sphlib-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
16402857350 0 065065 384 744T:sphlib-adaptedgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
16408554234 0 061941 384 744T:sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
16981229716 0 040126 412 752T:sphlib-smallclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012820240107
1902889032 0 016889 384 752T:32bit-2ktablegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
1904879048 0 017641 384 752T:32bit-2ktablegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
19310025280 0 033873 384 752T:sphlib-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
19797330357 0 040964 424 752T:opt32clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012820240107
20119824932 0 032789 384 752T:sphlib-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
20217274584 0 084986 412 752T:sphlibclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012820240107
20406277896 0 088306 412 752T:sphlib-adaptedclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012820240107
20675665368 0 073229 384 752T:sphlib-adaptedgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
21115864040 0 072629 384 752T:sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
21471662672 0 070525 384 752T:sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
2148647471 0 014077 376 744T:32bit-2ktablegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
21956667008 0 075605 384 752T:sphlib-adaptedgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
2315469028 0 016692 380 744T:32bit-2ktablegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
24210811151 0 021650 412 752T:32bit-2ktableclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012820240107
28233910404 0 019005 384 752T:32bit-bytesliced-c-fastgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
2989205900 0 016402 412 752T:32bit-bytesliced-c-fastclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012820240107
3036463672 0 011537 384 752T:32bit-bytesliced-c-fastgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
3163345400 0 015950 412 752T:32bit-bytesliced-c-smallclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012820240107
3609454172 0 012773 384 752T:32bit-bytesliced-c-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
3646394016 0 014554 412 752T:8bit_cclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012820240107
3698031800 0 08413 376 744T:32bit-bytesliced-c-fastgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
3776744028 0 012613 384 752T:8bit_cgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
3801413820 0 011669 384 752T:8bit_cgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
3825472336 0 010008 380 744T:32bit-bytesliced-c-fastgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
4588233308 0 09905 376 744T:8bit_cgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
4615673776 0 011477 384 744T:8bit_cgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
5527631856 0 09721 384 752T:32bit-bytesliced-c-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
6896041312 0 07925 376 744T:32bit-bytesliced-c-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107
8991722020 0 09692 380 744T:32bit-bytesliced-c-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012820240107

Test failure

Implementation: T:neon-bitslice
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 15, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon-bitslice
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:neon-bitslice
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:neon-bitslice
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:neon-bitslice
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:neon-bitslice
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon-table T:thumb-asm-fast
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:thumb-asm-fast
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:thumb-asm-fast
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:thumb-asm-fast
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:thumb-asm-fast
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:thumb-asm-small
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:thumb-asm-small
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:thumb-asm-small
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:thumb-asm-small

Test failure

Implementation: T:thumb-asm-small
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 142
Alarm clock

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:thumb-asm-small

Compiler output

Implementation: T:arm11
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: hash.c:31:5: warning: the pointer incremented by 274877906880 refers past the last possible element for an array in 32-bit address space containing 8-bit (1-byte) elements (max possible 4294967296 elements) [-Warray-bounds]
hash.c: in += 0x3fffffffc0ULL;
hash.c: ^ ~~~~~~~~~~~~~~~
hash.c: hash.c:18:37: note: array 'in' declared here
hash.c: int crypto_hash(unsigned char *out, const unsigned char *in, unsigned long long inlen)
hash.c: ^
hash.c: 1 warning generated.
try.c: /usr/bin/arm-linux-gnueabihf-ld: warning: qloop.o: missing .note.GNU-stack section implies executable stack
try.c: /usr/bin/arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
try.c: /usr/bin/arm-linux-gnueabihf-ld: warning: qloop.o: missing .note.GNU-stack section implies executable stack
try.c: /usr/bin/arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
measure.c: /usr/bin/arm-linux-gnueabihf-ld: warning: qloop.o: missing .note.GNU-stack section implies executable stack
measure.c: /usr/bin/arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker

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

Compiler output

Implementation: T:arm11
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: warning: qloop.o: missing .note.GNU-stack section implies executable stack
try.c: /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
try.c: /usr/bin/ld: warning: qloop.o: missing .note.GNU-stack section implies executable stack
try.c: /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
measure.c: /usr/bin/ld: warning: qloop.o: missing .note.GNU-stack section implies executable stack
measure.c: /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker

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

Compiler output

Implementation: T:arm32
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
groestl.c: groestl.c:193:5: error: symbol 'T0up' is already defined
groestl.c: DEFINE_TABLES;
groestl.c: ^
groestl.c: ./groestl_tables_asm.h:45:14: note: expanded from macro 'DEFINE_TABLES'
groestl.c: "\n T0up: "\
groestl.c: ^
groestl.c: <inline asm>:3:2: note: instantiated into assembly here
groestl.c: T0up:
groestl.c: ^
groestl.c: groestl.c:193:5: error: symbol 'T0dn' is already defined
groestl.c: DEFINE_TABLES;
groestl.c: ^
groestl.c: ./groestl_tables_asm.h:302:14: note: expanded from macro 'DEFINE_TABLES'
groestl.c: "\n T0dn: "\
groestl.c: ^
groestl.c: <inline asm>:260:2: note: instantiated into assembly here
groestl.c: T0dn:
groestl.c: ^
groestl.c: groestl.c:193:5: error: symbol 'T1up' is already defined
groestl.c: DEFINE_TABLES;
groestl.c: ^
groestl.c: ./groestl_tables_asm.h:559:14: note: expanded from macro 'DEFINE_TABLES'
groestl.c: "\n T1up: "\
groestl.c: ^
groestl.c: <inline asm>:517:2: note: instantiated into assembly here
groestl.c: ...

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

Compiler output

Implementation: T:arm32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
groestl.c: /tmp/ccdgfZYl.s: Assembler messages:
groestl.c: /tmp/ccdgfZYl.s:3052: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccdgfZYl.s:3878: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccdgfZYl.s:5677: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccdgfZYl.s:7303: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccdgfZYl.s:8298: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccdgfZYl.s:10085: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'

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

Compiler output

Implementation: T:arm32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
groestl.c: /tmp/cch393R1.s: Assembler messages:
groestl.c: /tmp/cch393R1.s:3106: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/cch393R1.s:3932: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/cch393R1.s:5796: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/cch393R1.s:7422: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/cch393R1.s:8496: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/cch393R1.s:10241: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'

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

Compiler output

Implementation: T:arm32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
groestl.c: /tmp/ccUM9waf.s: Assembler messages:
groestl.c: /tmp/ccUM9waf.s:3055: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccUM9waf.s:3881: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccUM9waf.s:5675: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccUM9waf.s:7301: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccUM9waf.s:8284: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccUM9waf.s:10050: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'

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

Compiler output

Implementation: T:arm32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
groestl.c: /tmp/ccExuHNk.s: Assembler messages:
groestl.c: /tmp/ccExuHNk.s:3045: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccExuHNk.s:3871: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccExuHNk.s:5627: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccExuHNk.s:7253: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccExuHNk.s:8998: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'
groestl.c: /tmp/ccExuHNk.s:9973: Error: thumb conditional instruction should be in IT block -- `addne fp,fp,#2'

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

Compiler output

Implementation: T:neon-bitslice
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: hash.c:52:5: warning: the pointer incremented by 274877906880 refers past the last possible element for an array in 32-bit address space containing 8-bit (1-byte) elements (max possible 4294967296 elements) [-Warray-bounds]
hash.c: in += 0x3fffffffc0ULL;
hash.c: ^ ~~~~~~~~~~~~~~~
hash.c: hash.c:31:37: note: array 'in' declared here
hash.c: int crypto_hash(unsigned char *out, const unsigned char *in, unsigned long long inlen)
hash.c: ^
hash.c: 1 warning generated.
try.c: /usr/bin/arm-linux-gnueabihf-ld: warning: compress.o: missing .note.GNU-stack section implies executable stack
try.c: /usr/bin/arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker

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

Compiler output

Implementation: T:neon-bitslice
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c: In function ‘crypto_hash_groestl256_neon_bitslice_timingleaks’:
hash.c: hash.c:40:12: warning: iteration 64 invokes undefined behavior [-Waggressive-loop-optimizations]
hash.c: 40 | ctx[i] = 0;
hash.c: | ~~~~~~~^~~
hash.c: hash.c:39:12: note: within this loop
hash.c: 39 | for(i=0;i<STATEBYTES*2;i++)
hash.c: | ~^~~~~~~~~~~~~
hash.c: hash.c:40:12: warning: ‘__builtin_memset’ writing 128 bytes into a region of size 64 overflows the destination [-Wstringop-overflow=]
hash.c: 40 | ctx[i] = 0;
hash.c: | ~~~~~~~^~~
hash.c: hash.c:33:43: note: destination object ‘ctx’ of size 64
hash.c: 33 | static __attribute__ ((aligned(32))) u8 ctx[STATEBYTES];
hash.c: | ^~~
try.c: /usr/bin/ld: warning: compress.o: missing .note.GNU-stack section implies executable stack
try.c: /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker

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

Compiler output

Implementation: T:neon-bitslice
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c: In function ‘crypto_hash_groestl256_neon_bitslice_timingleaks’:
hash.c: hash.c:40:12: warning: iteration 64 invokes undefined behavior [-Waggressive-loop-optimizations]
hash.c: 40 | ctx[i] = 0;
hash.c: | ~~~~~~~^~~
hash.c: hash.c:39:12: note: within this loop
hash.c: 39 | for(i=0;i<STATEBYTES*2;i++)
hash.c: | ~^~~~~~~~~~~~~
try.c: /usr/bin/ld: warning: compress.o: missing .note.GNU-stack section implies executable stack
try.c: /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker

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

Compiler output

Implementation: T:neon-table
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: hash.c:46:5: warning: the pointer incremented by 274877906880 refers past the last possible element for an array in 32-bit address space containing 8-bit (1-byte) elements (max possible 4294967296 elements) [-Warray-bounds]
hash.c: in += 0x3fffffffc0ULL;
hash.c: ^ ~~~~~~~~~~~~~~~
hash.c: hash.c:30:37: note: array 'in' declared here
hash.c: int crypto_hash(unsigned char *out, const unsigned char *in, unsigned long long inlen)
hash.c: ^
hash.c: hash.c:24:5: warning: inline asm clobber list contains reserved registers: D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, D28, D29, D30, D31 [-Winline-asm]
hash.c: COMPRESS(ctx, ctx + STATEBYTES, input);
hash.c: ^
hash.c: ./groestl_asm_compress.h:13:5: note: expanded from macro 'COMPRESS'
hash.c: ".arm \n"\
hash.c: ^
hash.c: hash.c:24:5: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour.
hash.c: ./groestl_asm_compress.h:13:5: note: expanded from macro 'COMPRESS'
hash.c: ".arm \n"\
hash.c: ^
hash.c: hash.c:24:5: warning: inline asm clobber list contains reserved registers: D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, D28, D29, D30, D31 [-Winline-asm]
hash.c: COMPRESS(ctx, ctx + STATEBYTES, input);
hash.c: ^
hash.c: ./groestl_asm_compress.h:13:5: note: expanded from macro 'COMPRESS'
hash.c: ".arm \n"\
hash.c: ^
hash.c: hash.c:24:5: note: Reserved registers on the clobber list may not be preserved across the asm statement, and clobbering them may lead to undefined behaviour.
hash.c: ./groestl_asm_compress.h:13:5: note: expanded from macro 'COMPRESS'
hash.c: ".arm \n"\
hash.c: ...

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

Compiler output

Implementation: T:neon-table
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: In file included from hash.c:17:
hash.c: hash.c: In function ‘loopcompress’:
hash.c: groestl_asm_compress.h:12:3: error: ‘asm’ operand has impossible constraints
hash.c: 12 | asm volatile (\
hash.c: | ^~~
hash.c: hash.c:24:5: note: in expansion of macro ‘COMPRESS’
hash.c: 24 | COMPRESS(ctx, ctx + STATEBYTES, input);
hash.c: | ^~~~~~~~

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

Compiler output

Implementation: T:neon-vperm
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: hash.c:50:5: warning: the pointer incremented by 274877906880 refers past the last possible element for an array in 32-bit address space containing 8-bit (1-byte) elements (max possible 4294967296 elements) [-Warray-bounds]
hash.c: in += 0x3fffffffc0ULL;
hash.c: ^ ~~~~~~~~~~~~~~~
hash.c: hash.c:29:37: note: array 'in' declared here
hash.c: int crypto_hash(unsigned char *out, const unsigned char *in, unsigned long long inlen)
hash.c: ^
hash.c: 1 warning generated.
vperm-neon.S: vperm-neon.S:1037:1: error: invalid instruction
vperm-neon.S: Matrix_TRANSPOSE_A 12, 13, 14, 15
vperm-neon.S: ^
vperm-neon.S: <instantiation>:8:7: error: expected absolute expression
vperm-neon.S: .if first == first
vperm-neon.S: ^
vperm-neon.S: <instantiation>:24:3: note: while in macro instantiation
vperm-neon.S: TRANSFORM_FIRST_LAST_ROW_CONSTS first, 0, 1, 2, 3, 4, 5, 6, 7, 12, 8, 9, 10, 11, 13, 14, 4, 5, 6, 7, 8
vperm-neon.S: ^
vperm-neon.S: vperm-neon.S:1061:1: note: while in macro instantiation
vperm-neon.S: VPERM_INIT_TRANSFORM_ROUND_CONST 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 4, 5, 6, 7, 8
vperm-neon.S: ^
vperm-neon.S: <instantiation>:11:11: error: expected absolute expression
vperm-neon.S: .elseif first == last
vperm-neon.S: ^
vperm-neon.S: <instantiation>:24:3: note: while in macro instantiation
vperm-neon.S: TRANSFORM_FIRST_LAST_ROW_CONSTS first, 0, 1, 2, 3, 4, 5, 6, 7, 12, 8, 9, 10, 11, 13, 14, 4, 5, 6, 7, 8
vperm-neon.S: ^
vperm-neon.S: vperm-neon.S:1061:1: note: while in macro instantiation
vperm-neon.S: VPERM_INIT_TRANSFORM_ROUND_CONST 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 4, 5, 6, 7, 8
vperm-neon.S: ^
vperm-neon.S: <instantiation>:16:5: error: .error directive invoked in source file
vperm-neon.S: .error @Wrong parameter given, abort.
vperm-neon.S: ^
vperm-neon.S: <instantiation>:24:3: note: while in macro instantiation
vperm-neon.S: ...

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

Compiler output

Implementation: T:neon-vperm
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c: In function ‘crypto_hash_groestl256_neon_vperm_timingleaks’:
hash.c: hash.c:38:12: warning: iteration 64 invokes undefined behavior [-Waggressive-loop-optimizations]
hash.c: 38 | ctx[i] = 0;
hash.c: | ~~~~~~~^~~
hash.c: hash.c:37:12: note: within this loop
hash.c: 37 | for(i=0;i<STATEBYTES*2;i++)
hash.c: | ~^~~~~~~~~~~~~
hash.c: hash.c:38:12: warning: ‘__builtin_memset’ writing 128 bytes into a region of size 64 overflows the destination [-Wstringop-overflow=]
hash.c: 38 | ctx[i] = 0;
hash.c: | ~~~~~~~^~~
hash.c: hash.c:31:43: note: destination object ‘ctx’ of size 64
hash.c: 31 | static __attribute__ ((aligned(32))) u8 ctx[STATEBYTES];
hash.c: | ^~~
vperm-neon.S: vperm-neon.S: Assembler messages:
vperm-neon.S: vperm-neon.S:911: Error: expected symbol name
vperm-neon.S: vperm-neon.S:922: Error: expected symbol name

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

Compiler output

Implementation: T:neon-vperm
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c: In function ‘crypto_hash_groestl256_neon_vperm_timingleaks’:
hash.c: hash.c:38:12: warning: iteration 64 invokes undefined behavior [-Waggressive-loop-optimizations]
hash.c: 38 | ctx[i] = 0;
hash.c: | ~~~~~~~^~~
hash.c: hash.c:37:12: note: within this loop
hash.c: 37 | for(i=0;i<STATEBYTES*2;i++)
hash.c: | ~^~~~~~~~~~~~~
vperm-neon.S: vperm-neon.S: Assembler messages:
vperm-neon.S: vperm-neon.S:911: Error: expected symbol name
vperm-neon.S: vperm-neon.S:922: Error: expected symbol name

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

Compiler output

Implementation: T:opt64
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: /usr/bin/arm-linux-gnueabihf-ld: libcrypto_hash_groestl256.a(hash.o): in function `Transform':
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/arm-linux-gnueabihf-ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/arm-linux-gnueabihf-ld: libcrypto_hash_groestl256.a(hash.o): in function `Update':
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/arm-linux-gnueabihf-ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/arm-linux-gnueabihf-ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/arm-linux-gnueabihf-ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/arm-linux-gnueabihf-ld: libcrypto_hash_groestl256.a(hash.o): in function `Final':
try.c: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/arm-linux-gnueabihf-ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: /usr/bin/arm-linux-gnueabihf-ld: hash.c:(.text+0x...): undefined reference to `F512'
try.c: /usr/bin/arm-linux-gnueabihf-ld: hash.c:(.text+0x...): undefined reference to `F1024'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
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
try.c: /usr/bin/ld: libcrypto_hash_groestl256.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
try.c: /usr/bin/ld: libcrypto_hash_groestl256.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_groestl256.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 `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: /usr/bin/ld: libcrypto_hash_groestl256.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
try.c: /usr/bin/ld: libcrypto_hash_groestl256.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:thumb-asm-fast
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: /usr/bin/arm-linux-gnueabihf-ld: warning: groestl_asm.o: missing .note.GNU-stack section implies executable stack
try.c: /usr/bin/arm-linux-gnueabihf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:thumb-asm-fast T:thumb-asm-small

Compiler output

Implementation: T:thumb-asm-fast
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: warning: groestl_asm.o: missing .note.GNU-stack section implies executable stack
try.c: /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker

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

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: In file included from ./groestl-intr-vperm.h:13:
hash.c: /usr/lib/llvm-14/lib/clang/14.0.6/include/tmmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
hash.c: #error "This header is only meant to be used on x86 and x64 architecture"
hash.c: ^
hash.c: In file included from hash.c:34:
hash.c: In file included from ./groestl-intr-vperm.h:13:
hash.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.6/include/tmmintrin.h:17:
hash.c: /usr/lib/llvm-14/lib/clang/14.0.6/include/pmmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
hash.c: #error "This header is only meant to be used on x86 and x64 architecture"
hash.c: ^
hash.c: In file included from hash.c:34:
hash.c: In file included from ./groestl-intr-vperm.h:13:
hash.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.6/include/tmmintrin.h:17:
hash.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.6/include/pmmintrin.h:17:
hash.c: /usr/lib/llvm-14/lib/clang/14.0.6/include/emmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
hash.c: #error "This header is only meant to be used on x86 and x64 architecture"
hash.c: ^
hash.c: In file included from hash.c:34:
hash.c: In file included from ./groestl-intr-vperm.h:13:
hash.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.6/include/tmmintrin.h:17:
hash.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.6/include/pmmintrin.h:17:
hash.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.6/include/emmintrin.h:17:
hash.c: /usr/lib/llvm-14/lib/clang/14.0.6/include/xmmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
hash.c: #error "This header is only meant to be used on x86 and x64 architecture"
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

Compiler output

Implementation: T:vperm-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:34:
hash.c: groestl-intr-vperm.h:13:10: fatal error: tmmintrin.h: No such file or directory
hash.c: 13 | #include <tmmintrin.h>
hash.c: | ^~~~~~~~~~~~~
hash.c: compilation terminated.

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