Implementation notes: amd64, hobbes, crypto_sign/rainbowbinary256181212

Computer: hobbes
Architecture: amd64
CPU ID: AuthenticAMD-00600f20-178bfbff
SUPERCOP version: 20171218
Operation: crypto_sign
Primitive: rainbowbinary256181212
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
84324? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017111620171020
84622? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017111620171020
85161? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017111620171020
86735? ? ?? ? ?refg++_-m64_-march=corei7_-O3_-fomit-frame-pointer2017111620171020
87040? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017111620171020
87101? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017111620171020
87266? ? ?? ? ?refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017111620171020
89644? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017111620171020
89775? ? ?? ? ?refg++_-m64_-march=core2_-O3_-fomit-frame-pointer2017111620171020
90552? ? ?? ? ?refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017111620171020
90558? ? ?? ? ?refclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111620171020
90646? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017111620171020
90658? ? ?? ? ?refclang++_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2017111620171020
90826? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017111620171020
91791? ? ?? ? ?refg++_-m64_-march=corei7_-O2_-fomit-frame-pointer2017111620171020
91906? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017111620171020
92040? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017111620171020
92237? ? ?? ? ?refg++_-m64_-march=core2_-O2_-fomit-frame-pointer2017111620171020
93947? ? ?? ? ?refclang++_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017111620171020
94154? ? ?? ? ?refclang++_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2017111620171020
97779? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017111620171020
98048? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017111620171020
98128? ? ?? ? ?refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017111620171020
98684? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017111620171020
99881? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017111620171020
99935? ? ?? ? ?refg++_-m64_-march=corei7_-O_-fomit-frame-pointer2017111620171020
100114? ? ?? ? ?refg++_-m64_-march=core2_-O_-fomit-frame-pointer2017111620171020
101417? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017111620171020
157634? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017111620171020
157991? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017111620171020
158455? ? ?? ? ?refg++_-m64_-march=corei7_-Os_-fomit-frame-pointer2017111620171020
158621? ? ?? ? ?refg++_-m64_-march=core2_-Os_-fomit-frame-pointer2017111620171020
159940? ? ?? ? ?refg++_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017111620171020
161351? ? ?? ? ?refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017111620171020
162143? ? ?? ? ?refg++_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017111620171020
163205? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017111620171020

Test failure

Implementation: crypto_sign/rainbowbinary256181212/ref
Compiler: g++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
g++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer ref
g++ -m64 -march=core-avx2 -O -fomit-frame-pointer ref
g++ -m64 -march=core-avx2 -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_sign/rainbowbinary256181212/ref
Compiler: clang++ -O3 -fomit-frame-pointer -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: In file included from rainbow-test.cpp:1:
rainbow-test.cpp: In file included from ./gf.h:182:
rainbow-test.cpp: ./gf256.h:364:24: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function '_mul' that is compiled without support for 'ssse3'
rainbow-test.cpp: return _mm_xor_si128( _mm_shuffle_epi8(multable(b.v), _mm_and_si128(a.v,_mask_low))
rainbow-test.cpp: ^
rainbow-test.cpp: ./gf256.h:365:7: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function '_mul' that is compiled without support for 'ssse3'
rainbow-test.cpp: , _mm_shuffle_epi8(multable_h(b.v), _mm_and_si128( _mm_srli_epi16(a.v,4) ,_mask_low) ) );
rainbow-test.cpp: ^
rainbow-test.cpp: fatal error: error in backend: Cannot select: 0x39608c0: v16i8 = X86ISD::PSHUFB 0x3977d90, 0x3961670
rainbow-test.cpp: 0x3977d90: v16i8 = bitcast 0x39621c0
rainbow-test.cpp: 0x39621c0: v2i64,ch = load<LD16[%77](tbaa=<0x33eaf08>)(noalias=<0x3725038>,<0x388c5e8>,<0x387fd18>)> 0x37be690, 0x397b450, undef:i64
rainbow-test.cpp: 0x397b450: i64 = add 0x395cc10, 0x38c6b80
rainbow-test.cpp: 0x395cc10: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x395c9b0: i64 = TargetGlobalAddress<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x38c6b80: i64 = shl 0x3976eb0, Constant:i8<4>
rainbow-test.cpp: 0x3976eb0: i64,ch = load<LD1[%70](tbaa=<0x33eaf08>)(noalias=<0x387f198>,<0x384bd38>,<0x387fd18>), zext from i8> 0x37be690, 0x395e180, undef:i64
rainbow-test.cpp: 0x395e180: i64 = or 0x395e9d0, 0x395cae0
rainbow-test.cpp: 0x395e9d0: i64 = add FrameIndex:i64<2>, 0x3976400
rainbow-test.cpp: 0x395d630: i64 = FrameIndex<2>
rainbow-test.cpp: 0x3976400: i64 = and 0x3979c80, Constant:i64<4294967280>
rainbow-test.cpp: ...

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

