Implementation notes: amd64, cel02, crypto_dh/k277mon

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_dh
Primitive: k277mon
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
30465412241 0 042821 832 1640T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
36556411573 0 037348 800 1576T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
4281229329 0 036629 832 1608T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4600968310 0 035189 832 1608T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
5232587966 0 033461 824 1608T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

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: 0x564e65780a30: v4i64 = X86ISD::VTRUNC 0x564e65780900
try.c: 0x564e65780900: v16i32 = vselect 0x564e65768a40, 0x564e657090f0, 0x564e657807d0
try.c: 0x564e65768a40: v4i1 = X86ISD::PCMPGTM 0x564e65764210, 0x564e65760bf0
try.c: 0x564e65764210: v4i64 = X86ISD::VBROADCAST 0x564e65712720
try.c: 0x564e65712720: i64,ch = load<LD8[%lsr.iv6971]> 0x564e65675930, 0x564e6571d0c0, undef:i64
try.c: 0x564e6571d0c0: i64,ch = CopyFromReg 0x564e65675930, Register:i64 %vreg50
try.c: 0x564e65760e50: i64 = Register %vreg50
try.c: 0x564e65713bf0: i64 = undef
try.c: 0x564e65760bf0: v4i64,ch = CopyFromReg 0x564e65675930, Register:v4i64 %vreg13
try.c: 0x564e65764a60: v4i64 = Register %vreg13
try.c: 0x564e657090f0: v16i32 = X86ISD::VBROADCAST 0x564e65764470
try.c: 0x564e65764470: i32,ch = load<LD4[ConstantPool]> 0x564e65675930, 0x564e65707070, undef:i64
try.c: 0x564e65707070: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x564e65755190: i64 = TargetConstantPool<i32 1> 0
try.c: 0x564e65713bf0: i64 = undef
try.c: 0x564e657807d0: 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: 0x564e657806a0: i32 = Constant<0>
try.c: 0x564e657806a0: i32 = Constant<0>
try.c: 0x564e657806a0: i32 = Constant<0>
try.c: 0x564e657806a0: i32 = Constant<0>
try.c: 0x564e657806a0: i32 = Constant<0>
try.c: 0x564e657806a0: i32 = Constant<0>
try.c: 0x564e657806a0: i32 = Constant<0>
try.c: 0x564e657806a0: i32 = Constant<0>
try.c: 0x564e657806a0: 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: 0x557299d13e80: v4i64 = X86ISD::VTRUNC 0x557299d13d50
try.c: 0x557299d13d50: v16i32 = vselect 0x557299d18a10, 0x557299c92ea0, 0x557299d13c20
try.c: 0x557299d18a10: v4i1 = X86ISD::PCMPGTM 0x557299cfa520, 0x557299cf7830
try.c: 0x557299cfa520: v4i64 = X86ISD::VBROADCAST 0x557299c93360
try.c: 0x557299c93360: i64,ch = load<LD8[%lsr.iv6971]> 0x557299bf4a00, 0x557299c97830, undef:i64
try.c: 0x557299c97830: i64,ch = CopyFromReg 0x557299bf4a00, Register:i64 %vreg50
try.c: 0x557299cf7a90: i64 = Register %vreg50
try.c: 0x557299c900c0: i64 = undef
try.c: 0x557299cf7830: v4i64,ch = CopyFromReg 0x557299bf4a00, Register:v4i64 %vreg13
try.c: 0x557299cfad70: v4i64 = Register %vreg13
try.c: 0x557299c92ea0: v16i32 = X86ISD::VBROADCAST 0x557299cfa780
try.c: 0x557299cfa780: i32,ch = load<LD4[ConstantPool]> 0x557299bf4a00, 0x557299c95e00, undef:i64
try.c: 0x557299c95e00: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x557299c90a40: i64 = TargetConstantPool<i32 1> 0
try.c: 0x557299c900c0: i64 = undef
try.c: 0x557299d13c20: 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: 0x557299d13af0: i32 = Constant<0>
try.c: 0x557299d13af0: i32 = Constant<0>
try.c: 0x557299d13af0: i32 = Constant<0>
try.c: 0x557299d13af0: i32 = Constant<0>
try.c: 0x557299d13af0: i32 = Constant<0>
try.c: 0x557299d13af0: i32 = Constant<0>
try.c: 0x557299d13af0: i32 = Constant<0>
try.c: 0x557299d13af0: i32 = Constant<0>
try.c: 0x557299d13af0: 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: 0x558f7b614270: v4i64 = X86ISD::VTRUNC 0x558f7b614140
try.c: 0x558f7b614140: v16i32 = vselect 0x558f7b610c50, 0x558f7b599970, 0x558f7b614010
try.c: 0x558f7b610c50: v4i1 = X86ISD::PCMPGTM 0x558f7b5f98e0, 0x558f7b5f5470
try.c: 0x558f7b5f98e0: v4i64 = X86ISD::VBROADCAST 0x558f7b59c780
try.c: 0x558f7b59c780: i64,ch = load<LD8[%lsr.iv6971]> 0x558f7b50a920, 0x558f7b5ecb40, undef:i64
try.c: 0x558f7b5ecb40: i64,ch = CopyFromReg 0x558f7b50a920, Register:i64 %vreg50
try.c: 0x558f7b5f56d0: i64 = Register %vreg50
try.c: 0x558f7b59dc50: i64 = undef
try.c: 0x558f7b5f5470: v4i64,ch = CopyFromReg 0x558f7b50a920, Register:v4i64 %vreg13
try.c: 0x558f7b5fa130: v4i64 = Register %vreg13
try.c: 0x558f7b599970: v16i32 = X86ISD::VBROADCAST 0x558f7b5f9b40
try.c: 0x558f7b5f9b40: i32,ch = load<LD4[ConstantPool]> 0x558f7b50a920, 0x558f7b5a0cf0, undef:i64
try.c: 0x558f7b5a0cf0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x558f7b5e3610: i64 = TargetConstantPool<i32 1> 0
try.c: 0x558f7b59dc50: i64 = undef
try.c: 0x558f7b614010: 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: 0x558f7b613ee0: i32 = Constant<0>
try.c: 0x558f7b613ee0: i32 = Constant<0>
try.c: 0x558f7b613ee0: i32 = Constant<0>
try.c: 0x558f7b613ee0: i32 = Constant<0>
try.c: 0x558f7b613ee0: i32 = Constant<0>
try.c: 0x558f7b613ee0: i32 = Constant<0>
try.c: 0x558f7b613ee0: i32 = Constant<0>
try.c: 0x558f7b613ee0: i32 = Constant<0>
try.c: 0x558f7b613ee0: 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:123:12: error: '__builtin_ia32_palignr128' needs target feature ssse3
dh.c: a_01 = _mm_alignr_epi8(a_02, a_01, 8);
dh.c: ^
dh.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/tmmintrin.h:69:12: note: expanded from macro '_mm_alignr_epi8'
dh.c: (__m128i)__builtin_ia32_palignr128((__v16qi)(__m128i)(a), \
dh.c: ^
dh.c: In file included from dh.c:6:
dh.c: ./ffa.h:132:5: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
dh.c: FFA_RED_277_STP(a,P,m,t_00,mul);
dh.c: ^
dh.c: ./ffa.h:110:5: note: expanded from macro 'FFA_RED_277_STP'
dh.c: ffa_red_277_stp(A##_00,A##_01,A##_02,P##_00,P##_01,P##_02,\
dh.c: ^
dh.c: ./ffa.h:90:12: note: expanded from macro 'ffa_red_277_stp'
dh.c: m_00 = _mm_clmulepi64_si128(mul, P_00, 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:132:5: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
dh.c: ./ffa.h:110:5: note: expanded from macro 'FFA_RED_277_STP'
dh.c: ffa_red_277_stp(A##_00,A##_01,A##_02,P##_00,P##_01,P##_02,\
dh.c: ^
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