Implementation notes: amd64, oki, crypto_sign/qtesla3s

Computer: oki
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20181123
Operation: crypto_sign
Primitive: qtesla3s
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1763466? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019011420181123
2018106? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2019011420181123
2387676? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
2396150? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019011420181123
2396690? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2019011420181123
2398026? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
2401622? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
2407024? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2019011420181123
2414964? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
2419880? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019011420181123
2428224? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2019011420181123
2431446? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2019011420181123
2436168? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2019011420181123
2444598? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019011420181123
2464004? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2019011420181123
2467104? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019011420181123
2468154? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2019011420181123
2468810? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019011420181123
2474932? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019011420181123
2490452? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2019011420181123
2529670? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2019011420181123
2533562? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2019011420181123
2937746? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019011420181123
3035976? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2019011420181123
3038922? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
3041204? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019011420181123
3047816? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019011420181123
3061620? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019011420181123
3069674? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2019011420181123
3078606? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
3081202? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2019011420181123
3088022? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
3100356? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
3124248? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
3125110? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2019011420181123
3143154? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
3172812? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019011420181123
3190696? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2019011420181123
3220288? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2019011420181123
3242188? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
3245592? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
3255746? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2019011420181123
3256820? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2019011420181123
3264548? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019011420181123
3269476? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2019011420181123
3271670? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019011420181123
3275110? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2019011420181123
3279420? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019011420181123
3288372? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019011420181123
3293032? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2019011420181123
3304542? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019011420181123
3350090? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011420181123
3357890? ? ?? ? ?refclang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019011420181123
3382458? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011420181123
3401078? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011420181123
3421466? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019011420181123
3436788? ? ?? ? ?refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019011420181123
3441206? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019011420181123
3576172? ? ?? ? ?refgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2019011420181123
3601376? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2019011420181123
3606092? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2019011420181123
3613922? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
3623738? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019011420181123
3638894? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2019011420181123
3664200? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
3666204? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2019011420181123
3673166? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2019011420181123
3684952? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
3685312? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2019011420181123
3690028? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019011420181123
3691892? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
3694800? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019011420181123
3695428? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
3696136? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2019011420181123
3706596? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2019011420181123
3708376? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
3709072? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2019011420181123
3711752? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2019011420181123
3712046? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019011420181123
3714186? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019011420181123
3716270? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019011420181123
3724652? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019011420181123
3725242? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2019011420181123
3731440? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
3732438? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
3733056? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
3738576? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019011420181123
3741094? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2019011420181123
3753564? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019011420181123
3758422? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2019011420181123
3758610? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019011420181123
3759428? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
3773250? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2019011420181123
3787668? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
3819164? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2019011420181123
3860914? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019011420181123
3861008? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2019011420181123
3861206? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
3867744? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019011420181123
3869076? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2019011420181123
3874550? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2019011420181123
3888492? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019011420181123
3904516? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
3916260? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019011420181123
3918848? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2019011420181123
3924144? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
3926136? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2019011420181123
3950154? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019011420181123
3962138? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
3987250? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
4161748? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2019011420181123
4172544? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2019011420181123
4220770? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2019011420181123
4235350? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2019011420181123
4454400? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2019011420181123
4466786? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2019011420181123

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: 0x2118490: v4i64 = X86ISD::VTRUNC 0x21182c0
try.c: 0x21182c0: v16i32 = vselect 0x2114f00, 0x20bd2f0, 0x2118190
try.c: 0x2114f00: v4i1 = X86ISD::PCMPGTM 0x2100d70, 0x20be0a0
try.c: 0x2100d70: v4i64 = X86ISD::VBROADCAST 0x20be430
try.c: 0x20be430: i64,ch = load<LD8[%uglygep72]> 0x1ffadd0, 0x20ee720, undef:i64
try.c: 0x20ee720: i64 = add 0x2101c50, 0x20ab180
try.c: 0x2101c50: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x20b4780: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x20ab180: i64 = shl 0x20b3f30, Constant:i8<3>
try.c: 0x20b3f30: i64,ch = CopyFromReg 0x1ffadd0, Register:i64 %vreg50
try.c: 0x2102110: i64 = Register %vreg50
try.c: 0x207cc90: i8 = Constant<3>
try.c: 0x20ff3e0: i64 = undef
try.c: 0x20be0a0: v4i64,ch = CopyFromReg 0x1ffadd0, Register:v4i64 %vreg13
try.c: 0x20994d0: v4i64 = Register %vreg13
try.c: 0x20bd2f0: v16i32 = X86ISD::VBROADCAST 0x20b4190
try.c: 0x20b4190: i32,ch = load<LD4[ConstantPool]> 0x1ffadd0, 0x2117e00, undef:i64
try.c: 0x2117e00: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x2096120: i64 = TargetConstantPool<i32 1> 0
try.c: 0x20ff3e0: i64 = undef
try.c: 0x2118190: 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: 0x2118060: i32 = Constant<0>
try.c: 0x2118060: i32 = Constant<0>
try.c: 0x2118060: i32 = Constant<0>
try.c: 0x2118060: 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: 0x1c8a7f0: v4i64 = X86ISD::VTRUNC 0x1c8a620
try.c: 0x1c8a620: v16i32 = vselect 0x1c721b0, 0x1bffa80, 0x1c8a4f0
try.c: 0x1c721b0: v4i1 = X86ISD::PCMPGTM 0x1c6b990, 0x1c1c1a0
try.c: 0x1c6b990: v4i64 = X86ISD::VBROADCAST 0x1c1c530
try.c: 0x1c1c530: i64,ch = load<LD8[%uglygep72]> 0x1b66dd0, 0x1bfd360, undef:i64
try.c: 0x1bfd360: i64 = add 0x1c6c870, 0x1c01af0
try.c: 0x1c6c870: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x1c4c720: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x1c01af0: i64 = shl 0x1c4bed0, Constant:i8<3>
try.c: 0x1c4bed0: i64,ch = CopyFromReg 0x1b66dd0, Register:i64 %vreg50
try.c: 0x1c6cd30: i64 = Register %vreg50
try.c: 0x1c030f0: i8 = Constant<3>
try.c: 0x1c6a000: i64 = undef
try.c: 0x1c1c1a0: v4i64,ch = CopyFromReg 0x1b66dd0, Register:v4i64 %vreg13
try.c: 0x1c04f90: v4i64 = Register %vreg13
try.c: 0x1bffa80: v16i32 = X86ISD::VBROADCAST 0x1c4c130
try.c: 0x1c4c130: i32,ch = load<LD4[ConstantPool]> 0x1b66dd0, 0x1c8a160, undef:i64
try.c: 0x1c8a160: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x1c167f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x1c6a000: i64 = undef
try.c: 0x1c8a4f0: 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: 0x1c8a3c0: i32 = Constant<0>
try.c: 0x1c8a3c0: i32 = Constant<0>
try.c: 0x1c8a3c0: i32 = Constant<0>
try.c: 0x1c8a3c0: 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