Implementation notes: x86, thoth, crypto_sign/rainbowbinary256181212

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_sign
Primitive: rainbowbinary256181212

Compiler output

Implementation: crypto_sign/rainbowbinary256181212/ref
Compiler: clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
rainbow-test.cpp: In file included from rainbow-test.cpp:1:
rainbow-test.cpp: ./gf.h:171:46: warning: while loop has empty body [-Wempty-body]
rainbow-test.cpp: if( M==n_read ) { while( ttt.set(fp)==16 ) ; break; }
rainbow-test.cpp: ^
rainbow-test.cpp: ./gf.h:171:46: note: put the semicolon on a separate line to silence this warning
rainbow-test.cpp: ./gf.h:156:116: error: always_inline function '_mm_setzero_si128' requires target feature 'sse2', but would be inlined into function 'rand' that is compiled without support for 'sse2'
rainbow-test.cpp: static inline const gfvgt; rand() { gfvgt; r; for(unsigned i=M;i--;) r.c[i]=unit::rand(); if(n&15) r.c[M-1].v=_mm_srli_si128(r.c[M-1].v,16-(n&15)); return r; }
rainbow-test.cpp: ^
rainbow-test.cpp: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/emmintrin.h:924:45: note: expanded from macro '_mm_srli_si128'
rainbow-test.cpp: (__v16qi)_mm_setzero_si128(), \
rainbow-test.cpp: ^
rainbow-test.cpp: In file included from rainbow-test.cpp:1:
rainbow-test.cpp: ./gf.h:86:50: error: always_inline function '_mm_set_epi32' requires target feature 'sse2', but would be inlined into function 'rand' that is compiled without support for 'sse2'
rainbow-test.cpp: static inline const gfv_unitgt; rand() { return _mm_set_epi32(::rand(),::rand(),::rand(),::rand()); }
rainbow-test.cpp: ^
rainbow-test.cpp: ./gf.h:69:59: error: always_inline function '_mm_xor_si128' requires target feature 'sse2', but would be inlined into function 'operator+=' that is compiled without support for 'sse2'
rainbow-test.cpp: inline gfv_unitgt;& operator+=(const gfv_unitgt; &b) { v=_mm_xor_si128(v, b.v); return *this;}
rainbow-test.cpp: ^
rainbow-test.cpp: ./gf.h:136:55: error: always_inline function '_mm_setzero_si128' requires target feature 'sse2', but would be inlined into function 'set_zero' that is compiled without support for 'sse2'
rainbow-test.cpp: inline void set_zero() { for(unsigned i=M;i--;) c[i]=_mm_setzero_si128(); }
rainbow-test.cpp: ^
rainbow-test.cpp: In file included from rainbow-test.cpp:1:
rainbow-test.cpp: In file included from ./gf.h:182:
rainbow-test.cpp: ./gf256.h:364:9: error: always_inline function '_mm_xor_si128' requires target feature 'sse2', but would be inlined into function '_mul' that is compiled without support for 'sse2'
rainbow-test.cpp: return _mm_xor_si128( _mm_shuffle_epi8(multable(b.v), _mm_and_si128(a.v,_mask_low))
rainbow-test.cpp: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_sign/rainbowbinary256181212/ref
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
rainbow-test.cpp: In file included from gf.h:181:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf16.h: In function '__m128i multable(unsigned char)':
rainbow-test.cpp: gf16.h:297:33: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
rainbow-test.cpp: __m128i multable(unsigned char v){return GFV16Mul[v];}
rainbow-test.cpp: ^
rainbow-test.cpp: In file included from gf.h:4:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h: In function 'void __static_initialization_and_destruction_0(int, int)':
rainbow-test.cpp: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:597:1: error: inlining failed in call to always_inline '__m128i _mm_set_epi32(int, int, int, int)': target specific option mismatch
rainbow-test.cpp: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
rainbow-test.cpp: ^
rainbow-test.cpp: In file included from gf.h:182:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf256.h:355:15: error: called from here
rainbow-test.cpp: _mm_set_epi32(0x050b0a04,0x08060709,0x0c02030d,0x010f0e00)};
rainbow-test.cpp: ^
rainbow-test.cpp: In file included from gf.h:4:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:597:1: error: inlining failed in call to always_inline '__m128i _mm_set_epi32(int, int, int, int)': target specific option mismatch
rainbow-test.cpp: _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
rainbow-test.cpp: ^
rainbow-test.cpp: In file included from gf.h:182:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf256.h:354:15: error: called from here
rainbow-test.cpp: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ref
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ref