Implementation notes: amd64, titan0, crypto_hash/mgrostl256
Computer: titan0
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_hash
Primitive: mgrostl256
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
65972 | 44727 0 0 | 34517 820 960 | T:opt-32 | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
66638 | 43732 0 0 | 33508 812 960 | T:opt-32 | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
67080 | 47991 0 0 | 38461 820 960 | T:opt-32 | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
72826 | 45222 0 0 | 33240 796 928 | T:opt-32 | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
75112 | 53292 0 0 | 37642 884 896 | T:opt-32 | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
75484 | 56946 0 0 | 41866 884 896 | T:opt-32 | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
76064 | 55814 0 0 | 42506 884 928 | T:opt-32 | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
77859 | 56385 0 0 | 43186 884 928 | T:opt-32 | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
78473 | 50304 0 0 | 36690 868 960 | T:opt-32 | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
1460901 | 17103 384 0 | 30161 1268 896 | T:ref | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
1473375 | 51199 384 0 | 65713 1268 928 | T:ref | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
1491961 | 29743 384 0 | 43977 1268 928 | T:ref | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
1516073 | 4342 384 0 | 15753 1252 960 | T:ref | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
1563219 | 5797 384 0 | 16569 1268 896 | T:ref | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
2029529 | 14574 384 0 | 28516 1204 960 | T:ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
2081841 | 5454 384 0 | 17332 1204 960 | T:ref | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
2936115 | 4904 384 0 | 16387 1196 960 | T:ref | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
4581084 | 4092 384 0 | 14543 1180 928 | T:ref | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
Compiler output
hash.c: hash.c: In function 'Transform':
hash.c: hash.c:386:5: warning: 'F' may be used uninitialized in this function [-Wmaybe-uninitialized]
hash.c: 386 | F(ctx->chaining,(u32*)input,(u32*)ctx->counter);//modified oct28
hash.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mGroestl.c: mGroestl.c: In function 'Transform':
mGroestl.c: mGroestl.c:384:5: warning: 'F' may be used uninitialized in this function [-Wmaybe-uninitialized]
mGroestl.c: 384 | F(ctx->chaining,(u32*)input,(u32*)ctx->counter);//modified oct28
mGroestl.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Number of similar (implementation,compiler) pairs: 3, namely:
Implementation | Compiler |
T:opt-32 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:opt-32 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:opt-32 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
Compiler output
hash.c: hash.c: In function 'Transform':
hash.c: hash.c:386:5: warning: 'F' may be used uninitialized in this function [-Wmaybe-uninitialized]
hash.c: 386 | F(ctx->chaining,(u32*)input,(u32*)ctx->counter);//modified oct28
hash.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c: In function 'Update':
hash.c: hash.c:386:5: warning: 'F' may be used uninitialized in this function [-Wmaybe-uninitialized]
hash.c: 386 | F(ctx->chaining,(u32*)input,(u32*)ctx->counter);//modified oct28
hash.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c:361:10: note: 'F' was declared here
hash.c: 361 | void (*F)(u32*,const u32*,u32*); //modified oct28
hash.c: | ^
hash.c: In function 'Init',
hash.c: inlined from 'Hash' at hash.c:709:14:
hash.c: hash.c:497:27: warning: 'context.blocksize' may be used uninitialized [-Wmaybe-uninitialized]
hash.c: 497 | ctx->buffer = malloc(ctx->blocksize); //modified
hash.c: | ~~~^~~~~~~~~~~
hash.c: hash.c: In function 'Hash':
hash.c: hash.c:706:13: note: 'context' declared here
hash.c: 706 | hashState context;
hash.c: | ^~~~~~~
mGroestl.c: mGroestl.c: In function 'Transform':
mGroestl.c: mGroestl.c:384:5: warning: 'F' may be used uninitialized in this function [-Wmaybe-uninitialized]
mGroestl.c: 384 | F(ctx->chaining,(u32*)input,(u32*)ctx->counter);//modified oct28
mGroestl.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mGroestl.c: mGroestl.c: In function 'Update':
mGroestl.c: mGroestl.c:384:5: warning: 'F' may be used uninitialized in this function [-Wmaybe-uninitialized]
mGroestl.c: 384 | F(ctx->chaining,(u32*)input,(u32*)ctx->counter);//modified oct28
mGroestl.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mGroestl.c: mGroestl.c:359:10: note: 'F' was declared here
mGroestl.c: 359 | void (*F)(u32*,const u32*,u32*); //modified oct28
mGroestl.c: | ^
mGroestl.c: In function 'Init',
mGroestl.c: inlined from 'Hash' at mGroestl.c:707:14:
mGroestl.c: mGroestl.c:495:27: warning: 'context.blocksize' may be used uninitialized [-Wmaybe-uninitialized]
mGroestl.c: 495 | ctx->buffer = malloc(ctx->blocksize); //modified
mGroestl.c: | ~~~^~~~~~~~~~~
mGroestl.c: mGroestl.c: In function 'Hash':
mGroestl.c: mGroestl.c:704:13: note: 'context' declared here
mGroestl.c: 704 | hashState context;
mGroestl.c: | ^~~~~~~
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:opt-32 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
Compiler output
hash.c: hash.c:230:9: warning: unknown pragma ignored [-Wunknown-pragmas]
hash.c: #pragma vector aligned
hash.c: ^
hash.c: hash.c:239: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:238: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:240: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:238: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:241: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:238: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:242:3: warning: non-constant static local variable in inline function may be different in different files [-Wstatic-local-in-inline]
hash.c: ...
Number of similar (implementation,compiler) pairs: 5, namely:
Implementation | Compiler |
T:opt-64 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:opt-64 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:opt-64 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:opt-64 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:opt-64 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
Compiler output
hash.c: hash.c: In function 'F512':
hash.c: hash.c:230: warning: ignoring '#pragma vector aligned' [-Wunknown-pragmas]
hash.c: 230 | #pragma vector aligned
hash.c: |
hash.c: hash.c: In function 'F1024':
hash.c: hash.c:267: warning: ignoring '#pragma vector aligned' [-Wunknown-pragmas]
hash.c: 267 | #pragma vector aligned
hash.c: |
hash.c: hash.c: At top level:
hash.c: hash.c:242:14: warning: 'inP' is static but declared in inline function 'F1024' which is not static
hash.c: 242 | static u64 inP[COLS1024] __attribute__((aligned(16)));
hash.c: | ^~~
hash.c: hash.c:241:14: warning: 'outQ' is static but declared in inline function 'F1024' which is not static
hash.c: 241 | static u64 outQ[COLS1024] __attribute__((aligned(16)));
hash.c: | ^~~~
hash.c: hash.c:240:14: warning: 'z' is static but declared in inline function 'F1024' which is not static
hash.c: 240 | static u64 z[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
hash.c: hash.c:239:14: warning: 'y' is static but declared in inline function 'F1024' which is not static
hash.c: 239 | static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
try.c: /usr/bin/ld: libcrypto_hash_mgrostl256.a(hash.o): in function `Transform':
try.c: .../supercop-data/titan0/amd64/try/c/gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_hash/mgrostl256/opt-64/work/hash.c:304: undefined reference to `F512'
try.c: collect2: error: ld returned 1 exit status
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:opt-64 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
Compiler output
hash.c: hash.c: In function 'F512':
hash.c: hash.c:230: warning: ignoring '#pragma vector aligned' [-Wunknown-pragmas]
hash.c: 230 | #pragma vector aligned
hash.c: |
hash.c: hash.c: In function 'F1024':
hash.c: hash.c:267: warning: ignoring '#pragma vector aligned' [-Wunknown-pragmas]
hash.c: 267 | #pragma vector aligned
hash.c: |
hash.c: hash.c: At top level:
hash.c: hash.c:242:14: warning: 'inP' is static but declared in inline function 'F1024' which is not static
hash.c: 242 | static u64 inP[COLS1024] __attribute__((aligned(16)));
hash.c: | ^~~
hash.c: hash.c:241:14: warning: 'outQ' is static but declared in inline function 'F1024' which is not static
hash.c: 241 | static u64 outQ[COLS1024] __attribute__((aligned(16)));
hash.c: | ^~~~
hash.c: hash.c:240:14: warning: 'z' is static but declared in inline function 'F1024' which is not static
hash.c: 240 | static u64 z[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
hash.c: hash.c:239:14: warning: 'y' is static but declared in inline function 'F1024' which is not static
hash.c: 239 | static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
hash.c: In function 'Init',
hash.c: inlined from 'Init' at hash.c:396:12,
hash.c: inlined from 'Hash' at hash.c:619:14:
hash.c: hash.c:434:30: warning: 'context.statesize' may be used uninitialized [-Wmaybe-uninitialized]
hash.c: ...
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:opt-64 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
Compiler output
hash.c: hash.c: In function 'F512':
hash.c: hash.c:230: warning: ignoring '#pragma vector aligned' [-Wunknown-pragmas]
hash.c: 230 | #pragma vector aligned
hash.c: |
hash.c: hash.c: In function 'F1024':
hash.c: hash.c:267: warning: ignoring '#pragma vector aligned' [-Wunknown-pragmas]
hash.c: 267 | #pragma vector aligned
hash.c: |
hash.c: hash.c: At top level:
hash.c: hash.c:242:14: warning: 'inP' is static but declared in inline function 'F1024' which is not static
hash.c: 242 | static u64 inP[COLS1024] __attribute__((aligned(16)));
hash.c: | ^~~
hash.c: hash.c:241:14: warning: 'outQ' is static but declared in inline function 'F1024' which is not static
hash.c: 241 | static u64 outQ[COLS1024] __attribute__((aligned(16)));
hash.c: | ^~~~
hash.c: hash.c:240:14: warning: 'z' is static but declared in inline function 'F1024' which is not static
hash.c: 240 | static u64 z[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
hash.c: hash.c:239:14: warning: 'y' is static but declared in inline function 'F1024' which is not static
hash.c: 239 | static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
try.c: /usr/bin/ld: libcrypto_hash_mgrostl256.a(hash.o): in function `Transform':
try.c: .../supercop-data/titan0/amd64/try/c/gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_hash/mgrostl256/opt-64/work/hash.c:304: undefined reference to `F512'
try.c: collect2: error: ld returned 1 exit status
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:opt-64 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
Compiler output
hash.c: hash.c: In function 'F512':
hash.c: hash.c:230: warning: ignoring '#pragma vector aligned' [-Wunknown-pragmas]
hash.c: 230 | #pragma vector aligned
hash.c: |
hash.c: hash.c: In function 'F1024':
hash.c: hash.c:267: warning: ignoring '#pragma vector aligned' [-Wunknown-pragmas]
hash.c: 267 | #pragma vector aligned
hash.c: |
hash.c: hash.c: At top level:
hash.c: hash.c:242:14: warning: 'inP' is static but declared in inline function 'F1024' which is not static
hash.c: 242 | static u64 inP[COLS1024] __attribute__((aligned(16)));
hash.c: | ^~~
hash.c: hash.c:241:14: warning: 'outQ' is static but declared in inline function 'F1024' which is not static
hash.c: 241 | static u64 outQ[COLS1024] __attribute__((aligned(16)));
hash.c: | ^~~~
hash.c: hash.c:240:14: warning: 'z' is static but declared in inline function 'F1024' which is not static
hash.c: 240 | static u64 z[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
hash.c: hash.c:239:14: warning: 'y' is static but declared in inline function 'F1024' which is not static
hash.c: 239 | static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: | ^
try.c: /usr/bin/ld: libcrypto_hash_mgrostl256.a(hash.o): in function `Transform':
try.c: .../supercop-data/titan0/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_hash/mgrostl256/opt-64/work/hash.c:304: undefined reference to `F512'
try.c: collect2: error: ld returned 1 exit status
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:opt-64 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |