Implementation notes: amd64, speed2supercop, crypto_aead/lakekeyakv1

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240425
Operation: crypto_aead
Primitive: lakekeyakv1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
29776176987 0 0197029 752 928T:opt64ufullgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
30088180928 0 0203445 752 928T:opt64ufullgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
30260179346 0 0200069 752 928T:opt64ufullgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
3056482858 0 0105381 752 928T:opt64u6gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
3059282821 0 0102861 752 928T:opt64u6gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
3070481171 0 0101909 752 928T:opt64u6gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
33104183594 0 0203629 752 928T:opt64lcufullgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
33296183023 0 0203053 752 928T:opt64lcufullshldgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
33836165135 0 0183456 728 896T:opt64ufullgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
3386083533 0 0103565 752 928T:opt64lcu6gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
34044197333 0 0219853 752 928T:opt64lcufullshldgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
34072175293 0 0193616 728 896T:opt64lcufullshldgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
34132195815 0 0216541 752 928T:opt64lcufullshldgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
34540197501 0 0220013 752 928T:opt64lcufullgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
34592195967 0 0216685 752 928T:opt64lcufullgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
3467677225 0 095536 728 896T:opt64u6gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
3489690636 0 0113165 752 928T:opt64lcu6gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
3492488943 0 0109677 752 928T:opt64lcu6gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
36708170687 0 0189008 728 896T:opt64lcufullgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
3771678471 0 096784 728 896T:opt64lcu6gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
8307235732 0 058261 752 928T:inplace32bigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
8474014068 0 036525 752 928T:compact64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
9299228598 0 049309 752 928T:inplace32bigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
9469219802 0 33642448 768 1264T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
9860826327 0 046349 752 928T:inplace32bigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
10544024346 0 042624 728 896T:inplace32bigcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1364809698 0 030365 752 928T:compact64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1442688301 0 026552 728 896T:compact64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
1712048994 0 028965 752 928T:compact64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
35419210708 0 33631544 768 1264T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
49842010301 0 33630424 768 1264T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
7315608789 0 33627224 744 1232T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425

Compiler output

