Implementation notes: amd64, panther, crypto_kem/remblem928

Computer: panther
Microarchitecture: amd64; Tiger Lake (806c1)
Architecture: amd64
CPU ID: GenuineIntel-000806c1-00-bfebfbff
SUPERCOP version: 20240716
Operation: crypto_kem
Primitive: remblem928
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
715424024552 4116 7252098 5044 1816T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
733690923196 4116 7250650 5044 1816T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
73408289697 4116 7234264 5036 1816T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
746215621224 4128 7249366 5020 1880T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
763767617351 4116 7245034 5044 1816T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
77246228693 4128 7234710 5020 1880T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
79670637513 4116 7232792 5036 1816T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
81345437622 4128 7233198 5020 1880T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716
84259866253 4128 7230726 5012 1848T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024072220240716

Compiler output


kem.c: kem.c:97:16: warning: unused variable 'D_tmp' [-Wunused-variable]
kem.c:         unsigned char D_tmp[32];
kem.c:                       ^
kem.c: kem.c:198:9: warning: unused variable 'j' [-Wunused-variable]
kem.c:         int i, j;
kem.c:                ^
kem.c: kem.c:322:19: warning: unused variable 'bit' [-Wunused-variable]
kem.c:         int i, j, bit;
kem.c:                   ^
kem.c: kem.c:322:16: warning: unused variable 'j' [-Wunused-variable]
kem.c:         int i, j, bit;
kem.c:                ^
kem.c: kem.c:366:24: warning: passing 'int *' to parameter of type 'unsigned int *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c:         bytes_from_modq(pk+32,pPubKey_B,CRYPTO_R_n);
kem.c:                               ^~~~~~~~~
kem.c: kem.c:27:60: note: passing argument to parameter 'x' here
kem.c: static void bytes_from_modq(unsigned char *y,unsigned int *x,int xlen)
kem.c:                                                            ^
kem.c: kem.c:340:9: warning: unused variable 'j' [-Wunused-variable]
kem.c:         int i, j, bit;
kem.c:                ^
kem.c: kem.c:340:12: warning: unused variable 'bit' [-Wunused-variable]
kem.c:         int i, j, bit;
kem.c:                   ^
kem.c: kem.c:454:6: warning: unused variable 'tmp' [-Wunused-variable]
kem.c: ...

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


kem.c: kem.c:97:16: warning: unused variable 'D_tmp' [-Wunused-variable]
kem.c:         unsigned char D_tmp[32];
kem.c:                       ^
kem.c: kem.c:198:9: warning: unused variable 'j' [-Wunused-variable]
kem.c:         int i, j;
kem.c:                ^
kem.c: kem.c:322:16: warning: unused variable 'j' [-Wunused-variable]
kem.c:         int i, j, bit;
kem.c:                ^
kem.c: kem.c:322:19: warning: unused variable 'bit' [-Wunused-variable]
kem.c:         int i, j, bit;
kem.c:                   ^
kem.c: kem.c:366:24: warning: passing 'int *' to parameter of type 'unsigned int *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c:         bytes_from_modq(pk+32,pPubKey_B,CRYPTO_R_n);
kem.c:                               ^~~~~~~~~
kem.c: kem.c:27:60: note: passing argument to parameter 'x' here
kem.c: static void bytes_from_modq(unsigned char *y,unsigned int *x,int xlen)
kem.c:                                                            ^
kem.c: kem.c:340:12: warning: unused variable 'bit' [-Wunused-variable]
kem.c:         int i, j, bit;
kem.c:                   ^
kem.c: kem.c:340:9: warning: unused variable 'j' [-Wunused-variable]
kem.c:         int i, j, bit;
kem.c:                ^
kem.c: kem.c:454:6: warning: unused variable 'tmp' [-Wunused-variable]
kem.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