Compiler output

Implementation: crypto_sign/rainbowbinary256181212/ref
Compiler: clang++ -O3 -fwrapv -march=native -fomit-frame-pointer -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: 1 warning generated.

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

Compiler output

Implementation: crypto_sign/rainbowbinary256181212/ref
Compiler: clang++ -mcpu=cortex-a8 -mfpu=neon -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: In file included from rainbow-test.cpp:1:
rainbow-test.cpp: In file included from ./gf.h:182:
rainbow-test.cpp: ./gf256.h:364:24: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function '_mul' that is compiled without support for 'ssse3'
rainbow-test.cpp: return _mm_xor_si128( _mm_shuffle_epi8(multable(b.v), _mm_and_si128(a.v,_mask_low))
rainbow-test.cpp: ^
rainbow-test.cpp: ./gf256.h:365:7: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function '_mul' that is compiled without support for 'ssse3'
rainbow-test.cpp: , _mm_shuffle_epi8(multable_h(b.v), _mm_and_si128( _mm_srli_epi16(a.v,4) ,_mask_low) ) );
rainbow-test.cpp: ^
rainbow-test.cpp: fatal error: error in backend: Cannot select: 0x31fe560: v16i8 = X86ISD::PSHUFB 0x32051d0, 0x31ff310
rainbow-test.cpp: 0x32051d0: v16i8 = bitcast 0x31ffe60
rainbow-test.cpp: 0x31ffe60: v2i64,ch = load<LD16[%77](tbaa=<0x2c77f38>)(noalias=<0x2fb15b8>,<0x30ce768>,<0x30ce7a8>)> 0x304b760, 0x3208890, undef:i64
rainbow-test.cpp: 0x3208890: i64 = add 0x31fa8b0, 0x3155460
rainbow-test.cpp: 0x31fa8b0: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x31fa650: i64 = TargetGlobalAddress<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x3155460: i64 = shl 0x32042f0, Constant:i8<4>
rainbow-test.cpp: 0x32042f0: i64,ch = load<LD1[%70](tbaa=<0x2c77f38>)(noalias=<0x2fb1348>,<0x2fb1388>,<0x30ce7a8>), zext from i8> 0x304b760, 0x31fbe20, undef:i64
rainbow-test.cpp: 0x31fbe20: i64 = or 0x31fc670, 0x31fa780
rainbow-test.cpp: 0x31fc670: i64 = add FrameIndex:i64<2>, 0x3203840
rainbow-test.cpp: 0x31fb2d0: i64 = FrameIndex<2>
rainbow-test.cpp: 0x3203840: i64 = and 0x32070c0, Constant:i64<4294967280>
rainbow-test.cpp: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_sign/rainbowbinary256181212/ref
Compiler: clang++ -mcpu=cortex-a9 -mfpu=neon -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: In file included from rainbow-test.cpp:1:
rainbow-test.cpp: In file included from ./gf.h:182:
rainbow-test.cpp: ./gf256.h:364:24: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function '_mul' that is compiled without support for 'ssse3'
rainbow-test.cpp: return _mm_xor_si128( _mm_shuffle_epi8(multable(b.v), _mm_and_si128(a.v,_mask_low))
rainbow-test.cpp: ^
rainbow-test.cpp: ./gf256.h:365:7: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function '_mul' that is compiled without support for 'ssse3'
rainbow-test.cpp: , _mm_shuffle_epi8(multable_h(b.v), _mm_and_si128( _mm_srli_epi16(a.v,4) ,_mask_low) ) );
rainbow-test.cpp: ^
rainbow-test.cpp: fatal error: error in backend: Cannot select: 0x4274800: v16i8 = X86ISD::PSHUFB 0x427b470, 0x42755b0
rainbow-test.cpp: 0x427b470: v16i8 = bitcast 0x4276100
rainbow-test.cpp: 0x4276100: v2i64,ch = load<LD16[%77](tbaa=<0x3ceff38>)(noalias=<0x41717b8>,<0x4026d58>,<0x4026d98>)> 0x40c3750, 0x427eb30, undef:i64
rainbow-test.cpp: 0x427eb30: i64 = add 0x4270b50, 0x4136710
rainbow-test.cpp: 0x4270b50: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x42708f0: i64 = TargetGlobalAddress<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x4136710: i64 = shl 0x427a590, Constant:i8<4>
rainbow-test.cpp: 0x427a590: i64,ch = load<LD1[%70](tbaa=<0x3ceff38>)(noalias=<0x40295c8>,<0x4029608>,<0x4026d98>), zext from i8> 0x40c3750, 0x42720c0, undef:i64
rainbow-test.cpp: 0x42720c0: i64 = or 0x4272910, 0x4270a20
rainbow-test.cpp: 0x4272910: i64 = add FrameIndex:i64<2>, 0x4279ae0
rainbow-test.cpp: 0x4271570: i64 = FrameIndex<2>
rainbow-test.cpp: 0x4279ae0: i64 = and 0x427d360, Constant:i64<4294967280>
rainbow-test.cpp: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_sign/rainbowbinary256181212/ref
Compiler: clang++ -mcpu=native -mfpu=neon -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: In file included from rainbow-test.cpp:1:
rainbow-test.cpp: In file included from ./gf.h:182:
rainbow-test.cpp: ./gf256.h:364:24: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function '_mul' that is compiled without support for 'ssse3'
rainbow-test.cpp: return _mm_xor_si128( _mm_shuffle_epi8(multable(b.v), _mm_and_si128(a.v,_mask_low))
rainbow-test.cpp: ^
rainbow-test.cpp: ./gf256.h:365:7: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function '_mul' that is compiled without support for 'ssse3'
rainbow-test.cpp: , _mm_shuffle_epi8(multable_h(b.v), _mm_and_si128( _mm_srli_epi16(a.v,4) ,_mask_low) ) );
rainbow-test.cpp: ^
rainbow-test.cpp: fatal error: error in backend: Cannot select: 0x252fca0: v16i8 = X86ISD::PSHUFB 0x2536910, 0x2530a50
rainbow-test.cpp: 0x2536910: v16i8 = bitcast 0x25315a0
rainbow-test.cpp: 0x25315a0: v2i64,ch = load<LD16[%77](tbaa=<0x1fbdf38>)(noalias=<0x2449338>,<0x2443998>,<0x22d4918>)> 0x23917b0, 0x254a360, undef:i64
rainbow-test.cpp: 0x254a360: i64 = add 0x252bff0, 0x24047a0
rainbow-test.cpp: 0x252bff0: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x252bd90: i64 = TargetGlobalAddress<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x24047a0: i64 = shl 0x2535a30, Constant:i8<4>
rainbow-test.cpp: 0x2535a30: i64,ch = load<LD1[%70](tbaa=<0x1fbdf38>)(noalias=<0x22f66f8>,<0x22f7258>,<0x22d4918>), zext from i8> 0x23917b0, 0x252d560, undef:i64
rainbow-test.cpp: 0x252d560: i64 = or 0x252ddb0, 0x252bec0
rainbow-test.cpp: 0x252ddb0: i64 = add FrameIndex:i64<2>, 0x2534f80
rainbow-test.cpp: 0x252ca10: i64 = FrameIndex<2>
rainbow-test.cpp: 0x2534f80: i64 = and 0x2548b90, Constant:i64<4294967280>
rainbow-test.cpp: ...

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