Implementation: T:asmx86-64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
KeccakDuplex.c: In file included from KeccakDuplex.h:19,
KeccakDuplex.c: from KeccakDuplex.c:17:
KeccakDuplex.c: KeccakDuplex.c: In function 'Keccak_DuplexingFBWLAbsorb':
KeccakDuplex.c: SnP-interface.h:41:45: warning: implicit declaration of function 'KeccakP1600_12_SnP_FBWL_Absorb'; did you mean 'KeccakP1600_12_FBWL_Absorb'? [-Wimplicit-function-declaration]
KeccakDuplex.c: 41 | #define SnP_FBWL_Absorb KeccakP1600_12_SnP_FBWL_Absorb
KeccakDuplex.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakDuplex.c: KeccakDuplex.c:177:14: note: in expansion of macro 'SnP_FBWL_Absorb'
KeccakDuplex.c: 177 | result = SnP_FBWL_Absorb(instance->state, laneCount, dataIn, dataByteLen, trailingBits);
KeccakDuplex.c: | ^~~~~~~~~~~~~~~
KeccakDuplex.c: KeccakDuplex.c: In function 'Keccak_DuplexingFBWLWrap':
KeccakDuplex.c: SnP-interface.h:43:45: warning: implicit declaration of function 'KeccakP1600_12_SnP_FBWL_Wrap'; did you mean 'KeccakP1600_12_FBWL_Wrap'? [-Wimplicit-function-declaration]
KeccakDuplex.c: 43 | #define SnP_FBWL_Wrap KeccakP1600_12_SnP_FBWL_Wrap
KeccakDuplex.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakDuplex.c: KeccakDuplex.c:198:12: note: in expansion of macro 'SnP_FBWL_Wrap'
KeccakDuplex.c: 198 | return SnP_FBWL_Wrap(instance->state, laneCount, dataIn, dataOut, dataByteLen, trailingBits);
KeccakDuplex.c: | ^~~~~~~~~~~~~
KeccakDuplex.c: KeccakDuplex.c: In function 'Keccak_DuplexingFBWLUnwrap':
KeccakDuplex.c: SnP-interface.h:44:45: warning: implicit declaration of function 'KeccakP1600_12_SnP_FBWL_Unwrap'; did you mean 'KeccakP1600_12_FBWL_Unwrap'? [-Wimplicit-function-declaration]
KeccakDuplex.c: 44 | #define SnP_FBWL_Unwrap KeccakP1600_12_SnP_FBWL_Unwrap
KeccakDuplex.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakDuplex.c: KeccakDuplex.c:216:12: note: in expansion of macro 'SnP_FBWL_Unwrap'
KeccakDuplex.c: 216 | return SnP_FBWL_Unwrap(instance->state, laneCount, dataIn, dataOut, dataByteLen, trailingBits);
KeccakDuplex.c: | ^~~~~~~~~~~~~~~
try.c: /usr/bin/ld: libcrypto_aead_lakekeyakv1.a(KeccakP-1600-12-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 (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:asmx86-64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:asmx86-64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:asmx86-64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:asmx86-64

Compiler output

Implementation: T:asmx86-64-shld
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
KeccakDuplex.c: In file included from KeccakDuplex.h:19,
KeccakDuplex.c: from KeccakDuplex.c:17:
KeccakDuplex.c: KeccakDuplex.c: In function 'Keccak_DuplexingFBWLAbsorb':
KeccakDuplex.c: SnP-interface.h:41:45: warning: implicit declaration of function 'KeccakP1600_12_SnP_FBWL_Absorb'; did you mean 'KeccakP1600_12_FBWL_Absorb'? [-Wimplicit-function-declaration]
KeccakDuplex.c: 41 | #define SnP_FBWL_Absorb KeccakP1600_12_SnP_FBWL_Absorb
KeccakDuplex.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakDuplex.c: KeccakDuplex.c:177:14: note: in expansion of macro 'SnP_FBWL_Absorb'
KeccakDuplex.c: 177 | result = SnP_FBWL_Absorb(instance->state, laneCount, dataIn, dataByteLen, trailingBits);
KeccakDuplex.c: | ^~~~~~~~~~~~~~~
KeccakDuplex.c: KeccakDuplex.c: In function 'Keccak_DuplexingFBWLWrap':
KeccakDuplex.c: SnP-interface.h:43:45: warning: implicit declaration of function 'KeccakP1600_12_SnP_FBWL_Wrap'; did you mean 'KeccakP1600_12_FBWL_Wrap'? [-Wimplicit-function-declaration]
KeccakDuplex.c: 43 | #define SnP_FBWL_Wrap KeccakP1600_12_SnP_FBWL_Wrap
KeccakDuplex.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakDuplex.c: KeccakDuplex.c:198:12: note: in expansion of macro 'SnP_FBWL_Wrap'
KeccakDuplex.c: 198 | return SnP_FBWL_Wrap(instance->state, laneCount, dataIn, dataOut, dataByteLen, trailingBits);
KeccakDuplex.c: | ^~~~~~~~~~~~~
KeccakDuplex.c: KeccakDuplex.c: In function 'Keccak_DuplexingFBWLUnwrap':
KeccakDuplex.c: SnP-interface.h:44:45: warning: implicit declaration of function 'KeccakP1600_12_SnP_FBWL_Unwrap'; did you mean 'KeccakP1600_12_FBWL_Unwrap'? [-Wimplicit-function-declaration]
KeccakDuplex.c: 44 | #define SnP_FBWL_Unwrap KeccakP1600_12_SnP_FBWL_Unwrap
KeccakDuplex.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakDuplex.c: KeccakDuplex.c:216:12: note: in expansion of macro 'SnP_FBWL_Unwrap'
KeccakDuplex.c: 216 | return SnP_FBWL_Unwrap(instance->state, laneCount, dataIn, dataOut, dataByteLen, trailingBits);
KeccakDuplex.c: | ^~~~~~~~~~~~~~~
try.c: /usr/bin/ld: libcrypto_aead_lakekeyakv1.a(KeccakP-1600-12-x86-64-shld-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 (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:asmx86-64-shld
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:asmx86-64-shld
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:asmx86-64-shld
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:asmx86-64-shld

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
KeccakDuplex.c: In file included from KeccakDuplex.h:17,
KeccakDuplex.c: from KeccakDuplex.c:15:
KeccakDuplex.c: KeccakDuplex.c: In function 'Keccak_Duplexing':
KeccakDuplex.c: KeccakF-interface.h:53:30: warning: implicit declaration of function 'KeccakP1600_12_StatePermute'; did you mean 'KeccakF1600_StatePermute'? [-Wimplicit-function-declaration]
KeccakDuplex.c: 53 | #define KeccakF_StatePermute KeccakP1600_12_StatePermute
KeccakDuplex.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakDuplex.c: KeccakDuplex.c:63:9: note: in expansion of macro 'KeccakF_StatePermute'
KeccakDuplex.c: 63 | KeccakF_StatePermute(instance->state);
KeccakDuplex.c: | ^~~~~~~~~~~~~~~~~~~~
KeccakDuplex.c: KeccakF-interface.h:73:40: warning: implicit declaration of function 'KeccakP1600_12_StateXORPermuteExtract'; did you mean 'KeccakF1600_StateXORPermuteExtract'? [-Wimplicit-function-declaration]
KeccakDuplex.c: 73 | #define KeccakF_StateXORPermuteExtract KeccakP1600_12_StateXORPermuteExtract
KeccakDuplex.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KeccakDuplex.c: KeccakF-interface.h:73:40: note: in definition of macro 'KeccakF_StateXORPermuteExtract'
KeccakDuplex.c: 73 | #define KeccakF_StateXORPermuteExtract KeccakP1600_12_StateXORPermuteExtract
KeccakDuplex.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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