Implementation notes: amd64, oki, crypto_sign/pqrsa15

Computer: oki
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20181123
Operation: crypto_sign
Primitive: pqrsa15
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
140644648? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019011420181123
140912388? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2019011420181123
141436908? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019011420181123
141441972? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2019011420181123
141447850? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019011420181123
141466392? ? ?? ? ?refclang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019011420181123
141488630? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2019011420181123
141492354? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019011420181123
141499960? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
141511462? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
141512286? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
141534758? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2019011420181123
141541552? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
141547948? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2019011420181123
141552178? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
141554086? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011420181123
141560318? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019011420181123
141564160? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011420181123
141565378? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2019011420181123
141565776? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2019011420181123
141571162? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2019011420181123
141571276? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2019011420181123
141578390? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2019011420181123
141579242? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2019011420181123
141583960? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2019011420181123
141593350? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019011420181123
141600338? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019011420181123
141604568? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2019011420181123
141608650? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019011420181123
141611800? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
141620438? ? ?? ? ?refgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2019011420181123
141622654? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019011420181123
141636408? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019011420181123
141637866? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
141639436? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019011420181123
141653938? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019011420181123
141668672? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019011420181123
141673204? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
141682306? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
141689168? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
141697958? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019011420181123
141714708? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019011420181123
141716162? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2019011420181123
141716866? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2019011420181123
141726892? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019011420181123
141734538? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2019011420181123
141737400? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
141747010? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2019011420181123
141754052? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2019011420181123
141754444? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019011420181123
141755976? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019011420181123
141758400? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2019011420181123
141768758? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2019011420181123
141770178? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019011420181123
141774332? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2019011420181123
141775856? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
141776662? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019011420181123
141777202? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019011420181123
141778828? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2019011420181123
141779286? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
141785416? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2019011420181123
141798382? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2019011420181123
141804836? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2019011420181123
141807026? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019011420181123
141815852? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2019011420181123
141825482? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2019011420181123
141826506? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2019011420181123
141829722? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2019011420181123
141835278? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2019011420181123
141845600? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019011420181123
141863250? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2019011420181123
141864322? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
141867274? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2019011420181123
141872018? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019011420181123
141872864? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2019011420181123
141873666? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2019011420181123
141877314? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2019011420181123
141912498? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019011420181123
141917136? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019011420181123
141918396? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2019011420181123
141930376? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019011420181123
141931154? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
141936358? ? ?? ? ?refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019011420181123
141940128? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2019011420181123
141940602? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019011420181123
141941098? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2019011420181123
141944514? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019011420181123
141946978? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2019011420181123
141960172? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
141962460? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2019011420181123
141962826? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
141970062? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019011420181123
141976580? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2019011420181123
141982542? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2019011420181123
141991890? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019011420181123
141996632? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2019011420181123
142020744? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
142026298? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
142028210? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019011420181123
142038700? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
142038954? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
142042594? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019011420181123
142045406? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2019011420181123
142050692? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2019011420181123
142053594? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019011420181123
142057622? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019011420181123
142070030? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2019011420181123
142079704? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2019011420181123
142087634? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2019011420181123
142102826? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2019011420181123
142103848? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2019011420181123
142123706? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2019011420181123
142164290? ? ?? ? ?refgcc_-funroll-loops2019011420181123
142166500? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2019011420181123
142168946? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2019011420181123
142237638? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2019011420181123
142263704? ? ?? ? ?refgcc2019011420181123
142381032? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2019011420181123

Compiler output

