Implementation notes: amd64, mangetsu, crypto_dh/gls254prot

Computer: mangetsu
Architecture: amd64
CPU ID: GenuineIntel-000206a7-bfebfbff
SUPERCOP version: 20141014
Operation: crypto_dh
Primitive: gls254prot
TimeImplementationCompilerBenchmark dateSUPERCOP version
463256protgcc-4.8 -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014092520140907
463912protgcc-4.8 -m64 -march=corei7-avx -O3 -fomit-frame-pointer2014092520140907
464232protgcc-4.8 -m64 -march=core-avx-i -O3 -fomit-frame-pointer2014092520140907
466400protgcc-4.7 -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014092520140907
466628protgcc-4.7 -m64 -march=core-avx-i -O3 -fomit-frame-pointer2014092520140907
467624protgcc-4.7 -m64 -march=corei7-avx -O3 -fomit-frame-pointer2014092520140907
485632protgcc-4.8 -m64 -march=corei7-avx -O -fomit-frame-pointer2014092520140907
485808protgcc-4.8 -m64 -march=native -mtune=native -O -fomit-frame-pointer2014092520140907
487304protgcc-4.8 -m64 -march=core-avx-i -O -fomit-frame-pointer2014092520140907
487336protgcc-4.7 -m64 -march=core-avx-i -O2 -fomit-frame-pointer2014092520140907
488296protgcc-4.7 -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014092520140907
488328protgcc-4.7 -m64 -march=corei7-avx -O2 -fomit-frame-pointer2014092520140907
488464protgcc-4.8 -m64 -march=core-avx-i -O2 -fomit-frame-pointer2014092520140907
489500protgcc-4.7 -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014092520140907
489872protgcc-4.8 -m64 -march=corei7-avx -O2 -fomit-frame-pointer2014092520140907
490340protgcc-4.7 -m64 -march=corei7-avx -O -fomit-frame-pointer2014092520140907
491168protgcc-4.7 -m64 -march=core-avx-i -Os -fomit-frame-pointer2014092520140907
492588protgcc-4.8 -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014092520140907
493056protgcc-4.7 -m64 -march=core-avx-i -O -fomit-frame-pointer2014092520140907
495084protgcc-4.7 -m64 -march=native -mtune=native -O -fomit-frame-pointer2014092520140907
495156protgcc-4.7 -m64 -march=corei7-avx -Os -fomit-frame-pointer2014092520140907

Test failure

Implementation: crypto_dh/gls254prot/prot
Compiler: gcc-4.7 -m64 -march=core-avx2 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 9, namely:
CompilerImplementations
gcc-4.7 -m64 -march=core-avx2 -O2 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=core-avx2 -O -fomit-frame-pointer prot
gcc-4.7 -m64 -march=core-avx2 -Os -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core-avx-i -Os -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core-avx2 -O2 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core-avx2 -O -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core-avx2 -Os -fomit-frame-pointer prot
gcc-4.8 -m64 -march=corei7-avx -Os -fomit-frame-pointer prot
gcc-4.8 -m64 -march=native -mtune=native -Os -fomit-frame-pointer prot

Compiler output

