Implementation notes: amd64, alder, crypto_aead/isapk128av20

Computer: alder
Microarchitecture: amd64; Golden Cove (90675-00)
Architecture: amd64
CPU ID: GenuineIntel-00090675-00-bfebfbff
SUPERCOP version: 20240716
Operation: crypto_aead
Primitive: isapk128av20
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
286303149556 0 0165760 780 1080T:opt_64gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
288190149430 0 0163624 780 1080T:opt_64gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
300898159005 0 0172847 772 1080T:opt_64gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
328908175959 0 0191800 812 1048T:opt_64clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
331029175410 0 0188798 804 1016T:opt_64clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
332846175991 0 0191976 812 1048T:opt_64clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
333167172326 0 0186014 804 1016T:opt_64clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
408604195069 0 0211152 812 1016T:opt_64clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
500816137841 0 0150499 756 1048T:opt_64gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
5143945797 0 022052 820 1016T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
7248465371 0 021524 820 1048T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
7293155371 0 021380 820 1048T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
10181975042 0 021416 788 1080T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
29168964587 0 018490 812 1016T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
35618654079 0 018456 788 1080T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
51201414279 0 018295 780 1080T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
52514164409 0 017946 812 1016T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
53684403426 0 016243 764 1048T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716

Compiler output


isap.c: isap.c:105:5: error: always_inline function '_mm512_set_epi32' requires target feature 'avx512f', but would be inlined into function 'isap_rk' that is compiled without support for 'avx512f'
isap.c:     declareABCDEX
isap.c:     ^
isap.c: ./KeccakP-400-64.macros:42:21: note: expanded from macro 'declareABCDEX'
isap.c:     __m512i pchi1 = _mm512_set_epi32(0, 0, 0, 0x000014, 0x180017, 0x160015, 0x0f0013, 0x120011, 0x10000a, 0xe000d, 0xc000b, 0x50009, 0x80007, 0x60000, 0x40003, 0x20001); \
isap.c:                     ^
isap.c: isap.c:105:5: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'avx512f' enabled changes the ABI
isap.c: ./KeccakP-400-64.macros:42:21: note: expanded from macro 'declareABCDEX'
isap.c:     __m512i pchi1 = _mm512_set_epi32(0, 0, 0, 0x000014, 0x180017, 0x160015, 0x0f0013, 0x120011, 0x10000a, 0xe000d, 0xc000b, 0x50009, 0x80007, 0x60000, 0x40003, 0x20001); \
isap.c:                     ^
isap.c: isap.c:105:5: error: always_inline function '_mm512_set_epi32' requires target feature 'avx512f', but would be inlined into function 'isap_rk' that is compiled without support for 'avx512f'
isap.c: ./KeccakP-400-64.macros:43:21: note: expanded from macro 'declareABCDEX'
isap.c:     __m512i pchi2 = _mm512_set_epi32(0, 0, 0, 0x000015, 0x140018, 0x170016, 0x10000f, 0x130012, 0x11000b, 0xa000e, 0xd000c, 0x60005, 0x90008, 0x70001, 0x00004, 0x30002); \
isap.c:                     ^
isap.c: isap.c:105:5: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'avx512f' enabled changes the ABI
isap.c: ./KeccakP-400-64.macros:43:21: note: expanded from macro 'declareABCDEX'
isap.c:     __m512i pchi2 = _mm512_set_epi32(0, 0, 0, 0x000015, 0x140018, 0x170016, 0x10000f, 0x130012, 0x11000b, 0xa000e, 0xd000c, 0x60005, 0x90008, 0x70001, 0x00004, 0x30002); \
isap.c:                     ^
isap.c: isap.c:105:5: error: always_inline function '_mm512_set_epi32' requires target feature 'avx512f', but would be inlined into function 'isap_rk' that is compiled without support for 'avx512f'
isap.c: ./KeccakP-400-64.macros:44:19: note: expanded from macro 'declareABCDEX'
isap.c:     __m512i ppi = _mm512_set_epi32(0, 0, 0, 0x0015, 0xf000e, 0x80002, 0x170011, 0xb0005, 0x40014, 0x13000d, 0x70001, 0x160010, 0xa0009, 0x30018, 0x12000c, 0x60000); \
isap.c:                   ^
isap.c: isap.c:105:5: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'avx512f' enabled changes the ABI
isap.c: ./KeccakP-400-64.macros:44:19: note: expanded from macro 'declareABCDEX'
isap.c:     __m512i ppi = _mm512_set_epi32(0, 0, 0, 0x0015, 0xf000e, 0x80002, 0x170011, 0xb0005, 0x40014, 0x13000d, 0x70001, 0x160010, 0xa0009, 0x30018, 0x12000c, 0x60000); \
isap.c: ...

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

