Implementation notes: amd64, hydra5, crypto_sign/picnic2l5fs

Computer: hydra5
Microarchitecture: amd64; K10 32nm (300f10)
Architecture: amd64
CPU ID: AuthenticAMD-00300f10-178bfbff
SUPERCOP version: 20240625
Operation: crypto_sign
Primitive: picnic2l5fs

Compiler output


picnic2_impl.c: In file included from picnic2_impl.c:22:
picnic2_impl.c: ./kdf_shake.h:54:36: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashInitialize' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:     Keccak_HashInitialize_SHAKE128(ctx);
picnic2_impl.c:                                    ^
picnic2_impl.c: ./kdf_shake.h:56:36: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashInitialize' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:     Keccak_HashInitialize_SHAKE256(ctx);
picnic2_impl.c:                                    ^
picnic2_impl.c: ./kdf_shake.h:61:21: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashUpdate' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:   Keccak_HashUpdate(ctx, data, size << 3);
picnic2_impl.c:                     ^
picnic2_impl.c: ./kdf_shake.h:65:20: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashFinal' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:   Keccak_HashFinal(ctx, NULL);
picnic2_impl.c:                    ^
picnic2_impl.c: ./kdf_shake.h:69:22: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashSqueeze' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:   Keccak_HashSqueeze(ctx, buffer, buflen << 3);
picnic2_impl.c:                      ^
picnic2_impl.c: ./kdf_shake.h:99:42: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashInitializetimes4' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:     Keccak_HashInitializetimes4_SHAKE128(ctx);
picnic2_impl.c:                                          ^
picnic2_impl.c: ./kdf_shake.h:101:42: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashInitializetimes4' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:     Keccak_HashInitializetimes4_SHAKE256(ctx);
picnic2_impl.c:                                          ^
picnic2_impl.c: ./kdf_shake.h:106:27: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashUpdatetimes4' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:   Keccak_HashUpdatetimes4(ctx, data, size << 3);
picnic2_impl.c:                           ^
picnic2_impl.c: ...

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:optimizedct/avx2clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:optimizedct/avx2clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:optimizedct/avx2clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:optimizedct/avx2clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:optimizedct/avx2clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


try.c: /usr/bin/ld: .../supercop-data/hydra5/amd64/lib/libkeccak.a(KeccakP-1600-x86-64-gas.o): relocation R_X86_64_32S against `.text' 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 (implementation,compiler) pairs: 14, namely:
ImplementationCompiler
T:optimizedct/avx2gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:optimizedct/avx2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:optimizedct/avx2gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:optimizedct/avx2gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:optimizedct/cgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:optimizedct/cgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:optimizedct/cgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:optimizedct/cgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:optimizedct/sse2gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:optimizedct/sse2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:optimizedct/sse2gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:optimizedct/sse2gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


picnic2_impl.c: In file included from picnic2_impl.c:22:
picnic2_impl.c: ./kdf_shake.h:58:36: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashInitialize' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:     Keccak_HashInitialize_SHAKE128(ctx);
picnic2_impl.c:                                    ^
picnic2_impl.c: ./kdf_shake.h:60:36: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashInitialize' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:     Keccak_HashInitialize_SHAKE256(ctx);
picnic2_impl.c:                                    ^
picnic2_impl.c: ./kdf_shake.h:65:21: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashUpdate' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:   Keccak_HashUpdate(ctx, data, size << 3);
picnic2_impl.c:                     ^
picnic2_impl.c: ./kdf_shake.h:69:20: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashFinal' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:   Keccak_HashFinal(ctx, NULL);
picnic2_impl.c:                    ^
picnic2_impl.c: ./kdf_shake.h:73:22: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashSqueeze' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:   Keccak_HashSqueeze(ctx, buffer, buflen << 3);
picnic2_impl.c:                      ^
picnic2_impl.c: 5 warnings generated.
picnic2_tree.c: In file included from picnic2_tree.c:19:
picnic2_tree.c: ./kdf_shake.h:58:36: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashInitialize' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_tree.c:     Keccak_HashInitialize_SHAKE128(ctx);
picnic2_tree.c:                                    ^
picnic2_tree.c: ./kdf_shake.h:60:36: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashInitialize' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_tree.c:     Keccak_HashInitialize_SHAKE256(ctx);
picnic2_tree.c:                                    ^
picnic2_tree.c: ./kdf_shake.h:65:21: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashUpdate' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_tree.c:   Keccak_HashUpdate(ctx, data, size << 3);
picnic2_tree.c:                     ^
picnic2_tree.c: ./kdf_shake.h:69:20: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashFinal' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_tree.c:   Keccak_HashFinal(ctx, NULL);
picnic2_tree.c:                    ^
picnic2_tree.c: ./kdf_shake.h:73:22: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashSqueeze' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_tree.c:   Keccak_HashSqueeze(ctx, buffer, buflen << 3);
picnic2_tree.c:                      ^
picnic2_tree.c: 5 warnings generated.
try.c: /usr/bin/ld: .../supercop-data/hydra5/amd64/lib/libkeccak.a(KeccakP-1600-x86-64-gas.o): relocation R_X86_64_32S against `.text' 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 (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:optimizedct/cclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:optimizedct/cclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:optimizedct/cclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:optimizedct/cclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:optimizedct/cclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


