Implementation notes: amd64, h8bobcat, crypto_auth/siphash24

Computer: h8bobcat
Microarchitecture: amd64; Bobcat (500f10)
Architecture: amd64
CPU ID: AuthenticAMD-00500f20-178bfbff
SUPERCOP version: 20240107
Operation: crypto_auth
Primitive: siphash24
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
6826806 0 013572 816 744T:ref_leclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
6826806 0 014716 816 744T:ref_leclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
6826806 0 012628 816 744T:ref_leclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
6831685 0 014820 816 744T:littleclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
6831761 0 014966 776 832T:littlegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
6831807 0 014932 816 744T:ref_leclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
6835701 0 013476 816 744T:littleclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
6835701 0 014620 816 744T:littleclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
6840874 0 013133 768 832T:little2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
6840953 0 013229 768 832T:ref_legcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
6845957 0 013630 776 832T:ref_legcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
6849910 0 015070 776 832T:little2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
6849957 0 015118 776 832T:ref_legcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
6850910 0 013574 776 832T:little2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
6854644 0 013358 776 832T:littlegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
6911714 0 013029 768 832T:littlegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
7016704 0 013460 816 744T:little2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
7016701 0 011878 808 744T:little2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
7016703 0 014820 816 744T:little2clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
7016791 0 011974 808 744T:ref_leclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
7021694 0 012508 816 744T:little2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
7030704 0 014604 816 744T:little2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
7040625 0 011833 752 800T:littlegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
7999984 0 012129 752 800T:ref_legcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
8013525 0 012356 816 744T:littleclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
8389887 0 012033 752 800T:little2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
8778488 0 011686 808 744T:littleclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
10412981 0 013764 816 744T:mmxclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
10412981 0 014908 816 744T:mmxclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
10422997 0 015140 816 744T:mmxclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
11576629 0 012468 816 744T:mmxclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
11951598 0 011798 808 744T:mmxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
18530749 0 013524 816 744T:sandyclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
18530749 0 014668 816 744T:sandyclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
18530733 0 014868 816 744T:sandyclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
18539929 0 013197 768 832T:sandy2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
18615736 0 013061 768 832T:sandygcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
18905761 0 012572 816 744T:sandy2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
18905769 0 014884 816 744T:sandy2clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
18910756 0 011926 808 744T:sandy2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
18915771 0 014668 816 744T:sandy2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
18924771 0 013524 816 744T:sandy2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
18929656 0 011865 752 800T:sandygcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
19318974 0 015134 776 832T:sandy2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
19323974 0 013638 776 832T:sandy2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
19722525 0 012356 816 744T:sandyclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
20074841 0 015046 776 832T:sandygcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
20083684 0 013390 776 832T:sandygcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
20083938 0 012089 752 800T:sandy2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
20482506 0 011702 808 744T:sandyclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
209101315 0 015510 776 832T:sse2-1gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
209431323 0 015526 776 832T:mmxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
216741197 0 015348 816 744T:sse2-1clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
216791197 0 013988 816 744T:sse2-1clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
216791197 0 015132 816 744T:sse2-1clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
22163932 0 013269 768 832T:sse2-1gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
22487916 0 013646 776 832T:sse2-1gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
228571341 0 013092 816 744T:sse2-1clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
22871758 0 011969 752 800T:sse2-1gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
23327911 0 013245 768 832T:mmxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
23631738 0 011942 808 744T:sse2-1clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121620231212
24021892 0 013606 776 832T:mmxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212
24420783 0 011993 752 800T:mmxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121620231212

Compiler output

Implementation: T:sse2-1
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
siphash.c: siphash.c:24:9: warning: '_mm_roti_epi64' macro redefined [-Wmacro-redefined]
siphash.c: #define _mm_roti_epi64(x, c) ((16 == (c)) ? _mm_shufflelo_epi16((x), _MM_SHUFFLE(2,1,0,3)) : _mm_xor_si128(_mm_slli_epi64((x), (c)), _mm_srli_epi64((x), 64-(c))))
siphash.c: ^
siphash.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/xopintrin.h:236:9: note: previous definition is here
siphash.c: #define _mm_roti_epi64(A, N) \
siphash.c: ^
siphash.c: 1 warning generated.

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