Compiler output


isap.c: In file included from isap.c:6:
isap.c: isap.c: In function 'isap_rk':
isap.c: KeccakP-400-64.macros:42:13: warning: AVX512F vector return without AVX512F enabled changes the ABI [-Wpsabi]
isap.c:    42 |     __m512i pchi1 = _mm512_set_epi32(0, 0, 0, 0x000014, 0x180017, 0x160015, 0x0f0013, 0x120011, 0x10000a, 0xe000d, 0xc000b, 0x50009, 0x80007, 0x60000, 0x40003, 0x20001); \
isap.c:       |             ^~~~~
isap.c: isap.c:105:5: note: in expansion of macro 'declareABCDEX'
isap.c:   105 |     declareABCDEX
isap.c:       |     ^~~~~~~~~~~~~
isap.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:55,
isap.c:                  from isap.c:3:
isap.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avx512fintrin.h:7478:1: error: inlining failed in call to 'always_inline' '_mm512_xor_epi64': target specific option mismatch
isap.c:  7478 | _mm512_xor_epi64 (__m512i __A, __m512i __B)
isap.c:       | ^~~~~~~~~~~~~~~~
isap.c: In file included from isap.c:6:
isap.c: KeccakP-400-64.macros:76:11: note: called from here
isap.c:    76 |     E.S = _mm512_xor_epi64 (E.S, _mm512_set_epi64(0,0,0,0,0,0,0,KeccakF400RoundConstants[i])); \
isap.c:       |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
isap.c: KeccakP-400-unrolling.macros:63:5: note: in expansion of macro 'thetaRhoPiChiIota'
isap.c:    63 |     thetaRhoPiChiIota(19, E, S) \
isap.c:       |     ^~~~~~~~~~~~~~~~~
isap.c: isap.c:56:25: note: in expansion of macro 'rounds8X'
isap.c:    56 | #define PermuteRoundsKX rounds8X
isap.c:       |                         ^~~~~~~~
isap.c: isap.c:131:5: note: in expansion of macro 'PermuteRoundsKX'
isap.c:   131 |     PermuteRoundsKX;
isap.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:avx512gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:avx512gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:avx512gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:avx512gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)

Namespace violations


isap.o ISAP_IV1 R
isap.o ISAP_IV2 R
isap.o ISAP_IV3 R
isap.o isap_enc T
isap.o isap_mac T
isap.o isap_rk T

Number of similar (implementation,compiler) pairs: 9, namely:
ImplementationCompiler
T:opt_64clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:opt_64clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:opt_64clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:opt_64clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:opt_64clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:opt_64gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:opt_64gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:opt_64gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:opt_64gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)

Namespace violations


KeccakP-400-reference.o KeccakP400OnWords T
KeccakP-400-reference.o KeccakP400Round T
KeccakP-400-reference.o KeccakP400_AddByte T
KeccakP-400-reference.o KeccakP400_AddBytes T
KeccakP-400-reference.o KeccakP400_ExtractAndAddBytes T
KeccakP-400-reference.o KeccakP400_ExtractBytes T
KeccakP-400-reference.o KeccakP400_Initialize T
KeccakP-400-reference.o KeccakP400_OverwriteBytes T
KeccakP-400-reference.o KeccakP400_OverwriteWithZeroes T
KeccakP-400-reference.o KeccakP400_Permute_20rounds T
KeccakP-400-reference.o KeccakP400_Permute_Nrounds T
isap.o ISAP_IV_A R
isap.o ISAP_IV_KA R
isap.o ISAP_IV_KE R
isap.o isap_enc T
isap.o isap_mac T
isap.o isap_rk T

Number of similar (implementation,compiler) pairs: 9, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)