Implementation notes: amd64, manny613, crypto_kem/pqrsa15

Computer: manny613
Architecture: amd64
CPU ID: GenuineIntel-000306e4-bfebfbff
SUPERCOP version: 20180818
Operation: crypto_kem
Primitive: pqrsa15
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
197077408? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2018090320180818
197144052? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2018090320180818
197152288? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2018090320180818
197155080? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2018090320180818
197176324? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2018090320180818
197186512? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2018090320180818
197188788? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2018090320180818
197194428? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2018090320180818
197196616? ? ?? ? ?reficc_-xSSE4.1_-O2_-fomit-frame-pointer2018090320180818
197207940? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2018090320180818
197213580? ? ?? ? ?reficc2018090320180818
197222476? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2018090320180818
197231508? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2018090320180818
197248792? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2018090320180818
197259072? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2018090320180818
197266724? ? ?? ? ?reficc_-xSSE4.1_-O3_-fomit-frame-pointer2018090320180818
197267692? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2018090320180818
197277264? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2018090320180818
197277564? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2018090320180818
197277952? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2018090320180818
197278136? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2018090320180818
197279472? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2018090320180818
197279472? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2018090320180818
197280176? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2018090320180818
197282380? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2018090320180818
197285008? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2018090320180818
197285572? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2018090320180818
197290496? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2018090320180818
197294312? ? ?? ? ?reficc_-no-vec2018090320180818
197297900? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2018090320180818
197310136? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2018090320180818
197312968? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2018090320180818
197318912? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2018090320180818
197318968? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2018090320180818
197325608? ? ?? ? ?reficc_-xSSE4.2_-O3_-fomit-frame-pointer2018090320180818
197325976? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2018090320180818
197332888? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2018090320180818
197333088? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2018090320180818
197333140? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2018090320180818
197336060? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2018090320180818
197337672? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2018090320180818
197355032? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2018090320180818
197357216? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2018090320180818
197362168? ? ?? ? ?reficc_-xSSE4.2_-O2_-fomit-frame-pointer2018090320180818
197363756? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2018090320180818
197367248? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2018090320180818
197367364? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2018090320180818
197369052? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2018090320180818
197380004? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2018090320180818
197383100? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2018090320180818
197391952? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2018090320180818
197394820? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2018090320180818
197412760? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2018090320180818
197428764? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2018090320180818
197429128? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2018090320180818
197430652? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2018090320180818
197430912? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2018090320180818
197436008? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2018090320180818
197437724? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2018090320180818
197449048? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2018090320180818
197452836? ? ?? ? ?reficc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2018090320180818
197460028? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2018090320180818
197460608? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2018090320180818
197460648? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2018090320180818
197462424? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2018090320180818
197464316? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2018090320180818
197468048? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2018090320180818
197468292? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2018090320180818
197479848? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2018090320180818
197481152? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2018090320180818
197482472? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2018090320180818
197484024? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2018090320180818
197485476? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2018090320180818
197485648? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2018090320180818
197489988? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2018090320180818
197496092? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2018090320180818
197498568? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2018090320180818
197503300? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2018090320180818
197507840? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2018090320180818
197517520? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2018090320180818
197527868? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2018090320180818
197531472? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2018090320180818
197535616? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2018090320180818
197544296? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2018090320180818
197548912? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2018090320180818
197554432? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2018090320180818
197557168? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2018090320180818
197557448? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2018090320180818
197582536? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2018090320180818
197588724? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2018090320180818
197588868? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2018090320180818
197590864? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2018090320180818
197598532? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2018090320180818
197602112? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2018090320180818
197605284? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2018090320180818
197615032? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2018090320180818
197637528? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2018090320180818
197654652? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2018090320180818
197654820? ? ?? ? ?reficc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2018090320180818
197676780? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2018090320180818
197684016? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2018090320180818
197699720? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2018090320180818
197701896? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2018090320180818
197706000? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2018090320180818
197718804? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2018090320180818
197720484? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2018090320180818
197743944? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2018090320180818
197783416? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2018090320180818
197786048? ? ?? ? ?refgcc_-funroll-loops2018090320180818
197791356? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2018090320180818
197794988? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2018090320180818
197884244? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2018090320180818
197939616? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2018090320180818
197971768? ? ?? ? ?refgcc2018090320180818
198057188? ? ?? ? ?reficc_-xAVX_-O3_-fomit-frame-pointer2018090320180818
198065372? ? ?? ? ?reficc_-xAVX_-O2_-fomit-frame-pointer2018090320180818

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: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: icc
dec.c: dec.c(94): 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(177): 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(227): warning #167: argument of type "mpz_t *" is incompatible with parameter of type "const mpz_t *"
dec.c: cuberoot(X,p,pinv,N);
dec.c: ^
dec.c:
dec.c: dec.c(227): warning #167: argument of type "mpz_t *" is incompatible with parameter of type "const mpz_t *"
dec.c: cuberoot(X,p,pinv,N);
dec.c: ^
dec.c:
dec.c: dec.c(280): 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(281): 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