Implementation notes: amd64, h8atom, crypto_kem/ntskem13136
Computer: h8atom
Microarchitecture: amd64; Bonnell (30661)
Architecture: amd64
CPU ID: GenuineIntel-00030661-bfebfbff
SUPERCOP version: 20240716
Operation: crypto_kem
Primitive: ntskem13136
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
8277108 | 93644 84 16 | 110622 952 1568 | T:sse2 | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
8485015 | 104206 84 16 | 120318 952 1568 | T:sse2 | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
8776068 | 78435 84 16 | 93768 944 1568 | T:sse2 | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
9595250 | 156957 84 16 | 175086 952 1568 | T:sse2 | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
11315542 | 142188 84 16 | 161846 952 1568 | T:opt | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
11731314 | 89922 84 16 | 108454 952 1568 | T:opt | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
11959437 | 72030 84 16 | 88864 944 1568 | T:opt | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
13191927 | 79406 84 16 | 97712 928 1632 | T:opt | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
14961625 | 165809 84 16 | 185342 952 1568 | T:opt | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
15113637 | 98293 84 16 | 115966 952 1568 | T:opt | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
16543646 | 76898 84 16 | 94656 928 1632 | T:opt | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
16658810 | 106842 84 16 | 126456 928 1632 | T:opt | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
16957087 | 70515 84 16 | 87015 920 1600 | T:opt | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
76639157 | 34180 76 16 | 52782 936 1568 | T:ref | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
76875540 | 34802 76 16 | 54646 936 1568 | T:ref | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
89491892 | 22697 76 16 | 39520 928 1568 | T:ref | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
104985671 | 38672 76 16 | 58510 936 1568 | T:ref | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
108180366 | 30089 76 16 | 47758 936 1568 | T:ref | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
115425114 | 34500 76 16 | 54048 896 1632 | T:ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
120299466 | 27546 76 16 | 45816 896 1632 | T:ref | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
131520242 | 21207 76 16 | 37647 888 1600 | T:ref | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
131936819 | 24685 76 16 | 42432 896 1632 | T:ref | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240718 | 20240625 |
Compiler output
bitslice_fft_256.c: bitslice_fft_256.c:103:29: error: always_inline function '_mm256_setr_epi32' requires target feature 'avx', but would be inlined into function 'bitslice_butterflies13_256' that is compiled without support for 'avx'
bitslice_fft_256.c: const __m256i mask256 = _mm256_setr_epi32(0, 2, 4, 6, 1, 3, 5, 7);
bitslice_fft_256.c: ^
bitslice_fft_256.c: bitslice_fft_256.c:103:29: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bitslice_fft_256.c: bitslice_fft_256.c:127:25: error: always_inline function '_mm256_set_epi32' requires target feature 'avx', but would be inlined into function 'bitslice_butterflies13_256' that is compiled without support for 'avx'
bitslice_fft_256.c: out[j][i] = _mm256_set_epi32(-u32[7], -u32[6], -u32[5], -u32[4],
bitslice_fft_256.c: ^
bitslice_fft_256.c: bitslice_fft_256.c:127:25: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bitslice_fft_256.c: bitslice_fft_256.c:140:20: error: always_inline function '_mm256_permutevar8x32_epi32' requires target feature 'avx2', but would be inlined into function 'bitslice_butterflies13_256' that is compiled without support for 'avx2'
bitslice_fft_256.c: t[0] = _mm256_permutevar8x32_epi32(out[ j ][b], mask256);
bitslice_fft_256.c: ^
bitslice_fft_256.c: bitslice_fft_256.c:140:20: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bitslice_fft_256.c: bitslice_fft_256.c:141:20: error: always_inline function '_mm256_permutevar8x32_epi32' requires target feature 'avx2', but would be inlined into function 'bitslice_butterflies13_256' that is compiled without support for 'avx2'
bitslice_fft_256.c: t[1] = _mm256_permutevar8x32_epi32(out[j+1][b], mask256);
bitslice_fft_256.c: ^
bitslice_fft_256.c: bitslice_fft_256.c:141:20: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bitslice_fft_256.c: bitslice_fft_256.c:142:20: error: '__builtin_ia32_permti256' needs target feature avx2
bitslice_fft_256.c: v[b] = _mm256_permute2x128_si256(t[0], t[1], 0x20);
bitslice_fft_256.c: ^
bitslice_fft_256.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/avx2intrin.h:821:13: note: expanded from macro '_mm256_permute2x128_si256'
bitslice_fft_256.c: ((__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (int)(M)))
bitslice_fft_256.c: ^
bitslice_fft_256.c: bitslice_fft_256.c:143:20: error: '__builtin_ia32_permdi256' needs target feature avx2
bitslice_fft_256.c: v[b] = _mm256_permute4x64_epi64(v[b], 0xD8);
bitslice_fft_256.c: ^
bitslice_fft_256.c: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:avx2 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:avx2 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:avx2 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:avx2 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
Compiler output
bitslice_bma_128.c: bitslice_bma_128.c:315:21: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'bitslice_bma' that is compiled without support for 'ssse3'
bitslice_bma_128.c: out[1][j] = _mm_shuffle_epi8(out[0][j], mask);
bitslice_bma_128.c: ^
bitslice_bma_128.c: bitslice_bma_128.c:316:21: error: '__builtin_ia32_palignr128' needs target feature ssse3
bitslice_bma_128.c: out[0][j] = _mm_alignr_epi8(out[0][j], psi[0][j], 15);
bitslice_bma_128.c: ^
bitslice_bma_128.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/tmmintrin.h:152:13: note: expanded from macro '_mm_alignr_epi8'
bitslice_bma_128.c: ((__m128i)__builtin_ia32_palignr128((__v16qi)(__m128i)(a), \
bitslice_bma_128.c: ^
bitslice_bma_128.c: 2 errors generated.
Number of similar (implementation,compiler) pairs: 2, namely:
Implementation | Compiler |
T:avx2 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:sse2 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
Compiler output
bitslice_fft_256.c: bitslice_fft_256.c: In function 'bitslice_butterflies13_256':
bitslice_fft_256.c: bitslice_fft_256.c:103:19: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
bitslice_fft_256.c: 103 | const __m256i mask256 = _mm256_setr_epi32(0, 2, 4, 6, 1, 3, 5, 7);
bitslice_fft_256.c: | ^~~~~~~
bitslice_fft_256.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
bitslice_fft_256.c: from bitslice_fft_256.h:21,
bitslice_fft_256.c: from bitslice_fft_256.c:19:
bitslice_fft_256.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:1371:1: error: inlining failed in call to 'always_inline' '_mm256_setr_epi32': target specific option mismatch
bitslice_fft_256.c: 1371 | _mm256_setr_epi32 (int __A, int __B, int __C, int __D,
bitslice_fft_256.c: | ^~~~~~~~~~~~~~~~~
bitslice_fft_256.c: bitslice_fft_256.c:103:29: note: called from here
bitslice_fft_256.c: 103 | const __m256i mask256 = _mm256_setr_epi32(0, 2, 4, 6, 1, 3, 5, 7);
bitslice_fft_256.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bitslice_fft_256.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
bitslice_fft_256.c: from bitslice_fft_256.h:21,
bitslice_fft_256.c: from bitslice_fft_256.c:19:
bitslice_fft_256.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:1265:1: error: inlining failed in call to 'always_inline' '_mm256_set_epi32': target specific option mismatch
bitslice_fft_256.c: 1265 | _mm256_set_epi32 (int __A, int __B, int __C, int __D,
bitslice_fft_256.c: | ^~~~~~~~~~~~~~~~
bitslice_fft_256.c: bitslice_fft_256.c:127:25: note: called from here
bitslice_fft_256.c: 127 | out[j][i] = _mm256_set_epi32(-u32[7], -u32[6], -u32[5], -u32[4],
bitslice_fft_256.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bitslice_fft_256.c: 128 | -u32[3], -u32[2], -u32[1], -u32[0]);
bitslice_fft_256.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bitslice_fft_256.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
bitslice_fft_256.c: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:avx2 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:avx2 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:avx2 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:avx2 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
Compiler output
nts_kem.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:39,
nts_kem.c: from ff.h:18,
nts_kem.c: from nts_kem.c:18:
nts_kem.c: nts_kem.c: In function 'create_matrix_G':
nts_kem.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h:455:1: error: inlining failed in call to 'always_inline' '_mm_extract_epi64': target specific option mismatch
nts_kem.c: 455 | _mm_extract_epi64 (__m128i __X, const int __N)
nts_kem.c: | ^~~~~~~~~~~~~~~~~
nts_kem.c: nts_kem.c:860:57: note: called from here
nts_kem.c: 860 | v[i >> 6] |= (((_mm_extract_epi64(vh[l >> 7][j], 1) & (1ULL << (l & 63))) >> (l & 63)) << (i & 63));
nts_kem.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nts_kem.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:39,
nts_kem.c: from ff.h:18,
nts_kem.c: from nts_kem.c:18:
nts_kem.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h:455:1: error: inlining failed in call to 'always_inline' '_mm_extract_epi64': target specific option mismatch
nts_kem.c: 455 | _mm_extract_epi64 (__m128i __X, const int __N)
nts_kem.c: | ^~~~~~~~~~~~~~~~~
nts_kem.c: nts_kem.c:863:57: note: called from here
nts_kem.c: 863 | v[i >> 6] |= (((_mm_extract_epi64(vh[l >> 7][j], 0) & (1ULL << (l & 63))) >> (l & 63)) << (i & 63));
nts_kem.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nts_kem.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:39,
nts_kem.c: from ff.h:18,
nts_kem.c: from nts_kem.c:18:
nts_kem.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h:455:1: error: inlining failed in call to 'always_inline' '_mm_extract_epi64': target specific option mismatch
nts_kem.c: 455 | _mm_extract_epi64 (__m128i __X, const int __N)
nts_kem.c: | ^~~~~~~~~~~~~~~~~
nts_kem.c: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:sse2 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:sse2 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:sse2 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:sse2 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |