Implementation notes: amd64, waldorf, crypto_dh/gls254

Computer: waldorf
Architecture: amd64
CPU ID: GenuineIntel-000106e5-bfebfbff
SUPERCOP version: 20160715
Operation: crypto_dh
Primitive: gls254

Compiler output

Implementation: crypto_dh/gls254/ref
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
dh.c: In file included from dh.c:3:
dh.c: In file included from ./gls254.h:18:
dh.c: /usr/include/clang/3.5.0/include/wmmintrin.h:30:3: error: "AES/PCLMUL instructions not enabled"
dh.c: # error "AES/PCLMUL instructions not enabled"
dh.c: ^
dh.c: In file included from dh.c:6:
dh.c: ./curves.incl:53:2: warning: implicit declaration of function '_mm_aeskeygenassist_si128' is invalid in C99 [-Wimplicit-function-declaration]
dh.c: STEP(k, t, tmp, 16*1, 0x01);
dh.c: ^
dh.c: ./gls254.h:272:6: note: expanded from macro 'STEP'
dh.c: t = _mm_aeskeygenassist_si128(k, rcon);\
dh.c: ^
dh.c: In file included from dh.c:6:
dh.c: ./curves.incl:53:2: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
dh.c: STEP(k, t, tmp, 16*1, 0x01);
dh.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~
dh.c: ./gls254.h:272:4: note: expanded from macro 'STEP'
dh.c: t = _mm_aeskeygenassist_si128(k, rcon);\
dh.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dh.c: In file included from dh.c:6:
dh.c: ./curves.incl:54:2: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
dh.c: STEP(k, t, tmp, 16*2, 0x02);
dh.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~
dh.c: ./gls254.h:272:4: note: expanded from macro 'STEP'
dh.c: t = _mm_aeskeygenassist_si128(k, rcon);\
dh.c: ...

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/gls254/prot
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
dh.c: In file included from dh.c:3:
dh.c: In file included from ./gls254.h:18:
dh.c: /usr/include/clang/3.5.0/include/wmmintrin.h:30:3: error: "AES/PCLMUL instructions not enabled"
dh.c: # error "AES/PCLMUL instructions not enabled"
dh.c: ^
dh.c: In file included from dh.c:7:
dh.c: ./low.incl:26:2: warning: implicit declaration of function '_mm_clmulepi64_si128' is invalid in C99 [-Wimplicit-function-declaration]
dh.c: MUL4(m1, m0, ma, mb);
dh.c: ^
dh.c: ./gls254.h:155:7: note: expanded from macro 'MUL4'
dh.c: r0 = _mm_clmulepi64_si128(ma, mb, 0x00);\
dh.c: ^
dh.c: In file included from dh.c:7:
dh.c: ./low.incl:26:2: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
dh.c: MUL4(m1, m0, ma, mb);
dh.c: ^~~~~~~~~~~~~~~~~~~~
dh.c: ./gls254.h:155:5: note: expanded from macro 'MUL4'
dh.c: r0 = _mm_clmulepi64_si128(ma, mb, 0x00);\
dh.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dh.c: In file included from dh.c:7:
dh.c: ./low.incl:26:2: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
dh.c: MUL4(m1, m0, ma, mb);
dh.c: ^~~~~~~~~~~~~~~~~~~~
dh.c: ./gls254.h:156:5: note: expanded from macro 'MUL4'
dh.c: r1 = _mm_clmulepi64_si128(ma, mb, 0x11);\
dh.c: ...

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

Compiler output

Implementation: crypto_dh/gls254/ref
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
dh.c: In file included from gls254.h:18:0,
dh.c: from dh.c:3:
dh.c: curves.incl: In function 'AESkeyExp':
dh.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
dh.c: _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
dh.c: ^
dh.c: In file included from dh.c:3:0:
dh.c: gls254.h:272:4: error: called from here
dh.c: t = _mm_aeskeygenassist_si128(k, rcon);\
dh.c: ^
dh.c: curves.incl:53:2: note: in expansion of macro 'STEP'
dh.c: STEP(k, t, tmp, 16*1, 0x01);
dh.c: ^
dh.c: In file included from gls254.h:18:0,
dh.c: from dh.c:3:
dh.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
dh.c: _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
dh.c: ^
dh.c: In file included from dh.c:3:0:
dh.c: gls254.h:272:4: error: called from here
dh.c: t = _mm_aeskeygenassist_si128(k, rcon);\
dh.c: ^
dh.c: curves.incl:54:2: note: in expansion of macro 'STEP'
dh.c: STEP(k, t, tmp, 16*2, 0x02);
dh.c: ^
dh.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
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

Compiler output

Implementation: crypto_dh/gls254/prot
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
dh.c: In file included from gls254.h:18:0,
dh.c: from dh.c:3:
dh.c: low.incl: In function 'low_mul':
dh.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:116:1: error: inlining failed in call to always_inline '_mm_clmulepi64_si128': target specific option mismatch
dh.c: _mm_clmulepi64_si128 (__m128i __X, __m128i __Y, const int __I)
dh.c: ^
dh.c: In file included from dh.c:3:0:
dh.c: gls254.h:155:5: error: called from here
dh.c: r0 = _mm_clmulepi64_si128(ma, mb, 0x00);\
dh.c: ^
dh.c: low.incl:26:2: note: in expansion of macro 'MUL4'
dh.c: MUL4(m1, m0, ma, mb);
dh.c: ^
dh.c: In file included from gls254.h:18:0,
dh.c: from dh.c:3:
dh.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:116:1: error: inlining failed in call to always_inline '_mm_clmulepi64_si128': target specific option mismatch
dh.c: _mm_clmulepi64_si128 (__m128i __X, __m128i __Y, const int __I)
dh.c: ^
dh.c: In file included from dh.c:3:0:
dh.c: gls254.h:156:5: error: called from here
dh.c: r1 = _mm_clmulepi64_si128(ma, mb, 0x11);\
dh.c: ^
dh.c: low.incl:26:2: note: in expansion of macro 'MUL4'
dh.c: MUL4(m1, m0, ma, mb);
dh.c: ^
dh.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv prot
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv prot
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv prot
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv prot