Compiler output

Implementation: crypto_sign/rainbowbinary256181212/ref
Compiler: g++
rainbow-test.cpp: In file included from gf16.h:4:0,
rainbow-test.cpp: from gf.h:181,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: /usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h: In function 'const gfv_unit<p> _mul(const gfv_unit<p>&, const gf<p>&) [with unsigned int p = 256u]':
rainbow-test.cpp: /usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '__m128i _mm_shuffle_epi8(__m128i, __m128i)': target specific option mismatch
rainbow-test.cpp: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
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:364:22: error: called from here
rainbow-test.cpp: return _mm_xor_si128( _mm_shuffle_epi8(multable(b.v), _mm_and_si128(a.v,_mask_low))
rainbow-test.cpp: ^
rainbow-test.cpp: In file included from gf16.h:4:0,
rainbow-test.cpp: from gf.h:181,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: /usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '__m128i _mm_shuffle_epi8(__m128i, __m128i)': target specific option mismatch
rainbow-test.cpp: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
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:364:22: error: called from here
rainbow-test.cpp: return _mm_xor_si128( _mm_shuffle_epi8(multable(b.v), _mm_and_si128(a.v,_mask_low))
rainbow-test.cpp: ^
rainbow-test.cpp: In file included from gf16.h:4:0,
rainbow-test.cpp: from gf.h:181,
rainbow-test.cpp: ...

Number of similar (compiler,implementation) pairs: 37, namely:
CompilerImplementations
g++ ref
g++ -O2 -fomit-frame-pointer ref
g++ -O3 -fomit-frame-pointer ref
g++ -O -fomit-frame-pointer ref
g++ -Os -fomit-frame-pointer ref
g++ -fno-schedule-insns -O2 -fomit-frame-pointer ref
g++ -fno-schedule-insns -O3 -fomit-frame-pointer ref
g++ -fno-schedule-insns -O -fomit-frame-pointer ref
g++ -fno-schedule-insns -Os -fomit-frame-pointer ref
g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ref
g++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ref
g++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ref
g++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ref
g++ -m64 -O2 -fomit-frame-pointer ref
g++ -m64 -O3 -fomit-frame-pointer ref
g++ -m64 -O -fomit-frame-pointer ref
g++ -m64 -Os -fomit-frame-pointer ref
g++ -m64 -march=k8 -O2 -fomit-frame-pointer ref
g++ -m64 -march=k8 -O3 -fomit-frame-pointer ref
g++ -m64 -march=k8 -O -fomit-frame-pointer ref
g++ -m64 -march=k8 -Os -fomit-frame-pointer ref
g++ -m64 -march=nocona -O2 -fomit-frame-pointer ref
g++ -m64 -march=nocona -O3 -fomit-frame-pointer ref
g++ -m64 -march=nocona -O -fomit-frame-pointer ref
g++ -m64 -march=nocona -Os -fomit-frame-pointer ref
g++ -march=barcelona -O2 -fomit-frame-pointer ref
g++ -march=barcelona -O3 -fomit-frame-pointer ref
g++ -march=barcelona -O -fomit-frame-pointer ref
g++ -march=barcelona -Os -fomit-frame-pointer ref
g++ -march=k8 -O2 -fomit-frame-pointer ref
g++ -march=k8 -O3 -fomit-frame-pointer ref
g++ -march=k8 -O -fomit-frame-pointer ref
g++ -march=k8 -Os -fomit-frame-pointer ref
g++ -march=nocona -O2 -fomit-frame-pointer ref
g++ -march=nocona -O3 -fomit-frame-pointer ref
g++ -march=nocona -O -fomit-frame-pointer ref
g++ -march=nocona -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_sign/rainbowbinary256181212/ref
Compiler: g++ -m64 -march=barcelona -O2 -fomit-frame-pointer
rainbow-test.cpp: In file included from gf16.h:4:0,
rainbow-test.cpp: from gf.h:181,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: /usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h: In function 'const gfv_unit<p> _mul(const gfv_unit<p>&, const gf<p>&) [with unsigned int p = 256u]':
rainbow-test.cpp: /usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '__m128i _mm_shuffle_epi8(__m128i, __m128i)': target specific option mismatch
rainbow-test.cpp: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
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:364:22: error: called from here
rainbow-test.cpp: return _mm_xor_si128( _mm_shuffle_epi8(multable(b.v), _mm_and_si128(a.v,_mask_low))
rainbow-test.cpp: ^
rainbow-test.cpp: In file included from gf16.h:4:0,
rainbow-test.cpp: from gf.h:181,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: /usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '__m128i _mm_shuffle_epi8(__m128i, __m128i)': target specific option mismatch
rainbow-test.cpp: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
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:364:22: error: called from here
rainbow-test.cpp: return _mm_xor_si128( _mm_shuffle_epi8(multable(b.v), _mm_and_si128(a.v,_mask_low))
rainbow-test.cpp: ^
rainbow-test.cpp: In file included from gf16.h:4:0,
rainbow-test.cpp: from gf.h:181,
rainbow-test.cpp: ...
rainbow-test.cpp: In file included from gf16.h:4:0,
rainbow-test.cpp: from gf.h:181,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: /usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h: In function 'const gfv_unit<p> _mul(const gfv_unit<p>&, const gf<p>&) [with unsigned int p = 256u]':
rainbow-test.cpp: /usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '__m128i _mm_shuffle_epi8(__m128i, __m128i)': target specific option mismatch
rainbow-test.cpp: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
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:364:22: error: called from here
rainbow-test.cpp: return _mm_xor_si128( _mm_shuffle_epi8(multable(b.v), _mm_and_si128(a.v,_mask_low))
rainbow-test.cpp: ^
rainbow-test.cpp: In file included from gf16.h:4:0,
rainbow-test.cpp: from gf.h:181,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: /usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '__m128i _mm_shuffle_epi8(__m128i, __m128i)': target specific option mismatch
rainbow-test.cpp: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
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:364:22: error: called from here
rainbow-test.cpp: return _mm_xor_si128( _mm_shuffle_epi8(multable(b.v), _mm_and_si128(a.v,_mask_low))
rainbow-test.cpp: ^
rainbow-test.cpp: In file included from gf16.h:4:0,
rainbow-test.cpp: from gf.h:181,
rainbow-test.cpp: ...

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