picnic2_impl.c: In file included from picnic2_impl.c:22:
picnic2_impl.c: ./kdf_shake.h:50:36: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashInitialize' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:     Keccak_HashInitialize_SHAKE128(ctx);
picnic2_impl.c:                                    ^
picnic2_impl.c: ./kdf_shake.h:52:36: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashInitialize' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:     Keccak_HashInitialize_SHAKE256(ctx);
picnic2_impl.c:                                    ^
picnic2_impl.c: ./kdf_shake.h:57:21: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashUpdate' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:   Keccak_HashUpdate(ctx, data, size << 3);
picnic2_impl.c:                     ^
picnic2_impl.c: ./kdf_shake.h:61:20: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashFinal' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:   Keccak_HashFinal(ctx, NULL);
picnic2_impl.c:                    ^
picnic2_impl.c: ./kdf_shake.h:65:22: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashSqueeze' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_impl.c:   Keccak_HashSqueeze(ctx, buffer, buflen << 3);
picnic2_impl.c:                      ^
picnic2_impl.c: 5 warnings generated.
picnic2_tree.c: In file included from picnic2_tree.c:19:
picnic2_tree.c: ./kdf_shake.h:50:36: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashInitialize' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_tree.c:     Keccak_HashInitialize_SHAKE128(ctx);
picnic2_tree.c:                                    ^
picnic2_tree.c: ./kdf_shake.h:52:36: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashInitialize' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_tree.c:     Keccak_HashInitialize_SHAKE256(ctx);
picnic2_tree.c:                                    ^
picnic2_tree.c: ./kdf_shake.h:57:21: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashUpdate' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_tree.c:   Keccak_HashUpdate(ctx, data, size << 3);
picnic2_tree.c:                     ^
picnic2_tree.c: ./kdf_shake.h:61:20: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashFinal' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_tree.c:   Keccak_HashFinal(ctx, NULL);
picnic2_tree.c:                    ^
picnic2_tree.c: ./kdf_shake.h:65:22: warning: passing 32-byte aligned argument to 64-byte aligned parameter 1 of 'Keccak_HashSqueeze' may result in an unaligned pointer access [-Walign-mismatch]
picnic2_tree.c:   Keccak_HashSqueeze(ctx, buffer, buflen << 3);
picnic2_tree.c:                      ^
picnic2_tree.c: 5 warnings generated.
try.c: /usr/bin/ld: .../supercop-data/hydra5/amd64/lib/libkeccak.a(KeccakP-1600-x86-64-gas.o): relocation R_X86_64_32S against `.text' 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 (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:optimizedct/sse2clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:optimizedct/sse2clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:optimizedct/sse2clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:optimizedct/sse2clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:optimizedct/sse2clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


try.c: /usr/bin/ld: .../supercop-data/hydra5/amd64/lib/libkeccak.a(KeccakP-1600-x86-64-gas.o): relocation R_X86_64_32S against `.text' 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 (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


picnic_impl.c: picnic_impl.c: In function 'mpc_LowMC_verify':
picnic_impl.c: picnic_impl.c:469:5: warning: 'mpc_matrix_mul' accessing 24 bytes in a region of size 16 [-Wstringop-overflow=]
picnic_impl.c:   469 |     mpc_matrix_mul(roundKey, keyShares, KMatrix(0, params), params, 2);
picnic_impl.c:       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
picnic_impl.c: picnic_impl.c:469:5: note: referencing argument 1 of type 'uint32_t **' {aka 'unsigned int **'}
picnic_impl.c: picnic_impl.c:469:5: warning: 'mpc_matrix_mul' accessing 24 bytes in a region of size 16 [-Wstringop-overflow=]
picnic_impl.c: picnic_impl.c:469:5: note: referencing argument 2 of type 'uint32_t **' {aka 'unsigned int **'}
picnic_impl.c: picnic_impl.c:437:6: note: in a call to function 'mpc_matrix_mul'
picnic_impl.c:   437 | void mpc_matrix_mul(uint32_t* output[3], uint32_t* state[3], const uint32_t* matrix,
picnic_impl.c:       |      ^~~~~~~~~~~~~~
picnic_impl.c: picnic_impl.c:470:5: warning: 'mpc_xor' accessing 24 bytes in a region of size 16 [-Wstringop-overflow=]
picnic_impl.c:   470 |     mpc_xor(state, roundKey, params->stateSizeWords, 2);
picnic_impl.c:       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
picnic_impl.c: picnic_impl.c:470:5: note: referencing argument 1 of type 'uint32_t **' {aka 'unsigned int **'}
picnic_impl.c: picnic_impl.c:470:5: warning: 'mpc_xor' accessing 24 bytes in a region of size 16 [-Wstringop-overflow=]
picnic_impl.c: picnic_impl.c:470:5: note: referencing argument 2 of type 'uint32_t **' {aka 'unsigned int **'}
picnic_impl.c: picnic_impl.c:190:6: note: in a call to function 'mpc_xor'
picnic_impl.c:   190 | void mpc_xor(uint32_t* state[3], uint32_t* in[3], uint32_t len, int players)
picnic_impl.c:       |      ^~~~~~~
picnic_impl.c: picnic_impl.c:473:9: warning: 'mpc_matrix_mul' accessing 24 bytes in a region of size 16 [-Wstringop-overflow=]
picnic_impl.c:   473 |         mpc_matrix_mul(roundKey, keyShares, KMatrix(r, params), params, 2);
picnic_impl.c:       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
picnic_impl.c: picnic_impl.c:473:9: note: referencing argument 1 of type 'uint32_t **' {aka 'unsigned int **'}
picnic_impl.c: picnic_impl.c:473:9: warning: 'mpc_matrix_mul' accessing 24 bytes in a region of size 16 [-Wstringop-overflow=]
picnic_impl.c: picnic_impl.c:473:9: note: referencing argument 2 of type 'uint32_t **' {aka 'unsigned int **'}
picnic_impl.c: ...

Number of similar (implementation,compiler) pairs: 2, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)