Implementation notes: amd64, cel02, crypto_dh/gls254

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_dh
Primitive: gls254
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
18202818427 196608 044069 197440 1608T:optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
21177420487 196608 050989 197448 1640T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
21726219183 196608 046525 197448 1608T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
24110818403 196608 045301 197448 1608T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
26765014643 98336 042100 99184 1608T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
274556116283 16 0141927 832 1576T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
29483012502 98336 038324 99176 1608T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
29717237094 98304 067829 99144 1640T:protgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
31222813061 98336 040068 99184 1608T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
31487614320 98304 041341 99144 1608T:protgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
33066415941 98304 043421 99144 1608T:protgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
336854124902 0 0150380 800 1576T:protclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
36946813708 98304 039469 99136 1608T:protgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Test failure

Implementation: T:opt
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
error 111
crypto_dh not associative

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt

Test failure

Implementation: T:ref
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55ad7f53a000: v4i64 = X86ISD::VTRUNC 0x55ad7f539ed0
try.c: 0x55ad7f539ed0: v16i32 = vselect 0x55ad7f5407c0, 0x55ad7f4db9c0, 0x55ad7f539da0
try.c: 0x55ad7f5407c0: v4i1 = X86ISD::PCMPGTM 0x55ad7f534ec0, 0x55ad7f530a50
try.c: 0x55ad7f534ec0: v4i64 = X86ISD::VBROADCAST 0x55ad7f4fa450
try.c: 0x55ad7f4fa450: i64,ch = load<LD8[%lsr.iv6971]> 0x55ad7f445920, 0x55ad7f51b8c0, undef:i64
try.c: 0x55ad7f51b8c0: i64,ch = CopyFromReg 0x55ad7f445920, Register:i64 %vreg50
try.c: 0x55ad7f530cb0: i64 = Register %vreg50
try.c: 0x55ad7f4fb920: i64 = undef
try.c: 0x55ad7f530a50: v4i64,ch = CopyFromReg 0x55ad7f445920, Register:v4i64 %vreg13
try.c: 0x55ad7f535710: v4i64 = Register %vreg13
try.c: 0x55ad7f4db9c0: v16i32 = X86ISD::VBROADCAST 0x55ad7f535120
try.c: 0x55ad7f535120: i32,ch = load<LD4[ConstantPool]> 0x55ad7f445920, 0x55ad7f4d8fa0, undef:i64
try.c: 0x55ad7f4d8fa0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ad7f4a20e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ad7f4fb920: i64 = undef
try.c: 0x55ad7f539da0: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x55ad7f539c70: i32 = Constant<0>
try.c: 0x55ad7f539c70: i32 = Constant<0>
try.c: 0x55ad7f539c70: i32 = Constant<0>
try.c: 0x55ad7f539c70: i32 = Constant<0>
try.c: 0x55ad7f539c70: i32 = Constant<0>
try.c: 0x55ad7f539c70: i32 = Constant<0>
try.c: 0x55ad7f539c70: i32 = Constant<0>
try.c: 0x55ad7f539c70: i32 = Constant<0>
try.c: 0x55ad7f539c70: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x557762f40590: v4i64 = X86ISD::VTRUNC 0x557762f40460
try.c: 0x557762f40460: v16i32 = vselect 0x557762f31ee0, 0x557762eb90d0, 0x557762f40330
try.c: 0x557762f31ee0: v4i1 = X86ISD::PCMPGTM 0x557762f19360, 0x557762f16e80
try.c: 0x557762f19360: v4i64 = X86ISD::VBROADCAST 0x557762eb9590
try.c: 0x557762eb9590: i64,ch = load<LD8[%lsr.iv6971]> 0x557762e13a00, 0x557762ec3350, undef:i64
try.c: 0x557762ec3350: i64,ch = CopyFromReg 0x557762e13a00, Register:i64 %vreg50
try.c: 0x557762f170e0: i64 = Register %vreg50
try.c: 0x557762eb2100: i64 = undef
try.c: 0x557762f16e80: v4i64,ch = CopyFromReg 0x557762e13a00, Register:v4i64 %vreg13
try.c: 0x557762f19bb0: v4i64 = Register %vreg13
try.c: 0x557762eb90d0: v16i32 = X86ISD::VBROADCAST 0x557762f195c0
try.c: 0x557762f195c0: i32,ch = load<LD4[ConstantPool]> 0x557762e13a00, 0x557762ebba70, undef:i64
try.c: 0x557762ebba70: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x557762eb2a80: i64 = TargetConstantPool<i32 1> 0
try.c: 0x557762eb2100: i64 = undef
try.c: 0x557762f40330: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x557762f40200: i32 = Constant<0>
try.c: 0x557762f40200: i32 = Constant<0>
try.c: 0x557762f40200: i32 = Constant<0>
try.c: 0x557762f40200: i32 = Constant<0>
try.c: 0x557762f40200: i32 = Constant<0>
try.c: 0x557762f40200: i32 = Constant<0>
try.c: 0x557762f40200: i32 = Constant<0>
try.c: 0x557762f40200: i32 = Constant<0>
try.c: 0x557762f40200: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x56298372af60: v4i64 = X86ISD::VTRUNC 0x56298372ae30
try.c: 0x56298372ae30: v16i32 = vselect 0x562983709a10, 0x5629836ce0f0, 0x56298372ad00
try.c: 0x562983709a10: v4i1 = X86ISD::PCMPGTM 0x562983713600, 0x56298370f190
try.c: 0x562983713600: v4i64 = X86ISD::VBROADCAST 0x5629836b45b0
try.c: 0x5629836b45b0: i64,ch = load<LD8[%lsr.iv6971]> 0x562983624920, 0x5629836fcf80, undef:i64
try.c: 0x5629836fcf80: i64,ch = CopyFromReg 0x562983624920, Register:i64 %vreg50
try.c: 0x56298370f3f0: i64 = Register %vreg50
try.c: 0x5629836b5a80: i64 = undef
try.c: 0x56298370f190: v4i64,ch = CopyFromReg 0x562983624920, Register:v4i64 %vreg13
try.c: 0x562983713e50: v4i64 = Register %vreg13
try.c: 0x5629836ce0f0: v16i32 = X86ISD::VBROADCAST 0x562983713860
try.c: 0x562983713860: i32,ch = load<LD4[ConstantPool]> 0x562983624920, 0x5629836b8b80, undef:i64
try.c: 0x5629836b8b80: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5629836fe550: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5629836b5a80: i64 = undef
try.c: 0x56298372ad00: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x56298372abd0: i32 = Constant<0>
try.c: 0x56298372abd0: i32 = Constant<0>
try.c: 0x56298372abd0: i32 = Constant<0>
try.c: 0x56298372abd0: i32 = Constant<0>
try.c: 0x56298372abd0: i32 = Constant<0>
try.c: 0x56298372abd0: i32 = Constant<0>
try.c: 0x56298372abd0: i32 = Constant<0>
try.c: 0x56298372abd0: i32 = Constant<0>
try.c: 0x56298372abd0: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
dh.c: In file included from dh.c:10:
dh.c: ./ffa.h:94:5: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
dh.c: low_kts_stp(op00,op10,k00,k02,op01,op11,r00,r01,r02,0x00); /* a0xb0 */
dh.c: ^
dh.c: ./ffa.h:62:11: note: expanded from macro 'low_kts_stp'
dh.c: re0 = _mm_clmulepi64_si128(op0, op1, ord);\
dh.c: ^
dh.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_pclmul.h:27: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:10:
dh.c: ./ffa.h:94:5: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
dh.c: ./ffa.h:63:11: note: expanded from macro 'low_kts_stp'
dh.c: re1 = _mm_clmulepi64_si128(op2, op3, ord);\
dh.c: ^
dh.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_pclmul.h:27: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:10:
dh.c: ./ffa.h:94:5: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
dh.c: ./ffa.h:64:11: note: expanded from macro 'low_kts_stp'
dh.c: re2 = _mm_clmulepi64_si128(op4, op5, ord);\
dh.c: ^
dh.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_pclmul.h:27:13: note: expanded from macro '_mm_clmulepi64_si128'
dh.c: ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(__X), \
dh.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt

Compiler output

Implementation: T:prot
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:273:17: warning: implicit declaration of function 'types_cond_copy2' is invalid in C99 [-Wimplicit-function-declaration]
dh.c: types_cond_copy2(tab0, tab4, tabx, n1, n2);
dh.c: ^
dh.c: ./scmul.incl:284:9: warning: implicit declaration of function 'types_cond_copy' is invalid in C99 [-Wimplicit-function-declaration]
dh.c: types_cond_copy(QX, tab0, o1);
dh.c: ^
dh.c: 2 warnings generated.
try.c: fatal error: error in backend: Cannot select: 0x5606e069c1b0: v4i64 = X86ISD::VTRUNC 0x5606e069c080
try.c: 0x5606e069c080: v16i32 = vselect 0x5606e068b980, 0x5606e061fd40, 0x5606e069bf50
try.c: 0x5606e068b980: v4i1 = X86ISD::PCMPGTM 0x5606e0680820, 0x5606e067c3b0
try.c: 0x5606e0680820: v4i64 = X86ISD::VBROADCAST 0x5606e063b7f0
try.c: 0x5606e063b7f0: i64,ch = load<LD8[%lsr.iv6971]> 0x5606e0591920, 0x5606e0677210, undef:i64
try.c: 0x5606e0677210: i64,ch = CopyFromReg 0x5606e0591920, Register:i64 %vreg50
try.c: 0x5606e067c610: i64 = Register %vreg50
try.c: 0x5606e063ccc0: i64 = undef
try.c: 0x5606e067c3b0: v4i64,ch = CopyFromReg 0x5606e0591920, Register:v4i64 %vreg13
try.c: 0x5606e0681070: v4i64 = Register %vreg13
try.c: 0x5606e061fd40: v16i32 = X86ISD::VBROADCAST 0x5606e0680a80
try.c: 0x5606e0680a80: i32,ch = load<LD4[ConstantPool]> 0x5606e0591920, 0x5606e063add0, undef:i64
try.c: 0x5606e063add0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5606e061bac0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5606e063ccc0: i64 = undef
try.c: 0x5606e069bf50: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x5606e069be20: i32 = Constant<0>
try.c: 0x5606e069be20: i32 = Constant<0>
try.c: 0x5606e069be20: i32 = Constant<0>
try.c: 0x5606e069be20: i32 = Constant<0>
try.c: 0x5606e069be20: i32 = Constant<0>
try.c: 0x5606e069be20: i32 = Constant<0>
try.c: 0x5606e069be20: i32 = Constant<0>
try.c: 0x5606e069be20: i32 = Constant<0>
try.c: 0x5606e069be20: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: T:prot
Security model: timingleaks
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:273:17: warning: implicit declaration of function 'types_cond_copy2' is invalid in C99 [-Wimplicit-function-declaration]
dh.c: types_cond_copy2(tab0, tab4, tabx, n1, n2);
dh.c: ^
dh.c: ./scmul.incl:284:9: warning: implicit declaration of function 'types_cond_copy' is invalid in C99 [-Wimplicit-function-declaration]
dh.c: types_cond_copy(QX, tab0, o1);
dh.c: ^
dh.c: 2 warnings generated.
try.c: fatal error: error in backend: Cannot select: 0x55bec0dd81f0: v4i64 = X86ISD::VTRUNC 0x55bec0dd80c0
try.c: 0x55bec0dd80c0: v16i32 = vselect 0x55bec0db73c0, 0x55bec0d4f1c0, 0x55bec0dd7f90
try.c: 0x55bec0db73c0: v4i1 = X86ISD::PCMPGTM 0x55bec0db43a0, 0x55bec0daff30
try.c: 0x55bec0db43a0: v4i64 = X86ISD::VBROADCAST 0x55bec0d4f680
try.c: 0x55bec0d4f680: i64,ch = load<LD8[%lsr.iv6971]> 0x55bec0cada00, 0x55bec0d48720, undef:i64
try.c: 0x55bec0d48720: i64,ch = CopyFromReg 0x55bec0cada00, Register:i64 %vreg50
try.c: 0x55bec0db0190: i64 = Register %vreg50
try.c: 0x55bec0d61690: i64 = undef
try.c: 0x55bec0daff30: v4i64,ch = CopyFromReg 0x55bec0cada00, Register:v4i64 %vreg13
try.c: 0x55bec0db4bf0: v4i64 = Register %vreg13
try.c: 0x55bec0d4f1c0: v16i32 = X86ISD::VBROADCAST 0x55bec0db4600
try.c: 0x55bec0db4600: i32,ch = load<LD4[ConstantPool]> 0x55bec0cada00, 0x55bec0d46cf0, undef:i64
try.c: 0x55bec0d46cf0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55bec0d62010: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55bec0d61690: i64 = undef
try.c: 0x55bec0dd7f90: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x55bec0dd7e60: i32 = Constant<0>
try.c: 0x55bec0dd7e60: i32 = Constant<0>
try.c: 0x55bec0dd7e60: i32 = Constant<0>
try.c: 0x55bec0dd7e60: i32 = Constant<0>
try.c: 0x55bec0dd7e60: i32 = Constant<0>
try.c: 0x55bec0dd7e60: i32 = Constant<0>
try.c: 0x55bec0dd7e60: i32 = Constant<0>
try.c: 0x55bec0dd7e60: i32 = Constant<0>
try.c: 0x55bec0dd7e60: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: T:prot
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:273:17: warning: implicit declaration of function 'types_cond_copy2' is invalid in C99 [-Wimplicit-function-declaration]
dh.c: types_cond_copy2(tab0, tab4, tabx, n1, n2);
dh.c: ^
dh.c: ./scmul.incl:284:9: warning: implicit declaration of function 'types_cond_copy' is invalid in C99 [-Wimplicit-function-declaration]
dh.c: types_cond_copy(QX, tab0, o1);
dh.c: ^
dh.c: 2 warnings generated.
try.c: fatal error: error in backend: Cannot select: 0x5594605c3c80: v4i64 = X86ISD::VTRUNC 0x5594605c3b50
try.c: 0x5594605c3b50: v16i32 = vselect 0x5594605c0660, 0x559460576090, 0x5594605c3a20
try.c: 0x5594605c0660: v4i1 = X86ISD::PCMPGTM 0x5594605bba10, 0x5594605b75a0
try.c: 0x5594605bba10: v4i64 = X86ISD::VBROADCAST 0x559460563f10
try.c: 0x559460563f10: i64,ch = load<LD8[%lsr.iv6971]> 0x5594604cc920, 0x5594605aeef0, undef:i64
try.c: 0x5594605aeef0: i64,ch = CopyFromReg 0x5594604cc920, Register:i64 %vreg50
try.c: 0x5594605b7800: i64 = Register %vreg50
try.c: 0x559460574700: i64 = undef
try.c: 0x5594605b75a0: v4i64,ch = CopyFromReg 0x5594604cc920, Register:v4i64 %vreg13
try.c: 0x5594605bc260: v4i64 = Register %vreg13
try.c: 0x559460576090: v16i32 = X86ISD::VBROADCAST 0x5594605bbc70
try.c: 0x5594605bbc70: i32,ch = load<LD4[ConstantPool]> 0x5594604cc920, 0x5594605634f0, undef:i64
try.c: 0x5594605634f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x559460567150: i64 = TargetConstantPool<i32 1> 0
try.c: 0x559460574700: i64 = undef
try.c: 0x5594605c3a20: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x5594605c38f0: i32 = Constant<0>
try.c: 0x5594605c38f0: i32 = Constant<0>
try.c: 0x5594605c38f0: i32 = Constant<0>
try.c: 0x5594605c38f0: i32 = Constant<0>
try.c: 0x5594605c38f0: i32 = Constant<0>
try.c: 0x5594605c38f0: i32 = Constant<0>
try.c: 0x5594605c38f0: i32 = Constant<0>
try.c: 0x5594605c38f0: i32 = Constant<0>
try.c: 0x5594605c38f0: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: T:prot
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:273:17: warning: implicit declaration of function 'types_cond_copy2' is invalid in C99 [-Wimplicit-function-declaration]
dh.c: types_cond_copy2(tab0, tab4, tabx, n1, n2);
dh.c: ^
dh.c: ./scmul.incl:284:9: warning: implicit declaration of function 'types_cond_copy' is invalid in C99 [-Wimplicit-function-declaration]
dh.c: types_cond_copy(QX, tab0, o1);
dh.c: ^
dh.c: 2 warnings generated.

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

