Implementation notes: amd64, oki, crypto_kem/ledakem14

Computer: oki
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20181123
Operation: crypto_kem
Primitive: ledakem14
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
94395810? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019011820181123
96137400? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2019011820181123
97466596? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2019011820181123
97496000? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2019011820181123
97727998? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019011820181123
97742044? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2019011820181123
97757582? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019011820181123
97758804? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2019011820181123
97831050? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019011820181123
97875592? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019011820181123
97903846? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2019011820181123
97934770? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019011820181123
98161442? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2019011820181123
98178112? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019011820181123
98803430? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2019011820181123
98931444? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2019011820181123
99926996? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2019011820181123
100299664? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019011820181123
100828152? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2019011820181123
100935580? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2019011820181123
101119034? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2019011820181123
101339744? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019011820181123
101397218? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2019011820181123
101517214? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2019011820181123
101551042? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011820181123
101579934? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011820181123
101718406? ? ?? ? ?refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019011820181123
101734326? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011820181123
101861102? ? ?? ? ?refclang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019011820181123
101939624? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019011820181123
101955198? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2019011820181123
101996612? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019011820181123
102036316? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019011820181123
102083400? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019011820181123
102331382? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2019011820181123
102348892? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019011820181123
102361782? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019011820181123
104772924? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019011820181123
105165688? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019011820181123
105396840? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2019011820181123
105506382? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2019011820181123
105525626? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2019011820181123
105777270? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2019011820181123
105864134? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2019011820181123
105947660? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2019011820181123
105987526? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2019011820181123
105997178? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2019011820181123
106041474? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019011820181123
106043450? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2019011820181123
106069602? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019011820181123
106084244? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2019011820181123
107402464? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2019011820181123
107424230? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019011820181123
107443496? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019011820181123
107487186? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2019011820181123
107531170? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2019011820181123
107565716? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019011820181123
107619120? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019011820181123
107722022? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2019011820181123
107800894? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019011820181123
107993736? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2019011820181123
111714356? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2019011820181123
111755758? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019011820181123
111758432? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2019011820181123
113438538? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2019011820181123
113735100? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019011820181123
113752784? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2019011820181123
113797506? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2019011820181123
114048310? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2019011820181123
114159762? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2019011820181123
114657490? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2019011820181123
114683650? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2019011820181123
114844454? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019011820181123
115008888? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2019011820181123
115012470? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2019011820181123
115081754? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2019011820181123
115119054? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019011820181123
115184726? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019011820181123
115859658? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019011820181123
115908282? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2019011820181123
115938528? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2019011820181123
116178040? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2019011820181123
116528558? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2019011820181123
120162312? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2019011820181123
120197044? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2019011820181123
121169914? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2019011820181123
121605824? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2019011820181123
133602028? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2019011820181123
134027384? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2019011820181123
148232714? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2019011820181123
148239238? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019011820181123
148483036? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019011820181123
148902036? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2019011820181123
148942642? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2019011820181123
149162372? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019011820181123
149173656? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2019011820181123
149204358? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2019011820181123
149211388? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2019011820181123
149253994? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2019011820181123
149363992? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019011820181123
149400210? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2019011820181123
150399178? ? ?? ? ?refgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2019011820181123
151175960? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019011820181123
152084310? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019011820181123
152120830? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2019011820181123
152376676? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2019011820181123
152448648? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019011820181123
152639566? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2019011820181123
153556058? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2019011820181123
153643040? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2019011820181123
153647052? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2019011820181123
153980388? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2019011820181123
155829296? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019011820181123
158713988? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2019011820181123
164348462? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019011820181123
164390918? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019011820181123
267676722? ? ?? ? ?refgcc2019011820181123
268366586? ? ?? ? ?refgcc_-funroll-loops2019011820181123

Compiler output

