Implementation notes: amd64, jasper3, crypto_kem/ntruhps2048509

Computer: jasper3
Microarchitecture: amd64; Tremont (906c0)
Architecture: amd64
CPU ID: GenuineIntel-000906c0-20-bfebfbff
SUPERCOP version: 20240107
Operation: crypto_kem
Primitive: ntruhps2048509
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
95010031750 0 053288 868 1752T:compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122320231222
95765139080 0 061289 876 1720T:compactclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122320231222
97386325867 0 045737 876 1720T:compactclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122320231222
98850425867 0 053985 876 1720compactclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122320231222
98925631750 0 061472 868 1752compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122320231222
99840639080 0 069473 876 1720compactclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122320231222
106792539631 0 060481 876 1720T:compactclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122320231222
111587339631 0 068729 876 1720compactclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122320231222
65012166103 0 032200 860 1720refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
65112496103 0 023952 860 1720T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
69456583812 0 021856 860 1720T:compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122320231222
694809924880 0 045889 876 1720T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
695581324880 0 054073 876 1720refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
70080403812 0 030040 860 1720compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122320231222
742481715586 0 036968 868 1752T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
743172625144 0 047481 876 1720T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
743699215586 0 045152 868 1752refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
74412497018 0 025903 868 1720T:refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
744442914758 0 034785 876 1720T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
744461625144 0 055729 876 1720refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
74508586640 0 026310 860 1752T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
74517606250 0 024519 868 1720T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
746028914758 0 043033 876 1720refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
74651777039 0 027400 868 1752T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
74687957039 0 035648 868 1752refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
74957316250 0 032703 868 1720refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
74974137018 0 034087 868 1720refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
74985116640 0 034494 860 1752refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
77392585898 0 024927 868 1720T:compactclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122320231222
77417975163 0 025576 868 1752T:compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122320231222
77534685163 0 033824 868 1752compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122320231222
77569114802 0 023167 868 1720T:compactclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122320231222
77697685898 0 033175 868 1720compactclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122320231222
77995734802 0 031351 868 1720compactclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122320231222
79089324512 0 024302 860 1752T:compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122320231222
79284634512 0 032550 860 1752compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122320231222

Compiler output

Implementation: avx2
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
poly_r2_inv.c: poly_r2_inv.c:19:14: error: always_inline function '_pext_u64' requires target feature 'bmi2', but would be inlined into function 'crypto_kem_ntruhps2048509_avx2_constbranchindex_poly_R2_tobytes' that is compiled without support for 'bmi2'
poly_r2_inv.c: out[i] = _pext_u64(coeff_pointer[2*i], 0x1000100010001);
poly_r2_inv.c: ^
poly_r2_inv.c: poly_r2_inv.c:20:15: error: always_inline function '_pext_u64' requires target feature 'bmi2', but would be inlined into function 'crypto_kem_ntruhps2048509_avx2_constbranchindex_poly_R2_tobytes' that is compiled without support for 'bmi2'
poly_r2_inv.c: out[i] |= _pext_u64(coeff_pointer[2*i+1], 0x1000100010001) << 4;
poly_r2_inv.c: ^
poly_r2_inv.c: poly_r2_inv.c:22:12: error: always_inline function '_pext_u64' requires target feature 'bmi2', but would be inlined into function 'crypto_kem_ntruhps2048509_avx2_constbranchindex_poly_R2_tobytes' that is compiled without support for 'bmi2'
poly_r2_inv.c: out[i] = _pext_u64(coeff_pointer[2*63], 0x1000100010001);
poly_r2_inv.c: ^
poly_r2_inv.c: poly_r2_inv.c:23:13: error: always_inline function '_pext_u64' requires target feature 'bmi2', but would be inlined into function 'crypto_kem_ntruhps2048509_avx2_constbranchindex_poly_R2_tobytes' that is compiled without support for 'bmi2'
poly_r2_inv.c: out[i] |= _pext_u64(coeff_pointer[2*63+1], 0x1) << 4;
poly_r2_inv.c: ^
poly_r2_inv.c: 4 errors generated.

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

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
poly_r2_inv.c: poly_r2_inv.c:19:14: error: always_inline function '_pext_u64' requires target feature 'bmi2', but would be inlined into function 'crypto_kem_ntruhps2048509_avx2_timingleaks_poly_R2_tobytes' that is compiled without support for 'bmi2'
poly_r2_inv.c: out[i] = _pext_u64(coeff_pointer[2*i], 0x1000100010001);
poly_r2_inv.c: ^
poly_r2_inv.c: poly_r2_inv.c:20:15: error: always_inline function '_pext_u64' requires target feature 'bmi2', but would be inlined into function 'crypto_kem_ntruhps2048509_avx2_timingleaks_poly_R2_tobytes' that is compiled without support for 'bmi2'
poly_r2_inv.c: out[i] |= _pext_u64(coeff_pointer[2*i+1], 0x1000100010001) << 4;
poly_r2_inv.c: ^
poly_r2_inv.c: poly_r2_inv.c:22:12: error: always_inline function '_pext_u64' requires target feature 'bmi2', but would be inlined into function 'crypto_kem_ntruhps2048509_avx2_timingleaks_poly_R2_tobytes' that is compiled without support for 'bmi2'
poly_r2_inv.c: out[i] = _pext_u64(coeff_pointer[2*63], 0x1000100010001);
poly_r2_inv.c: ^
poly_r2_inv.c: poly_r2_inv.c:23:13: error: always_inline function '_pext_u64' requires target feature 'bmi2', but would be inlined into function 'crypto_kem_ntruhps2048509_avx2_timingleaks_poly_R2_tobytes' that is compiled without support for 'bmi2'
poly_r2_inv.c: out[i] |= _pext_u64(coeff_pointer[2*63+1], 0x1) << 4;
poly_r2_inv.c: ^
poly_r2_inv.c: 4 errors generated.

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

