Implementation notes: amd64, cel02, crypto_dh/k298

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_dh
Primitive: k298
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
23855025636 92160 056165 93000 1640T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
24325621532 92160 048909 93000 1608T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
32857621797 92160 047413 92992 1608T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Checksum failure

Implementation: T:ref
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
f915491b2bfd72afef772d66e5d93bd26fcf7cf7bf7513d13ee8419b0f467064
Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref

Test failure

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

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 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55fa5ee60aa0: v4i64 = X86ISD::VTRUNC 0x55fa5ee60970
try.c: 0x55fa5ee60970: v16i32 = vselect 0x55fa5ee5b9c0, 0x55fa5ee006b0, 0x55fa5ee60840
try.c: 0x55fa5ee5b9c0: v4i1 = X86ISD::PCMPGTM 0x55fa5ee58990, 0x55fa5ee54520
try.c: 0x55fa5ee58990: v4i64 = X86ISD::VBROADCAST 0x55fa5edf99d0
try.c: 0x55fa5edf99d0: i64,ch = load<LD8[%lsr.iv6971]> 0x55fa5ed698d0, 0x55fa5ee4b9b0, undef:i64
try.c: 0x55fa5ee4b9b0: i64,ch = CopyFromReg 0x55fa5ed698d0, Register:i64 %vreg50
try.c: 0x55fa5ee54780: i64 = Register %vreg50
try.c: 0x55fa5edfed20: i64 = undef
try.c: 0x55fa5ee54520: v4i64,ch = CopyFromReg 0x55fa5ed698d0, Register:v4i64 %vreg13
try.c: 0x55fa5ee591e0: v4i64 = Register %vreg13
try.c: 0x55fa5ee006b0: v16i32 = X86ISD::VBROADCAST 0x55fa5ee58bf0
try.c: 0x55fa5ee58bf0: i32,ch = load<LD4[ConstantPool]> 0x55fa5ed698d0, 0x55fa5edf8fb0, undef:i64
try.c: 0x55fa5edf8fb0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55fa5ee06c10: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55fa5edfed20: i64 = undef
try.c: 0x55fa5ee60840: 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: 0x55fa5ee60710: i32 = Constant<0>
try.c: 0x55fa5ee60710: i32 = Constant<0>
try.c: 0x55fa5ee60710: i32 = Constant<0>
try.c: 0x55fa5ee60710: i32 = Constant<0>
try.c: 0x55fa5ee60710: i32 = Constant<0>
try.c: 0x55fa5ee60710: i32 = Constant<0>
try.c: 0x55fa5ee60710: i32 = Constant<0>
try.c: 0x55fa5ee60710: i32 = Constant<0>
try.c: 0x55fa5ee60710: 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
try.c: fatal error: error in backend: Cannot select: 0x561f0105ae60: v4i64 = X86ISD::VTRUNC 0x561f0105ad30
try.c: 0x561f0105ad30: v16i32 = vselect 0x561f01052f10, 0x561f00fc9e70, 0x561f0105ac00
try.c: 0x561f01052f10: v4i1 = X86ISD::PCMPGTM 0x561f010369c0, 0x561f01033560
try.c: 0x561f010369c0: v4i64 = X86ISD::VBROADCAST 0x561f00fca330
try.c: 0x561f00fca330: i64,ch = load<LD8[%lsr.iv6971]> 0x561f00f30a00, 0x561f00fd6d30, undef:i64
try.c: 0x561f00fd6d30: i64,ch = CopyFromReg 0x561f00f30a00, Register:i64 %vreg50
try.c: 0x561f010337c0: i64 = Register %vreg50
try.c: 0x561f00fce820: i64 = undef
try.c: 0x561f01033560: v4i64,ch = CopyFromReg 0x561f00f30a00, Register:v4i64 %vreg13
try.c: 0x561f01037210: v4i64 = Register %vreg13
try.c: 0x561f00fc9e70: v16i32 = X86ISD::VBROADCAST 0x561f01036c20
try.c: 0x561f01036c20: i32,ch = load<LD4[ConstantPool]> 0x561f00f30a00, 0x561f00fcc810, undef:i64
try.c: 0x561f00fcc810: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x561f00fcf1a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x561f00fce820: i64 = undef
try.c: 0x561f0105ac00: 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: 0x561f0105aad0: i32 = Constant<0>
try.c: 0x561f0105aad0: i32 = Constant<0>
try.c: 0x561f0105aad0: i32 = Constant<0>
try.c: 0x561f0105aad0: i32 = Constant<0>
try.c: 0x561f0105aad0: i32 = Constant<0>
try.c: 0x561f0105aad0: i32 = Constant<0>
try.c: 0x561f0105aad0: i32 = Constant<0>
try.c: 0x561f0105aad0: i32 = Constant<0>
try.c: 0x561f0105aad0: 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
try.c: fatal error: error in backend: Cannot select: 0x55ef8b287d10: v4i64 = X86ISD::VTRUNC 0x55ef8b287be0
try.c: 0x55ef8b287be0: v16i32 = vselect 0x55ef8b29a260, 0x55ef8b23a340, 0x55ef8b287ab0
try.c: 0x55ef8b29a260: v4i1 = X86ISD::PCMPGTM 0x55ef8b2806d0, 0x55ef8b27c260
try.c: 0x55ef8b2806d0: v4i64 = X86ISD::VBROADCAST 0x55ef8b227eb0
try.c: 0x55ef8b227eb0: i64,ch = load<LD8[%lsr.iv6971]> 0x55ef8b191920, 0x55ef8b26a520, undef:i64
try.c: 0x55ef8b26a520: i64,ch = CopyFromReg 0x55ef8b191920, Register:i64 %vreg50
try.c: 0x55ef8b27c4c0: i64 = Register %vreg50
try.c: 0x55ef8b229380: i64 = undef
try.c: 0x55ef8b27c260: v4i64,ch = CopyFromReg 0x55ef8b191920, Register:v4i64 %vreg13
try.c: 0x55ef8b280f20: v4i64 = Register %vreg13
try.c: 0x55ef8b23a340: v16i32 = X86ISD::VBROADCAST 0x55ef8b280930
try.c: 0x55ef8b280930: i32,ch = load<LD4[ConstantPool]> 0x55ef8b191920, 0x55ef8b227490, undef:i64
try.c: 0x55ef8b227490: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ef8b26baf0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ef8b229380: i64 = undef
try.c: 0x55ef8b287ab0: 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: 0x55ef8b287980: i32 = Constant<0>
try.c: 0x55ef8b287980: i32 = Constant<0>
try.c: 0x55ef8b287980: i32 = Constant<0>
try.c: 0x55ef8b287980: i32 = Constant<0>
try.c: 0x55ef8b287980: i32 = Constant<0>
try.c: 0x55ef8b287980: i32 = Constant<0>
try.c: 0x55ef8b287980: i32 = Constant<0>
try.c: 0x55ef8b287980: i32 = Constant<0>
try.c: 0x55ef8b287980: 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 -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
dh.c: In file included from dh.c:6:
dh.c: ./ffa.h:47:5: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
dh.c: ffa_red_149_stp(a_00, a_01, tp_0, tp_1, tp_2, p_149_0, p_149_1);
dh.c: ^
dh.c: ./ffa.h:18:12: note: expanded from macro 'ffa_red_149_stp'
dh.c: tp_2 = _mm_clmulepi64_si128(p_149_0, tp_0, 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:6:
dh.c: ./ffa.h:47:5: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
dh.c: ./ffa.h:19:12: note: expanded from macro 'ffa_red_149_stp'
dh.c: tp_1 = _mm_clmulepi64_si128(p_149_0, tp_0, 0x01);\
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:6:
dh.c: ./ffa.h:47:5: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
dh.c: ./ffa.h:20:12: note: expanded from macro 'ffa_red_149_stp'
dh.c: tp_0 = _mm_clmulepi64_si128(p_149_1, tp_0, 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: ...

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