Implementation notes: amd64, jasper, crypto_aead/grain128aeadv2
Computer: jasper
Microarchitecture: amd64; Tremont (906c0)
Architecture: amd64
CPU ID: GenuineIntel-000906c0-20-bfebfbff
SUPERCOP version: 20240808
Operation: crypto_aead
Primitive: grain128aeadv2
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
242336 | 18835 0 0 | 34141 844 1016 | T:sse | clang++_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
242831 | 15163 0 0 | 32789 844 1016 | T:sse | clang++_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
243774 | 4699 0 0 | 18811 836 1016 | T:sse | clang++_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
257534 | 4232 0 0 | 17203 756 1080 | T:sse | g++_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
263016 | 16921 0 0 | 32624 780 1112 | T:sse | g++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
263710 | 14089 0 0 | 28624 780 1112 | T:sse | g++_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
265818 | 12486 0 0 | 26599 772 1112 | T:sse | g++_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
388778 | 7075 0 0 | 21584 780 1112 | T:x64 | g++_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
395484 | 6823 0 0 | 20911 772 1112 | T:x64 | g++_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
501006 | 2496 0 0 | 15451 756 1080 | T:x64 | g++_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
820649 | 16987 0 0 | 34669 844 1016 | T:x64 | clang++_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
823174 | 20470 0 0 | 35837 844 1016 | T:x64 | clang++_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
916702 | 2875 0 0 | 16955 836 1016 | T:x64 | clang++_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240716 |
Checksum failure
daf3a44bfc214bbf13e2e84e9a467172c1af327db4cd9b5b8a461a6b7880b23b
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:sse | clang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
Checksum failure
7d0b0c2792c151f313da2a4c4f1e9f6ce9e0620579deaee3411fe08dabcaf63d
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:x64 | clang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
Checksum failure
d0dd6234d89dbd95039a8c1c4e9e8f6fa0d58228afa4fda263447f76c3102a36
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:x64 | g++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
Compiler output
grain128aead-v2_opt.cpp: grain128aead-v2_opt.cpp:236:6: error: '__builtin_ia32_pternlogq128_mask' needs target feature avx512vl
grain128aead-v2_opt.cpp: T = _xorand3(_mm_srli_epi16(X, 1), X, _mm_set1_epi16(0x2222));
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: grain128aead-v2_opt.cpp:125:27: note: expanded from macro '_xorand3'
grain128aead-v2_opt.cpp: #define _xorand3(a, b, c) _mm_ternarylogic_epi64(a, b, c, 0x28)
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: /usr/lib/llvm-11/lib/clang/11.0.1/include/avx512vlintrin.h:6565:12: note: expanded from macro '_mm_ternarylogic_epi64'
grain128aead-v2_opt.cpp: (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: grain128aead-v2_opt.cpp:237:6: error: '__builtin_ia32_pternlogq128_mask' needs target feature avx512vl
grain128aead-v2_opt.cpp: X = _xor3(_mm_slli_epi16(T, 1), X, T);
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: grain128aead-v2_opt.cpp:122:25: note: expanded from macro '_xor3'
grain128aead-v2_opt.cpp: #define _xor3(a, b, c) _mm_ternarylogic_epi64(a, b, c, 0x96)
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: /usr/lib/llvm-11/lib/clang/11.0.1/include/avx512vlintrin.h:6565:12: note: expanded from macro '_mm_ternarylogic_epi64'
grain128aead-v2_opt.cpp: (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: grain128aead-v2_opt.cpp:238:6: error: '__builtin_ia32_pternlogq128_mask' needs target feature avx512vl
grain128aead-v2_opt.cpp: T = _xorand3(_mm_srli_epi16(X, 2), X, _mm_set1_epi16(0x0c0c));
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: grain128aead-v2_opt.cpp:125:27: note: expanded from macro '_xorand3'
grain128aead-v2_opt.cpp: #define _xorand3(a, b, c) _mm_ternarylogic_epi64(a, b, c, 0x28)
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: /usr/lib/llvm-11/lib/clang/11.0.1/include/avx512vlintrin.h:6565:12: note: expanded from macro '_mm_ternarylogic_epi64'
grain128aead-v2_opt.cpp: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:avx512 | clang++ -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avx512 | clang++ -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:avx512 | clang++ -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall |
T:avx512 | clang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
Compiler output
grain128aead-v2_opt.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:63,
grain128aead-v2_opt.cpp: from /usr/lib/gcc/x86_64-linux-gnu/10/include/x86intrin.h:32,
grain128aead-v2_opt.cpp: from grain128aead-v2_opt.h:41,
grain128aead-v2_opt.cpp: from grain128aead-v2_opt.cpp:10:
grain128aead-v2_opt.cpp: /usr/lib/gcc/x86_64-linux-gnu/10/include/avx512vlintrin.h: In function 'u64 grain_keystream64(grain_ctx*)':
grain128aead-v2_opt.cpp: /usr/lib/gcc/x86_64-linux-gnu/10/include/avx512vlintrin.h:10568:1: error: inlining failed in call to 'always_inline' '__m128i _mm_ternarylogic_epi64(__m128i, __m128i, __m128i, int)': target specific option mismatch
grain128aead-v2_opt.cpp: 10568 | _mm_ternarylogic_epi64 (__m128i __A, __m128i __B, __m128i __C,
grain128aead-v2_opt.cpp: | ^~~~~~~~~~~~~~~~~~~~~~
grain128aead-v2_opt.cpp: grain128aead-v2_opt.cpp:207:32: note: called from here
grain128aead-v2_opt.cpp: 207 | u64 y = ys ^ _mm_cvtsi128_si64(_xor2(shr8(_xor3(_andxor3(s4, s7, s5), _and3(ts, b7, s6), b1), 7), shr8(_andxor3(shr8(b7, 2), s2, b1), 5)));
grain128aead-v2_opt.cpp: | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
grain128aead-v2_opt.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:63,
grain128aead-v2_opt.cpp: from /usr/lib/gcc/x86_64-linux-gnu/10/include/x86intrin.h:32,
grain128aead-v2_opt.cpp: from grain128aead-v2_opt.h:41,
grain128aead-v2_opt.cpp: from grain128aead-v2_opt.cpp:10:
grain128aead-v2_opt.cpp: /usr/lib/gcc/x86_64-linux-gnu/10/include/avx512vlintrin.h:10568:1: error: inlining failed in call to 'always_inline' '__m128i _mm_ternarylogic_epi64(__m128i, __m128i, __m128i, int)': target specific option mismatch
grain128aead-v2_opt.cpp: 10568 | _mm_ternarylogic_epi64 (__m128i __A, __m128i __B, __m128i __C,
grain128aead-v2_opt.cpp: | ^~~~~~~~~~~~~~~~~~~~~~
grain128aead-v2_opt.cpp: grain128aead-v2_opt.cpp:207:32: note: called from here
grain128aead-v2_opt.cpp: 207 | u64 y = ys ^ _mm_cvtsi128_si64(_xor2(shr8(_xor3(_andxor3(s4, s7, s5), _and3(ts, b7, s6), b1), 7), shr8(_andxor3(shr8(b7, 2), s2, b1), 5)));
grain128aead-v2_opt.cpp: | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
grain128aead-v2_opt.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:63,
grain128aead-v2_opt.cpp: from /usr/lib/gcc/x86_64-linux-gnu/10/include/x86intrin.h:32,
grain128aead-v2_opt.cpp: from grain128aead-v2_opt.h:41,
grain128aead-v2_opt.cpp: from grain128aead-v2_opt.cpp:10:
grain128aead-v2_opt.cpp: ...
Number of similar (implementation,compiler) pairs: 8, namely:
Implementation | Compiler |
T:avx512 | g++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avx512 | g++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:avx512 | g++ -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall |
T:avx512 | g++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:gf2 | g++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:gf2 | g++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
T:gf2 | g++ -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall |
T:gf2 | g++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
Compiler output
grain128aead-v2_opt.cpp: grain128aead-v2_opt.cpp:241:6: error: '__builtin_ia32_pternlogq128_mask' needs target feature avx512vl
grain128aead-v2_opt.cpp: T = _xorand3(_mm_srli_epi16(X, 4), X, _mm_set1_epi16(0x00f0));
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: grain128aead-v2_opt.cpp:125:27: note: expanded from macro '_xorand3'
grain128aead-v2_opt.cpp: #define _xorand3(a, b, c) _mm_ternarylogic_epi64(a, b, c, 0x28)
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: /usr/lib/llvm-11/lib/clang/11.0.1/include/avx512vlintrin.h:6565:12: note: expanded from macro '_mm_ternarylogic_epi64'
grain128aead-v2_opt.cpp: (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: grain128aead-v2_opt.cpp:242:6: error: '__builtin_ia32_pternlogq128_mask' needs target feature avx512vl
grain128aead-v2_opt.cpp: X = _xor3(_mm_slli_epi16(T, 4), X, T);
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: grain128aead-v2_opt.cpp:122:25: note: expanded from macro '_xor3'
grain128aead-v2_opt.cpp: #define _xor3(a, b, c) _mm_ternarylogic_epi64(a, b, c, 0x96)
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: /usr/lib/llvm-11/lib/clang/11.0.1/include/avx512vlintrin.h:6565:12: note: expanded from macro '_mm_ternarylogic_epi64'
grain128aead-v2_opt.cpp: (__m128i)__builtin_ia32_pternlogq128_mask((__v2di)(__m128i)(A), \
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: grain128aead-v2_opt.cpp:155:30: error: '__builtin_ia32_pternlogq128_mask' needs target feature avx512vl
grain128aead-v2_opt.cpp: u64 ss = _mm_cvtsi128_si64( _xor3(s0, s7, s6_4));
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: grain128aead-v2_opt.cpp:122:25: note: expanded from macro '_xor3'
grain128aead-v2_opt.cpp: #define _xor3(a, b, c) _mm_ternarylogic_epi64(a, b, c, 0x96)
grain128aead-v2_opt.cpp: ^
grain128aead-v2_opt.cpp: /usr/lib/llvm-11/lib/clang/11.0.1/include/avx512vlintrin.h:6565:12: note: expanded from macro '_mm_ternarylogic_epi64'
grain128aead-v2_opt.cpp: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:gf2 | clang++ -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:gf2 | clang++ -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
T:gf2 | clang++ -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall |
T:gf2 | clang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |