Implementation notes: amd64, panther, crypto_sign/bls

Computer: panther
Microarchitecture: amd64; Tiger Lake (806c1)
Architecture: amd64
CPU ID: GenuineIntel-000806c1-00-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_sign
Primitive: bls

Compiler output


mralloc.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
mrarth0.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
mrarth1.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
mrarth2.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
mrarth3.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
mrbits.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
mrcore.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
mrcore.c: mrcore.c:101:2: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
mrcore.c: {"your program","innum","otnum","jack","normalise",
mrcore.c:  ^
mrcore.c: mrcore.c:101:17: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
mrcore.c: {"your program","innum","otnum","jack","normalise",
mrcore.c:                 ^
mrcore.c: mrcore.c:101:25: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
mrcore.c: {"your program","innum","otnum","jack","normalise",
mrcore.c:                         ^
mrcore.c: mrcore.c:101:33: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
mrcore.c: {"your program","innum","otnum","jack","normalise",
mrcore.c:                                 ^
mrcore.c: mrcore.c:101:40: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
mrcore.c: {"your program","innum","otnum","jack","normalise",
mrcore.c:                                        ^
mrcore.c: mrcore.c:102:1: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
mrcore.c: "multiply","divide","incr","decr","premult",
mrcore.c: ^
mrcore.c: mrcore.c:102:12: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
mrcore.c: "multiply","divide","incr","decr","premult",
mrcore.c:            ^
mrcore.c: mrcore.c:102:21: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
mrcore.c: "multiply","divide","incr","decr","premult",
mrcore.c:                     ^
mrcore.c: ...

Number of similar (implementation,compiler) pairs: 4, 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)

Compiler output


mrarth0.c: mrarth0.c: In function 'void mr_select(big, int, big, big)':
mrarth0.c: mrarth0.c:216:5: warning: 'sz' may be used uninitialized in this function [-Wmaybe-uninitialized]
mrarth0.c:   216 |     if (sz<0) z->len^=MR_MSBIT;         /* set sign of result         */
mrarth0.c:       |     ^~
mrarth1.c: mrarth1.c: In function 'void mr_pmul(big, mr_small, big)':
mrarth1.c: mrarth1.c:95:21: warning: variable 'xg' set but not used [-Wunused-but-set-variable]
mrarth1.c:    95 |     mr_small carry,*xg,*zg;
mrarth1.c:       |                     ^~
mrarth1.c: mrarth1.c:95:25: warning: variable 'zg' set but not used [-Wunused-but-set-variable]
mrarth1.c:    95 |     mr_small carry,*xg,*zg;
mrarth1.c:       |                         ^~
mrarth1.c: mrarth1.c: In function 'mr_small mr_sdiv(big, mr_small, big)':
mrarth1.c: mrarth1.c:370:18: warning: variable 'xg' set but not used [-Wunused-but-set-variable]
mrarth1.c:   370 |     mr_small sr,*xg,*zg;
mrarth1.c:       |                  ^~
mrarth1.c: mrarth1.c:370:22: warning: variable 'zg' set but not used [-Wunused-but-set-variable]
mrarth1.c:   370 |     mr_small sr,*xg,*zg;
mrarth1.c:       |                      ^~
mrarth2.c: mrarth2.c: In function 'void multiply(big, big, big)':
mrarth2.c: mrarth2.c:55:21: warning: variable 'xg' set but not used [-Wunused-but-set-variable]
mrarth2.c:    55 |     mr_small carry,*xg,*yg,*w0g;
mrarth2.c:       |                     ^~
mrarth2.c: mrarth2.c:55:25: warning: variable 'yg' set but not used [-Wunused-but-set-variable]
mrarth2.c:    55 |     mr_small carry,*xg,*yg,*w0g;
mrarth2.c:       |                         ^~
mrarth2.c: mrarth2.c:55:29: warning: variable 'w0g' set but not used [-Wunused-but-set-variable]
mrarth2.c:    55 |     mr_small carry,*xg,*yg,*w0g;
mrarth2.c:       |                             ^~~
mrarth2.c: mrarth2.c: In function 'void divide(big, big, big)':
mrarth2.c: mrarth2.c:814:26: warning: variable 'w0g' set but not used [-Wunused-but-set-variable]
mrarth2.c:   814 |     mr_small borrow,dig,*w0g,*yg;
mrarth2.c:       |                          ^~~
mrarth2.c: mrarth2.c:814:31: warning: variable 'yg' set but not used [-Wunused-but-set-variable]
mrarth2.c:   814 |     mr_small borrow,dig,*w0g,*yg;
mrarth2.c:       |                               ^~
mrcore.c: mrcore.c:101:2: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   101 | {"your program","innum","otnum","jack","normalise",
mrcore.c:       |  ^~~~~~~~~~~~~~
mrcore.c: mrcore.c:101:17: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   101 | {"your program","innum","otnum","jack","normalise",
mrcore.c:       |                 ^~~~~~~
mrcore.c: mrcore.c:101:25: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   101 | {"your program","innum","otnum","jack","normalise",
mrcore.c:       |                         ^~~~~~~
mrcore.c: mrcore.c:101:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   101 | {"your program","innum","otnum","jack","normalise",
mrcore.c:       |                                 ^~~~~~
mrcore.c: mrcore.c:101:40: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   101 | {"your program","innum","otnum","jack","normalise",
mrcore.c:       |                                        ^~~~~~~~~~~
mrcore.c: mrcore.c:102:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   102 | "multiply","divide","incr","decr","premult",
mrcore.c:       | ^~~~~~~~~~
mrcore.c: mrcore.c:102:12: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   102 | "multiply","divide","incr","decr","premult",
mrcore.c:       |            ^~~~~~~~
mrcore.c: mrcore.c:102:21: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   102 | "multiply","divide","incr","decr","premult",
mrcore.c:       |                     ^~~~~~
mrcore.c: mrcore.c:102:28: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c: ...

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

Compiler output


mrarth0.c: mrarth0.c: In function 'void mr_select(big, int, big, big)':
mrarth0.c: mrarth0.c:216:5: warning: 'sz' may be used uninitialized in this function [-Wmaybe-uninitialized]
mrarth0.c:   216 |     if (sz<0) z->len^=MR_MSBIT;         /* set sign of result         */
mrarth0.c:       |     ^~
mrarth0.c: mrarth0.c: In function 'void add(big, big, big)':
mrarth0.c: mrarth0.c:216:5: warning: 'sz' may be used uninitialized in this function [-Wmaybe-uninitialized]
mrarth0.c:   216 |     if (sz<0) z->len^=MR_MSBIT;         /* set sign of result         */
mrarth0.c:       |     ^~
mrarth0.c: mrarth0.c:161:15: note: 'sz' was declared here
mrarth0.c:   161 |     int sx,sy,sz,jf,xgty;
mrarth0.c:       |               ^~
mrarth0.c: mrarth0.c: In function 'void subtract(big, big, big)':
mrarth0.c: mrarth0.c:216:5: warning: 'sz' may be used uninitialized in this function [-Wmaybe-uninitialized]
mrarth0.c:   216 |     if (sz<0) z->len^=MR_MSBIT;         /* set sign of result         */
mrarth0.c:       |     ^~
mrarth0.c: mrarth0.c:161:15: note: 'sz' was declared here
mrarth0.c:   161 |     int sx,sy,sz,jf,xgty;
mrarth0.c:       |               ^~
mrarth1.c: mrarth1.c: In function 'void mr_pmul(big, mr_small, big)':
mrarth1.c: mrarth1.c:95:21: warning: variable 'xg' set but not used [-Wunused-but-set-variable]
mrarth1.c:    95 |     mr_small carry,*xg,*zg;
mrarth1.c:       |                     ^~
mrarth1.c: mrarth1.c:95:25: warning: variable 'zg' set but not used [-Wunused-but-set-variable]
mrarth1.c:    95 |     mr_small carry,*xg,*zg;
mrarth1.c:       |                         ^~
mrarth1.c: mrarth1.c: In function 'mr_small mr_sdiv(big, mr_small, big)':
mrarth1.c: mrarth1.c:370:18: warning: variable 'xg' set but not used [-Wunused-but-set-variable]
mrarth1.c:   370 |     mr_small sr,*xg,*zg;
mrarth1.c:       |                  ^~
mrarth1.c: mrarth1.c:370:22: warning: variable 'zg' set but not used [-Wunused-but-set-variable]
mrarth1.c:   370 |     mr_small sr,*xg,*zg;
mrarth1.c:       |                      ^~
mrarth2.c: mrarth2.c: In function 'void multiply(big, big, big)':
mrarth2.c: mrarth2.c:55:21: warning: variable 'xg' set but not used [-Wunused-but-set-variable]
mrarth2.c:    55 |     mr_small carry,*xg,*yg,*w0g;
mrarth2.c:       |                     ^~
mrarth2.c: mrarth2.c:55:25: warning: variable 'yg' set but not used [-Wunused-but-set-variable]
mrarth2.c:    55 |     mr_small carry,*xg,*yg,*w0g;
mrarth2.c:       |                         ^~
mrarth2.c: mrarth2.c:55:29: warning: variable 'w0g' set but not used [-Wunused-but-set-variable]
mrarth2.c:    55 |     mr_small carry,*xg,*yg,*w0g;
mrarth2.c:       |                             ^~~
mrarth2.c: mrarth2.c: In function 'void divide(big, big, big)':
mrarth2.c: mrarth2.c:814:26: warning: variable 'w0g' set but not used [-Wunused-but-set-variable]
mrarth2.c:   814 |     mr_small borrow,dig,*w0g,*yg;
mrarth2.c:       |                          ^~~
mrarth2.c: mrarth2.c:814:31: warning: variable 'yg' set but not used [-Wunused-but-set-variable]
mrarth2.c:   814 |     mr_small borrow,dig,*w0g,*yg;
mrarth2.c:       |                               ^~
mrcore.c: mrcore.c:101:2: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   101 | {"your program","innum","otnum","jack","normalise",
mrcore.c:       |  ^~~~~~~~~~~~~~
mrcore.c: mrcore.c:101:17: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   101 | {"your program","innum","otnum","jack","normalise",
mrcore.c:       |                 ^~~~~~~
mrcore.c: mrcore.c:101:25: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   101 | {"your program","innum","otnum","jack","normalise",
mrcore.c:       |                         ^~~~~~~
mrcore.c: mrcore.c:101:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   101 | {"your program","innum","otnum","jack","normalise",
mrcore.c:       |                                 ^~~~~~
mrcore.c: mrcore.c:101:40: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   101 | {"your program","innum","otnum","jack","normalise",
mrcore.c:       |                                        ^~~~~~~~~~~
mrcore.c: mrcore.c:102:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   102 | "multiply","divide","incr","decr","premult",
mrcore.c:       | ^~~~~~~~~~
mrcore.c: mrcore.c:102:12: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   102 | "multiply","divide","incr","decr","premult",
mrcore.c:       |            ^~~~~~~~
mrcore.c: mrcore.c:102:21: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c:   102 | "multiply","divide","incr","decr","premult",
mrcore.c:       |                     ^~~~~~
mrcore.c: mrcore.c:102:28: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
mrcore.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refg++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)