Implementation notes: amd64, oki, crypto_sign/qtesla3f

Computer: oki
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20181123
Operation: crypto_sign
Primitive: qtesla3f
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1057750? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019011420181123
1125906? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2019011420181123
1314504? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2019011420181123
1326544? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
1330290? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
1331824? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019011420181123
1332224? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019011420181123
1333962? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2019011420181123
1334558? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2019011420181123
1335272? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019011420181123
1341634? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019011420181123
1347356? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
1348626? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2019011420181123
1348920? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
1349474? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2019011420181123
1352888? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019011420181123
1354240? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2019011420181123
1354802? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2019011420181123
1360356? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2019011420181123
1369876? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019011420181123
1413926? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2019011420181123
1420340? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2019011420181123
1543476? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019011420181123
1554350? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
1619368? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
1621908? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019011420181123
1638630? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019011420181123
1639436? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
1644170? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
1645066? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2019011420181123
1650804? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
1662748? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2019011420181123
1663822? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019011420181123
1686452? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019011420181123
1686704? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2019011420181123
1704056? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
1718934? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019011420181123
1728754? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2019011420181123
1732236? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2019011420181123
1734198? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
1742004? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2019011420181123
1744094? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019011420181123
1745562? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2019011420181123
1746150? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2019011420181123
1746314? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019011420181123
1757298? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2019011420181123
1758456? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019011420181123
1794302? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
1801004? ? ?? ? ?refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019011420181123
1801248? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2019011420181123
1801846? ? ?? ? ?refclang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019011420181123
1815260? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011420181123
1817486? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011420181123
1827354? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2019011420181123
1833290? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019011420181123
1842722? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019011420181123
1893564? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019011420181123
1912748? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011420181123
1922014? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
1922760? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019011420181123
1925996? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2019011420181123
1928400? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2019011420181123
1930544? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2019011420181123
1930654? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
1931074? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2019011420181123
1931346? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019011420181123
1947086? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019011420181123
1967404? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
1972990? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
1975000? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019011420181123
1976588? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
1978118? ? ?? ? ?refgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2019011420181123
1988434? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2019011420181123
1992562? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2019011420181123
1993464? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019011420181123
1994310? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019011420181123
1995288? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2019011420181123
1995902? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019011420181123
1998006? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019011420181123
1998538? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2019011420181123
2000994? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2019011420181123
2003152? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2019011420181123
2003764? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
2004434? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2019011420181123
2005062? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
2005114? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
2008514? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2019011420181123
2008568? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
2009422? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
2015474? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
2020442? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
2022566? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019011420181123
2023384? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019011420181123
2027700? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2019011420181123
2067878? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2019011420181123
2070428? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
2070710? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2019011420181123
2071236? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
2073110? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2019011420181123
2079332? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2019011420181123
2080928? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2019011420181123
2081096? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019011420181123
2081344? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2019011420181123
2085170? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019011420181123
2089896? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019011420181123
2116354? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
2125186? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2019011420181123
2133962? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019011420181123
2137906? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2019011420181123
2152044? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2019011420181123
2152616? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019011420181123
2263094? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
2288950? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2019011420181123
2290082? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2019011420181123
2315628? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2019011420181123
2396704? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2019011420181123
7073834? ? ?? ? ?refgcc2019011420181123
7087464? ? ?? ? ?refgcc_-funroll-loops2019011420181123

Compiler output

Implementation: ref
Security model: unknown
Compiler: cc
poly.c: poly.c: In function 'poly_mul':
poly.c: poly.c:91:3: error: 'for' loop initial declarations are only allowed in C99 mode
poly.c: for (int i=0; i<PARAM_N; i++)
poly.c: ^
poly.c: poly.c:91:3: note: use option -std=c99 or -std=gnu99 to compile your code

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

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
try.c: fatal error: error in backend: Cannot select: 0x256b0d0: v4i64 = X86ISD::VTRUNC 0x256af00
try.c: 0x256af00: v16i32 = vselect 0x2574370, 0x24ee100, 0x256add0
try.c: 0x2574370: v4i1 = X86ISD::PCMPGTM 0x25551d0, 0x24eeeb0
try.c: 0x25551d0: v4i64 = X86ISD::VBROADCAST 0x24ef240
try.c: 0x24ef240: i64,ch = load<LD8[%uglygep72]> 0x244edd0, 0x2546370, undef:i64
try.c: 0x2546370: i64 = add 0x25560b0, 0x24fe880
try.c: 0x25560b0: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x253ba60: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x24fe880: i64 = shl 0x253b210, Constant:i8<3>
try.c: 0x253b210: i64,ch = CopyFromReg 0x244edd0, Register:i64 %vreg50
try.c: 0x2556570: i64 = Register %vreg50
try.c: 0x24ffe80: i8 = Constant<3>
try.c: 0x2553030: i64 = undef
try.c: 0x24eeeb0: v4i64,ch = CopyFromReg 0x244edd0, Register:v4i64 %vreg13
try.c: 0x24fba20: v4i64 = Register %vreg13
try.c: 0x24ee100: v16i32 = X86ISD::VBROADCAST 0x253b470
try.c: 0x253b470: i32,ch = load<LD4[ConstantPool]> 0x244edd0, 0x256aa40, undef:i64
try.c: 0x256aa40: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x24f8d30: i64 = TargetConstantPool<i32 1> 0
try.c: 0x2553030: i64 = undef
try.c: 0x256add0: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x256aca0: i32 = Constant<0>
try.c: 0x256aca0: i32 = Constant<0>
try.c: 0x256aca0: i32 = Constant<0>
try.c: 0x256aca0: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: fatal error: error in backend: Cannot select: 0x286cbd0: v4i64 = X86ISD::VTRUNC 0x286ca00
try.c: 0x286ca00: v16i32 = vselect 0x2882bc0, 0x282ce30, 0x286c8d0
try.c: 0x2882bc0: v4i1 = X86ISD::PCMPGTM 0x2869640, 0x2802140
try.c: 0x2869640: v4i64 = X86ISD::VBROADCAST 0x28024d0
try.c: 0x28024d0: i64,ch = load<LD8[%uglygep72]> 0x2763dd0, 0x2858e70, undef:i64
try.c: 0x2858e70: i64 = add 0x286a520, 0x2813b00
try.c: 0x286a520: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x285d780: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x2813b00: i64 = shl 0x285cf30, Constant:i8<3>
try.c: 0x285cf30: i64,ch = CopyFromReg 0x2763dd0, Register:i64 %vreg50
try.c: 0x286a9e0: i64 = Register %vreg50
try.c: 0x27e5d10: i8 = Constant<3>
try.c: 0x2867cb0: i64 = undef
try.c: 0x2802140: v4i64,ch = CopyFromReg 0x2763dd0, Register:v4i64 %vreg13
try.c: 0x2817ce0: v4i64 = Register %vreg13
try.c: 0x282ce30: v16i32 = X86ISD::VBROADCAST 0x285d190
try.c: 0x285d190: i32,ch = load<LD4[ConstantPool]> 0x2763dd0, 0x286c540, undef:i64
try.c: 0x286c540: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x2803f00: i64 = TargetConstantPool<i32 1> 0
try.c: 0x2867cb0: i64 = undef
try.c: 0x286c8d0: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x286c7a0: i32 = Constant<0>
try.c: 0x286c7a0: i32 = Constant<0>
try.c: 0x286c7a0: i32 = Constant<0>
try.c: 0x286c7a0: i32 = Constant<0>
try.c: ...

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