Implementation notes: amd64, sand, crypto_dh/k277mon

Computer: sand
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20171218
Operation: crypto_dh
Primitive: k277mon
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
293070? ? ?? ? ?refclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2018041520171218
294850? ? ?? ? ?refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2018041520171218

Compiler output

Implementation: crypto_dh/k277mon/ref
Compiler: cc
dh.c: In file included from dh.c:6:
dh.c: ./ffa.h:123:12: error: '__builtin_ia32_palignr128' needs target feature ssse3
dh.c: a_01 = _mm_alignr_epi8(a_02, a_01, 8);
dh.c: ^
dh.c: /usr/lib/clang/5.0.1/include/tmmintrin.h:161:12: note: expanded from macro '_mm_alignr_epi8'
dh.c: (__m128i)__builtin_ia32_palignr128((__v16qi)(__m128i)(a), \
dh.c: ^
dh.c: In file included from dh.c:6:
dh.c: ./ffa.h:132:5: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
dh.c: FFA_RED_277_STP(a,P,m,t_00,mul);
dh.c: ^
dh.c: ./ffa.h:110:5: note: expanded from macro 'FFA_RED_277_STP'
dh.c: ffa_red_277_stp(A##_00,A##_01,A##_02,P##_00,P##_01,P##_02,\
dh.c: ^
dh.c: ./ffa.h:90:12: note: expanded from macro 'ffa_red_277_stp'
dh.c: m_00 = _mm_clmulepi64_si128(mul, P_00, 0x00);\
dh.c: ^
dh.c: /usr/lib/clang/5.0.1/include/__wmmintrin_pclmul.h:54:13: note: expanded from macro '_mm_clmulepi64_si128'
dh.c: ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(__X), \
dh.c: ^
dh.c: In file included from dh.c:6:
dh.c: ./ffa.h:132:5: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
dh.c: ./ffa.h:110:5: note: expanded from macro 'FFA_RED_277_STP'
dh.c: ffa_red_277_stp(A##_00,A##_01,A##_02,P##_00,P##_01,P##_02,\
dh.c: ^
dh.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
cc ref
clang -O3 -fomit-frame-pointer -Qunused-arguments ref
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_dh/k277mon/ref
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
try.c: /tmp/try-anything-763a9d.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: random() may return deterministic values, is that what you want?
try.c: /tmp/try-anything-83158a.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments ref

Compiler output

Implementation: crypto_dh/k277mon/ref
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-9c3d33.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: random() may return deterministic values, is that what you want?
try.c: /tmp/try-anything-911ef2.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_dh/k277mon/ref
Compiler: gcc
dh.c: In file included from dh.c:2:
dh.c: lib.h:2:22: error: x86intrin.h: No such file or directory
dh.c: In file included from dh.c:6:
dh.c: ffa.h:113: error: expected ')' before '*' token
dh.c: ffa.h:186: error: expected ')' before '*' token
dh.c: ffa.h:292: error: expected ')' before '*' token
dh.c: ffa.h:326: error: expected ')' before '*' token
dh.c: In file included from dh.c:7:
dh.c: eca.h:20: error: expected ')' before '*' token
dh.c: eca.h:78: error: expected ')' before '*' token
dh.c: eca.h:116: error: expected ')' before '*' token
dh.c: In file included from dh.c:8:
dh.c: smu.h:48: error: expected ')' before '*' token
dh.c: dh.c: In function 'crypto_dh_k277mon_ref_keypair':
dh.c: dh.c:13: error: '__m128i' undeclared (first use in this function)
dh.c: dh.c:13: error: (Each undeclared identifier is reported only once
dh.c: dh.c:13: error: for each function it appears in.)
dh.c: dh.c:13: error: expected ';' before 'px_00'
dh.c: dh.c:14: error: expected ';' before 'qx_00'
dh.c: dh.c:23: error: 'px_00' undeclared (first use in this function)
dh.c: dh.c:24: error: 'px_01' undeclared (first use in this function)
dh.c: dh.c:25: error: 'px_02' undeclared (first use in this function)
dh.c: dh.c:26: error: 'py_00' undeclared (first use in this function)
dh.c: dh.c:27: error: 'py_01' undeclared (first use in this function)
dh.c: dh.c:28: error: 'py_02' undeclared (first use in this function)
dh.c: ...

Number of similar (compiler,implementation) pairs: 66, namely:
CompilerImplementations
gcc ref
gcc -O2 -fomit-frame-pointer ref
gcc -O3 -fomit-frame-pointer ref
gcc -O -fomit-frame-pointer ref
gcc -Os -fomit-frame-pointer ref
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops ref
gcc -funroll-loops -O2 -fomit-frame-pointer ref
gcc -funroll-loops -O3 -fomit-frame-pointer ref
gcc -funroll-loops -O -fomit-frame-pointer ref
gcc -funroll-loops -Os -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer ref
gcc -m64 -O2 -fomit-frame-pointer ref
gcc -m64 -O3 -fomit-frame-pointer ref
gcc -m64 -O -fomit-frame-pointer ref
gcc -m64 -Os -fomit-frame-pointer ref
gcc -m64 -march=k8 -O2 -fomit-frame-pointer ref
gcc -m64 -march=k8 -O3 -fomit-frame-pointer ref
gcc -m64 -march=k8 -O -fomit-frame-pointer ref
gcc -m64 -march=k8 -Os -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer ref
gcc -m64 -march=nocona -O2 -fomit-frame-pointer ref
gcc -m64 -march=nocona -O3 -fomit-frame-pointer ref
gcc -m64 -march=nocona -O -fomit-frame-pointer ref
gcc -m64 -march=nocona -Os -fomit-frame-pointer ref
gcc -march=k8 -O2 -fomit-frame-pointer ref
gcc -march=k8 -O3 -fomit-frame-pointer ref
gcc -march=k8 -O -fomit-frame-pointer ref
gcc -march=k8 -Os -fomit-frame-pointer ref
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ref
gcc -march=nocona -O2 -fomit-frame-pointer ref
gcc -march=nocona -O3 -fomit-frame-pointer ref
gcc -march=nocona -O -fomit-frame-pointer ref
gcc -march=nocona -Os -fomit-frame-pointer ref