Implementation notes: amd64, icelake2, crypto_aead/ascon128abi32v12

Computer: icelake2
Architecture: amd64
CPU ID: GenuineIntel-000706e5-bfebfbff
SUPERCOP version: 20221005
Operation: crypto_aead
Primitive: ascon128abi32v12
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
9189612556 0 029074 772 1056refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
9244512556 0 029146 772 1088refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
9306226544 0 042242 764 1088refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
9707514205 0 027972 764 1088refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
10239610160 0 023530 772 1024refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
1096651769 0 015916 764 1088bi32_lowsizeclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
1101492008 0 018706 772 1088bi32_lowsizeclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
1101571778 0 018410 772 1056bi32_lowsizeclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
11253010594 0 026074 772 1024refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
1131812544 0 017986 764 1088bi32_lowsizegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
1134735594 0 019490 764 1088refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
1146195493 0 018929 756 1088refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
1151802296 0 015938 764 1088bi32_lowsizegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
1251323315 0 016473 756 1088bi32_lowsizegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
1277682000 0 013913 740 1056bi32_lowsizegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
1277741655 0 015010 772 1024bi32_lowsizeclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
1280611977 0 017434 772 1024bi32_lowsizeclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
1356272849 0 015073 740 1056refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005

Compiler output

Implementation: bi32
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
aead.c: aead.c:16:3: warning: implicit declaration of function 'INSERT' is invalid in C99 [-Wimplicit-function-declaration]
aead.c: INSERT(key->b[0], k, 8);
aead.c: ^
aead.c: aead.c:35:3: warning: implicit declaration of function 'INSERT' is invalid in C99 [-Wimplicit-function-declaration]
aead.c: INSERT(s->b[3], npub, 8);
aead.c: ^
aead.c: aead.c:40:3: warning: implicit declaration of function 'memxor' is invalid in C99 [-Wimplicit-function-declaration]
aead.c: memxor(s->b[3], key->b[0], 16);
aead.c: ^
aead.c: aead.c:53:7: warning: implicit declaration of function 'ABSORB' is invalid in C99 [-Wimplicit-function-declaration]
aead.c: ABSORB(s->b[0], ad, 8);
aead.c: ^
aead.c: aead.c:63:7: warning: implicit declaration of function 'ABSORB' is invalid in C99 [-Wimplicit-function-declaration]
aead.c: ABSORB(s->b[0], ad, 8);
aead.c: ^
aead.c: aead.c:68:5: warning: implicit declaration of function 'ABSORB' is invalid in C99 [-Wimplicit-function-declaration]
aead.c: ABSORB(s->b[i], ad, adlen);
aead.c: ^
aead.c: aead.c:83:5: warning: implicit declaration of function 'ENCRYPT' is invalid in C99 [-Wimplicit-function-declaration]
aead.c: ENCRYPT(s->b[0], c, m, 8);
aead.c: ^
aead.c: aead.c:94:5: warning: implicit declaration of function 'ENCRYPT' is invalid in C99 [-Wimplicit-function-declaration]
aead.c: ENCRYPT(s->b[0], c, m, 8);
aead.c: ^
aead.c: aead.c:100:3: warning: implicit declaration of function 'ENCRYPT' is invalid in C99 [-Wimplicit-function-declaration]
aead.c: ...

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE bi32
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE bi32
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE bi32
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE bi32
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE bi32
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE bi32_lowreg
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE bi32_lowreg
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE bi32_lowreg
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE bi32_lowreg
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE bi32_lowreg

Compiler output

Implementation: bi32
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
aead.c: aead.c: In function 'ascon_loadkey':
aead.c: aead.c:16:3: warning: implicit declaration of function 'INSERT' [-Wimplicit-function-declaration]
aead.c: 16 | INSERT(key->b[0], k, 8);
aead.c: | ^~~~~~
aead.c: aead.c: In function 'ascon_initaead':
aead.c: aead.c:40:3: warning: implicit declaration of function 'memxor'; did you mean 'memchr'? [-Wimplicit-function-declaration]
aead.c: 40 | memxor(s->b[3], key->b[0], 16);
aead.c: | ^~~~~~
aead.c: | memchr
aead.c: aead.c: In function 'ascon_adata':
aead.c: aead.c:53:7: warning: implicit declaration of function 'ABSORB' [-Wimplicit-function-declaration]
aead.c: 53 | ABSORB(s->b[0], ad, 8);
aead.c: | ^~~~~~
aead.c: aead.c: In function 'ascon_encrypt':
aead.c: aead.c:83:5: warning: implicit declaration of function 'ENCRYPT' [-Wimplicit-function-declaration]
aead.c: 83 | ENCRYPT(s->b[0], c, m, 8);
aead.c: | ^~~~~~~
aead.c: aead.c: In function 'ascon_decrypt':
aead.c: aead.c:110:5: warning: implicit declaration of function 'DECRYPT' [-Wimplicit-function-declaration]
aead.c: 110 | DECRYPT(s->b[0], m, c, 8);
aead.c: | ^~~~~~~
aead.c: aead.c: In function 'crypto_aead_ascon128abi32v12_bi32_constbranchindex_encrypt':
aead.c: aead.c:166:3: warning: implicit declaration of function 'SQUEEZE' [-Wimplicit-function-declaration]
aead.c: 166 | SQUEEZE(c + mlen, s.b[3], 8);
aead.c: | ^~~~~~~
aead.c: ...

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

Compiler output

Implementation: bi32_lowreg
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
aead.c: aead.c: In function 'ascon_loadkey':
aead.c: aead.c:16:3: warning: implicit declaration of function 'INSERT' [-Wimplicit-function-declaration]
aead.c: 16 | INSERT(key->b[0], k, 8);
aead.c: | ^~~~~~
aead.c: aead.c: In function 'ascon_initaead':
aead.c: aead.c:40:3: warning: implicit declaration of function 'memxor'; did you mean 'memchr'? [-Wimplicit-function-declaration]
aead.c: 40 | memxor(s->b[3], key->b[0], 16);
aead.c: | ^~~~~~
aead.c: | memchr
aead.c: aead.c: In function 'ascon_adata':
aead.c: aead.c:53:7: warning: implicit declaration of function 'ABSORB' [-Wimplicit-function-declaration]
aead.c: 53 | ABSORB(s->b[0], ad, 8);
aead.c: | ^~~~~~
aead.c: aead.c: In function 'ascon_encrypt':
aead.c: aead.c:83:5: warning: implicit declaration of function 'ENCRYPT' [-Wimplicit-function-declaration]
aead.c: 83 | ENCRYPT(s->b[0], c, m, 8);
aead.c: | ^~~~~~~
aead.c: aead.c: In function 'ascon_decrypt':
aead.c: aead.c:110:5: warning: implicit declaration of function 'DECRYPT' [-Wimplicit-function-declaration]
aead.c: 110 | DECRYPT(s->b[0], m, c, 8);
aead.c: | ^~~~~~~
aead.c: aead.c: In function 'crypto_aead_ascon128abi32v12_bi32_lowreg_constbranchindex_encrypt':
aead.c: aead.c:166:3: warning: implicit declaration of function 'SQUEEZE' [-Wimplicit-function-declaration]
aead.c: 166 | SQUEEZE(c + mlen, s.b[3], 8);
aead.c: | ^~~~~~~
aead.c: ...

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