Implementation notes: amd64, oki, crypto_verify/8

Computer: oki
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20181123
Operation: crypto_verify
Primitive: 8
TimeImplementationCompilerBenchmark dateSUPERCOP version
26refgcc -O2 -fomit-frame-pointer2018112720181123
26refgcc -O3 -fomit-frame-pointer2018112720181123
26refgcc -O -fomit-frame-pointer2018112720181123
26refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2018112720181123
26refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2018112720181123
26refgcc -fno-schedule-insns -O -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -O2 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -O3 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -O -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2018112720181123
26refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2018112720181123
26refgcc -m64 -O2 -fomit-frame-pointer2018112720181123
26refgcc -m64 -O3 -fomit-frame-pointer2018112720181123
26refgcc -m64 -O -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=barcelona -O -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core2 -O -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=corei7 -O -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=k8 -O -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2018112720181123
26refgcc -m64 -march=nocona -O -fomit-frame-pointer2018112720181123
26refgcc -march=barcelona -O2 -fomit-frame-pointer2018112720181123
26refgcc -march=barcelona -O3 -fomit-frame-pointer2018112720181123
26refgcc -march=barcelona -O -fomit-frame-pointer2018112720181123
26refgcc -march=k8 -O2 -fomit-frame-pointer2018112720181123
26refgcc -march=k8 -O3 -fomit-frame-pointer2018112720181123
26refgcc -march=k8 -O -fomit-frame-pointer2018112720181123
26refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018112720181123
26refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018112720181123
26refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2018112720181123
26refgcc -march=nocona -O2 -fomit-frame-pointer2018112720181123
26refgcc -march=nocona -O3 -fomit-frame-pointer2018112720181123
26refgcc -march=nocona -O -fomit-frame-pointer2018112720181123
28refclang -O3 -fomit-frame-pointer -Qunused-arguments2018112720181123
28refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2018112720181123
28refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2018112720181123
28refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2018112720181123
28refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2018112720181123
28refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018112720181123
28refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018112720181123
28refgcc -funroll-loops -Os -fomit-frame-pointer2018112720181123
28refgcc -funroll-loops -m64 -O -fomit-frame-pointer2018112720181123
28refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2018112720181123
28refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2018112720181123
28refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2018112720181123
28refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2018112720181123
28refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2018112720181123
28refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2018112720181123
30refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018112720181123
30refgcc -Os -fomit-frame-pointer2018112720181123
30refgcc -fno-schedule-insns -Os -fomit-frame-pointer2018112720181123
30refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2018112720181123
30refgcc -m64 -Os -fomit-frame-pointer2018112720181123
30refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2018112720181123
30refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2018112720181123
30refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2018112720181123
30refgcc -m64 -march=core2 -Os -fomit-frame-pointer2018112720181123
30refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2018112720181123
30refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2018112720181123
30refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2018112720181123
30refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2018112720181123
30refgcc -m64 -march=k8 -Os -fomit-frame-pointer2018112720181123
30refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2018112720181123
30refgcc -m64 -march=nocona -Os -fomit-frame-pointer2018112720181123
30refgcc -march=barcelona -Os -fomit-frame-pointer2018112720181123
30refgcc -march=k8 -Os -fomit-frame-pointer2018112720181123
30refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018112720181123
30refgcc -march=nocona -Os -fomit-frame-pointer2018112720181123
40refgcc2018112720181123
40refgcc -funroll-loops2018112720181123
42refcc2018112720181123

Compiler output

