Implementation notes: x86, thoth, crypto_dh/surf2113

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_dh
Primitive: surf2113

Compiler output

Implementation: crypto_dh/surf2113/mpfq
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
Surf2_113.c: In file included from Surf2_113.c:11:
Surf2_113.c: In file included from ./field.h:1:
Surf2_113.c: In file included from ./mpfq_2_113.h:3:
Surf2_113.c: ./x86_32/mpfq_2_113.h:719:14: error: use of unknown builtin '__builtin_ia32_pslldqi128' [-Wimplicit-function-declaration]
Surf2_113.c: r.s = t0 ^ SHLD(t1, 64);
Surf2_113.c: ^
Surf2_113.c: ./x86_32/mpfq_2_113.h:576:25: note: expanded from macro 'SHLD'
Surf2_113.c: #define SHLD(x,r) (v2di)__builtin_ia32_pslldqi128 ((gcc43bugfix) (x),(r))
Surf2_113.c: ^
Surf2_113.c: ./x86_32/mpfq_2_113.h:719:14: error: invalid conversion between vector type 'v2di' (vector of 2 'uint64_t' values) and integer type 'int' of different size
Surf2_113.c: r.s = t0 ^ SHLD(t1, 64);
Surf2_113.c: ^~~~~~~~~~~~
Surf2_113.c: ./x86_32/mpfq_2_113.h:576:19: note: expanded from macro 'SHLD'
Surf2_113.c: #define SHLD(x,r) (v2di)__builtin_ia32_pslldqi128 ((gcc43bugfix) (x),(r))
Surf2_113.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Surf2_113.c: ./x86_32/mpfq_2_113.h:728:14: error: use of unknown builtin '__builtin_ia32_psrldqi128' [-Wimplicit-function-declaration]
Surf2_113.c: r.s = t2 ^ SHRD(t1, 64);
Surf2_113.c: ^
Surf2_113.c: ./x86_32/mpfq_2_113.h:577:25: note: expanded from macro 'SHRD'
Surf2_113.c: #define SHRD(x,r) (v2di)__builtin_ia32_psrldqi128 ((gcc43bugfix) (x),(r))
Surf2_113.c: ^
Surf2_113.c: ./x86_32/mpfq_2_113.h:728:14: error: invalid conversion between vector type 'v2di' (vector of 2 'uint64_t' values) and integer type 'int' of different size
Surf2_113.c: r.s = t2 ^ SHRD(t1, 64);
Surf2_113.c: ^~~~~~~~~~~~
Surf2_113.c: ./x86_32/mpfq_2_113.h:577:19: note: expanded from macro 'SHRD'
Surf2_113.c: ...

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

Compiler output

Implementation: crypto_dh/surf2113/mpfq
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
Surf2_113.c: In file included from mpfq_2_113.h:3:0,
Surf2_113.c: from field.h:1,
Surf2_113.c: from Surf2_113.c:11:
Surf2_113.c: x86_32/mpfq_2_113.h: In function 'mpfq_2_113_mul_ur':
Surf2_113.c: x86_32/mpfq_2_113.h:574:24: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
Surf2_113.c: #define SHL(x,r) (v2di)__builtin_ia32_psllqi128 ((gcc43bugfix) (x),(r))
Surf2_113.c: ^
Surf2_113.c: x86_32/mpfq_2_113.h:586:12: note: in expansion of macro 'SHL'
Surf2_113.c: v2di b1 = SHL(b0, 1);
Surf2_113.c: ^
Surf2_113.c: x86_32/mpfq_2_113.h: In function 'mpfq_2_113_mul_ur.isra.8':
Surf2_113.c: x86_32/mpfq_2_113.h:574:24: error: '__builtin_ia32_psllqi128' needs isa option -m32 -msse2
Surf2_113.c: #define SHL(x,r) (v2di)__builtin_ia32_psllqi128 ((gcc43bugfix) (x),(r))
Surf2_113.c: ^
Surf2_113.c: x86_32/mpfq_2_113.h:586:12: note: in expansion of macro 'SHL'
Surf2_113.c: v2di b1 = SHL(b0, 1);
Surf2_113.c: ^
Surf2_113.c: x86_32/mpfq_2_113.h:586: confused by earlier errors, bailing out

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

Compiler output

Implementation: crypto_dh/surf2113/mpfq
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
Surf2_113.c: In file included from mpfq_2_113.h:3:0,
Surf2_113.c: from field.h:1,
Surf2_113.c: from Surf2_113.c:11:
Surf2_113.c: x86_32/mpfq_2_113.h: In function 'mpfq_2_113_mul_ur':
Surf2_113.c: x86_32/mpfq_2_113.h:574:24: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
Surf2_113.c: #define SHL(x,r) (v2di)__builtin_ia32_psllqi128 ((gcc43bugfix) (x),(r))
Surf2_113.c: ^
Surf2_113.c: x86_32/mpfq_2_113.h:586:12: note: in expansion of macro 'SHL'
Surf2_113.c: v2di b1 = SHL(b0, 1);
Surf2_113.c: ^
Surf2_113.c: x86_32/mpfq_2_113.h:574:24: error: '__builtin_ia32_psllqi128' needs isa option -m32 -msse2
Surf2_113.c: #define SHL(x,r) (v2di)__builtin_ia32_psllqi128 ((gcc43bugfix) (x),(r))
Surf2_113.c: ^
Surf2_113.c: x86_32/mpfq_2_113.h:586:12: note: in expansion of macro 'SHL'
Surf2_113.c: v2di b1 = SHL(b0, 1);
Surf2_113.c: ^
Surf2_113.c: x86_32/mpfq_2_113.h:586: confused by earlier errors, bailing out

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv mpfq