Implementation notes: amd64, oki, crypto_kem/pqrsa15

Computer: oki
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20181123
Operation: crypto_kem
Primitive: pqrsa15
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
141742586? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019012120181123
141757216? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2019012120181123
141776832? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019012120181123
141793488? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019012120181123
141805982? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2019012120181123
141810832? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019012120181123
141856318? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019012120181123
141879192? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2019012120181123
141879274? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019012120181123
141904814? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2019012120181123
141906500? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2019012120181123
141907100? ? ?? ? ?refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019012120181123
141907240? ? ?? ? ?refgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2019012120181123
141916092? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019012120181123
141920956? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019012120181123
141937562? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019012120181123
141968110? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2019012120181123
141972890? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2019012120181123
141973040? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019012120181123
141977814? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019012120181123
141980598? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2019012120181123
141985866? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2019012120181123
141988254? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2019012120181123
141989442? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2019012120181123
141992002? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019012120181123
141992912? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019012120181123
141996556? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2019012120181123
142005426? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019012120181123
142006580? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2019012120181123
142009554? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2019012120181123
142023492? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019012120181123
142030300? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019012120181123
142031318? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2019012120181123
142038170? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2019012120181123
142044790? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2019012120181123
142049002? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019012120181123
142051200? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019012120181123
142054210? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019012120181123
142057088? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2019012120181123
142058864? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019012120181123
142065192? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019012120181123
142065312? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2019012120181123
142066458? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2019012120181123
142069896? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2019012120181123
142074052? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2019012120181123
142074850? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019012120181123
142082358? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2019012120181123
142090168? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019012120181123
142090400? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2019012120181123
142092400? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019012120181123
142100674? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019012120181123
142101066? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019012120181123
142104044? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2019012120181123
142105232? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2019012120181123
142110954? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2019012120181123
142111532? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2019012120181123
142118702? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2019012120181123
142121600? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019012120181123
142122734? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019012120181123
142123394? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2019012120181123
142125482? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2019012120181123
142125882? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019012120181123
142128880? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2019012120181123
142133480? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2019012120181123
142141764? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2019012120181123
142144694? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019012120181123
142151960? ? ?? ? ?refclang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019012120181123
142163460? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019012120181123
142164532? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019012120181123
142172152? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2019012120181123
142172236? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2019012120181123
142177640? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2019012120181123
142181252? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019012120181123
142183822? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2019012120181123
142185462? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2019012120181123
142195338? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2019012120181123
142206528? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019012120181123
142216028? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2019012120181123
142220190? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019012120181123
142234038? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2019012120181123
142234090? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2019012120181123
142235748? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019012120181123
142243534? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2019012120181123
142248438? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2019012120181123
142261598? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2019012120181123
142262640? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019012120181123
142269554? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2019012120181123
142270204? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2019012120181123
142276054? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2019012120181123
142277368? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2019012120181123
142280984? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2019012120181123
142285614? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2019012120181123
142288900? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2019012120181123
142291268? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019012120181123
142294740? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2019012120181123
142302902? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2019012120181123
142304442? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2019012120181123
142306822? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2019012120181123
142313164? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2019012120181123
142316252? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2019012120181123
142316982? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2019012120181123
142318352? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2019012120181123
142320198? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019012120181123
142379396? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2019012120181123
142401868? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019012120181123
142408250? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2019012120181123
142412644? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2019012120181123
142418282? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019012120181123
142419108? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019012120181123
142438386? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2019012120181123
142445320? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2019012120181123
142486838? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2019012120181123
142548218? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019012120181123
142596800? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2019012120181123
142663810? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2019012120181123
142679804? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2019012120181123
142747424? ? ?? ? ?refgcc_-funroll-loops2019012120181123
142838648? ? ?? ? ?refgcc2019012120181123

Compiler output

Implementation: ref
Security model: unknown
Compiler: cc
dec.c: dec.c: In function 'remainders_via_tree':
dec.c: dec.c:94:3: warning: passing argument 3 of 'remainders_via_tree' from incompatible pointer type [enabled by default]
dec.c: remainders_via_tree(xmodq,x,q,qlen);
dec.c: ^
dec.c: dec.c:67:13: note: expected 'const struct __mpz_struct (*)[1]' but argument is of type 'struct __mpz_struct (*)[1]'
dec.c: static void remainders_via_tree(mpz_t *xmodp,const mpz_t x,const mpz_t *p,long long plen)
dec.c: ^
dec.c: dec.c: In function 'cuberoot':
dec.c: dec.c:177:3: warning: passing argument 3 of 'sumfrac' from incompatible pointer type [enabled by default]
dec.c: sumfrac(x,t,xmodp,p,K);
dec.c: ^
dec.c: dec.c:23:13: note: expected 'const struct __mpz_struct (*)[1]' but argument is of type 'struct __mpz_struct (*)[1]'
dec.c: static void sumfrac(mpz_t num,mpz_t den,const mpz_t *x,const mpz_t *p,long long plen)
dec.c: ^
dec.c: dec.c: In function 'crypto_kem_pqrsa15_ref_dec':
dec.c: dec.c:227:3: warning: passing argument 2 of 'cuberoot' from incompatible pointer type [enabled by default]
dec.c: cuberoot(X,p,pinv,N);
dec.c: ^
dec.c: dec.c:134:12: note: expected 'const struct __mpz_struct (*)[1]' but argument is of type 'struct __mpz_struct (*)[1]'
dec.c: static int cuberoot(mpz_t x,const mpz_t *p,const mpz_t *pinv,const mpz_t N)
dec.c: ^
dec.c: dec.c:227:3: warning: passing argument 3 of 'cuberoot' from incompatible pointer type [enabled by default]
dec.c: cuberoot(X,p,pinv,N);
dec.c: ^
dec.c: dec.c:134:12: note: expected 'const struct __mpz_struct (*)[1]' but argument is of type 'struct __mpz_struct (*)[1]'
dec.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: 0xde7630: v4i64 = X86ISD::VTRUNC 0xde7460
try.c: 0xde7460: v16i32 = vselect 0xdeed30, 0xd81ca0, 0xde7330
try.c: 0xdeed30: v4i1 = X86ISD::PCMPGTM 0xdd0f20, 0xd82a50
try.c: 0xdd0f20: v4i64 = X86ISD::VBROADCAST 0xd82de0
try.c: 0xd82de0: i64,ch = load<LD8[%uglygep72]> 0xccbdc0, 0xdb10d0, undef:i64
try.c: 0xdb10d0: i64 = add 0xdd1e00, 0xd64510
try.c: 0xdd1e00: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0xdc4570: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0xd64510: i64 = shl 0xdc3d20, Constant:i8<3>
try.c: 0xdc3d20: i64,ch = CopyFromReg 0xccbdc0, Register:i64 %vreg50
try.c: 0xdd22c0: i64 = Register %vreg50
try.c: 0xd6a530: i8 = Constant<3>
try.c: 0xdcf590: i64 = undef
try.c: 0xd82a50: v4i64,ch = CopyFromReg 0xccbdc0, Register:v4i64 %vreg13
try.c: 0xd93c60: v4i64 = Register %vreg13
try.c: 0xd81ca0: v16i32 = X86ISD::VBROADCAST 0xdc3f80
try.c: 0xdc3f80: i32,ch = load<LD4[ConstantPool]> 0xccbdc0, 0xde6fa0, undef:i64
try.c: 0xde6fa0: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0xd91780: i64 = TargetConstantPool<i32 1> 0
try.c: 0xdcf590: i64 = undef
try.c: 0xde7330: 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: 0xde7200: i32 = Constant<0>
try.c: 0xde7200: i32 = Constant<0>
try.c: 0xde7200: i32 = Constant<0>
try.c: 0xde7200: 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: 0x1f73f10: v4i64 = X86ISD::VTRUNC 0x1f73d40
try.c: 0x1f73d40: v16i32 = vselect 0x1f89b50, 0x1f16460, 0x1f73c10
try.c: 0x1f89b50: v4i1 = X86ISD::PCMPGTM 0x1f666b0, 0x1f05e30
try.c: 0x1f666b0: v4i64 = X86ISD::VBROADCAST 0x1f061c0
try.c: 0x1f061c0: i64,ch = load<LD8[%uglygep72]> 0x1e6bdd0, 0x1f60400, undef:i64
try.c: 0x1f60400: i64 = add 0x1f71860, 0x1f10840
try.c: 0x1f71860: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x1f1f4b0: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x1f10840: i64 = shl 0x1f1ec60, Constant:i8<3>
try.c: 0x1f1ec60: i64,ch = CopyFromReg 0x1e6bdd0, Register:i64 %vreg50
try.c: 0x1f71d20: i64 = Register %vreg50
try.c: 0x1f2dae0: i8 = Constant<3>
try.c: 0x1f70000: i64 = undef
try.c: 0x1f05e30: v4i64,ch = CopyFromReg 0x1e6bdd0, Register:v4i64 %vreg13
try.c: 0x1f09d30: v4i64 = Register %vreg13
try.c: 0x1f16460: v16i32 = X86ISD::VBROADCAST 0x1f1eec0
try.c: 0x1f1eec0: i32,ch = load<LD4[ConstantPool]> 0x1e6bdd0, 0x1f73880, undef:i64
try.c: 0x1f73880: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x1f2a350: i64 = TargetConstantPool<i32 1> 0
try.c: 0x1f70000: i64 = undef
try.c: 0x1f73c10: 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: 0x1f73ae0: i32 = Constant<0>
try.c: 0x1f73ae0: i32 = Constant<0>
try.c: 0x1f73ae0: i32 = Constant<0>
try.c: 0x1f73ae0: 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