Implementation notes: amd64, oki, crypto_kem/ledakem33

Computer: oki
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20181123
Operation: crypto_kem
Primitive: ledakem33
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
194339536? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019011820181123
203894046? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2019011820181123
218432314? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2019011820181123
218545878? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019011820181123
218634178? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019011820181123
218778288? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2019011820181123
218811036? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2019011820181123
218841576? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019011820181123
218927618? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2019011820181123
219977066? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019011820181123
220035274? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2019011820181123
220208674? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2019011820181123
220280132? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2019011820181123
220325872? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2019011820181123
220404526? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019011820181123
220439144? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019011820181123
220874000? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019011820181123
221120566? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2019011820181123
222269470? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019011820181123
222599492? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2019011820181123
222661074? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2019011820181123
222698372? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2019011820181123
222907790? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2019011820181123
223158970? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019011820181123
223514450? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2019011820181123
223730650? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019011820181123
223817416? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019011820181123
223897510? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2019011820181123
224474226? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2019011820181123
229261658? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011820181123
229723954? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011820181123
229753074? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011820181123
230822928? ? ?? ? ?refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019011820181123
230838164? ? ?? ? ?refclang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019011820181123
231096962? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019011820181123
231989342? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2019011820181123
232015502? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2019011820181123
232283108? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2019011820181123
232286148? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2019011820181123
232420300? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019011820181123
232528890? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2019011820181123
232608084? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2019011820181123
232853480? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019011820181123
233081722? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019011820181123
236710770? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019011820181123
237229836? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019011820181123
237392938? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019011820181123
237590068? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019011820181123
237750028? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2019011820181123
238016188? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019011820181123
238420044? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2019011820181123
238511854? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2019011820181123
239098188? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2019011820181123
239552458? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2019011820181123
239552480? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019011820181123
239713802? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2019011820181123
239915266? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2019011820181123
239981570? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019011820181123
239982360? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2019011820181123
240188140? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2019011820181123
240796190? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2019011820181123
240807228? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2019011820181123
240828830? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019011820181123
241085748? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2019011820181123
241242034? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2019011820181123
241655982? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2019011820181123
241823186? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2019011820181123
246853950? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019011820181123
246999380? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2019011820181123
247085532? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019011820181123
247394498? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019011820181123
251944448? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2019011820181123
252055834? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019011820181123
252280708? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2019011820181123
254537048? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2019011820181123
254686122? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2019011820181123
254833918? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019011820181123
254840712? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2019011820181123
254849836? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2019011820181123
254856004? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2019011820181123
254908202? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2019011820181123
254957438? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2019011820181123
256737016? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2019011820181123
257583310? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2019011820181123
259474340? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019011820181123
259720292? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2019011820181123
259964798? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2019011820181123
276054382? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2019011820181123
276162994? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2019011820181123
321970132? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019011820181123
322006228? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2019011820181123
322182328? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019011820181123
324176696? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019011820181123
324963742? ? ?? ? ?refgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2019011820181123
325621216? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019011820181123
326175088? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2019011820181123
326237240? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2019011820181123
326403278? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2019011820181123
326681336? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019011820181123
326885936? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2019011820181123
327375370? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2019011820181123
327450920? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2019011820181123
327771064? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019011820181123
328112438? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2019011820181123
328232712? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019011820181123
328819264? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2019011820181123
330137624? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2019011820181123
330337236? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2019011820181123
330696554? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2019011820181123
331812528? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019011820181123
332188818? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2019011820181123
332341230? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2019011820181123
349404766? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2019011820181123
349516454? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019011820181123
349561218? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2019011820181123
377592648? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019011820181123
639797932? ? ?? ? ?refgcc_-funroll-loops2019011820181123
639956964? ? ?? ? ?refgcc2019011820181123

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: 0x1874690: v4i64 = X86ISD::VTRUNC 0x1871f70
try.c: 0x1871f70: v16i32 = vselect 0x186ebb0, 0x17f3b10, 0x1871e40
try.c: 0x186ebb0: v4i1 = X86ISD::PCMPGTM 0x1858a00, 0x17f48c0
try.c: 0x1858a00: v4i64 = X86ISD::VBROADCAST 0x17f4c50
try.c: 0x17f4c50: i64,ch = load<LD8[%uglygep72]> 0x1753dd0, 0x1856aa0, undef:i64
try.c: 0x1856aa0: i64 = add 0x18598e0, 0x17e9140
try.c: 0x18598e0: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x184e220: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x17e9140: i64 = shl 0x184d9d0, Constant:i8<3>
try.c: 0x184d9d0: i64,ch = CopyFromReg 0x1753dd0, Register:i64 %vreg50
try.c: 0x1859da0: i64 = Register %vreg50
try.c: 0x181b840: i8 = Constant<3>
try.c: 0x184f790: i64 = undef
try.c: 0x17f48c0: v4i64,ch = CopyFromReg 0x1753dd0, Register:v4i64 %vreg13
try.c: 0x180a4d0: v4i64 = Register %vreg13
try.c: 0x17f3b10: v16i32 = X86ISD::VBROADCAST 0x184dc30
try.c: 0x184dc30: i32,ch = load<LD4[ConstantPool]> 0x1753dd0, 0x1871ab0, undef:i64
try.c: 0x1871ab0: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x17efed0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x184f790: i64 = undef
try.c: 0x1871e40: 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: 0x1871d10: i32 = Constant<0>
try.c: 0x1871d10: i32 = Constant<0>
try.c: 0x1871d10: i32 = Constant<0>
try.c: 0x1871d10: 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: 0x1e322a0: v4i64 = X86ISD::VTRUNC 0x1e320d0
try.c: 0x1e320d0: v16i32 = vselect 0x1e29cf0, 0x1d9a080, 0x1e31fa0
try.c: 0x1e29cf0: v4i1 = X86ISD::PCMPGTM 0x1e1bb90, 0x1d9ae30
try.c: 0x1e1bb90: v4i64 = X86ISD::VBROADCAST 0x1d9b1c0
try.c: 0x1d9b1c0: i64,ch = load<LD8[%uglygep72]> 0x1d16dd0, 0x1dd1310, undef:i64
try.c: 0x1dd1310: i64 = add 0x1e1ca70, 0x1dbcef0
try.c: 0x1e1ca70: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x1d77da0: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x1dbcef0: i64 = shl 0x1d77550, Constant:i8<3>
try.c: 0x1d77550: i64,ch = CopyFromReg 0x1d16dd0, Register:i64 %vreg50
try.c: 0x1e1cf30: i64 = Register %vreg50
try.c: 0x1db6670: i8 = Constant<3>
try.c: 0x1e1a200: i64 = undef
try.c: 0x1d9ae30: v4i64,ch = CopyFromReg 0x1d16dd0, Register:v4i64 %vreg13
try.c: 0x1db3240: v4i64 = Register %vreg13
try.c: 0x1d9a080: v16i32 = X86ISD::VBROADCAST 0x1d777b0
try.c: 0x1d777b0: i32,ch = load<LD4[ConstantPool]> 0x1d16dd0, 0x1e31c10, undef:i64
try.c: 0x1e31c10: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x1dd9460: i64 = TargetConstantPool<i32 1> 0
try.c: 0x1e1a200: i64 = undef
try.c: 0x1e31fa0: 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: 0x1e31e70: i32 = Constant<0>
try.c: 0x1e31e70: i32 = Constant<0>
try.c: 0x1e31e70: i32 = Constant<0>
try.c: 0x1e31e70: 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