Compiler output

Implementation: avx2
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
poly_r2_inv.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:109,
poly_r2_inv.c: from poly_r2_inv.c:1:
poly_r2_inv.c: poly_r2_inv.c: In function 'crypto_kem_ntruhps2048509_avx2_constbranchindex_poly_R2_tobytes':
poly_r2_inv.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/bmi2intrin.h:76:1: error: inlining failed in call to 'always_inline' '_pext_u64': target specific option mismatch
poly_r2_inv.c: 76 | _pext_u64 (unsigned long long __X, unsigned long long __Y)
poly_r2_inv.c: | ^~~~~~~~~
poly_r2_inv.c: poly_r2_inv.c:20:15: note: called from here
poly_r2_inv.c: 20 | out[i] |= _pext_u64(coeff_pointer[2*i+1], 0x1000100010001) << 4;
poly_r2_inv.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poly_r2_inv.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:109,
poly_r2_inv.c: from poly_r2_inv.c:1:
poly_r2_inv.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/bmi2intrin.h:76:1: error: inlining failed in call to 'always_inline' '_pext_u64': target specific option mismatch
poly_r2_inv.c: 76 | _pext_u64 (unsigned long long __X, unsigned long long __Y)
poly_r2_inv.c: | ^~~~~~~~~
poly_r2_inv.c: poly_r2_inv.c:19:14: note: called from here
poly_r2_inv.c: 19 | out[i] = _pext_u64(coeff_pointer[2*i], 0x1000100010001);
poly_r2_inv.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poly_r2_inv.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:109,
poly_r2_inv.c: from poly_r2_inv.c:1:
poly_r2_inv.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/bmi2intrin.h:76:1: error: inlining failed in call to 'always_inline' '_pext_u64': target specific option mismatch
poly_r2_inv.c: 76 | _pext_u64 (unsigned long long __X, unsigned long long __Y)
poly_r2_inv.c: | ^~~~~~~~~
poly_r2_inv.c: poly_r2_inv.c:23:13: note: called from here
poly_r2_inv.c: 23 | out[i] |= _pext_u64(coeff_pointer[2*63+1], 0x1) << 4;
poly_r2_inv.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poly_r2_inv.c: ...

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

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
poly_r2_inv.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:109,
poly_r2_inv.c: from poly_r2_inv.c:1:
poly_r2_inv.c: poly_r2_inv.c: In function 'crypto_kem_ntruhps2048509_avx2_timingleaks_poly_R2_tobytes':
poly_r2_inv.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/bmi2intrin.h:76:1: error: inlining failed in call to 'always_inline' '_pext_u64': target specific option mismatch
poly_r2_inv.c: 76 | _pext_u64 (unsigned long long __X, unsigned long long __Y)
poly_r2_inv.c: | ^~~~~~~~~
poly_r2_inv.c: poly_r2_inv.c:20:15: note: called from here
poly_r2_inv.c: 20 | out[i] |= _pext_u64(coeff_pointer[2*i+1], 0x1000100010001) << 4;
poly_r2_inv.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poly_r2_inv.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:109,
poly_r2_inv.c: from poly_r2_inv.c:1:
poly_r2_inv.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/bmi2intrin.h:76:1: error: inlining failed in call to 'always_inline' '_pext_u64': target specific option mismatch
poly_r2_inv.c: 76 | _pext_u64 (unsigned long long __X, unsigned long long __Y)
poly_r2_inv.c: | ^~~~~~~~~
poly_r2_inv.c: poly_r2_inv.c:19:14: note: called from here
poly_r2_inv.c: 19 | out[i] = _pext_u64(coeff_pointer[2*i], 0x1000100010001);
poly_r2_inv.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poly_r2_inv.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:109,
poly_r2_inv.c: from poly_r2_inv.c:1:
poly_r2_inv.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/bmi2intrin.h:76:1: error: inlining failed in call to 'always_inline' '_pext_u64': target specific option mismatch
poly_r2_inv.c: 76 | _pext_u64 (unsigned long long __X, unsigned long long __Y)
poly_r2_inv.c: | ^~~~~~~~~
poly_r2_inv.c: poly_r2_inv.c:23:13: note: called from here
poly_r2_inv.c: 23 | out[i] |= _pext_u64(coeff_pointer[2*63+1], 0x1) << 4;
poly_r2_inv.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poly_r2_inv.c: ...

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