Implementation: crypto_dh/gls254prot/prot
Compiler: cc
dh.c: In file included from gls254.h:18:0,
dh.c: from dh.c:3:
dh.c: /usr/lib64/gcc/x86_64-suse-linux/4.8/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
dh.c: # error "AES/PCLMUL instructions not enabled"
dh.c: ^
dh.c: In file included from dh.c:3:0:
dh.c: low.incl: In function 'low_mul':
dh.c: gls254.h:155:5: error: incompatible types when assigning to type '__m128i' from type 'int'
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: gls254.h:156:5: error: incompatible types when assigning to type '__m128i' from type 'int'
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: gls254.h:157:5: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: t0 = _mm_clmulepi64_si128(t0, t0, 0x10);\
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: 87, namely:
CompilerImplementations
cc prot
gcc-4.8 prot
gcc-4.8 -O2 -fomit-frame-pointer prot
gcc-4.8 -O3 -fomit-frame-pointer prot
gcc-4.8 -O -fomit-frame-pointer prot
gcc-4.8 -Os -fomit-frame-pointer prot
gcc-4.8 -fno-schedule-insns -O2 -fomit-frame-pointer prot
gcc-4.8 -fno-schedule-insns -O3 -fomit-frame-pointer prot
gcc-4.8 -fno-schedule-insns -O -fomit-frame-pointer prot
gcc-4.8 -fno-schedule-insns -Os -fomit-frame-pointer prot
gcc-4.8 -funroll-loops prot
gcc-4.8 -funroll-loops -O2 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -O3 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -O -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -Os -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -O2 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -O3 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -O -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -Os -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -march=barcelona -O2 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -march=barcelona -O3 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -march=barcelona -O -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -march=barcelona -Os -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -march=k8 -O2 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -march=k8 -O3 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -march=k8 -O -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -march=k8 -Os -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -march=nocona -O2 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -march=nocona -O3 -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -march=nocona -O -fomit-frame-pointer prot
gcc-4.8 -funroll-loops -march=nocona -Os -fomit-frame-pointer prot
gcc-4.8 -m64 -O2 -fomit-frame-pointer prot
gcc-4.8 -m64 -O3 -fomit-frame-pointer prot
gcc-4.8 -m64 -O -fomit-frame-pointer prot
gcc-4.8 -m64 -Os -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core2 -O2 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core2 -O3 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core2 -O -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core2 -Os -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core2 -msse4 -O -fomit-frame-pointer prot
gcc-4.8 -m64 -march=core2 -msse4 -Os -fomit-frame-pointer prot
gcc-4.8 -m64 -march=corei7 -O2 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=corei7 -O3 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=corei7 -O -fomit-frame-pointer prot
gcc-4.8 -m64 -march=corei7 -Os -fomit-frame-pointer prot
gcc-4.8 -m64 -march=k8 -O2 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=k8 -O3 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=k8 -O -fomit-frame-pointer prot
gcc-4.8 -m64 -march=k8 -Os -fomit-frame-pointer prot
gcc-4.8 -m64 -march=nocona -O2 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=nocona -O3 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=nocona -O -fomit-frame-pointer prot
gcc-4.8 -m64 -march=nocona -Os -fomit-frame-pointer prot
gcc-4.8 -march=barcelona -O2 -fomit-frame-pointer prot
gcc-4.8 -march=barcelona -O3 -fomit-frame-pointer prot
gcc-4.8 -march=barcelona -O -fomit-frame-pointer prot
gcc-4.8 -march=barcelona -Os -fomit-frame-pointer prot
gcc-4.8 -march=k8 -O2 -fomit-frame-pointer prot
gcc-4.8 -march=k8 -O3 -fomit-frame-pointer prot
gcc-4.8 -march=k8 -O -fomit-frame-pointer prot
gcc-4.8 -march=k8 -Os -fomit-frame-pointer prot
gcc-4.8 -march=nocona -O2 -fomit-frame-pointer prot
gcc-4.8 -march=nocona -O3 -fomit-frame-pointer prot
gcc-4.8 -march=nocona -O -fomit-frame-pointer prot
gcc-4.8 -march=nocona -Os -fomit-frame-pointer prot

Compiler output

Implementation: crypto_dh/gls254prot/prot
Compiler: clang -O3 -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/../lib64/clang/3.3/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: 3, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer prot
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer prot
clang -O3 -fwrapv -mavx -fomit-frame-pointer prot

Compiler output

Implementation: crypto_dh/gls254prot/prot
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:18:22: warning: redefinition of typedef 'uint128_t' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef unsigned int uint128_t __attribute__((mode(TI)));
dh.c: ^
dh.c: ./gls254.h:27:22: note: previous definition is here
dh.c: typedef unsigned int uint128_t __attribute__((mode(TI)));
dh.c: ^
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:19:23: warning: redefinition of typedef 'ui64' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef unsigned long ui64;
dh.c: ^
dh.c: ./gls254.h:26:23: note: previous definition is here
dh.c: typedef unsigned long ui64;
dh.c: ^
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:20:14: warning: redefinition of typedef 'elt' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef ui64 elt[2];
dh.c: ^
dh.c: ./gls254.h:34:14: note: previous definition is here
dh.c: typedef ui64 elt[2];
dh.c: ^
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:21:14: warning: redefinition of typedef 'elt254' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef ui64 elt254[4];
dh.c: ^
dh.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fomit-frame-pointer prot
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer prot

Compiler output

Implementation: crypto_dh/gls254prot/prot
Compiler: clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
dh.c: clang-3.3: warning: argument unused during compilation: '-fpolly'
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:18:22: warning: redefinition of typedef 'uint128_t' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef unsigned int uint128_t __attribute__((mode(TI)));
dh.c: ^
dh.c: ./gls254.h:27:22: note: previous definition is here
dh.c: typedef unsigned int uint128_t __attribute__((mode(TI)));
dh.c: ^
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:19:23: warning: redefinition of typedef 'ui64' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef unsigned long ui64;
dh.c: ^
dh.c: ./gls254.h:26:23: note: previous definition is here
dh.c: typedef unsigned long ui64;
dh.c: ^
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:20:14: warning: redefinition of typedef 'elt' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef ui64 elt[2];
dh.c: ^
dh.c: ./gls254.h:34:14: note: previous definition is here
dh.c: typedef ui64 elt[2];
dh.c: ^
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:21:14: warning: redefinition of typedef 'elt254' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef ui64 elt254[4];
dh.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer prot
clang -O3 -fwrapv -mavx -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer prot

