Implementation notes: amd64, hertz, crypto_aead/twine80n6t4clocv2

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240716
Operation: crypto_aead
Primitive: twine80n6t4clocv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
12308521443 0 92838915 820 2088T:vpermgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
12400226435 0 91247134 828 2024T:vpermclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
12441526819 0 91247406 828 2024T:vpermclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
12473711311 0 92826731 820 2024T:vpermgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
1249397798 0 91222304 820 2024T:vpermclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
1258979342 0 92823102 796 1992T:vpermgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
8326088258 0 29225477 804 1480T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
8610387803 0 29222997 804 1416T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
9059996171 0 30421088 820 1416T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
146973110678 0 30431792 836 1416T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
152117210911 0 30432160 836 1416T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
18412156378 0 29219848 780 1384T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716

Compiler output


encrypt.c: encrypt.c:66:2: warning: misleading indentation; statement is not part of the previous 'for' [-Wmisleading-indentation]
encrypt.c:    66 |         return RETURN_SUCCESS;
encrypt.c:       |         ^
encrypt.c: encrypt.c:61:5: note: previous statement is here
encrypt.c:    61 |     for(i = 0; i < CRYPTO_ABYTES; i++)
encrypt.c:       |     ^
encrypt.c: 1 warning generated.

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


encrypt.c: encrypt.c: In function 'crypto_aead_twine80n6t4clocv2_ref_timingleaks_decrypt':
encrypt.c: encrypt.c:61:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
encrypt.c:    61 |     for(i = 0; i < CRYPTO_ABYTES; i++)
encrypt.c:       |     ^~~
encrypt.c: encrypt.c:66:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
encrypt.c:    66 |         return RETURN_SUCCESS;
encrypt.c:       |         ^~~~~~
twine.c: twine.c: In function 'Keyschedule':
twine.c: twine.c:493:17: warning: 'Keyschedule128' reading 32 bytes from a region of size 16 [-Wstringop-overread]
twine.c:   493 |                 Keyschedule128(sk);
twine.c:       |                 ^~~~~~~~~~~~~~~~~~
twine.c: twine.c:493:17: note: referencing argument 1 of type 'const uint8[32]' {aka 'const unsigned char[32]'}
twine.c: twine.c:359:6: note: in a call to function 'Keyschedule128'
twine.c:   359 | void Keyschedule128(const uint8 sk[128/4])
twine.c:       |      ^~~~~~~~~~~~~~

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Compiler output


encrypt.c: encrypt.c:339:2: warning: misleading indentation; statement is not part of the previous 'for' [-Wmisleading-indentation]
encrypt.c:   339 |         return RETURN_SUCCESS;
encrypt.c:       |         ^
encrypt.c: encrypt.c:334:5: note: previous statement is here
encrypt.c:   334 |     for(i = 0; i < CRYPTO_ABYTES; i++)
encrypt.c:       |     ^
encrypt.c: 1 warning generated.

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:vpermclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:vpermclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:vpermclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


encrypt.c: encrypt.c: In function 'crypto_aead_twine80n6t4clocv2_vperm_timingleaks_decrypt':
encrypt.c: encrypt.c:334:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
encrypt.c:   334 |     for(i = 0; i < CRYPTO_ABYTES; i++)
encrypt.c:       |     ^~~
encrypt.c: encrypt.c:339:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
encrypt.c:   339 |         return RETURN_SUCCESS;
encrypt.c:       |         ^~~~~~

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:vpermgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:vpermgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:vpermgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Namespace violations


cloc.o ae_encrypt T
cloc.o ae_init T
cloc.o process_ad T
twine.o CON_H R
twine.o CON_L R
twine.o Decode T
twine.o Encode T
twine.o Keyschedule T
twine.o Keyschedule128 T
twine.o Keyschedule80 T
twine.o S R
twine.o ek B
twine.o pstate3 T
twine.o pswitch B
utils.o print_cxt T
utils.o pstate T
utils.o pstate2 T
utils.o xor_bytes T
utils.o xor_bytes2 T

Number of similar (implementation,compiler) pairs: 6, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Namespace violations


encrypt.o CON_H R
encrypt.o CON_L R
encrypt.o Encode T
encrypt.o Keyschedule80 T
encrypt.o S R
encrypt.o _tmp B
encrypt.o ek B
encrypt.o load_partial_block T
encrypt.o lsbox B
encrypt.o pstate_local T
encrypt.o pstate_local2 T
encrypt.o rks B
encrypt.o shuffle_const R
encrypt.o store_partial_block T
encrypt.o twine80_const R
encrypt.o usbox B

Number of similar (implementation,compiler) pairs: 6, namely:
ImplementationCompiler
T:vpermclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:vpermclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:vpermclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:vpermgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:vpermgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:vpermgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)