Implementation notes: amd64, gcc14, crypto_kem/mceliece348864f

Computer: gcc14
Architecture: amd64
CPU ID: GenuineIntel-00010676-bfebfbff
SUPERCOP version: 20220506
Operation: crypto_kem
Primitive: mceliece348864f
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
131358774868 0 0165899 828 1712vecclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
132447474913 0 0166867 828 1712vecclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
132875576138 0 0168027 828 1712vecclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
133670474868 0 0165899 828 1712vecclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
138845942624 0 0132517 820 1712vecclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
147145549284 0 0140574 852 1744vecgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
147310548983 0 0140702 852 1744vecgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
151029240399 0 0130526 844 1712vecgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
8927758629976 0 0120979 828 1712refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
8934329331498 0 0123459 828 1712refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
8939453729944 0 0121883 828 1712refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
8941390029976 0 0120979 828 1712refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
10143136031829 0 0125384 860 1744refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
14442153314704 0 0105926 852 1744refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
14532588513053 0 0102989 820 1712refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
14620246714808 0 0106534 852 1744refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
15843029511429 0 0101510 844 1712refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108

Test failure

Implementation: sse
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 9, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE sse
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE sse
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE sse
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE sse
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE sse
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE sse
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE sse
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE sse
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE vec

Compiler output

Implementation: avx
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:10:
decrypt.c: ./vec256.h:37:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'xsave', but would be inlined into function 'vec256_set4x' that is compiled without support for 'xsave'
decrypt.c: return _mm256_set_epi64x(a3, a2, a1, a0);
decrypt.c: ^
decrypt.c: ./vec256.h:50:9: error: always_inline function '_mm256_and_si256' requires target feature 'xsave', but would be inlined into function 'vec256_and' that is compiled without support for 'xsave'
decrypt.c: return _mm256_and_si256(a, b);
decrypt.c: ^
decrypt.c: ./vec256.h:22:9: error: always_inline function '_mm256_set1_epi16' requires target feature 'xsave', but would be inlined into function 'vec256_set1_16b' that is compiled without support for 'xsave'
decrypt.c: return _mm256_set1_epi16(a);
decrypt.c: ^
decrypt.c: ./vec256.h:60:9: error: always_inline function '_mm256_or_si256' requires target feature 'xsave', but would be inlined into function 'vec256_or' that is compiled without support for 'xsave'
decrypt.c: return _mm256_or_si256(a, b);
decrypt.c: ^
decrypt.c: ./vec256.h:55:9: error: always_inline function '_mm256_xor_si256' requires target feature 'xsave', but would be inlined into function 'vec256_xor' that is compiled without support for 'xsave'
decrypt.c: return _mm256_xor_si256(a, b);
decrypt.c: ^
decrypt.c: decrypt.c:157:10: error: always_inline function '_mm256_extract_epi64' requires target feature 'xsave', but would be inlined into function 'reformat_256to128' that is compiled without support for 'xsave'
decrypt.c: v[0] = vec256_extract(in[i], 0);
decrypt.c: ^
decrypt.c: ./vec256.h:41:41: note: expanded from macro 'vec256_extract'
decrypt.c: #define vec256_extract(a,i) ((uint64_t) _mm256_extract_epi64((vec256) (a),(i)))
decrypt.c: ^
decrypt.c: decrypt.c:158:10: error: always_inline function '_mm256_extract_epi64' requires target feature 'xsave', but would be inlined into function 'reformat_256to128' that is compiled without support for 'xsave'
decrypt.c: v[1] = vec256_extract(in[i], 1);
decrypt.c: ...

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

Compiler output

