Implementation notes: amd64, icelake2, crypto_aead/ascon128bi32v12

Computer: icelake2
Architecture: amd64
CPU ID: GenuineIntel-000706e5-bfebfbff
SUPERCOP version: 20221005
Operation: crypto_aead
Primitive: ascon128bi32v12
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
13432910168 0 026746 772 1088refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
13477510168 0 026674 772 1056refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
13636326591 0 042306 764 1088refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
14055910699 0 024452 764 1088refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
1459588144 0 021514 772 1024refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
1545304215 0 018114 764 1088refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
1580241762 0 018394 772 1056bi32_lowsizeclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
1586974125 0 017553 756 1088refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
1591001903 0 018594 772 1088bi32_lowsizeclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
1596281742 0 015876 764 1088bi32_lowsizeclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
1636138432 0 023906 772 1024refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
1656161590 0 014946 772 1024bi32_lowsizeclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022101120221005
1664552524 0 017970 764 1088bi32_lowsizegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
1677262254 0 015890 764 1088bi32_lowsizegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
1749992267 0 014497 740 1056refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
1797323249 0 016409 756 1088bi32_lowsizegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
1818681964 0 013889 740 1056bi32_lowsizegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022101120221005
1860421871 0 017322 772 1024bi32_lowsizeclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-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_ascon128bi32v12_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_ascon128bi32v12_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