Implementation: ref
Security model: unknown
Compiler: cc
bf_decoding.c: In file included from bf_decoding.c:35:0:
bf_decoding.c: gf2x_arith_mod_xPplusOne.h: In function 'gf2x_copy':
bf_decoding.c: gf2x_arith_mod_xPplusOne.h:99:4: error: 'for' loop initial declarations are only allowed in C99 mode
bf_decoding.c: for (int i = NUM_DIGITS_GF2X_ELEMENT-1; i >= 0; i--)
bf_decoding.c: ^
bf_decoding.c: gf2x_arith_mod_xPplusOne.h:99:4: note: use option -std=c99 or -std=gnu99 to compile your code
bf_decoding.c: gf2x_arith_mod_xPplusOne.h: At top level:
bf_decoding.c: gf2x_arith_mod_xPplusOne.h:150:59: error: expected ';', ',' or ')' before 'OUT'
bf_decoding.c: static inline void gf2x_bitwise_and(DIGIT *const restrict OUT,
bf_decoding.c: ^
bf_decoding.c: gf2x_arith_mod_xPplusOne.h: In function 'population_count':
bf_decoding.c: gf2x_arith_mod_xPplusOne.h:165:4: error: 'for' loop initial declarations are only allowed in C99 mode
bf_decoding.c: for(int i = NUM_DIGITS_GF2X_ELEMENT - 1; i >= 0; i--) {
bf_decoding.c: ^
bf_decoding.c: gf2x_arith_mod_xPplusOne.h: In function 'partition':
bf_decoding.c: gf2x_arith_mod_xPplusOne.h:286:4: error: 'for' loop initial declarations are only allowed in C99 mode
bf_decoding.c: for (int j = lo; j <= hi - 1; j++) {
bf_decoding.c: ^
bf_decoding.c: bf_decoding.c: In function 'bf_decoding':
bf_decoding.c: bf_decoding.c:54:7: error: 'for' loop initial declarations are only allowed in C99 mode
bf_decoding.c: for (int i = 0; i < N0; i++) {
bf_decoding.c: ^
bf_decoding.c: bf_decoding.c:55:10: error: 'for' loop initial declarations are only allowed in C99 mode
bf_decoding.c: for (int valueIdx = 0; valueIdx < P; valueIdx++) {
bf_decoding.c: ^
bf_decoding.c: ...

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: 0x1f17d70: v4i64 = X86ISD::VTRUNC 0x1f1bbd0
try.c: 0x1f1bbd0: v16i32 = vselect 0x1f117c0, 0x1e81b00, 0x1f1baa0
try.c: 0x1f117c0: v4i1 = X86ISD::PCMPGTM 0x1f026c0, 0x1ebf600
try.c: 0x1f026c0: v4i64 = X86ISD::VBROADCAST 0x1ebf990
try.c: 0x1ebf990: i64,ch = load<LD8[%uglygep72]> 0x1dfddd0, 0x1efc970, undef:i64
try.c: 0x1efc970: i64 = add 0x1f035a0, 0x1e977a0
try.c: 0x1f035a0: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x1eece70: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x1e977a0: i64 = shl 0x1eec620, Constant:i8<3>
try.c: 0x1eec620: i64,ch = CopyFromReg 0x1dfddd0, Register:i64 %vreg50
try.c: 0x1f03a60: i64 = Register %vreg50
try.c: 0x1e98da0: i8 = Constant<3>
try.c: 0x1f00520: i64 = undef
try.c: 0x1ebf600: v4i64,ch = CopyFromReg 0x1dfddd0, Register:v4i64 %vreg13
try.c: 0x1ec45c0: v4i64 = Register %vreg13
try.c: 0x1e81b00: v16i32 = X86ISD::VBROADCAST 0x1eec880
try.c: 0x1eec880: i32,ch = load<LD4[ConstantPool]> 0x1dfddd0, 0x1f1b710, undef:i64
try.c: 0x1f1b710: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x1e9d390: i64 = TargetConstantPool<i32 1> 0
try.c: 0x1f00520: i64 = undef
try.c: 0x1f1baa0: 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: 0x1f1b970: i32 = Constant<0>
try.c: 0x1f1b970: i32 = Constant<0>
try.c: 0x1f1b970: i32 = Constant<0>
try.c: 0x1f1b970: 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: 0x1e19040: v4i64 = X86ISD::VTRUNC 0x1e18e70
try.c: 0x1e18e70: v16i32 = vselect 0x1e20a10, 0x1db36a0, 0x1e18d40
try.c: 0x1e20a10: v4i1 = X86ISD::PCMPGTM 0x1e03540, 0x1da5be0
try.c: 0x1e03540: v4i64 = X86ISD::VBROADCAST 0x1da5f70
try.c: 0x1da5f70: i64,ch = load<LD8[%uglygep72]> 0x1cfcdf0, 0x1dbee70, undef:i64
try.c: 0x1dbee70: i64 = add 0x1e04420, 0x1d7ec00
try.c: 0x1e04420: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x1dbc9d0: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x1d7ec00: i64 = shl 0x1dbc180, Constant:i8<3>
try.c: 0x1dbc180: i64,ch = CopyFromReg 0x1cfcdf0, Register:i64 %vreg50
try.c: 0x1e048e0: i64 = Register %vreg50
try.c: 0x1da2c30: i8 = Constant<3>
try.c: 0x1e01bb0: i64 = undef
try.c: 0x1da5be0: v4i64,ch = CopyFromReg 0x1cfcdf0, Register:v4i64 %vreg13
try.c: 0x1db7820: v4i64 = Register %vreg13
try.c: 0x1db36a0: v16i32 = X86ISD::VBROADCAST 0x1dbc3e0
try.c: 0x1dbc3e0: i32,ch = load<LD4[ConstantPool]> 0x1cfcdf0, 0x1e189b0, undef:i64
try.c: 0x1e189b0: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x1da79a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x1e01bb0: i64 = undef
try.c: 0x1e18d40: 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: 0x1e18c10: i32 = Constant<0>
try.c: 0x1e18c10: i32 = Constant<0>
try.c: 0x1e18c10: i32 = Constant<0>
try.c: 0x1e18c10: 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