Compiler output

Implementation: T:prot
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
dh.c: In file included from dh.c:7:
dh.c: ./low.incl:26:2: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
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: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_pclmul.h:27: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:7:
dh.c: ./low.incl:26:2: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
dh.c: ./gls254.h:156:7: note: expanded from macro 'MUL4'
dh.c: r1 = _mm_clmulepi64_si128(ma, mb, 0x11);\
dh.c: ^
dh.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_pclmul.h:27: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:7:
dh.c: ./low.incl:26:2: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
dh.c: ./gls254.h:157:7: note: expanded from macro 'MUL4'
dh.c: t0 = _mm_clmulepi64_si128(t0, t0, 0x10);\
dh.c: ^
dh.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_pclmul.h:27:13: note: expanded from macro '_mm_clmulepi64_si128'
dh.c: ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(__X), \
dh.c: ...

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

Compiler output

Implementation: T:prot
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
dh.c: In file included from dh.c:9:0:
dh.c: scmul.incl: In function 'scmul_rand_wreg':
dh.c: scmul.incl:273:17: warning: implicit declaration of function 'types_cond_copy2' [-Wimplicit-function-declaration]
dh.c: types_cond_copy2(tab0, tab4, tabx, n1, n2);
dh.c: ^~~~~~~~~~~~~~~~
dh.c: scmul.incl:284:9: warning: implicit declaration of function 'types_cond_copy' [-Wimplicit-function-declaration]
dh.c: types_cond_copy(QX, tab0, o1);
dh.c: ^~~~~~~~~~~~~~~

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:204:14: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^~~~~~~~~~
dh.c: ./scmul.incl:204:14: note: place parentheses around the '==' expression to silence this warning
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^
dh.c: ( )
dh.c: ./scmul.incl:204:14: note: place parentheses around the & expression to evaluate it first
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^
dh.c: ( )
dh.c: 1 warning generated.
try.c: fatal error: error in backend: Cannot select: 0x55ff582c2300: v4i64 = X86ISD::VTRUNC 0x55ff582c21d0
try.c: 0x55ff582c21d0: v16i32 = vselect 0x55ff582ab360, 0x55ff5824ff50, 0x55ff582c20a0
try.c: 0x55ff582ab360: v4i1 = X86ISD::PCMPGTM 0x55ff582a8b40, 0x55ff582a46d0
try.c: 0x55ff582a8b40: v4i64 = X86ISD::VBROADCAST 0x55ff58248b70
try.c: 0x55ff58248b70: i64,ch = load<LD8[%lsr.iv6971]> 0x55ff581b9920, 0x55ff5829f530, undef:i64
try.c: 0x55ff5829f530: i64,ch = CopyFromReg 0x55ff581b9920, Register:i64 %vreg50
try.c: 0x55ff582a4930: i64 = Register %vreg50
try.c: 0x55ff5824a040: i64 = undef
try.c: 0x55ff582a46d0: v4i64,ch = CopyFromReg 0x55ff581b9920, Register:v4i64 %vreg13
try.c: 0x55ff582a9390: v4i64 = Register %vreg13
try.c: 0x55ff5824ff50: v16i32 = X86ISD::VBROADCAST 0x55ff582a8da0
try.c: 0x55ff582a8da0: i32,ch = load<LD4[ConstantPool]> 0x55ff581b9920, 0x55ff58248150, undef:i64
try.c: 0x55ff58248150: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ff5822c620: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ff5824a040: i64 = undef
try.c: 0x55ff582c20a0: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x55ff582c1f70: i32 = Constant<0>
try.c: 0x55ff582c1f70: i32 = Constant<0>
try.c: 0x55ff582c1f70: i32 = Constant<0>
try.c: 0x55ff582c1f70: i32 = Constant<0>
try.c: 0x55ff582c1f70: i32 = Constant<0>
try.c: 0x55ff582c1f70: i32 = Constant<0>
try.c: 0x55ff582c1f70: i32 = Constant<0>
try.c: 0x55ff582c1f70: i32 = Constant<0>
try.c: 0x55ff582c1f70: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:204:14: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^~~~~~~~~~
dh.c: ./scmul.incl:204:14: note: place parentheses around the '==' expression to silence this warning
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^
dh.c: ( )
dh.c: ./scmul.incl:204:14: note: place parentheses around the & expression to evaluate it first
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^
dh.c: ( )
dh.c: 1 warning generated.
try.c: fatal error: error in backend: Cannot select: 0x55d0b181b1c0: v4i64 = X86ISD::VTRUNC 0x55d0b181b090
try.c: 0x55d0b181b090: v16i32 = vselect 0x55d0b1806bb0, 0x55d0b1795c30, 0x55d0b181af60
try.c: 0x55d0b1806bb0: v4i1 = X86ISD::PCMPGTM 0x55d0b17fefc0, 0x55d0b17fab50
try.c: 0x55d0b17fefc0: v4i64 = X86ISD::VBROADCAST 0x55d0b17960f0
try.c: 0x55d0b17960f0: i64,ch = load<LD8[%lsr.iv6971]> 0x55d0b16f89d0, 0x55d0b17a1110, undef:i64
try.c: 0x55d0b17a1110: i64,ch = CopyFromReg 0x55d0b16f89d0, Register:i64 %vreg50
try.c: 0x55d0b17fadb0: i64 = Register %vreg50
try.c: 0x55d0b17aae00: i64 = undef
try.c: 0x55d0b17fab50: v4i64,ch = CopyFromReg 0x55d0b16f89d0, Register:v4i64 %vreg13
try.c: 0x55d0b17ff810: v4i64 = Register %vreg13
try.c: 0x55d0b1795c30: v16i32 = X86ISD::VBROADCAST 0x55d0b17ff220
try.c: 0x55d0b17ff220: i32,ch = load<LD4[ConstantPool]> 0x55d0b16f89d0, 0x55d0b17985d0, undef:i64
try.c: 0x55d0b17985d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55d0b17ab780: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55d0b17aae00: i64 = undef
try.c: 0x55d0b181af60: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x55d0b181ae30: i32 = Constant<0>
try.c: 0x55d0b181ae30: i32 = Constant<0>
try.c: 0x55d0b181ae30: i32 = Constant<0>
try.c: 0x55d0b181ae30: i32 = Constant<0>
try.c: 0x55d0b181ae30: i32 = Constant<0>
try.c: 0x55d0b181ae30: i32 = Constant<0>
try.c: 0x55d0b181ae30: i32 = Constant<0>
try.c: 0x55d0b181ae30: i32 = Constant<0>
try.c: 0x55d0b181ae30: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:204:14: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^~~~~~~~~~
dh.c: ./scmul.incl:204:14: note: place parentheses around the '==' expression to silence this warning
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^
dh.c: ( )
dh.c: ./scmul.incl:204:14: note: place parentheses around the & expression to evaluate it first
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^
dh.c: ( )
dh.c: 1 warning generated.
try.c: fatal error: error in backend: Cannot select: 0x562787ee4f10: v4i64 = X86ISD::VTRUNC 0x562787ee4de0
try.c: 0x562787ee4de0: v16i32 = vselect 0x562787edd330, 0x562787e638f0, 0x562787ee4cb0
try.c: 0x562787edd330: v4i1 = X86ISD::PCMPGTM 0x562787ec37a0, 0x562787ebf330
try.c: 0x562787ec37a0: v4i64 = X86ISD::VBROADCAST 0x562787e7dd10
try.c: 0x562787e7dd10: i64,ch = load<LD8[%lsr.iv6971]> 0x562787dd4920, 0x562787eba190, undef:i64
try.c: 0x562787eba190: i64,ch = CopyFromReg 0x562787dd4920, Register:i64 %vreg50
try.c: 0x562787ebf590: i64 = Register %vreg50
try.c: 0x562787e7f1e0: i64 = undef
try.c: 0x562787ebf330: v4i64,ch = CopyFromReg 0x562787dd4920, Register:v4i64 %vreg13
try.c: 0x562787ec3ff0: v4i64 = Register %vreg13
try.c: 0x562787e638f0: v16i32 = X86ISD::VBROADCAST 0x562787ec3a00
try.c: 0x562787ec3a00: i32,ch = load<LD4[ConstantPool]> 0x562787dd4920, 0x562787e7d2f0, undef:i64
try.c: 0x562787e7d2f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x562787ea90d0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x562787e7f1e0: i64 = undef
try.c: 0x562787ee4cb0: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x562787ee4b80: i32 = Constant<0>
try.c: 0x562787ee4b80: i32 = Constant<0>
try.c: 0x562787ee4b80: i32 = Constant<0>
try.c: 0x562787ee4b80: i32 = Constant<0>
try.c: 0x562787ee4b80: i32 = Constant<0>
try.c: 0x562787ee4b80: i32 = Constant<0>
try.c: 0x562787ee4b80: i32 = Constant<0>
try.c: 0x562787ee4b80: i32 = Constant<0>
try.c: 0x562787ee4b80: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
dh.c: In file included from dh.c:9:
dh.c: ./scmul.incl:204:14: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^~~~~~~~~~
dh.c: ./scmul.incl:204:14: note: place parentheses around the '==' expression to silence this warning
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^
dh.c: ( )
dh.c: ./scmul.incl:204:14: note: place parentheses around the & expression to evaluate it first
dh.c: if (num[0] & 0x1 == 1) {
dh.c: ^
dh.c: ( )
dh.c: 1 warning generated.

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
dh.c: In file included from dh.c:6:
dh.c: ./curves.incl:53:2: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
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: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_aes.h:62:12: note: expanded from macro '_mm_aeskeygenassist_si128'
dh.c: (__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R))
dh.c: ^
dh.c: In file included from dh.c:6:
dh.c: ./curves.incl:54:2: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
dh.c: STEP(k, t, tmp, 16*2, 0x02);
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: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_aes.h:62:12: note: expanded from macro '_mm_aeskeygenassist_si128'
dh.c: (__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R))
dh.c: ^
dh.c: In file included from dh.c:6:
dh.c: ./curves.incl:55:2: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
dh.c: STEP(k, t, tmp, 16*3, 0x04);
dh.c: ^
dh.c: ./gls254.h:272:6: note: expanded from macro 'STEP'
dh.c: ...

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