Implementation notes: amd64, rome0, crypto_sign/rainbow

Computer: rome0
Microarchitecture: amd64; Zen 2 (830f10)
Architecture: amd64
CPU ID: AuthenticAMD-00830f10-178bfbff
SUPERCOP version: 20240716
Operation: crypto_sign
Primitive: rainbow

Test failure


error 111
crypto_sign_open returns nonzero

Number of similar (implementation,compiler) pairs: 8, 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:refg++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refg++ -march=native -mtune=native -O3 -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

Compiler output


usehash.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
Compose.cpp: In file included from Compose.cpp:2:
Compose.cpp: ./rainbow.h:1:17: warning: using directive refers to implicitly-defined namespace 'std'
Compose.cpp: using namespace std ;
Compose.cpp:                 ^
Compose.cpp: Compose.cpp:31:12: warning: unused variable 'rept' [-Wunused-variable]
Compose.cpp:         const int rept = 1;
Compose.cpp:                   ^
Compose.cpp: 2 warnings generated.
GFpow.cpp: In file included from GFpow.cpp:1:
GFpow.cpp: ./GFpow.h:4:17: warning: using directive refers to implicitly-defined namespace 'std'
GFpow.cpp: using namespace std ;
GFpow.cpp:                 ^
GFpow.cpp: GFpow.cpp:16:3: warning: misleading indentation; statement is not part of the previous 'for' [-Wmisleading-indentation]
GFpow.cpp:                 for( j = 2*deg-2 ; j >= deg ; j-- ) {
GFpow.cpp:                 ^
GFpow.cpp: GFpow.cpp:11:2: note: previous statement is here
GFpow.cpp:         for ( i = 0; i < deg; i++ )
GFpow.cpp:         ^
GFpow.cpp: 2 warnings generated.
Gauss.cpp: In file included from Gauss.cpp:1:
Gauss.cpp: ./rainbow.h:1:17: warning: using directive refers to implicitly-defined namespace 'std'
Gauss.cpp: using namespace std ;
Gauss.cpp:                 ^
Gauss.cpp: 1 warning generated.

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


Compose.cpp: Compose.cpp: In function 'int crypto_sign_rainbow_ref_timingleaks_keypair(unsigned char*, unsigned char*)':
Compose.cpp: Compose.cpp:31:12: warning: unused variable 'rept' [-Wunused-variable]
Compose.cpp:    31 |  const int rept = 1;
Compose.cpp:       |            ^~~~
Compose.cpp: Compose.cpp: In function 'int crypto_sign_rainbow_ref_timingleaks_signatureofshorthash(unsigned char*, long long unsigned int*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int)':
Compose.cpp: Compose.cpp:291:28: warning: unused variable 'B' [-Wunused-variable]
Compose.cpp:   291 |  GFpow c0, A[nv1*(nv1+1)], B[ovn*ovn1], * xoil, y1[ovn];
Compose.cpp:       |                            ^
Compose.cpp: Compose.cpp:291:43: warning: variable 'xoil' set but not used [-Wunused-but-set-variable]
Compose.cpp:   291 |  GFpow c0, A[nv1*(nv1+1)], B[ovn*ovn1], * xoil, y1[ovn];
Compose.cpp:       |                                           ^~~~
Compose.cpp: In file included from rainbow.h:10,
Compose.cpp:                  from Compose.cpp:2:
Compose.cpp: GFpow.h: At global scope:
Compose.cpp: GFpow.h:24:12: warning: 'inv' defined but not used [-Wunused-variable]
Compose.cpp:    24 | static int inv[pow]={-1,1,166,196,83,135,98,116,143,44,229,36,49,94,58,125,225,43,22,240,212,141,18,241,190,51,47,223,29,28,152,236,214,159,179,131,11,228,120,207,106,65,224,17,9,142,222,26,95,12,191,25,177,80,201,219,168,148,14,124,76,238,118,123,107,41,233,164,255,105,231,90,163,89,114,183,60,239,193,227,53,176,134,4,112,204,174,172,162,73,71,230,111,202,13,48,137,216,6,117,249,186,170,242,254,69,40,64,194,221,203,92,84,205,74,182,7,99,62,122,38,206,119,63,59,15,155,208,147,139,178,35,210,180,82,5,217,96,146,129,213,21,45,8,247,184,138,128,57,169,253,234,30,237,209,126,198,244,215,33,188,250,88,72,67,232,2,197,56,149,102,243,87,175,86,173,81,52,130,34,133,211,115,75,145,246,101,248,160,251,24,50,226,78,108,220,3,167,156,245,218,54,93,110,85,113,121,39,127,154,132,181,20,140,32,158,97,136,200,55,195,109,46,27,42,16,192,79,37,10,91,70,165,66,151,252,31,153,61,77,19,23,103,171,157,199,185,144,187,100,161,189,235,150,104,161};
Compose.cpp:       |            ^~~
Compose.cpp: In file included from rainbow.h:10,
Compose.cpp:                  from Compose.cpp:2:
Compose.cpp: GFpow.h:23:13: warning: 'ex' defined but not used [-Wunused-variable]
Compose.cpp:    23 | static int  ex[pow]={1,2,4,8,16,32,64,128,77,154,121,242,169,31,62,124,248,189,55,110,220,245,167,3,6,12,24,48,96,192,205,215,227,139,91,182,33,66,132,69,138,89,178,41,82,164,5,10,20,40,80,160,13,26,52,104,208,237,151,99,198,193,207,211,235,155,123,246,161,15,30,60,120,240,173,23,46,92,184,61,122,244,165,7,14,28,56,112,224,141,87,174,17,34,68,136,93,186,57,114,228,133,71,142,81,162,9,18,36,72,144,109,218,249,191,51,102,204,213,231,131,75,150,97,194,201,223,243,171,27,54,108,216,253,183,35,70,140,85,170,25,50,100,200,221,247,163,11,22,44,88,176,45,90,180,37,74,148,101,202,217,255,179,43,86,172,21,42,84,168,29,58,116,232,157,119,238,145,111,222,241,175,19,38,76,152,125,250,185,63,126,252,181,39,78,156,117,234,153,127,254,177,47,94,188,53,106,212,229,135,67,134,65,130,73,146,105,210,233,159,115,230,129,79,158,113,226,137,95,190,49,98,196,197,199,195,203,219,251,187,59,118,236,149,103,206,209,239,147,107,214,225,143,83,166,1};
Compose.cpp:       |             ^~
Compose.cpp: In file included from rainbow.h:10,
Compose.cpp:                  from Compose.cpp:2:
Compose.cpp: GFpow.h:22:12: warning: 'lg' defined but not used [-Wunused-variable]
Compose.cpp: ...
GFpow.cpp: GFpow.cpp: In function 'void mult(int*, int*, int*)':
GFpow.cpp: GFpow.cpp:11:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
GFpow.cpp:    11 |  for ( i = 0; i < deg; i++ )
GFpow.cpp:       |  ^~~
GFpow.cpp: GFpow.cpp:16:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
GFpow.cpp:    16 |   for( j = 2*deg-2 ; j >= deg ; j-- ) {
GFpow.cpp:       |   ^~~
GFpow.cpp: In file included from GFpow.cpp:1:
GFpow.cpp: GFpow.h: At global scope:
GFpow.cpp: GFpow.h:24:12: warning: 'inv' defined but not used [-Wunused-variable]
GFpow.cpp:    24 | static int inv[pow]={-1,1,166,196,83,135,98,116,143,44,229,36,49,94,58,125,225,43,22,240,212,141,18,241,190,51,47,223,29,28,152,236,214,159,179,131,11,228,120,207,106,65,224,17,9,142,222,26,95,12,191,25,177,80,201,219,168,148,14,124,76,238,118,123,107,41,233,164,255,105,231,90,163,89,114,183,60,239,193,227,53,176,134,4,112,204,174,172,162,73,71,230,111,202,13,48,137,216,6,117,249,186,170,242,254,69,40,64,194,221,203,92,84,205,74,182,7,99,62,122,38,206,119,63,59,15,155,208,147,139,178,35,210,180,82,5,217,96,146,129,213,21,45,8,247,184,138,128,57,169,253,234,30,237,209,126,198,244,215,33,188,250,88,72,67,232,2,197,56,149,102,243,87,175,86,173,81,52,130,34,133,211,115,75,145,246,101,248,160,251,24,50,226,78,108,220,3,167,156,245,218,54,93,110,85,113,121,39,127,154,132,181,20,140,32,158,97,136,200,55,195,109,46,27,42,16,192,79,37,10,91,70,165,66,151,252,31,153,61,77,19,23,103,171,157,199,185,144,187,100,161,189,235,150,104,161};
GFpow.cpp:       |            ^~~
Gauss.cpp: In file included from rainbow.h:10,
Gauss.cpp:                  from Gauss.cpp:1:
Gauss.cpp: GFpow.h:24:12: warning: 'inv' defined but not used [-Wunused-variable]
Gauss.cpp:    24 | static int inv[pow]={-1,1,166,196,83,135,98,116,143,44,229,36,49,94,58,125,225,43,22,240,212,141,18,241,190,51,47,223,29,28,152,236,214,159,179,131,11,228,120,207,106,65,224,17,9,142,222,26,95,12,191,25,177,80,201,219,168,148,14,124,76,238,118,123,107,41,233,164,255,105,231,90,163,89,114,183,60,239,193,227,53,176,134,4,112,204,174,172,162,73,71,230,111,202,13,48,137,216,6,117,249,186,170,242,254,69,40,64,194,221,203,92,84,205,74,182,7,99,62,122,38,206,119,63,59,15,155,208,147,139,178,35,210,180,82,5,217,96,146,129,213,21,45,8,247,184,138,128,57,169,253,234,30,237,209,126,198,244,215,33,188,250,88,72,67,232,2,197,56,149,102,243,87,175,86,173,81,52,130,34,133,211,115,75,145,246,101,248,160,251,24,50,226,78,108,220,3,167,156,245,218,54,93,110,85,113,121,39,127,154,132,181,20,140,32,158,97,136,200,55,195,109,46,27,42,16,192,79,37,10,91,70,165,66,151,252,31,153,61,77,19,23,103,171,157,199,185,144,187,100,161,189,235,150,104,161};
Gauss.cpp:       |            ^~~
Gauss.cpp: In file included from rainbow.h:10,
Gauss.cpp:                  from Gauss.cpp:1:
Gauss.cpp: GFpow.h:23:13: warning: 'ex' defined but not used [-Wunused-variable]
Gauss.cpp:    23 | static int  ex[pow]={1,2,4,8,16,32,64,128,77,154,121,242,169,31,62,124,248,189,55,110,220,245,167,3,6,12,24,48,96,192,205,215,227,139,91,182,33,66,132,69,138,89,178,41,82,164,5,10,20,40,80,160,13,26,52,104,208,237,151,99,198,193,207,211,235,155,123,246,161,15,30,60,120,240,173,23,46,92,184,61,122,244,165,7,14,28,56,112,224,141,87,174,17,34,68,136,93,186,57,114,228,133,71,142,81,162,9,18,36,72,144,109,218,249,191,51,102,204,213,231,131,75,150,97,194,201,223,243,171,27,54,108,216,253,183,35,70,140,85,170,25,50,100,200,221,247,163,11,22,44,88,176,45,90,180,37,74,148,101,202,217,255,179,43,86,172,21,42,84,168,29,58,116,232,157,119,238,145,111,222,241,175,19,38,76,152,125,250,185,63,126,252,181,39,78,156,117,234,153,127,254,177,47,94,188,53,106,212,229,135,67,134,65,130,73,146,105,210,233,159,115,230,129,79,158,113,226,137,95,190,49,98,196,197,199,195,203,219,251,187,59,118,236,149,103,206,209,239,147,107,214,225,143,83,166,1};
Gauss.cpp:       |             ^~
Gauss.cpp: In file included from rainbow.h:10,
Gauss.cpp:                  from Gauss.cpp:1:
Gauss.cpp: GFpow.h:22:12: warning: 'lg' defined but not used [-Wunused-variable]
Gauss.cpp:    22 | static int lg[pow]={0,0,1,23,2,46,24,83,3,106,47,147,25,52,84,69,4,92,107,182,48,166,148,75,26,140,53,129,85,170,70,13,5,36,93,135,108,155,183,193,49,43,167,163,149,152,76,202,27,230,141,115,54,205,130,18,86,98,171,240,71,79,14,189,6,212,37,210,94,39,136,102,109,214,156,121,184,8,194,223,50,104,44,253,168,138,164,90,150,41,153,34,77,96,203,228,28,123,231,59,142,158,116,244,55,216,206,249,131,111,19,178,87,225,99,220,172,196,241,175,72,10,80,66,15,186,190,199,7,222,213,120,38,101,211,209,95,227,40,33,137,89,103,252,110,177,215,248,157,243,122,58,185,198,9,65,195,174,224,219,51,68,105,146,45,82,254,22,169,12,139,128,165,74,91,181,151,201,42,162,154,192,35,134,78,188,97,239,204,17,229,114,29,61,124,235,232,233,60,234,143,125,159,236,117,30,245,62,56,246,217,63,207,118,250,31,132,160,112,237,20,144,179,126,88,251,226,32,100,208,221,119,173,218,197,64,242,57,176,247,73,180,11,127,81,21,67,145,16,113,187,238,191,133,200,161};
Gauss.cpp:       |            ^~

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