Implementation notes: amd64, cel02, crypto_dh/k277taa

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_dh
Primitive: k277taa
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
28311819684 0 047053 832 1608T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
28670620452 0 050973 832 1640T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
32197017799 0 043341 824 1608T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
32523418973 0 045885 832 1608T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

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: 0x56503a1e6900: v4i64 = X86ISD::VTRUNC 0x56503a1e67d0
try.c: 0x56503a1e67d0: v16i32 = vselect 0x56503a1d3bc0, 0x56503a181190, 0x56503a1e66a0
try.c: 0x56503a1d3bc0: v4i1 = X86ISD::PCMPGTM 0x56503a1cbf80, 0x56503a1c7b10
try.c: 0x56503a1cbf80: v4i64 = X86ISD::VBROADCAST 0x56503a16bea0
try.c: 0x56503a16bea0: i64,ch = load<LD8[%lsr.iv6971]> 0x56503a0dc930, 0x56503a1be160, undef:i64
try.c: 0x56503a1be160: i64,ch = CopyFromReg 0x56503a0dc930, Register:i64 %vreg50
try.c: 0x56503a1c7d70: i64 = Register %vreg50
try.c: 0x56503a16d370: i64 = undef
try.c: 0x56503a1c7b10: v4i64,ch = CopyFromReg 0x56503a0dc930, Register:v4i64 %vreg13
try.c: 0x56503a1cc7d0: v4i64 = Register %vreg13
try.c: 0x56503a181190: v16i32 = X86ISD::VBROADCAST 0x56503a1cc1e0
try.c: 0x56503a1cc1e0: i32,ch = load<LD4[ConstantPool]> 0x56503a0dc930, 0x56503a1704e0, undef:i64
try.c: 0x56503a1704e0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56503a1b0830: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56503a16d370: i64 = undef
try.c: 0x56503a1e66a0: 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: 0x56503a1e6570: i32 = Constant<0>
try.c: 0x56503a1e6570: i32 = Constant<0>
try.c: 0x56503a1e6570: i32 = Constant<0>
try.c: 0x56503a1e6570: i32 = Constant<0>
try.c: 0x56503a1e6570: i32 = Constant<0>
try.c: 0x56503a1e6570: i32 = Constant<0>
try.c: 0x56503a1e6570: i32 = Constant<0>
try.c: 0x56503a1e6570: i32 = Constant<0>
try.c: 0x56503a1e6570: 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: 0x55cba27fb5f0: v4i64 = X86ISD::VTRUNC 0x55cba27fb4c0
try.c: 0x55cba27fb4c0: v16i32 = vselect 0x55cba27f5fc0, 0x55cba27917f0, 0x55cba27fb390
try.c: 0x55cba27f5fc0: v4i1 = X86ISD::PCMPGTM 0x55cba27ef9b0, 0x55cba27ec390
try.c: 0x55cba27ef9b0: v4i64 = X86ISD::VBROADCAST 0x55cba2791cb0
try.c: 0x55cba2791cb0: i64,ch = load<LD8[%lsr.iv6971]> 0x55cba26eaa00, 0x55cba279ac10, undef:i64
try.c: 0x55cba279ac10: i64,ch = CopyFromReg 0x55cba26eaa00, Register:i64 %vreg50
try.c: 0x55cba27ec5f0: i64 = Register %vreg50
try.c: 0x55cba2785010: i64 = undef
try.c: 0x55cba27ec390: v4i64,ch = CopyFromReg 0x55cba26eaa00, Register:v4i64 %vreg13
try.c: 0x55cba27f0200: v4i64 = Register %vreg13
try.c: 0x55cba27917f0: v16i32 = X86ISD::VBROADCAST 0x55cba27efc10
try.c: 0x55cba27efc10: i32,ch = load<LD4[ConstantPool]> 0x55cba26eaa00, 0x55cba2794190, undef:i64
try.c: 0x55cba2794190: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55cba2785990: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55cba2785010: i64 = undef
try.c: 0x55cba27fb390: 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: 0x55cba27fb260: i32 = Constant<0>
try.c: 0x55cba27fb260: i32 = Constant<0>
try.c: 0x55cba27fb260: i32 = Constant<0>
try.c: 0x55cba27fb260: i32 = Constant<0>
try.c: 0x55cba27fb260: i32 = Constant<0>
try.c: 0x55cba27fb260: i32 = Constant<0>
try.c: 0x55cba27fb260: i32 = Constant<0>
try.c: 0x55cba27fb260: i32 = Constant<0>
try.c: 0x55cba27fb260: 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: 0x55e4ebd27100: v4i64 = X86ISD::VTRUNC 0x55e4ebd26fd0
try.c: 0x55e4ebd26fd0: v16i32 = vselect 0x55e4ebd12590, 0x55e4ebcc3e50, 0x55e4ebd26ea0
try.c: 0x55e4ebd12590: v4i1 = X86ISD::PCMPGTM 0x55e4ebd0c930, 0x55e4ebd084c0
try.c: 0x55e4ebd0c930: v4i64 = X86ISD::VBROADCAST 0x55e4ebcb0aa0
try.c: 0x55e4ebcb0aa0: i64,ch = load<LD8[%lsr.iv6971]> 0x55e4ebc1d940, 0x55e4ebd03320, undef:i64
try.c: 0x55e4ebd03320: i64,ch = CopyFromReg 0x55e4ebc1d940, Register:i64 %vreg50
try.c: 0x55e4ebd08720: i64 = Register %vreg50
try.c: 0x55e4ebcc24c0: i64 = undef
try.c: 0x55e4ebd084c0: v4i64,ch = CopyFromReg 0x55e4ebc1d940, Register:v4i64 %vreg13
try.c: 0x55e4ebd0d180: v4i64 = Register %vreg13
try.c: 0x55e4ebcc3e50: v16i32 = X86ISD::VBROADCAST 0x55e4ebd0cb90
try.c: 0x55e4ebd0cb90: i32,ch = load<LD4[ConstantPool]> 0x55e4ebc1d940, 0x55e4ebcb0080, undef:i64
try.c: 0x55e4ebcb0080: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55e4ebcad1a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55e4ebcc24c0: i64 = undef
try.c: 0x55e4ebd26ea0: 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: 0x55e4ebd26d70: i32 = Constant<0>
try.c: 0x55e4ebd26d70: i32 = Constant<0>
try.c: 0x55e4ebd26d70: i32 = Constant<0>
try.c: 0x55e4ebd26d70: i32 = Constant<0>
try.c: 0x55e4ebd26d70: i32 = Constant<0>
try.c: 0x55e4ebd26d70: i32 = Constant<0>
try.c: 0x55e4ebd26d70: i32 = Constant<0>
try.c: 0x55e4ebd26d70: i32 = Constant<0>
try.c: 0x55e4ebd26d70: 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