Implementation: ref
Security model: unknown
Compiler: cc
sign.c: sign.c: In function 'remainders_via_tree':
sign.c: sign.c:95:3: warning: passing argument 3 of 'remainders_via_tree' from incompatible pointer type [enabled by default]
sign.c: remainders_via_tree(xmodq,x,q,qlen);
sign.c: ^
sign.c: sign.c:68:13: note: expected 'const struct __mpz_struct (*)[1]' but argument is of type 'struct __mpz_struct (*)[1]'
sign.c: static void remainders_via_tree(mpz_t *xmodp,const mpz_t x,const mpz_t *p,long long plen)
sign.c: ^
sign.c: sign.c: In function 'cuberoot':
sign.c: sign.c:178:3: warning: passing argument 3 of 'sumfrac' from incompatible pointer type [enabled by default]
sign.c: sumfrac(x,t,xmodp,p,K);
sign.c: ^
sign.c: sign.c:24:13: note: expected 'const struct __mpz_struct (*)[1]' but argument is of type 'struct __mpz_struct (*)[1]'
sign.c: static void sumfrac(mpz_t num,mpz_t den,const mpz_t *x,const mpz_t *p,long long plen)
sign.c: ^
sign.c: sign.c: In function 'crypto_sign_pqrsa15_ref':
sign.c: sign.c:232:3: warning: passing argument 2 of 'cuberoot' from incompatible pointer type [enabled by default]
sign.c: cuberoot(X,p,pinv,N);
sign.c: ^
sign.c: sign.c:135:12: note: expected 'const struct __mpz_struct (*)[1]' but argument is of type 'struct __mpz_struct (*)[1]'
sign.c: static int cuberoot(mpz_t x,const mpz_t *p,const mpz_t *pinv,const mpz_t N)
sign.c: ^
sign.c: sign.c:232:3: warning: passing argument 3 of 'cuberoot' from incompatible pointer type [enabled by default]
sign.c: cuberoot(X,p,pinv,N);
sign.c: ^
sign.c: sign.c:135:12: note: expected 'const struct __mpz_struct (*)[1]' but argument is of type 'struct __mpz_struct (*)[1]'
sign.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: 0x1a85070: v4i64 = X86ISD::VTRUNC 0x1a84ea0
try.c: 0x1a84ea0: v16i32 = vselect 0x1a90170, 0x1a08950, 0x1a84d70
try.c: 0x1a90170: v4i1 = X86ISD::PCMPGTM 0x1a6e960, 0x1a09700
try.c: 0x1a6e960: v4i64 = X86ISD::VBROADCAST 0x1a09a90
try.c: 0x1a09a90: i64,ch = load<LD8[%uglygep72]> 0x1968db0, 0x1a15770, undef:i64
try.c: 0x1a15770: i64 = add 0x1a6f840, 0x19ea7d0
try.c: 0x1a6f840: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x1a28440: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x19ea7d0: i64 = shl 0x1a27bf0, Constant:i8<3>
try.c: 0x1a27bf0: i64,ch = CopyFromReg 0x1968db0, Register:i64 %vreg50
try.c: 0x1a6fd00: i64 = Register %vreg50
try.c: 0x1a0f2f0: i8 = Constant<3>
try.c: 0x1a6cfd0: i64 = undef
try.c: 0x1a09700: v4i64,ch = CopyFromReg 0x1968db0, Register:v4i64 %vreg13
try.c: 0x1a05050: v4i64 = Register %vreg13
try.c: 0x1a08950: v16i32 = X86ISD::VBROADCAST 0x1a27e50
try.c: 0x1a27e50: i32,ch = load<LD4[ConstantPool]> 0x1968db0, 0x1a849e0, undef:i64
try.c: 0x1a849e0: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x1a19af0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x1a6cfd0: i64 = undef
try.c: 0x1a84d70: 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: 0x1a84c40: i32 = Constant<0>
try.c: 0x1a84c40: i32 = Constant<0>
try.c: 0x1a84c40: i32 = Constant<0>
try.c: 0x1a84c40: 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: 0xc53c10: v4i64 = X86ISD::VTRUNC 0xc53a40
try.c: 0xc53a40: v16i32 = vselect 0xc50680, 0xbcbce0, 0xc53910
try.c: 0xc50680: v4i1 = X86ISD::PCMPGTM 0xc3b4e0, 0xbdb020
try.c: 0xc3b4e0: v4i64 = X86ISD::VBROADCAST 0xbdb3b0
try.c: 0xbdb3b0: i64,ch = load<LD8[%uglygep72]> 0xb35dd0, 0xc25240, undef:i64
try.c: 0xc25240: i64 = add 0xc3c3c0, 0xbd4860
try.c: 0xc3c3c0: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0xc22d70: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0xbd4860: i64 = shl 0xc22520, Constant:i8<3>
try.c: 0xc22520: i64,ch = CopyFromReg 0xb35dd0, Register:i64 %vreg50
try.c: 0xc3c880: i64 = Register %vreg50
try.c: 0xbcede0: i8 = Constant<3>
try.c: 0xc32f10: i64 = undef
try.c: 0xbdb020: v4i64,ch = CopyFromReg 0xb35dd0, Register:v4i64 %vreg13
try.c: 0xbdf2b0: v4i64 = Register %vreg13
try.c: 0xbcbce0: v16i32 = X86ISD::VBROADCAST 0xc22780
try.c: 0xc22780: i32,ch = load<LD4[ConstantPool]> 0xb35dd0, 0xc53580, undef:i64
try.c: 0xc53580: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0xbf4230: i64 = TargetConstantPool<i32 1> 0
try.c: 0xc32f10: i64 = undef
try.c: 0xc53910: 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: 0xc537e0: i32 = Constant<0>
try.c: 0xc537e0: i32 = Constant<0>
try.c: 0xc537e0: i32 = Constant<0>
try.c: 0xc537e0: 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