Implementation: avx
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:10:
decrypt.c: ./vec256.h:37:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'sse4.2', but would be inlined into function 'vec256_set4x' that is compiled without support for 'sse4.2'
decrypt.c: return _mm256_set_epi64x(a3, a2, a1, a0);
decrypt.c: ^
decrypt.c: ./vec256.h:50:9: error: always_inline function '_mm256_and_si256' requires target feature 'sse4.2', but would be inlined into function 'vec256_and' that is compiled without support for 'sse4.2'
decrypt.c: return _mm256_and_si256(a, b);
decrypt.c: ^
decrypt.c: ./vec256.h:22:9: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'vec256_set1_16b' that is compiled without support for 'sse4.2'
decrypt.c: return _mm256_set1_epi16(a);
decrypt.c: ^
decrypt.c: ./vec256.h:60:9: error: always_inline function '_mm256_or_si256' requires target feature 'sse4.2', but would be inlined into function 'vec256_or' that is compiled without support for 'sse4.2'
decrypt.c: return _mm256_or_si256(a, b);
decrypt.c: ^
decrypt.c: ./vec256.h:55:9: error: always_inline function '_mm256_xor_si256' requires target feature 'sse4.2', but would be inlined into function 'vec256_xor' that is compiled without support for 'sse4.2'
decrypt.c: return _mm256_xor_si256(a, b);
decrypt.c: ^
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:10:
decrypt.c: In file included from ./vec256.h:14:
decrypt.c: ./vec128.h:32:9: error: always_inline function '_mm_testz_si128' requires target feature 'ssse3', but would be inlined into function 'vec128_testz' that is compiled without support for 'ssse3'
decrypt.c: return _mm_testz_si128(a, a);
decrypt.c: ^
decrypt.c: decrypt.c:157:10: error: always_inline function '_mm256_extract_epi64' requires target feature 'sse4.2', but would be inlined into function 'reformat_256to128' that is compiled without support for 'sse4.2'
decrypt.c: v[0] = vec256_extract(in[i], 0);
decrypt.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx T:avx

Compiler output

Implementation: avx
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
benes.c: In file included from transpose.h:11:0,
benes.c: from benes.c:9:
benes.c: vec256.h: In function 'vec256_set1_16b':
benes.c: vec256.h:21:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
benes.c: {
benes.c: ^
decrypt.c: In file included from fft_tr.h:10:0,
decrypt.c: from decrypt.c:8:
decrypt.c: vec256.h: In function 'vec256_set1_16b':
decrypt.c: vec256.h:21:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
decrypt.c: {
decrypt.c: ^
decrypt.c: vec256.h: In function 'vec256_and':
decrypt.c: vec256.h:48:22: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
decrypt.c: static inline vec256 vec256_and(vec256 a, vec256 b)
decrypt.c: ^~~~~~~~~~
decrypt.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/immintrin.h:41:0,
decrypt.c: from vec256.h:16,
decrypt.c: from fft_tr.h:10,
decrypt.c: from decrypt.c:8:
decrypt.c: vec256.h: In function 'vec256_set1_16b':
decrypt.c: /usr/lib/gcc/x86_64-linux-gnu/6/include/avxintrin.h:1300:1: error: inlining failed in call to always_inline '_mm256_set1_epi16': target specific option mismatch
decrypt.c: _mm256_set1_epi16 (short __A)
decrypt.c: ^~~~~~~~~~~~~~~~~
decrypt.c: In file included from fft_tr.h:10:0,
decrypt.c: from decrypt.c:8:
decrypt.c: vec256.h:22:9: note: called from here
decrypt.c: return _mm256_set1_epi16(a);
decrypt.c: ^~~~~~~~~~~~~~~~~~~~

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

Compiler output

Implementation: sse
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:10:
decrypt.c: ./vec128.h:39:9: error: always_inline function '_mm_testz_si128' requires target feature 'ssse3', but would be inlined into function 'vec128_testz' that is compiled without support for 'ssse3'
decrypt.c: return _mm_testz_si128(a, a);
decrypt.c: ^
decrypt.c: fatal error: error in backend: Cannot select: 0x558ca4cadb50: i32 = X86ISD::PTEST 0x558ca4c39cb0, 0x558ca4c39cb0
decrypt.c: 0x558ca4c39cb0: v2i64,ch = CopyFromReg 0x558ca4ba2020, Register:v2i64 %vreg93
decrypt.c: 0x558ca4c8c330: v2i64 = Register %vreg93
decrypt.c: 0x558ca4c39cb0: v2i64,ch = CopyFromReg 0x558ca4ba2020, Register:v2i64 %vreg93
decrypt.c: 0x558ca4c8c330: v2i64 = Register %vreg93
decrypt.c: In function: crypto_kem_mceliece348864f_sse_constbranchindex_decrypt
decrypt.c: clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
decrypt.c: clang version 3.8.1-24 (tags/RELEASE_381/final)
decrypt.c: Target: x86_64-pc-linux-gnu
decrypt.c: Thread model: posix
decrypt.c: InstalledDir: /usr/bin
decrypt.c: clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
decrypt.c: clang: note: diagnostic msg:
decrypt.c: ********************
decrypt.c:
decrypt.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
decrypt.c: Preprocessed source(s) and associated run script(s) are located at:
decrypt.c: clang: note: diagnostic msg: /tmp/decrypt-c15c7a.c
decrypt.c: clang: note: diagnostic msg: /tmp/decrypt-c15c7a.sh
decrypt.c: clang: note: diagnostic msg:
decrypt.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE sse