Compiler output

Implementation: T:sse41
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
siphash.c: siphash.c:27:9: warning: '_mm_roti_epi64' macro redefined [-Wmacro-redefined]
siphash.c: #define _mm_roti_epi64(x, c) (((c) == 16) ? rotate16((x)) : _mm_xor_si128(_mm_slli_epi64((x), (c)), _mm_srli_epi64((x), 64-(c))))
siphash.c: ^
siphash.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/xopintrin.h:236:9: note: previous definition is here
siphash.c: #define _mm_roti_epi64(A, N) \
siphash.c: ^
siphash.c: siphash.c:70:39: error: '__builtin_ia32_pblendw128' needs target feature sse4.1
siphash.c: for(k = 0; k < SIPHASH_ROUNDS; ++k) COMPRESS(v02,v13);
siphash.c: ^
siphash.c: siphash.c:60:3: note: expanded from macro 'COMPRESS'
siphash.c: HALF_ROUND(v02,v13,13,16); \
siphash.c: ^
siphash.c: siphash.c:53:60: note: expanded from macro 'HALF_ROUND'
siphash.c: b1 = _mm_roti_epi64(b, s); b2 = _mm_roti_epi64(b, t); b = _mm_blend_epi16(b1, b2, 0xF0); \
siphash.c: ^
siphash.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/smmintrin.h:520:14: note: expanded from macro '_mm_blend_epi16'
siphash.c: ((__m128i) __builtin_ia32_pblendw128 ((__v8hi)(__m128i)(V1), \
siphash.c: ^
siphash.c: siphash.c:70:39: error: '__builtin_ia32_pblendw128' needs target feature sse4.1
siphash.c: siphash.c:62:3: note: expanded from macro 'COMPRESS'
siphash.c: HALF_ROUND(v02,v13,17,21); \
siphash.c: ^
siphash.c: siphash.c:53:60: note: expanded from macro 'HALF_ROUND'
siphash.c: b1 = _mm_roti_epi64(b, s); b2 = _mm_roti_epi64(b, t); b = _mm_blend_epi16(b1, b2, 0xF0); \
siphash.c: ^
siphash.c: ...

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

Compiler output

Implementation: T:sse41
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
siphash.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:39,
siphash.c: from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
siphash.c: from siphash.c:2:
siphash.c: siphash.c: In function 'siphash':
siphash.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h:166:1: error: inlining failed in call to 'always_inline' '_mm_blend_epi16': target specific option mismatch
siphash.c: 166 | _mm_blend_epi16 (__m128i __X, __m128i __Y, const int __M)
siphash.c: | ^~~~~~~~~~~~~~~
siphash.c: siphash.c:53:67: note: called from here
siphash.c: 53 | b1 = _mm_roti_epi64(b, s); b2 = _mm_roti_epi64(b, t); b = _mm_blend_epi16(b1, b2, 0xF0); \
siphash.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
siphash.c: siphash.c:62:17: note: in expansion of macro 'HALF_ROUND'
siphash.c: 62 | HALF_ROUND(v02,v13,17,21); \
siphash.c: | ^~~~~~~~~~
siphash.c: siphash.c:70:53: note: in expansion of macro 'COMPRESS'
siphash.c: 70 | for(k = 0; k < SIPHASH_ROUNDS; ++k) COMPRESS(v02,v13);
siphash.c: | ^~~~~~~~
siphash.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:39,
siphash.c: from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
siphash.c: from siphash.c:2:
siphash.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h:166:1: error: inlining failed in call to 'always_inline' '_mm_blend_epi16': target specific option mismatch
siphash.c: 166 | _mm_blend_epi16 (__m128i __X, __m128i __Y, const int __M)
siphash.c: | ^~~~~~~~~~~~~~~
siphash.c: siphash.c:53:67: note: called from here
siphash.c: 53 | b1 = _mm_roti_epi64(b, s); b2 = _mm_roti_epi64(b, t); b = _mm_blend_epi16(b1, b2, 0xF0); \
siphash.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
siphash.c: ...

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