Implementation notes: amd64, hunsnivy, crypto_decode/953x6343
Computer: hunsnivy
Microarchitecture: amd64; Ivy Bridge+AES (306a9)
Architecture: amd64
CPU ID: GenuineIntel-000306a9-bfebfbff
SUPERCOP version: 20240808
Operation: crypto_decode
Primitive: 953x6343
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
15395 | 2179 0 0 | 11718 804 888 | int16 | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
15468 | 3252 0 0 | 15536 812 888 | int16 | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
15493 | 2529 0 0 | 14752 812 888 | int16 | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
15523 | 3252 0 0 | 17120 812 888 | int16 | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
16899 | 2296 0 0 | 12359 772 952 | int16 | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
17009 | 2251 0 0 | 12592 780 952 | int16 | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
17128 | 3419 0 0 | 14744 780 952 | int16 | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
17903 | 4327 0 0 | 15640 780 952 | portable | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
17998 | 2967 0 0 | 13304 780 952 | portable | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
22340 | 2977 0 0 | 12534 804 888 | portable | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
22346 | 2202 0 0 | 11299 756 920 | int16 | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
23183 | 3438 0 0 | 15648 812 888 | portable | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
23224 | 4446 0 0 | 18328 812 888 | portable | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
23238 | 4480 0 0 | 16776 812 888 | portable | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
38395 | 3415 0 0 | 13470 804 888 | int16 | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
44479 | 1359 0 0 | 12704 780 952 | ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
44899 | 2341 0 0 | 14648 812 888 | ref | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
45038 | 2812 0 0 | 16696 812 888 | ref | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
45170 | 2760 0 0 | 14976 812 888 | ref | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
46699 | 1731 0 0 | 11799 772 952 | portable | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
47870 | 1092 0 0 | 10622 804 888 | ref | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
47912 | 1602 0 0 | 10755 756 920 | portable | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
47961 | 1242 0 0 | 11592 780 952 | ref | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
54905 | 1168 0 0 | 11215 772 952 | ref | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
56934 | 1116 0 0 | 11150 804 888 | ref | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
59794 | 1049 0 0 | 10131 756 920 | ref | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
62389 | 1950 0 0 | 12022 804 888 | portable | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240808 | 20240808 |
Compiler output
decode.c: decode.c:255:10: error: always_inline function '_mm256_cvtepu8_epi16' requires target feature 'avx2', but would be inlined into function 'crypto_decode_953x6343_avx_constbranchindex' that is compiled without support for 'avx2'
decode.c: S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i)));
decode.c: ^
decode.c: decode.c:267:10: error: always_inline function '_mm256_unpacklo_epi16' requires target feature 'avx2', but would be inlined into function 'crypto_decode_953x6343_avx_constbranchindex' that is compiled without support for 'avx2'
decode.c: B0 = _mm256_unpacklo_epi16(A0,A1);
decode.c: ^
decode.c: decode.c:268:10: error: always_inline function '_mm256_unpackhi_epi16' requires target feature 'avx2', but would be inlined into function 'crypto_decode_953x6343_avx_constbranchindex' that is compiled without support for 'avx2'
decode.c: B1 = _mm256_unpackhi_epi16(A0,A1);
decode.c: ^
decode.c: decode.c:271:10: error: '__builtin_ia32_permti256' needs target feature avx2
decode.c: C0 = _mm256_permute2x128_si256(B0,B1,0x20);
decode.c: ^
decode.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/avx2intrin.h:821:12: note: expanded from macro '_mm256_permute2x128_si256'
decode.c: (__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (int)(M))
decode.c: ^
decode.c: decode.c:272:10: error: '__builtin_ia32_permti256' needs target feature avx2
decode.c: C1 = _mm256_permute2x128_si256(B0,B1,0x31);
decode.c: ^
decode.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/avx2intrin.h:821:12: note: expanded from macro '_mm256_permute2x128_si256'
decode.c: (__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (int)(M))
decode.c: ^
decode.c: decode.c:305:10: error: always_inline function '_mm256_srli_epi16' requires target feature 'avx2', but would be inlined into function 'crypto_decode_953x6343_avx_constbranchindex' that is compiled without support for 'avx2'
decode.c: S1 = _mm256_srli_epi16(S0,8);
decode.c: ^
decode.c: decode.c:320:10: error: always_inline function '_mm256_unpacklo_epi16' requires target feature 'avx2', but would be inlined into function 'crypto_decode_953x6343_avx_constbranchindex' that is compiled without support for 'avx2'
decode.c: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
avx | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
avx | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
avx | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
avx | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
Compiler output
decode.c: decode.c:254:15: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'crypto_decode_953x6343_avx_constbranchindex' that is compiled without support for 'avx'
decode.c: A2 = A0 = _mm256_loadu_si256((__m256i *) &R5[i]);
decode.c: ^
decode.c: decode.c:254:15: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
decode.c: decode.c:255:10: error: always_inline function '_mm256_cvtepu8_epi16' requires target feature 'avx2', but would be inlined into function 'crypto_decode_953x6343_avx_constbranchindex' that is compiled without support for 'avx2'
decode.c: S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i)));
decode.c: ^
decode.c: decode.c:255:10: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
decode.c: decode.c:256:14: warning: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
decode.c: A0 = sub(mulhiconst(A0,-302),mulhiconst(mulloconst(A0,-15294),1097)); /* -624...548 */
decode.c: ^
decode.c: decode.c:256:45: warning: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
decode.c: A0 = sub(mulhiconst(A0,-302),mulhiconst(mulloconst(A0,-15294),1097)); /* -624...548 */
decode.c: ^
decode.c: decode.c:256:34: warning: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
decode.c: A0 = sub(mulhiconst(A0,-302),mulhiconst(mulloconst(A0,-15294),1097)); /* -624...548 */
decode.c: ^
decode.c: decode.c:256:10: warning: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
decode.c: A0 = sub(mulhiconst(A0,-302),mulhiconst(mulloconst(A0,-15294),1097)); /* -624...548 */
decode.c: ^
decode.c: decode.c:257:10: warning: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
decode.c: A0 = add(A0,S0); /* -624...803 */
decode.c: ^
decode.c: decode.c:258:10: warning: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
decode.c: A0 = ifnegaddconst(A0,1097); /* 0...1096 */
decode.c: ...
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
avx | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
Compiler output
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:53,
decode.c: from decode.c:3:
decode.c: decode.c: In function 'add':
decode.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avx2intrin.h:112:1: error: inlining failed in call to 'always_inline' '_mm256_add_epi16': target specific option mismatch
decode.c: 112 | _mm256_add_epi16 (__m256i __A, __m256i __B)
decode.c: | ^~~~~~~~~~~~~~~~
decode.c: decode.c:22:10: note: called from here
decode.c: 22 | return _mm256_add_epi16(x,y);
decode.c: | ^~~~~~~~~~~~~~~~~~~~~
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
avx | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
avx | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
avx | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
avx | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
Passed TIMECOP
TIMECOP iterations: 10
Number of similar (implementation,compiler) pairs: 27, namely:
Implementation | Compiler |
int16 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
int16 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
int16 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
int16 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
int16 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
int16 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
int16 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
int16 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
int16 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
portable | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
portable | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
portable | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
portable | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
portable | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
portable | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
portable | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
portable | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
portable | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
ref | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
ref | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
ref | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
ref | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
ref | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1) |
ref | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
ref | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
ref | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |
ref | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110) |