Compiler output

Implementation: crypto_dh/gls254prot/prot
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
dh.c: clang-3.3: warning: argument unused during compilation: '-mcpu=core-avx2'
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:18:22: warning: redefinition of typedef 'uint128_t' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef unsigned int uint128_t __attribute__((mode(TI)));
dh.c: ^
dh.c: ./gls254.h:27:22: note: previous definition is here
dh.c: typedef unsigned int uint128_t __attribute__((mode(TI)));
dh.c: ^
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:19:23: warning: redefinition of typedef 'ui64' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef unsigned long ui64;
dh.c: ^
dh.c: ./gls254.h:26:23: note: previous definition is here
dh.c: typedef unsigned long ui64;
dh.c: ^
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:20:14: warning: redefinition of typedef 'elt' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef ui64 elt[2];
dh.c: ^
dh.c: ./gls254.h:34:14: note: previous definition is here
dh.c: typedef ui64 elt[2];
dh.c: ^
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:21:14: warning: redefinition of typedef 'elt254' is a C11 feature [-Wtypedef-redefinition]
dh.c: typedef ui64 elt254[4];
dh.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer prot

Compiler output

Implementation: crypto_dh/gls254prot/prot
Compiler: clang -O3 -fwrapv -mavx -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
dh.c: clang-3.3: warning: argument unused during compilation: '-fpolly'
dh.c: In file included from dh.c:3:
dh.c: In file included from ./gls254.h:18:
dh.c: /usr/bin/../lib64/clang/3.3/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: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer prot

Compiler output

Implementation: crypto_dh/gls254prot/prot
Compiler: gcc-4.7
dh.c: In file included from gls254.h:18:0,
dh.c: from dh.c:3:
dh.c: /usr/lib64/gcc/x86_64-suse-linux/4.7/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: 70, namely:
CompilerImplementations
gcc-4.7 prot
gcc-4.7 -O2 -fomit-frame-pointer prot
gcc-4.7 -O3 -fomit-frame-pointer prot
gcc-4.7 -O -fomit-frame-pointer prot
gcc-4.7 -Os -fomit-frame-pointer prot
gcc-4.7 -fno-schedule-insns -O2 -fomit-frame-pointer prot
gcc-4.7 -fno-schedule-insns -O3 -fomit-frame-pointer prot
gcc-4.7 -fno-schedule-insns -O -fomit-frame-pointer prot
gcc-4.7 -fno-schedule-insns -Os -fomit-frame-pointer prot
gcc-4.7 -funroll-loops prot
gcc-4.7 -funroll-loops -O2 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -O3 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -O -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -Os -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -O2 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -O3 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -O -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -Os -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -march=barcelona -O2 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -march=barcelona -O3 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -march=barcelona -O -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -march=barcelona -Os -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -march=k8 -O2 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -march=k8 -O3 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -march=k8 -O -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -march=k8 -Os -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -march=nocona -O2 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -march=nocona -O3 -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -march=nocona -O -fomit-frame-pointer prot
gcc-4.7 -funroll-loops -march=nocona -Os -fomit-frame-pointer prot
gcc-4.7 -m64 -O2 -fomit-frame-pointer prot
gcc-4.7 -m64 -O3 -fomit-frame-pointer prot
gcc-4.7 -m64 -O -fomit-frame-pointer prot
gcc-4.7 -m64 -Os -fomit-frame-pointer prot
gcc-4.7 -m64 -march=k8 -O2 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=k8 -O3 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=k8 -O -fomit-frame-pointer prot
gcc-4.7 -m64 -march=k8 -Os -fomit-frame-pointer prot
gcc-4.7 -m64 -march=nocona -O2 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=nocona -O3 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=nocona -O -fomit-frame-pointer prot
gcc-4.7 -m64 -march=nocona -Os -fomit-frame-pointer prot
gcc-4.7 -march=barcelona -O2 -fomit-frame-pointer prot
gcc-4.7 -march=barcelona -O3 -fomit-frame-pointer prot
gcc-4.7 -march=barcelona -O -fomit-frame-pointer prot
gcc-4.7 -march=barcelona -Os -fomit-frame-pointer prot
gcc-4.7 -march=k8 -O2 -fomit-frame-pointer prot
gcc-4.7 -march=k8 -O3 -fomit-frame-pointer prot
gcc-4.7 -march=k8 -O -fomit-frame-pointer prot
gcc-4.7 -march=k8 -Os -fomit-frame-pointer prot
gcc-4.7 -march=nocona -O2 -fomit-frame-pointer prot
gcc-4.7 -march=nocona -O3 -fomit-frame-pointer prot
gcc-4.7 -march=nocona -O -fomit-frame-pointer prot
gcc-4.7 -march=nocona -Os -fomit-frame-pointer prot

Compiler output

Implementation: crypto_dh/gls254prot/prot
Compiler: gcc-4.7 -m64 -march=barcelona -O2 -fomit-frame-pointer
dh.c: In file included from gls254.h:18:0,
dh.c: from dh.c:3:
dh.c: /usr/lib64/gcc/x86_64-suse-linux/4.7/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: ...
dh.c: In file included from gls254.h:18:0,
dh.c: from dh.c:3:
dh.c: /usr/lib64/gcc/x86_64-suse-linux/4.7/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: 4, namely:
CompilerImplementations
gcc-4.7 -m64 -march=barcelona -O2 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=barcelona -O3 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=barcelona -O -fomit-frame-pointer prot
gcc-4.7 -m64 -march=barcelona -Os -fomit-frame-pointer prot

Compiler output

Implementation: crypto_dh/gls254prot/prot
Compiler: gcc-4.7 -m64 -march=core2 -O2 -fomit-frame-pointer
dh.c: In file included from gls254.h:18:0,
dh.c: from dh.c:3:
dh.c: /usr/lib64/gcc/x86_64-suse-linux/4.7/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: 16, namely:
CompilerImplementations
gcc-4.7 -m64 -march=core2 -O2 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=core2 -O3 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=core2 -O -fomit-frame-pointer prot
gcc-4.7 -m64 -march=core2 -Os -fomit-frame-pointer prot
gcc-4.7 -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer prot
gcc-4.7 -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer prot
gcc-4.7 -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=core2 -msse4 -O -fomit-frame-pointer prot
gcc-4.7 -m64 -march=core2 -msse4 -Os -fomit-frame-pointer prot
gcc-4.7 -m64 -march=corei7 -O2 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=corei7 -O3 -fomit-frame-pointer prot
gcc-4.7 -m64 -march=corei7 -O -fomit-frame-pointer prot
gcc-4.7 -m64 -march=corei7 -Os -fomit-frame-pointer prot

Compiler output

Implementation: crypto_dh/gls254prot/prot
Compiler: gcc-4.8 -m64 -march=barcelona -O2 -fomit-frame-pointer
dh.c: In file included from gls254.h:18:0,
dh.c: from dh.c:3:
dh.c: /usr/lib64/gcc/x86_64-suse-linux/4.8/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
dh.c: # error "AES/PCLMUL instructions not enabled"
dh.c: ^
dh.c: In file included from dh.c:3:0:
dh.c: low.incl: In function 'low_mul':
dh.c: gls254.h:155:5: error: incompatible types when assigning to type '__m128i' from type 'int'
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: gls254.h:156:5: error: incompatible types when assigning to type '__m128i' from type 'int'
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: gls254.h:157:5: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: t0 = _mm_clmulepi64_si128(t0, t0, 0x10);\
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: ...
dh.c: In file included from gls254.h:18:0,
dh.c: from dh.c:3:
dh.c: /usr/lib64/gcc/x86_64-suse-linux/4.8/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
dh.c: # error "AES/PCLMUL instructions not enabled"
dh.c: ^
dh.c: In file included from dh.c:3:0:
dh.c: low.incl: In function 'low_mul':
dh.c: gls254.h:155:5: error: incompatible types when assigning to type '__m128i' from type 'int'
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: gls254.h:156:5: error: incompatible types when assigning to type '__m128i' from type 'int'
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: gls254.h:157:5: error: incompatible types when assigning to type '__m128i' from type 'int'
dh.c: t0 = _mm_clmulepi64_si128(t0, t0, 0x10);\
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-4.8 -m64 -march=barcelona -O2 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=barcelona -O3 -fomit-frame-pointer prot
gcc-4.8 -m64 -march=barcelona -O -fomit-frame-pointer prot
gcc-4.8 -m64 -march=barcelona -Os -fomit-frame-pointer prot