kem.c: kem.c:97:16: warning: unused variable 'D_tmp' [-Wunused-variable]
kem.c:         unsigned char D_tmp[32];
kem.c:                       ^
kem.c: kem.c:198:9: warning: unused variable 'j' [-Wunused-variable]
kem.c:         int i, j;
kem.c:                ^
kem.c: kem.c:322:16: warning: unused variable 'j' [-Wunused-variable]
kem.c:         int i, j, bit;
kem.c:                ^
kem.c: kem.c:322:19: warning: unused variable 'bit' [-Wunused-variable]
kem.c:         int i, j, bit;
kem.c:                   ^
kem.c: kem.c:366:24: warning: passing 'int *' to parameter of type 'unsigned int *' converts between pointers to integer types with different sign [-Wpointer-sign]
kem.c:         bytes_from_modq(pk+32,pPubKey_B,CRYPTO_R_n);
kem.c:                               ^~~~~~~~~
kem.c: kem.c:27:60: note: passing argument to parameter 'x' here
kem.c: static void bytes_from_modq(unsigned char *y,unsigned int *x,int xlen)
kem.c:                                                            ^
kem.c: kem.c:340:9: warning: unused variable 'j' [-Wunused-variable]
kem.c:         int i, j, bit;
kem.c:                ^
kem.c: kem.c:340:12: warning: unused variable 'bit' [-Wunused-variable]
kem.c:         int i, j, bit;
kem.c:                   ^
kem.c: kem.c:454:6: warning: unused variable 'tmp' [-Wunused-variable]
kem.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


kem.c: kem.c: In function 'SHA256_OS':
kem.c: kem.c:97:16: warning: unused variable 'D_tmp' [-Wunused-variable]
kem.c:    97 |  unsigned char D_tmp[32];
kem.c:       |                ^~~~~
kem.c: kem.c: In function 'p_add':
kem.c: kem.c:198:9: warning: unused variable 'j' [-Wunused-variable]
kem.c:   198 |  int i, j;
kem.c:       |         ^
kem.c: kem.c: In function 'keys_from_pk':
kem.c: kem.c:322:19: warning: unused variable 'bit' [-Wunused-variable]
kem.c:   322 |         int i, j, bit;
kem.c:       |                   ^~~
kem.c: kem.c:322:16: warning: unused variable 'j' [-Wunused-variable]
kem.c:   322 |         int i, j, bit;
kem.c:       |                ^
kem.c: kem.c: In function 'keys_from_sk':
kem.c: kem.c:366:24: warning: pointer targets in passing argument 2 of 'bytes_from_modq' differ in signedness [-Wpointer-sign]
kem.c:   366 |  bytes_from_modq(pk+32,pPubKey_B,CRYPTO_R_n);
kem.c:       |                        ^~~~~~~~~
kem.c:       |                        |
kem.c:       |                        int *
kem.c: kem.c:27:60: note: expected 'unsigned int *' but argument is of type 'int *'
kem.c:    27 | static void bytes_from_modq(unsigned char *y,unsigned int *x,int xlen)
kem.c:       |                                              ~~~~~~~~~~~~~~^
kem.c: kem.c:340:12: warning: unused variable 'bit' [-Wunused-variable]
kem.c: ...
rng.c: rng.c: In function 'AES256_ECB':
rng.c: rng.c:123:6: warning: variable 'ciphertext_len' set but not used [-Wunused-but-set-variable]
rng.c:   123 |  int ciphertext_len;
rng.c:       |      ^~~~~~~~~~~~~~

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)

Namespace violations


kem.o CDT_TABLE D
kem.o INTT T
kem.o NTT T
kem.o NTT_new T
kem.o SHA256_INT T
kem.o SHA256_OS T
kem.o Sample_CDT T
kem.o _BINT_to_OS T
kem.o _OS_to_BINT T
kem.o _R_KEM_Enc T
kem.o _R_KEM_GenTrinary T
kem.o _R_KEM_dec T
kem.o fmodq T
kem.o inv_ntt_512_12289 D
kem.o ntt_512_12289 D
kem.o p_add T
kem.o p_mul T
kem.o p_muladd T
kem.o random_modq T
rng.o AES256_CTR_DRBG_Update T
rng.o AES256_ECB T
rng.o DRBG_ctx B
rng.o handleErrors T
rng.o seedexpander T
rng.o seedexpander_init T
rng.o xrandombytes T
rng.o xrandombytes_init T

Number of similar (implementation,compiler) pairs: 9, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)