Implementation notes: amd64, comet, crypto_kem/ntruhps2048509
Computer: comet
Microarchitecture: amd64; Comet Lake (806ec)
Architecture: amd64
CPU ID: GenuineIntel-000806ec-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_kem
Primitive: ntruhps2048509
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
62629 | 82887 25984 0 | 144428 26780 1760 | avx2 | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
65039 | 111300 25984 0 | 174033 26852 1792 | avx2 | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
65422 | 100032 25984 0 | 162529 26852 1728 | avx2 | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
74994 | 73979 25984 0 | 133620 26780 1760 | avx2 | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
76931 | 73891 25984 0 | 133887 26844 1792 | avx2 | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
81438 | 73545 25984 0 | 132721 26852 1728 | avx2 | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
83689 | 73458 25984 0 | 132572 26780 1760 | avx2 | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
88164 | 71877 25984 0 | 129892 26772 1728 | avx2 | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
624821 | 51531 0 0 | 113575 868 1728 | compact | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
632350 | 92895 0 0 | 155231 868 1792 | compact | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
691788 | 31419 0 0 | 93046 796 1760 | compact | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
844734 | 104837 0 0 | 166127 868 1728 | compact | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
2005670 | 38057 0 0 | 100351 868 1728 | ref | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
2017860 | 47553 0 0 | 110095 868 1792 | ref | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
2257484 | 8546 0 0 | 68325 860 1792 | ref | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
2314671 | 38848 0 0 | 100327 868 1728 | ref | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
2328945 | 7525 0 0 | 66775 868 1728 | compact | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
2423774 | 6782 0 0 | 66789 860 1792 | compact | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
2577778 | 15117 0 0 | 76702 796 1760 | ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
2631909 | 7273 0 0 | 66926 796 1760 | ref | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
2863601 | 5155 0 0 | 64910 796 1760 | compact | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
4171412 | 6122 0 0 | 64126 788 1728 | ref | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
4633425 | 3853 0 0 | 61982 788 1728 | compact | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
5235449 | 6691 0 0 | 65732 788 1760 | ref | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
5282984 | 6772 0 0 | 65967 868 1728 | ref | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
5524561 | 4466 0 0 | 63660 788 1760 | compact | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240711 | 20240625 |
Compiler output
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 (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
avx2 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
Compiler output
owcpa.c: owcpa.c:67:40: warning: argument 3 of type 'const unsigned char[2413]' with mismatched bound [-Warray-parameter=]
owcpa.c: 67 | const unsigned char seed[NTRU_SAMPLE_FG_BYTES])
owcpa.c: | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
owcpa.c: In file included from owcpa.c:1:
owcpa.c: owcpa.h:14:40: note: previously declared as 'const unsigned char[32]'
owcpa.c: 14 | const unsigned char seed[NTRU_SEEDBYTES]);
owcpa.c: | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
owcpa.c: owcpa.c: In function 'crypto_kem_ntruhps2048509_avx2_constbranchindex_owcpa_keypair':
owcpa.c: <command-line>: warning: 'crypto_kem_ntruhps2048509_avx2_constbranchindex_sample_fg' reading 2413 bytes from a region of size 32 [-Wstringop-overread]
owcpa.c: <command-line>: note: in definition of macro 'CRYPTO_NAMESPACE'
owcpa.c: owcpa.c:77:3: note: in expansion of macro 'sample_fg'
owcpa.c: 77 | sample_fg(f,g,seed);
owcpa.c: | ^~~~~~~~~
owcpa.c: <command-line>: note: referencing argument 3 of type 'const unsigned char[2413]'
owcpa.c: <command-line>: note: in definition of macro 'CRYPTO_NAMESPACE'
owcpa.c: owcpa.c:77:3: note: in expansion of macro 'sample_fg'
owcpa.c: 77 | sample_fg(f,g,seed);
owcpa.c: | ^~~~~~~~~
owcpa.c: <command-line>: note: in a call to function 'crypto_kem_ntruhps2048509_avx2_constbranchindex_sample_fg'
owcpa.c: <command-line>: note: in definition of macro 'CRYPTO_NAMESPACE'
owcpa.c: sample.h:11:6: note: in expansion of macro 'sample_fg'
owcpa.c: 11 | void sample_fg(poly *f, poly *g, const unsigned char uniformbytes[NTRU_SAMPLE_FG_BYTES]);
owcpa.c: | ^~~~~~~~~
owcpa.c: <command-line>: warning: 'crypto_kem_ntruhps2048509_avx2_constbranchindex_sample_fg' reading 2413 bytes from a region of size 32 [-Wstringop-overread]
owcpa.c: <command-line>: note: in definition of macro 'CRYPTO_NAMESPACE'
owcpa.c: ...
pack3.c: pack3.c:3:36: warning: argument 1 of type 'unsigned char[204]' with mismatched bound [-Warray-parameter=]
pack3.c: 3 | void poly_S3_tobytes(unsigned char msg[NTRU_OWCPA_MSGBYTES], const poly *a)
pack3.c: | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
pack3.c: In file included from pack3.c:1:
pack3.c: poly.h:33:36: note: previously declared as 'unsigned char[102]'
pack3.c: 33 | void poly_S3_tobytes(unsigned char msg[NTRU_PACK_TRINARY_BYTES], const poly *a);
pack3.c: | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
pack3.c: pack3.c:25:53: warning: argument 2 of type 'const unsigned char[204]' with mismatched bound [-Warray-parameter=]
pack3.c: 25 | void poly_S3_frombytes(poly *r, const unsigned char msg[NTRU_OWCPA_MSGBYTES])
pack3.c: | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
pack3.c: poly.h:34:53: note: previously declared as 'const unsigned char[102]'
pack3.c: 34 | void poly_S3_frombytes(poly *r, const unsigned char msg[NTRU_PACK_TRINARY_BYTES]);
pack3.c: | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
avx2 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
avx2 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
avx2 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
avx2 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
Compiler output
owcpa.c: owcpa.c:67:40: warning: argument 3 of type 'const unsigned char[2413]' with mismatched bound [-Warray-parameter=]
owcpa.c: 67 | const unsigned char seed[NTRU_SAMPLE_FG_BYTES])
owcpa.c: | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
owcpa.c: In file included from owcpa.c:1:
owcpa.c: owcpa.h:14:40: note: previously declared as 'const unsigned char[32]'
owcpa.c: 14 | const unsigned char seed[NTRU_SEEDBYTES]);
owcpa.c: | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
owcpa.c: owcpa.c: In function 'crypto_kem_ntruhps2048509_ref_constbranchindex_owcpa_keypair':
owcpa.c: <command-line>: warning: 'crypto_kem_ntruhps2048509_ref_constbranchindex_sample_fg' reading 2413 bytes from a region of size 32 [-Wstringop-overread]
owcpa.c: <command-line>: note: in definition of macro 'CRYPTO_NAMESPACE'
owcpa.c: owcpa.c:77:3: note: in expansion of macro 'sample_fg'
owcpa.c: 77 | sample_fg(f,g,seed);
owcpa.c: | ^~~~~~~~~
owcpa.c: <command-line>: note: referencing argument 3 of type 'const unsigned char[2413]'
owcpa.c: <command-line>: note: in definition of macro 'CRYPTO_NAMESPACE'
owcpa.c: owcpa.c:77:3: note: in expansion of macro 'sample_fg'
owcpa.c: 77 | sample_fg(f,g,seed);
owcpa.c: | ^~~~~~~~~
owcpa.c: <command-line>: note: in a call to function 'crypto_kem_ntruhps2048509_ref_constbranchindex_sample_fg'
owcpa.c: <command-line>: note: in definition of macro 'CRYPTO_NAMESPACE'
owcpa.c: sample.h:11:6: note: in expansion of macro 'sample_fg'
owcpa.c: 11 | void sample_fg(poly *f, poly *g, const unsigned char uniformbytes[NTRU_SAMPLE_FG_BYTES]);
owcpa.c: | ^~~~~~~~~
owcpa.c: <command-line>: warning: 'crypto_kem_ntruhps2048509_ref_constbranchindex_sample_fg' reading 2413 bytes from a region of size 32 [-Wstringop-overread]
owcpa.c: <command-line>: note: in definition of macro 'CRYPTO_NAMESPACE'
owcpa.c: ...
pack3.c: pack3.c:3:36: warning: argument 1 of type 'unsigned char[204]' with mismatched bound [-Warray-parameter=]
pack3.c: 3 | void poly_S3_tobytes(unsigned char msg[NTRU_OWCPA_MSGBYTES], const poly *a)
pack3.c: | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
pack3.c: In file included from pack3.c:1:
pack3.c: poly.h:32:36: note: previously declared as 'unsigned char[102]'
pack3.c: 32 | void poly_S3_tobytes(unsigned char msg[NTRU_PACK_TRINARY_BYTES], const poly *a);
pack3.c: | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
pack3.c: pack3.c:25:53: warning: argument 2 of type 'const unsigned char[204]' with mismatched bound [-Warray-parameter=]
pack3.c: 25 | void poly_S3_frombytes(poly *r, const unsigned char msg[NTRU_OWCPA_MSGBYTES])
pack3.c: | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
pack3.c: poly.h:33:53: note: previously declared as 'const unsigned char[102]'
pack3.c: 33 | void poly_S3_frombytes(poly *r, const unsigned char msg[NTRU_PACK_TRINARY_BYTES]);
pack3.c: | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
ref | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
ref | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
ref | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
ref | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
Passed TIMECOP
TIMECOP iterations: 1
Number of similar (implementation,compiler) pairs: 26, namely:
Implementation | Compiler |
avx2 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
avx2 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
avx2 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
avx2 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
avx2 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
avx2 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
avx2 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
avx2 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
compact | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
compact | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
compact | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
compact | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
compact | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
compact | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
compact | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
compact | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
compact | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
ref | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
ref | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
ref | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
ref | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
ref | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
ref | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
ref | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
ref | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
ref | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |