Implementation notes: amd64, manny613, crypto_encrypt/pqrsa15

Computer: manny613
Architecture: amd64
CPU ID: GenuineIntel-000306e4-bfebfbff
SUPERCOP version: 20180818
Operation: crypto_encrypt
Primitive: pqrsa15
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
198553368? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2018090320180818
198621404? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2018090320180818
198660784? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2018090320180818
198679380? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2018090320180818
198685728? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2018090320180818
198689584? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2018090320180818
198725976? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2018090320180818
198780256? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2018090320180818
198795652? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2018090320180818
198800040? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2018090320180818
198812336? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2018090320180818
198815616? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2018090320180818
198824256? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2018090320180818
198834856? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2018090320180818
198846252? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2018090320180818
198869720? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2018090320180818
198878080? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2018090320180818
198886472? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2018090320180818
198892736? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2018090320180818
198894044? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2018090320180818
198902448? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2018090320180818
198904660? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2018090320180818
198906456? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2018090320180818
198910520? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2018090320180818
198913236? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2018090320180818
198914648? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2018090320180818
198917864? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2018090320180818
198918084? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2018090320180818
198919340? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2018090320180818
198919616? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2018090320180818
198926880? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2018090320180818
198933816? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2018090320180818
198934624? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2018090320180818
198938252? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2018090320180818
198977800? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2018090320180818
198987592? ? ?? ? ?reficc_-xAVX_-O3_-fomit-frame-pointer2018090320180818
198996780? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2018090320180818
199000004? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2018090320180818
199004044? ? ?? ? ?reficc_-xSSE4.2_-O2_-fomit-frame-pointer2018090320180818
199011852? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2018090320180818
199012012? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2018090320180818
199013060? ? ?? ? ?reficc_-xSSE4.1_-O2_-fomit-frame-pointer2018090320180818
199020088? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2018090320180818
199021788? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2018090320180818
199023072? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2018090320180818
199023380? ? ?? ? ?reficc_-xSSE4.2_-O3_-fomit-frame-pointer2018090320180818
199023932? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2018090320180818
199033352? ? ?? ? ?reficc_-xAVX_-O2_-fomit-frame-pointer2018090320180818
199037088? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2018090320180818
199038024? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2018090320180818
199047196? ? ?? ? ?reficc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2018090320180818
199061984? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2018090320180818
199080264? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2018090320180818
199082624? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2018090320180818
199089588? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2018090320180818
199096180? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2018090320180818
199103756? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2018090320180818
199106192? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2018090320180818
199111828? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2018090320180818
199116252? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2018090320180818
199117236? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2018090320180818
199119488? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2018090320180818
199120840? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2018090320180818
199133704? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2018090320180818
199134628? ? ?? ? ?reficc2018090320180818
199138600? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2018090320180818
199139836? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2018090320180818
199141220? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2018090320180818
199143248? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2018090320180818
199143360? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2018090320180818
199146464? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2018090320180818
199146632? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2018090320180818
199153440? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2018090320180818
199166832? ? ?? ? ?reficc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2018090320180818
199171204? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2018090320180818
199172044? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2018090320180818
199186816? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2018090320180818
199218464? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2018090320180818
199222724? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2018090320180818
199232816? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2018090320180818
199235484? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2018090320180818
199272000? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2018090320180818
199272712? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2018090320180818
199272780? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2018090320180818
199275156? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2018090320180818
199275752? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2018090320180818
199279860? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2018090320180818
199281496? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2018090320180818
199286100? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2018090320180818
199286456? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2018090320180818
199298000? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2018090320180818
199302772? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2018090320180818
199304080? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2018090320180818
199313932? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2018090320180818
199314876? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2018090320180818
199323720? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2018090320180818
199337380? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2018090320180818
199345616? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2018090320180818
199353836? ? ?? ? ?reficc_-xSSE4.1_-O3_-fomit-frame-pointer2018090320180818
199355784? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2018090320180818
199357568? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2018090320180818
199361092? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2018090320180818
199403088? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2018090320180818
199406360? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2018090320180818
199411016? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2018090320180818
199435436? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2018090320180818
199439588? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2018090320180818
199444512? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2018090320180818
199461924? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2018090320180818
199503104? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2018090320180818
199532796? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2018090320180818
199660500? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2018090320180818
199741204? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2018090320180818
199858380? ? ?? ? ?reficc_-no-vec2018090320180818
200344992? ? ?? ? ?refgcc_-funroll-loops2018090320180818
200521800? ? ?? ? ?refgcc2018090320180818

Test failure

Implementation: ref
Security model: unknown
Compiler: gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer ref

Compiler output

Implementation: ref
Security model: unknown
Compiler: cc
dec.c: dec.c: In function 'remainders_via_tree':
dec.c: dec.c:102: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:75: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:185: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:31: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_encrypt_pqrsa15_ref_open':
dec.c: dec.c:246:3: warning: passing argument 2 of 'cuberoot' from incompatible pointer type [enabled by default]
dec.c: cuberoot(xint,p,pinv,N);
dec.c: ^
dec.c: dec.c:142: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:246:3: warning: passing argument 3 of 'cuberoot' from incompatible pointer type [enabled by default]
dec.c: cuberoot(xint,p,pinv,N);
dec.c: ^
dec.c: dec.c:142: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: icc
dec.c: dec.c(102): warning #167: argument of type "mpz_t *" is incompatible with parameter of type "const mpz_t *"
dec.c: remainders_via_tree(xmodq,x,q,qlen);
dec.c: ^
dec.c:
dec.c: dec.c(185): warning #167: argument of type "mpz_t *" is incompatible with parameter of type "const mpz_t *"
dec.c: sumfrac(x,t,xmodp,p,K);
dec.c: ^
dec.c:
dec.c: dec.c(246): warning #167: argument of type "mpz_t *" is incompatible with parameter of type "const mpz_t *"
dec.c: cuberoot(xint,p,pinv,N);
dec.c: ^
dec.c:
dec.c: dec.c(246): warning #167: argument of type "mpz_t *" is incompatible with parameter of type "const mpz_t *"
dec.c: cuberoot(xint,p,pinv,N);
dec.c: ^
dec.c:
dec.c: dec.c(334): warning #167: argument of type "mpz_t *" is incompatible with parameter of type "const mpz_t *"
dec.c: sumfrac(q,N,0,p,K);
dec.c: ^
dec.c:
dec.c: dec.c(335): warning #167: argument of type "mpz_t *" is incompatible with parameter of type "const mpz_t *"
dec.c: remainders(qmodp,q,p);
dec.c: ^
dec.c:

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
icc ref
icc -no-vec ref
icc -xAVX -O2 -fomit-frame-pointer ref
icc -xAVX -O3 -fomit-frame-pointer ref
icc -xCORE-AVX-I -O2 -fomit-frame-pointer ref
icc -xCORE-AVX-I -O3 -fomit-frame-pointer ref
icc -xSSE4.1 -O2 -fomit-frame-pointer ref
icc -xSSE4.1 -O3 -fomit-frame-pointer ref
icc -xSSE4.2 -O2 -fomit-frame-pointer ref
icc -xSSE4.2 -O3 -fomit-frame-pointer ref