Implementation notes: amd64, speed2supercop, crypto_sign/rainbow6440
Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240808
Operation: crypto_sign
Primitive: rainbow6440
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
168848 | 18306 0 0 | 38182 824 1664 | T:ref | g++_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240709 | 20240625 |
195612 | 16868 0 0 | 36462 824 1664 | T:ref | g++_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240709 | 20240625 |
198064 | 15009 0 0 | 33590 816 1632 | T:ref | g++_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240709 | 20240625 |
Test failure
error 111
crypto_sign_open returns nonzero
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:ref | g++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
Compiler output
rainbow_w-test.cpp: In file included from rainbow_w-test.cpp:6:
rainbow_w-test.cpp: In file included from ./rainbow_w.h:7:
rainbow_w-test.cpp: In file included from ./bqas.h:79:
rainbow_w-test.cpp: ./transpose8.h:38:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: register __m128i a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],f=s[5],g=s[6],h=s[7];
rainbow_w-test.cpp: ^~~~~~~~~
rainbow_w-test.cpp: ./transpose8.h:38:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: register __m128i a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],f=s[5],g=s[6],h=s[7];
rainbow_w-test.cpp: ^~~~~~~~~
rainbow_w-test.cpp: ./transpose8.h:38:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: register __m128i a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],f=s[5],g=s[6],h=s[7];
rainbow_w-test.cpp: ^~~~~~~~~
rainbow_w-test.cpp: ./transpose8.h:38:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: register __m128i a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],f=s[5],g=s[6],h=s[7];
rainbow_w-test.cpp: ^~~~~~~~~
rainbow_w-test.cpp: ./transpose8.h:38:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: register __m128i a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],f=s[5],g=s[6],h=s[7];
rainbow_w-test.cpp: ^~~~~~~~~
rainbow_w-test.cpp: ./transpose8.h:38:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: register __m128i a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],f=s[5],g=s[6],h=s[7];
rainbow_w-test.cpp: ^~~~~~~~~
rainbow_w-test.cpp: ./transpose8.h:38:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: register __m128i a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],f=s[5],g=s[6],h=s[7];
rainbow_w-test.cpp: ^~~~~~~~~
rainbow_w-test.cpp: ./transpose8.h:38:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:ref | clang++ -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
T:ref | clang++ -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
T:ref | clang++ -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
T:ref | clang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall |
Compiler output
rainbow_w-test.cpp: In file included from bqas.h:79,
rainbow_w-test.cpp: from rainbow_w.h:7,
rainbow_w-test.cpp: from rainbow_w-test.cpp:6:
rainbow_w-test.cpp: transpose8.h: In function 'void transpose8(__m128i*, const __m128i*)':
rainbow_w-test.cpp: transpose8.h:38:26: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: 38 | register __m128i a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],f=s[5],g=s[6],h=s[7];
rainbow_w-test.cpp: | ^
rainbow_w-test.cpp: transpose8.h:38:33: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: 38 | register __m128i a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],f=s[5],g=s[6],h=s[7];
rainbow_w-test.cpp: | ^
rainbow_w-test.cpp: transpose8.h:38:40: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: 38 | register __m128i a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],f=s[5],g=s[6],h=s[7];
rainbow_w-test.cpp: | ^
rainbow_w-test.cpp: transpose8.h:38:47: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: 38 | register __m128i a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],f=s[5],g=s[6],h=s[7];
rainbow_w-test.cpp: | ^
rainbow_w-test.cpp: transpose8.h:38:54: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: 38 | register __m128i a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],f=s[5],g=s[6],h=s[7];
rainbow_w-test.cpp: | ^
rainbow_w-test.cpp: transpose8.h:38:61: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: 38 | register __m128i a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],f=s[5],g=s[6],h=s[7];
rainbow_w-test.cpp: | ^
rainbow_w-test.cpp: transpose8.h:38:68: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
rainbow_w-test.cpp: 38 | register __m128i a=s[0],b=s[1],c=s[2],d=s[3],e=s[4],f=s[5],g=s[6],h=s[7];
rainbow_w-test.cpp: | ^
rainbow_w-test.cpp: ...
usehash.cpp: usehash.cpp: In function 'int crypto_sign_rainbow6440_ref_timingleaks(unsigned char*, long long unsigned int*, const unsigned char*, long long unsigned int, const unsigned char*)':
usehash.cpp: usehash.cpp:39:16: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]
usehash.cpp: 39 | for (i = 0;i < mlen;++i) {
usehash.cpp: | ~~^~~~~~
usehash.cpp: usehash.cpp: In function 'int crypto_sign_rainbow6440_ref_timingleaks_open(unsigned char*, long long unsigned int*, const unsigned char*, long long unsigned int, const unsigned char*)':
usehash.cpp: usehash.cpp:59:30: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]
usehash.cpp: 59 | for (i = SIGNATURE_BYTES;i < smlen;++i) m[i - SIGNATURE_BYTES] = sm[i];
usehash.cpp: | ~~^~~~~~~
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:ref | g++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
T:ref | g++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
T:ref | g++ -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
T:ref | g++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall |