Implementation notes: amd64, calvin, crypto_sign/rainbowbinary16242020

Computer: calvin
Architecture: amd64
CPU ID: AuthenticAMD-00600f20-178bfbff
SUPERCOP version: 20171218
Operation: crypto_sign
Primitive: rainbowbinary16242020
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
104639? ? ?? ? ?refclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111620171020
104786? ? ?? ? ?refclang++_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017111620171020
104878? ? ?? ? ?refclang++_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2017111620171020
105259? ? ?? ? ?refclang++_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2017111620171020
107103? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017111620171020
107483? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017111620171020
107900? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017111620171020
107915? ? ?? ? ?refg++_-m64_-march=corei7_-O3_-fomit-frame-pointer2017111620171020
107950? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017111620171020
108221? ? ?? ? ?refg++_-m64_-march=core2_-O3_-fomit-frame-pointer2017111620171020
108359? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017111620171020
109602? ? ?? ? ?refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017111620171020
138215? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017111620171020
140082? ? ?? ? ?refg++_-m64_-march=core2_-O2_-fomit-frame-pointer2017111620171020
140142? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017111620171020
140178? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017111620171020
140348? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017111620171020
140481? ? ?? ? ?refg++_-m64_-march=corei7_-O2_-fomit-frame-pointer2017111620171020
140791? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017111620171020
148039? ? ?? ? ?refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017111620171020
155392? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017111620171020
157170? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017111620171020
158211? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017111620171020
158479? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017111620171020
160289? ? ?? ? ?refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017111620171020
162727? ? ?? ? ?refg++_-m64_-march=core2_-O_-fomit-frame-pointer2017111620171020
163400? ? ?? ? ?refg++_-m64_-march=corei7_-O_-fomit-frame-pointer2017111620171020
165206? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017111620171020
248202? ? ?? ? ?refg++_-m64_-march=corei7_-Os_-fomit-frame-pointer2017111620171020
249741? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017111620171020
251427? ? ?? ? ?refg++_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017111620171020
251969? ? ?? ? ?refg++_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017111620171020
252957? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017111620171020
259573? ? ?? ? ?refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017111620171020
259948? ? ?? ? ?refg++_-m64_-march=core2_-Os_-fomit-frame-pointer2017111620171020
265467? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017111620171020

Test failure

Implementation: crypto_sign/rainbowbinary16242020/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/rainbowbinary16242020/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:181:
rainbow-test.cpp: ./gf16.h:321:9: 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_shuffle_epi8(multable(b.v), a.v);
rainbow-test.cpp: ^
rainbow-test.cpp: fatal error: error in backend: Cannot select: 0x38c97e0: v16i8 = X86ISD::PSHUFB 0x38c9020, 0x38cb040
rainbow-test.cpp: 0x38c9020: v16i8 = bitcast 0x38b4df0
rainbow-test.cpp: 0x38b4df0: v2i64,ch = load<LD16[%98](tbaa=<0x3352248>)(noalias=<0x378f678>,<0x378f6b8>,<0x378f6f8>)> 0x370df60, 0x38ca7f0, undef:i64
rainbow-test.cpp: 0x38ca7f0: i64 = add 0x38cb930, 0x38cd3f0
rainbow-test.cpp: 0x38cb930: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x38ce1a0: i64 = TargetGlobalAddress<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x38cd3f0: i64 = shl 0x38cade0, Constant:i8<4>
rainbow-test.cpp: 0x38cade0: i64,ch = load<LD1[%90](tbaa=<0x3352248>)(noalias=<0x378f7c8>,<0x378f558>,<0x378f6f8>), zext from i8> 0x370df60, 0x38b4b90, undef:i64
rainbow-test.cpp: 0x38b4b90: i64 = or 0x38d7390, 0x38b4930
rainbow-test.cpp: 0x38d7390: i64 = add FrameIndex:i64<2>, 0x38ca6c0
rainbow-test.cpp: 0x38c9150: i64 = FrameIndex<2>
rainbow-test.cpp: 0x38ca6c0: i64 = and 0x38d5bc0, Constant:i64<4294967280>
rainbow-test.cpp: 0x38d5bc0: i64,ch = CopyFromReg 0x370df60, Register:i64 %vreg3
rainbow-test.cpp:
rainbow-test.cpp: 0x38cd2c0: i64 = Constant<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/rainbowbinary16242020/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/rainbowbinary16242020/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:181:
rainbow-test.cpp: ./gf16.h:321:9: 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_shuffle_epi8(multable(b.v), a.v);
rainbow-test.cpp: ^
rainbow-test.cpp: fatal error: error in backend: Cannot select: 0x3fecfe0: v16i8 = X86ISD::PSHUFB 0x3fec820, 0x3fee840
rainbow-test.cpp: 0x3fec820: v16i8 = bitcast 0x3fd36b0
rainbow-test.cpp: 0x3fd36b0: v2i64,ch = load<LD16[%98](tbaa=<0x3a79278>)(noalias=<0x3dca7f8>,<0x3d7c6c8>,<0x3d93bd8>)> 0x3e34fd0, 0x3fedff0, undef:i64
rainbow-test.cpp: 0x3fedff0: i64 = add 0x3fef130, 0x3ff0bf0
rainbow-test.cpp: 0x3fef130: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x3ff2f30: i64 = TargetGlobalAddress<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x3ff0bf0: i64 = shl 0x3fee5e0, Constant:i8<4>
rainbow-test.cpp: 0x3fee5e0: i64,ch = load<LD1[%90](tbaa=<0x3a79278>)(noalias=<0x3f09b48>,<0x3f09b88>,<0x3d93bd8>), zext from i8> 0x3e34fd0, 0x3fd3450, undef:i64
rainbow-test.cpp: 0x3fd3450: i64 = or 0x3ffc120, 0x3fd31f0
rainbow-test.cpp: 0x3ffc120: i64 = add FrameIndex:i64<2>, 0x3fedec0
rainbow-test.cpp: 0x3fec950: i64 = FrameIndex<2>
rainbow-test.cpp: 0x3fedec0: i64 = and 0x3ffa950, Constant:i64<4294967280>
rainbow-test.cpp: 0x3ffa950: i64,ch = CopyFromReg 0x3e34fd0, Register:i64 %vreg3
rainbow-test.cpp:
rainbow-test.cpp: 0x3ff0ac0: i64 = Constant<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/rainbowbinary16242020/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:181:
rainbow-test.cpp: ./gf16.h:321:9: 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_shuffle_epi8(multable(b.v), a.v);
rainbow-test.cpp: ^
rainbow-test.cpp: fatal error: error in backend: Cannot select: 0x3107140: v16i8 = X86ISD::PSHUFB 0x3106980, 0x31089a0
rainbow-test.cpp: 0x3106980: v16i8 = bitcast 0x30df840
rainbow-test.cpp: 0x30df840: v2i64,ch = load<LD16[%98](tbaa=<0x2b93278>)(noalias=<0x2e96758>,<0x2ed1ee8>,<0x30235a8>)> 0x2f4f0a0, 0x3108150, undef:i64
rainbow-test.cpp: 0x3108150: i64 = add 0x3109290, 0x310ad50
rainbow-test.cpp: 0x3109290: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x310bb00: i64 = TargetGlobalAddress<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x310ad50: i64 = shl 0x3108740, Constant:i8<4>
rainbow-test.cpp: 0x3108740: i64,ch = load<LD1[%90](tbaa=<0x2b93278>)(noalias=<0x3023648>,<0x3023688>,<0x30235a8>), zext from i8> 0x2f4f0a0, 0x30df5e0, undef:i64
rainbow-test.cpp: 0x30df5e0: i64 = or 0x3114cf0, 0x30df380
rainbow-test.cpp: 0x3114cf0: i64 = add FrameIndex:i64<2>, 0x3108020
rainbow-test.cpp: 0x3106ab0: i64 = FrameIndex<2>
rainbow-test.cpp: 0x3108020: i64 = and 0x3113520, Constant:i64<4294967280>
rainbow-test.cpp: 0x3113520: i64,ch = CopyFromReg 0x2f4f0a0, Register:i64 %vreg3
rainbow-test.cpp:
rainbow-test.cpp: 0x310ac20: i64 = Constant<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/rainbowbinary16242020/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:181:
rainbow-test.cpp: ./gf16.h:321:9: 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_shuffle_epi8(multable(b.v), a.v);
rainbow-test.cpp: ^
rainbow-test.cpp: fatal error: error in backend: Cannot select: 0x2e80170: v16i8 = X86ISD::PSHUFB 0x2e7f9b0, 0x2e819d0
rainbow-test.cpp: 0x2e7f9b0: v16i8 = bitcast 0x2de1e40
rainbow-test.cpp: 0x2de1e40: v2i64,ch = load<LD16[%98](tbaa=<0x290a278>)(noalias=<0x2d8c148>,<0x2d5f068>,<0x2d5f0a8>)> 0x2cc6050, 0x2e81180, undef:i64
rainbow-test.cpp: 0x2e81180: i64 = add 0x2e822c0, 0x2e83d80
rainbow-test.cpp: 0x2e822c0: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x2e84b30: i64 = TargetGlobalAddress<[256 x <2 x i64>]* @_ZL8GFV16Mul> 0
rainbow-test.cpp: 0x2e83d80: i64 = shl 0x2e81770, Constant:i8<4>
rainbow-test.cpp: 0x2e81770: i64,ch = load<LD1[%90](tbaa=<0x290a278>)(noalias=<0x2d8d968>,<0x2d5f708>,<0x2d5f0a8>), zext from i8> 0x2cc6050, 0x2de1be0, undef:i64
rainbow-test.cpp: 0x2de1be0: i64 = or 0x2e8dd20, 0x2de1980
rainbow-test.cpp: 0x2e8dd20: i64 = add FrameIndex:i64<2>, 0x2e81050
rainbow-test.cpp: 0x2e7fae0: i64 = FrameIndex<2>
rainbow-test.cpp: 0x2e81050: i64 = and 0x2e8c550, Constant:i64<4294967280>
rainbow-test.cpp: 0x2e8c550: i64,ch = CopyFromReg 0x2cc6050, Register:i64 %vreg3
rainbow-test.cpp:
rainbow-test.cpp: 0x2e83c50: i64 = Constant<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/rainbowbinary16242020/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 = 16u]':
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:181:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf16.h:321:25: error: called from here
rainbow-test.cpp: return _mm_shuffle_epi8(multable(b.v), a.v);
rainbow-test.cpp: ^

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
g++ ref

Compiler output

Implementation: crypto_sign/rainbowbinary16242020/ref
Compiler: g++ -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 = 16u]':
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:181:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf16.h:321:25: error: called from here
rainbow-test.cpp: return _mm_shuffle_epi8(multable(b.v), a.v);
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:181:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf16.h:321:25: error: called from here
rainbow-test.cpp: return _mm_shuffle_epi8(multable(b.v), a.v);
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: 27, namely:
CompilerImplementations
g++ -O2 -fomit-frame-pointer ref
g++ -O3 -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 -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 -Os -fomit-frame-pointer ref
g++ -m64 -O2 -fomit-frame-pointer ref
g++ -m64 -O3 -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 -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 -Os -fomit-frame-pointer ref
g++ -march=barcelona -O2 -fomit-frame-pointer ref
g++ -march=barcelona -O3 -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 -Os -fomit-frame-pointer ref
g++ -march=nocona -O2 -fomit-frame-pointer ref
g++ -march=nocona -O3 -fomit-frame-pointer ref
g++ -march=nocona -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_sign/rainbowbinary16242020/ref
Compiler: g++ -O -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 = 16u]':
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:181:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf16.h:321:25: error: called from here
rainbow-test.cpp: return _mm_shuffle_epi8(multable(b.v), a.v);
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:181:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf16.h:321:25: error: called from here
rainbow-test.cpp: return _mm_shuffle_epi8(multable(b.v), a.v);
rainbow-test.cpp: ^

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

Compiler output

Implementation: crypto_sign/rainbowbinary16242020/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 = 16u]':
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:181:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf16.h:321:25: error: called from here
rainbow-test.cpp: return _mm_shuffle_epi8(multable(b.v), a.v);
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:181:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf16.h:321:25: error: called from here
rainbow-test.cpp: return _mm_shuffle_epi8(multable(b.v), a.v);
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 = 16u]':
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:181:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf16.h:321:25: error: called from here
rainbow-test.cpp: return _mm_shuffle_epi8(multable(b.v), a.v);
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:181:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf16.h:321:25: error: called from here
rainbow-test.cpp: return _mm_shuffle_epi8(multable(b.v), a.v);
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: 3, namely:
CompilerImplementations
g++ -m64 -march=barcelona -O2 -fomit-frame-pointer ref
g++ -m64 -march=barcelona -O3 -fomit-frame-pointer ref
g++ -m64 -march=barcelona -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_sign/rainbowbinary16242020/ref
Compiler: g++ -m64 -march=barcelona -O -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 = 16u]':
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:181:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf16.h:321:25: error: called from here
rainbow-test.cpp: return _mm_shuffle_epi8(multable(b.v), a.v);
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:181:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf16.h:321:25: error: called from here
rainbow-test.cpp: return _mm_shuffle_epi8(multable(b.v), a.v);
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 = 16u]':
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:181:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf16.h:321:25: error: called from here
rainbow-test.cpp: return _mm_shuffle_epi8(multable(b.v), a.v);
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:181:0,
rainbow-test.cpp: from rainbow-test.cpp:1:
rainbow-test.cpp: gf16.h:321:25: error: called from here
rainbow-test.cpp: return _mm_shuffle_epi8(multable(b.v), a.v);
rainbow-test.cpp: ^

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