Implementation notes: amd64, floodyberry, crypto_dh/gls254

Computer: floodyberry
Architecture: amd64
CPU ID: GenuineIntel-00010676-bfebfbff
SUPERCOP version: 20140505
Operation: crypto_dh
Primitive: gls254

Test failure

Implementation: crypto_dh/gls254/prot
Compiler: icc -m64 -O1 -static -xHost -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
icc -m64 -O1 -static -xHost -fomit-frame-pointer prot ref
icc -m64 -O3 -static -xHost -fomit-frame-pointer prot ref

Compiler output

Implementation: crypto_dh/gls254/ref
Compiler: clang -O1 -march=native -m64 -fomit-frame-pointer
dh.c: In file included from dh.c:3:
dh.c: In file included from ./gls254.h:18:
dh.c: /usr/bin/../lib/clang/3.4/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' 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' 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: 2, namely:
CompilerImplementations
clang -O1 -march=native -m64 -fomit-frame-pointer ref
clang -O3 -march=native -m64 -fomit-frame-pointer ref

Compiler output

Implementation: crypto_dh/gls254/prot
Compiler: clang -O1 -march=native -m64 -fomit-frame-pointer
dh.c: In file included from dh.c:3:
dh.c: In file included from ./gls254.h:18:
dh.c: /usr/bin/../lib/clang/3.4/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' 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' 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: 2, namely:
CompilerImplementations
clang -O1 -march=native -m64 -fomit-frame-pointer prot
clang -O3 -march=native -m64 -fomit-frame-pointer prot

Compiler output

Implementation: crypto_dh/gls254/ref
Compiler: gcc -m64 -O2 -fomit-frame-pointer
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.6/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
dh.c: In file included from dh.c:6:0:
dh.c: curves.incl: In function 'AESkeyExp':
dh.c: curves.incl:53:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:54:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:55:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:56:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:57:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:58:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:59:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:60:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:61:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:62:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl: In function 'AESenc':
dh.c: curves.incl:75:5: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:79:4: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: In file included from dh.c:7:0:
dh.c: low.incl: In function 'low_mul':
dh.c: low.incl:26:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:26:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:26:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:27:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl: In function 'low_mul254':
dh.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc -m64 -O2 -fomit-frame-pointer ref
gcc -m64 -O3 -fomit-frame-pointer ref

Compiler output

Implementation: crypto_dh/gls254/prot
Compiler: gcc -m64 -O2 -fomit-frame-pointer
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.6/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
dh.c: In file included from dh.c:7:0:
dh.c: low.incl: In function 'low_mul':
dh.c: low.incl:26:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:26:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:26:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:27:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl: In function 'low_mul254':
dh.c: low.incl:45:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:45:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:45:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:46:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:46:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:46:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:47:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:47:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:47:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:55:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:56:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl: In function 'low_mul_nr254':
dh.c: low.incl:74:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:74:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:74:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc -m64 -O2 -fomit-frame-pointer prot
gcc -m64 -O3 -fomit-frame-pointer prot

Compiler output

Implementation: crypto_dh/gls254/ref
Compiler: gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer
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.6/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
dh.c: In file included from dh.c:6:0:
dh.c: curves.incl: In function 'AESkeyExp':
dh.c: curves.incl:53:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:54:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:55:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:56:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:57:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:58:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:59:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:60:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:61:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:62:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl: In function 'AESenc':
dh.c: curves.incl:75:5: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: curves.incl:79:4: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: In file included from dh.c:7:0:
dh.c: low.incl: In function 'low_mul':
dh.c: low.incl:26:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:26:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:26:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl: In function 'low_mul254':
dh.c: low.incl:45:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer ref

Compiler output

Implementation: crypto_dh/gls254/prot
Compiler: gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer
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.6/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
dh.c: In file included from dh.c:7:0:
dh.c: low.incl: In function 'low_mul':
dh.c: low.incl:26:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:26:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:26:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl: In function 'low_mul254':
dh.c: low.incl:45:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:45:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:45:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:46:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:46:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:46:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:47:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:47:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:47:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl: In function 'low_mul_nr254':
dh.c: low.incl:74:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:74:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:74:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:75:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:75:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: low.incl:75:2: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: ...

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