Implementation: crypto_verify/8/ref
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
try.c: fatal error: error in backend: Cannot select: 0x29a5fb0: v4i64 = X86ISD::VTRUNC 0x29a5de0
try.c: 0x29a5de0: v16i32 = vselect 0x29a2a20, 0x292e890, 0x29a5cb0
try.c: 0x29a2a20: v4i1 = X86ISD::PCMPGTM 0x298e890, 0x2923790
try.c: 0x298e890: v4i64 = X86ISD::VBROADCAST 0x2923b20
try.c: 0x2923b20: i64,ch = loadgt; 0x2888dd0, 0x29450b0, undef:i64
try.c: 0x29450b0: i64 = add 0x298f770, 0x291f680
try.c: 0x298f770: i64 = X86ISD::Wrapper TargetGlobalAddress:i64gt; 0
try.c: 0x2983450: i64 = TargetGlobalAddressgt; 0
try.c: 0x291f680: i64 = shl 0x2982c00, Constant:i8gt;
try.c: 0x2982c00: i64,ch = CopyFromReg 0x2888dd0, Register:i64 %vreg50
try.c: 0x298fc30: i64 = Register %vreg50
try.c: 0x2936af0: i8 = Constantgt;
try.c: 0x298cf00: i64 = undef
try.c: 0x2923790: v4i64,ch = CopyFromReg 0x2888dd0, Register:v4i64 %vreg13
try.c: 0x293a370: v4i64 = Register %vreg13
try.c: 0x292e890: v16i32 = X86ISD::VBROADCAST 0x2982e60
try.c: 0x2982e60: i32,ch = loadgt; 0x2888dd0, 0x29a5920, undef:i64
try.c: 0x29a5920: i64 = X86ISD::Wrapper TargetConstantPool:i64gt; 0
try.c: 0x2925550: i64 = TargetConstantPoolgt; 0
try.c: 0x298cf00: i64 = undef
try.c: 0x29a5cb0: v16i32 = BUILD_VECTOR Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;
try.c: 0x29a5b80: i32 = Constantgt;
try.c: 0x29a5b80: i32 = Constantgt;
try.c: 0x29a5b80: i32 = Constantgt;
try.c: 0x29a5b80: i32 = Constantgt;
try.c: ...

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

Compiler output

Implementation: crypto_verify/8/ref
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: fatal error: error in backend: Cannot select: 0x1721fc0: v4i64 = X86ISD::VTRUNC 0x1721df0
try.c: 0x1721df0: v16i32 = vselect 0x1728bf0, 0x16a30b0, 0x1721cc0
try.c: 0x1728bf0: v4i1 = X86ISD::PCMPGTM 0x170c8c0, 0x16a4f90
try.c: 0x170c8c0: v4i64 = X86ISD::VBROADCAST 0x16a5320
try.c: 0x16a5320: i64,ch = loadgt; 0x1606dd0, 0x16ec160, undef:i64
try.c: 0x16ec160: i64 = add 0x170d7a0, 0x169f8a0
try.c: 0x170d7a0: i64 = X86ISD::Wrapper TargetGlobalAddress:i64gt; 0
try.c: 0x16fb650: i64 = TargetGlobalAddressgt; 0
try.c: 0x169f8a0: i64 = shl 0x16fae00, Constant:i8gt;
try.c: 0x16fae00: i64,ch = CopyFromReg 0x1606dd0, Register:i64 %vreg50
try.c: 0x170dc60: i64 = Register %vreg50
try.c: 0x1688a00: i8 = Constantgt;
try.c: 0x170af30: i64 = undef
try.c: 0x16a4f90: v4i64,ch = CopyFromReg 0x1606dd0, Register:v4i64 %vreg13
try.c: 0x16b9020: v4i64 = Register %vreg13
try.c: 0x16a30b0: v16i32 = X86ISD::VBROADCAST 0x16fb060
try.c: 0x16fb060: i32,ch = loadgt; 0x1606dd0, 0x1721930, undef:i64
try.c: 0x1721930: i64 = X86ISD::Wrapper TargetConstantPool:i64gt; 0
try.c: 0x16b6b40: i64 = TargetConstantPoolgt; 0
try.c: 0x170af30: i64 = undef
try.c: 0x1721cc0: v16i32 = BUILD_VECTOR Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;, Constant:i32gt;
try.c: 0x1721b90: i32 = Constantgt;
try.c: 0x1721b90: i32 = Constantgt;
try.c: 0x1721b90: i32 = Constantgt;
try.c: 0x1721b90: i32 = Constantgt;
try.c: ...

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