Implementation notes: amd64, waldorf, crypto_dh/prjfp127i

Computer: waldorf
Architecture: amd64
CPU ID: GenuineIntel-000106e5-bfebfbff
SUPERCOP version: 20160715
Operation: crypto_dh
Primitive: prjfp127i
TimeImplementationCompilerBenchmark dateSUPERCOP version
1027340v01/w8s04gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1132368v01/w8s08gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1142112v01/w8s04gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1143564v01/w8s02gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1152868v01/w8s32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1160076v01/w8s04gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1160284v01/w4s32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1165188v01/w8s16gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1182764v01/w4s04gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1182920v01/w8s16gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1186140v01/w8s32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1196460v01/w4s16gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1199776v01/w8s08gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1202120v01/w4s08gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1202264v01/w8s32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1202304v01/w4s04gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1204396v01/w8s16gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1206880v01/w8s32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1209516v01/w8s16gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1211408v01/w4s32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1221744v01/w8s08gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1225760v01/w4s16gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1226836v01/w8s08gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1233916v01/w8s01gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1241332v01/w8s02gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1241632v01/w8s04gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1250868v01/w4s32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1257756v01/w8s02gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1269500v01/w8s02gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1279032v01/w4s02gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1286828v01/w8s01gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1292624v01/w4s32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1309712v01/w8s01gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1318032v01/w4s16gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1320364v01/w8s01gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1325864v01/w4s16gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1333504v01/w4s08gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1339984v01/w4s08gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1340640v01/w4s08gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1355980v01/w4s04gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1370316v01/w4s04gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1382760v01/w4s01gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1409568v01/w4s02gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1416916v01/w4s01gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1417000v01/w4s02gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1424036v01/w4s02gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1508696v01/w4s01gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1539224v01/w4s01gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1994740v01/vargcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
2096576v01/vargcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
2127488v01/vargcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
2141440v01/vargcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715

Compiler output

Implementation: crypto_dh/prjfp127i/v01/var
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
divisor.c: In file included from divisor.c:13:
divisor.c: ./finite128.h:157:13: warning: inline function 'hec_fp_add_2e127m1_g2i_x8664_asm' is not defined [-Wundefined-inline]
divisor.c: inline void hec_fp_add_2e127m1_g2i_x8664_asm(TEMP_hec_fp_2e127m1 t, DIV_hec_fp_2e127m1 D2);
divisor.c: ^
divisor.c: divisor.c:42:3: note: used here
divisor.c: hec_fp_add_2e127m1_g2i_x8664_asm(t, D2);
divisor.c: ^
divisor.c: In file included from divisor.c:13:
divisor.c: ./finite128.h:158:13: warning: inline function 'hec_fp_madd_2e127m1_g2i_x8664_asm' is not defined [-Wundefined-inline]
divisor.c: inline void hec_fp_madd_2e127m1_g2i_x8664_asm(TEMP_hec_fp_2e127m1 t, DIV_hec_fp_2e127m1 D2);
divisor.c: ^
divisor.c: divisor.c:136:3: note: used here
divisor.c: hec_fp_madd_2e127m1_g2i_x8664_asm(t, D2);
divisor.c: ^
divisor.c: In file included from divisor.c:13:
divisor.c: ./finite128.h:159:13: warning: inline function 'hec_fp_dbl_2e127m1_g2i_x8664_asm' is not defined [-Wundefined-inline]
divisor.c: inline void hec_fp_dbl_2e127m1_g2i_x8664_asm(TEMP_hec_fp_2e127m1 t);
divisor.c: ^
divisor.c: divisor.c:217:3: note: used here
divisor.c: hec_fp_dbl_2e127m1_g2i_x8664_asm(t);
divisor.c: ^
divisor.c: In file included from divisor.c:13:
divisor.c: ./finite128.h:160:13: warning: inline function 'hec_fp_dbl_2e127m1_g2i_x8664_asm_a3is1' is not defined [-Wundefined-inline]
divisor.c: inline void hec_fp_dbl_2e127m1_g2i_x8664_asm_a3is1(TEMP_hec_fp_2e127m1 t);
divisor.c: ^
divisor.c: ...
smul.c: In file included from smul.c:13:
smul.c: In file included from ./finite128.h:5:
smul.c: ./fpx.h:23:13: warning: inline function 'fp_cnt_bits' is not defined [-Wundefined-inline]
smul.c: inline void fp_cnt_bits(int *bc, const uni an, const uni_t al);
smul.c: ^
smul.c: smul.c:28:2: note: used here
smul.c: fp_cnt_bits(&i, kn, FP_LEN*2); /*printf("%d ", i);*/
smul.c: ^
smul.c: In file included from smul.c:13:
smul.c: In file included from ./finite128.h:5:
smul.c: ./fpx.h:24:13: warning: inline function 'find_nextwindow' is not defined [-Wundefined-inline]
smul.c: inline void find_nextwindow(int *v, int *k, uni_t kl, int *wd, const uni en, const int i, uni_t WINDOW_SIZE_LTR, uni_t TABLE_SIZE_LTR);
smul.c: ^
smul.c: smul.c:69:3: note: used here
smul.c: find_nextwindow(&ni, &k, 2*FP_LEN, &wd, kn, i, WINDOW_SIZE_LTR, TABLE_SIZE_LTR);
smul.c: ^
smul.c: 2 warnings generated.
smul_a3is1.c: In file included from smul_a3is1.c:13:
smul_a3is1.c: In file included from ./finite128.h:5:
smul_a3is1.c: ./fpx.h:23:13: warning: inline function 'fp_cnt_bits' is not defined [-Wundefined-inline]
smul_a3is1.c: inline void fp_cnt_bits(int *bc, const uni an, const uni_t al);
smul_a3is1.c: ^
smul_a3is1.c: smul_a3is1.c:28:2: note: used here
smul_a3is1.c: fp_cnt_bits(&i, kn, FP_LEN*2); /*printf("%d ", i);*/
smul_a3is1.c: ^
smul_a3is1.c: In file included from smul_a3is1.c:13:
smul_a3is1.c: In file included from ./finite128.h:5:
smul_a3is1.c: ./fpx.h:24:13: warning: inline function 'find_nextwindow' is not defined [-Wundefined-inline]
smul_a3is1.c: inline void find_nextwindow(int *v, int *k, uni_t kl, int *wd, const uni en, const int i, uni_t WINDOW_SIZE_LTR, uni_t TABLE_SIZE_LTR);
smul_a3is1.c: ^
smul_a3is1.c: smul_a3is1.c:69:3: note: used here
smul_a3is1.c: find_nextwindow(&ni, &k, 2*FP_LEN, &wd, kn, i, WINDOW_SIZE_LTR, TABLE_SIZE_LTR);
smul_a3is1.c: ^
smul_a3is1.c: 2 warnings generated.
try.c: crypto_dh_prjfp127i.a(smul_a3is1.o): In function `hec_fp_smul_2e127m1_g2i_a3is1':
try.c: smul_a3is1.c:(.text+0x...): undefined reference to `fp_cnt_bits'
try.c: smul_a3is1.c:(.text+0x...): undefined reference to `find_nextwindow'
try.c: smul_a3is1.c:(.text+0x...): undefined reference to `find_nextwindow'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 13, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments v01/var v01/w4s01 v01/w4s02 v01/w4s04 v01/w4s08 v01/w4s16 v01/w4s32 v01/w8s01 v01/w8s02 v01/w8s04 v01/w8s08 v01/w8s16 v01/w8s32