Implementation notes: amd64, oki, crypto_sign/qtesla1

Computer: oki
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20181123
Operation: crypto_sign
Primitive: qtesla1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
699952? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019011420181123
757504? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2019011420181123
892696? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019011420181123
893758? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019011420181123
896978? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2019011420181123
900154? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
902150? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
902896? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2019011420181123
903910? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2019011420181123
907568? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
907848? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2019011420181123
908086? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
908664? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2019011420181123
913540? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019011420181123
915826? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019011420181123
916218? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019011420181123
916626? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2019011420181123
916954? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2019011420181123
917094? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2019011420181123
921980? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2019011420181123
922616? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019011420181123
923860? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2019011420181123
985408? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019011420181123
1034830? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2019011420181123
1040084? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019011420181123
1044810? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
1045516? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
1046056? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2019011420181123
1048714? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019011420181123
1051032? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2019011420181123
1052390? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2019011420181123
1081060? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019011420181123
1091870? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019011420181123
1106934? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019011420181123
1114528? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
1115634? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
1115734? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2019011420181123
1116130? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2019011420181123
1123226? ? ?? ? ?refclang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019011420181123
1126278? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2019011420181123
1127280? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2019011420181123
1127448? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2019011420181123
1128100? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019011420181123
1128776? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011420181123
1128944? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2019011420181123
1130636? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019011420181123
1130812? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019011420181123
1131164? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011420181123
1132014? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011420181123
1132106? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2019011420181123
1134160? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019011420181123
1135670? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019011420181123
1160876? ? ?? ? ?refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019011420181123
1174984? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019011420181123
1182010? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
1183628? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
1185268? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
1202876? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
1209796? ? ?? ? ?refgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2019011420181123
1228614? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019011420181123
1233414? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019011420181123
1237562? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
1240742? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
1241276? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2019011420181123
1242228? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2019011420181123
1244188? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019011420181123
1247020? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2019011420181123
1248678? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019011420181123
1249944? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2019011420181123
1266022? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
1268566? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
1270268? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2019011420181123
1271376? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019011420181123
1272080? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2019011420181123
1279340? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019011420181123
1280610? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2019011420181123
1280752? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019011420181123
1281008? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019011420181123
1281888? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2019011420181123
1287186? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
1287542? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2019011420181123
1287998? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2019011420181123
1290762? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019011420181123
1291070? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2019011420181123
1291370? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
1292014? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2019011420181123
1293418? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2019011420181123
1293762? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2019011420181123
1296128? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
1296440? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2019011420181123
1308954? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
1319570? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
1320636? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
1320818? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
1327210? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
1327802? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019011420181123
1333778? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2019011420181123
1334456? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2019011420181123
1335620? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019011420181123
1336226? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2019011420181123
1345978? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
1353572? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2019011420181123
1354888? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019011420181123
1355128? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2019011420181123
1356518? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019011420181123
1364872? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019011420181123
1367766? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019011420181123
1391150? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
1410212? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2019011420181123
1410726? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2019011420181123
1423660? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
1430602? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
1483174? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2019011420181123
1484360? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2019011420181123
1567314? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2019011420181123
1593942? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2019011420181123
4316988? ? ?? ? ?refgcc2019011420181123
4365924? ? ?? ? ?refgcc_-funroll-loops2019011420181123

Compiler output

Implementation: ref
Security model: unknown
Compiler: cc
poly.c: poly.c: In function 'poly_mul':
poly.c: poly.c:82: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:82: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: 0x14862d0: v4i64 = X86ISD::VTRUNC 0x1486100
try.c: 0x1486100: v16i32 = vselect 0x1482d40, 0x13fee40, 0x1485fd0
try.c: 0x1482d40: v4i1 = X86ISD::PCMPGTM 0x146dff0, 0x142a9b0
try.c: 0x146dff0: v4i64 = X86ISD::VBROADCAST 0x142ad40
try.c: 0x142ad40: i64,ch = load<LD8[%uglygep72]> 0x1368dd0, 0x14674a0, undef:i64
try.c: 0x14674a0: i64 = add 0x146eed0, 0x1401c00
try.c: 0x146eed0: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x14638d0: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x1401c00: i64 = shl 0x1463080, Constant:i8<3>
try.c: 0x1463080: i64,ch = CopyFromReg 0x1368dd0, Register:i64 %vreg50
try.c: 0x146f390: i64 = Register %vreg50
try.c: 0x141fc90: i8 = Constant<3>
try.c: 0x146c660: i64 = undef
try.c: 0x142a9b0: v4i64,ch = CopyFromReg 0x1368dd0, Register:v4i64 %vreg13
try.c: 0x1408f80: v4i64 = Register %vreg13
try.c: 0x13fee40: v16i32 = X86ISD::VBROADCAST 0x14632e0
try.c: 0x14632e0: i32,ch = load<LD4[ConstantPool]> 0x1368dd0, 0x1485c40, undef:i64
try.c: 0x1485c40: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x1406aa0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x146c660: i64 = undef
try.c: 0x1485fd0: 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: 0x1485ea0: i32 = Constant<0>
try.c: 0x1485ea0: i32 = Constant<0>
try.c: 0x1485ea0: i32 = Constant<0>
try.c: 0x1485ea0: 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: 0x2052350: v4i64 = X86ISD::VTRUNC 0x2052180
try.c: 0x2052180: v16i32 = vselect 0x205a9c0, 0x1fd5fb0, 0x2052050
try.c: 0x205a9c0: v4i1 = X86ISD::PCMPGTM 0x203bc40, 0x1fd6d60
try.c: 0x203bc40: v4i64 = X86ISD::VBROADCAST 0x1fd70f0
try.c: 0x1fd70f0: i64,ch = load<LD8[%uglygep72]> 0x1f37dd0, 0x201cf30, undef:i64
try.c: 0x201cf30: i64 = add 0x203cb20, 0x1fcb8c0
try.c: 0x203cb20: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x1ff3cc0: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x1fcb8c0: i64 = shl 0x1ff3470, Constant:i8<3>
try.c: 0x1ff3470: i64,ch = CopyFromReg 0x1f37dd0, Register:i64 %vreg50
try.c: 0x203cfe0: i64 = Register %vreg50
try.c: 0x1fdd020: i8 = Constant<3>
try.c: 0x203a2b0: i64 = undef
try.c: 0x1fd6d60: v4i64,ch = CopyFromReg 0x1f37dd0, Register:v4i64 %vreg13
try.c: 0x1ff9c70: v4i64 = Register %vreg13
try.c: 0x1fd5fb0: v16i32 = X86ISD::VBROADCAST 0x1ff36d0
try.c: 0x1ff36d0: i32,ch = load<LD4[ConstantPool]> 0x1f37dd0, 0x2051cc0, undef:i64
try.c: 0x2051cc0: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x1fe51b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x203a2b0: i64 = undef
try.c: 0x2052050: 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: 0x2051f20: i32 = Constant<0>
try.c: 0x2051f20: i32 = Constant<0>
try.c: 0x2051f20: i32 = Constant<0>
try.c: 0x2051f20: 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