Implementation notes: amd64, cel02, crypto_decode/761xint16

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_decode
Primitive: 761xint16
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
6664 0 09428 792 728littleclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
10261 0 09304 800 768littlegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
108158 0 013829 824 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
114105 0 010492 816 768littlegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
140106 0 010244 816 768littlegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
200105 0 013781 824 800littlegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
23464 0 011274 800 728littleclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
92678 0 010460 816 768refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
156885 0 010212 816 768refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
177280 0 09428 792 728refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
179871 0 09288 800 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
308893 0 011290 800 728refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: little
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x5625d126e290: v4i64 = X86ISD::VTRUNC 0x5625d126e160
try.c: 0x5625d126e160: v16i32 = vselect 0x5625d125ad70, 0x5625d11fa220, 0x5625d126e030
try.c: 0x5625d125ad70: v4i1 = X86ISD::PCMPGTM 0x5625d1252900, 0x5625d124e490
try.c: 0x5625d1252900: v4i64 = X86ISD::VBROADCAST 0x5625d11f61d0
try.c: 0x5625d11f61d0: i64,ch = load<LD8[%lsr.iv6971]> 0x5625d1163950, 0x5625d12492f0, undef:i64
try.c: 0x5625d12492f0: i64,ch = CopyFromReg 0x5625d1163950, Register:i64 %vreg50
try.c: 0x5625d124e6f0: i64 = Register %vreg50
try.c: 0x5625d11f8890: i64 = undef
try.c: 0x5625d124e490: v4i64,ch = CopyFromReg 0x5625d1163950, Register:v4i64 %vreg13
try.c: 0x5625d1253150: v4i64 = Register %vreg13
try.c: 0x5625d11fa220: v16i32 = X86ISD::VBROADCAST 0x5625d1252b60
try.c: 0x5625d1252b60: i32,ch = load<LD4[ConstantPool]> 0x5625d1163950, 0x5625d11f57b0, undef:i64
try.c: 0x5625d11f57b0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5625d12108b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5625d11f8890: i64 = undef
try.c: 0x5625d126e030: 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: 0x5625d126df00: i32 = Constant<0>
try.c: 0x5625d126df00: i32 = Constant<0>
try.c: 0x5625d126df00: i32 = Constant<0>
try.c: 0x5625d126df00: i32 = Constant<0>
try.c: 0x5625d126df00: i32 = Constant<0>
try.c: 0x5625d126df00: i32 = Constant<0>
try.c: 0x5625d126df00: i32 = Constant<0>
try.c: 0x5625d126df00: i32 = Constant<0>
try.c: 0x5625d126df00: 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 little

Compiler output

Implementation: little
Security model: constbranchindex
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55ff399492f0: v4i64 = X86ISD::VTRUNC 0x55ff399491c0
try.c: 0x55ff399491c0: v16i32 = vselect 0x55ff39937870, 0x55ff398b8290, 0x55ff39949090
try.c: 0x55ff39937870: v4i1 = X86ISD::PCMPGTM 0x55ff399248a0, 0x55ff39920430
try.c: 0x55ff399248a0: v4i64 = X86ISD::VBROADCAST 0x55ff398b8750
try.c: 0x55ff398b8750: i64,ch = load<LD8[%lsr.iv6971]> 0x55ff3981da30, 0x55ff398cf2f0, undef:i64
try.c: 0x55ff398cf2f0: i64,ch = CopyFromReg 0x55ff3981da30, Register:i64 %vreg50
try.c: 0x55ff39920690: i64 = Register %vreg50
try.c: 0x55ff398bfa10: i64 = undef
try.c: 0x55ff39920430: v4i64,ch = CopyFromReg 0x55ff3981da30, Register:v4i64 %vreg13
try.c: 0x55ff399250f0: v4i64 = Register %vreg13
try.c: 0x55ff398b8290: v16i32 = X86ISD::VBROADCAST 0x55ff39924b00
try.c: 0x55ff39924b00: i32,ch = load<LD4[ConstantPool]> 0x55ff3981da30, 0x55ff398cd0b0, undef:i64
try.c: 0x55ff398cd0b0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ff398c0390: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ff398bfa10: i64 = undef
try.c: 0x55ff39949090: 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: 0x55ff39948f60: i32 = Constant<0>
try.c: 0x55ff39948f60: i32 = Constant<0>
try.c: 0x55ff39948f60: i32 = Constant<0>
try.c: 0x55ff39948f60: i32 = Constant<0>
try.c: 0x55ff39948f60: i32 = Constant<0>
try.c: 0x55ff39948f60: i32 = Constant<0>
try.c: 0x55ff39948f60: i32 = Constant<0>
try.c: 0x55ff39948f60: i32 = Constant<0>
try.c: 0x55ff39948f60: 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 little

Compiler output

Implementation: little
Security model: constbranchindex
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x558461431160: v4i64 = X86ISD::VTRUNC 0x558461431030
try.c: 0x558461431030: v16i32 = vselect 0x5584614442a0, 0x5584613e0cd0, 0x558461430f00
try.c: 0x5584614442a0: v4i1 = X86ISD::PCMPGTM 0x55846142a710, 0x5584614262a0
try.c: 0x55846142a710: v4i64 = X86ISD::VBROADCAST 0x5584613cd540
try.c: 0x5584613cd540: i64,ch = load<LD8[%lsr.iv6971]> 0x55846133b950, 0x55846140fb90, undef:i64
try.c: 0x55846140fb90: i64,ch = CopyFromReg 0x55846133b950, Register:i64 %vreg50
try.c: 0x558461426500: i64 = Register %vreg50
try.c: 0x5584613cea10: i64 = undef
try.c: 0x5584614262a0: v4i64,ch = CopyFromReg 0x55846133b950, Register:v4i64 %vreg13
try.c: 0x55846142af60: v4i64 = Register %vreg13
try.c: 0x5584613e0cd0: v16i32 = X86ISD::VBROADCAST 0x55846142a970
try.c: 0x55846142a970: i32,ch = load<LD4[ConstantPool]> 0x55846133b950, 0x5584613c7120, undef:i64
try.c: 0x5584613c7120: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5584613cac20: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5584613cea10: i64 = undef
try.c: 0x558461430f00: 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: 0x558461430dd0: i32 = Constant<0>
try.c: 0x558461430dd0: i32 = Constant<0>
try.c: 0x558461430dd0: i32 = Constant<0>
try.c: 0x558461430dd0: i32 = Constant<0>
try.c: 0x558461430dd0: i32 = Constant<0>
try.c: 0x558461430dd0: i32 = Constant<0>
try.c: 0x558461430dd0: i32 = Constant<0>
try.c: 0x558461430dd0: i32 = Constant<0>
try.c: 0x558461430dd0: 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 little

Compiler output

Implementation: ref
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55959f249310: v4i64 = X86ISD::VTRUNC 0x55959f2491e0
try.c: 0x55959f2491e0: v16i32 = vselect 0x55959f245cf0, 0x55959f1e18f0, 0x55959f2490b0
try.c: 0x55959f245cf0: v4i1 = X86ISD::PCMPGTM 0x55959f2410c0, 0x55959f23cc50
try.c: 0x55959f2410c0: v4i64 = X86ISD::VBROADCAST 0x55959f206ac0
try.c: 0x55959f206ac0: i64,ch = load<LD8[%lsr.iv6971]> 0x55959f1519d0, 0x55959f234640, undef:i64
try.c: 0x55959f234640: i64,ch = CopyFromReg 0x55959f1519d0, Register:i64 %vreg50
try.c: 0x55959f23ceb0: i64 = Register %vreg50
try.c: 0x55959f207f90: i64 = undef
try.c: 0x55959f23cc50: v4i64,ch = CopyFromReg 0x55959f1519d0, Register:v4i64 %vreg13
try.c: 0x55959f241910: v4i64 = Register %vreg13
try.c: 0x55959f1e18f0: v16i32 = X86ISD::VBROADCAST 0x55959f241320
try.c: 0x55959f241320: i32,ch = load<LD4[ConstantPool]> 0x55959f1519d0, 0x55959f1eb880, undef:i64
try.c: 0x55959f1eb880: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55959f226a20: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55959f207f90: i64 = undef
try.c: 0x55959f2490b0: 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: 0x55959f248f80: i32 = Constant<0>
try.c: 0x55959f248f80: i32 = Constant<0>
try.c: 0x55959f248f80: i32 = Constant<0>
try.c: 0x55959f248f80: i32 = Constant<0>
try.c: 0x55959f248f80: i32 = Constant<0>
try.c: 0x55959f248f80: i32 = Constant<0>
try.c: 0x55959f248f80: i32 = Constant<0>
try.c: 0x55959f248f80: i32 = Constant<0>
try.c: 0x55959f248f80: 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 ref

Compiler output

Implementation: ref
Security model: constbranchindex
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55cf511ef6f0: v4i64 = X86ISD::VTRUNC 0x55cf511ef5c0
try.c: 0x55cf511ef5c0: v16i32 = vselect 0x55cf511f49e0, 0x55cf5116acb0, 0x55cf511ef490
try.c: 0x55cf511f49e0: v4i1 = X86ISD::PCMPGTM 0x55cf511d5530, 0x55cf511d20d0
try.c: 0x55cf511d5530: v4i64 = X86ISD::VBROADCAST 0x55cf5116b170
try.c: 0x55cf5116b170: i64,ch = load<LD8[%lsr.iv6971]> 0x55cf510cfa30, 0x55cf51178520, undef:i64
try.c: 0x55cf51178520: i64,ch = CopyFromReg 0x55cf510cfa30, Register:i64 %vreg50
try.c: 0x55cf511d2330: i64 = Register %vreg50
try.c: 0x55cf51155710: i64 = undef
try.c: 0x55cf511d20d0: v4i64,ch = CopyFromReg 0x55cf510cfa30, Register:v4i64 %vreg13
try.c: 0x55cf511d5d80: v4i64 = Register %vreg13
try.c: 0x55cf5116acb0: v16i32 = X86ISD::VBROADCAST 0x55cf511d5790
try.c: 0x55cf511d5790: i32,ch = load<LD4[ConstantPool]> 0x55cf510cfa30, 0x55cf51176af0, undef:i64
try.c: 0x55cf51176af0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55cf51156090: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55cf51155710: i64 = undef
try.c: 0x55cf511ef490: 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: 0x55cf511ef360: i32 = Constant<0>
try.c: 0x55cf511ef360: i32 = Constant<0>
try.c: 0x55cf511ef360: i32 = Constant<0>
try.c: 0x55cf511ef360: i32 = Constant<0>
try.c: 0x55cf511ef360: i32 = Constant<0>
try.c: 0x55cf511ef360: i32 = Constant<0>
try.c: 0x55cf511ef360: i32 = Constant<0>
try.c: 0x55cf511ef360: i32 = Constant<0>
try.c: 0x55cf511ef360: 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 ref

Compiler output

Implementation: ref
Security model: constbranchindex
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x562a121cb000: v4i64 = X86ISD::VTRUNC 0x562a121caed0
try.c: 0x562a121caed0: v16i32 = vselect 0x562a121b6ae0, 0x562a12155640, 0x562a121cada0
try.c: 0x562a121b6ae0: v4i1 = X86ISD::PCMPGTM 0x562a121b0680, 0x562a121ac210
try.c: 0x562a121b0680: v4i64 = X86ISD::VBROADCAST 0x562a1215e710
try.c: 0x562a1215e710: i64,ch = load<LD8[%lsr.iv6971]> 0x562a120c1950, 0x562a121a7070, undef:i64
try.c: 0x562a121a7070: i64,ch = CopyFromReg 0x562a120c1950, Register:i64 %vreg50
try.c: 0x562a121ac470: i64 = Register %vreg50
try.c: 0x562a12153cb0: i64 = undef
try.c: 0x562a121ac210: v4i64,ch = CopyFromReg 0x562a120c1950, Register:v4i64 %vreg13
try.c: 0x562a121b0ed0: v4i64 = Register %vreg13
try.c: 0x562a12155640: v16i32 = X86ISD::VBROADCAST 0x562a121b08e0
try.c: 0x562a121b08e0: i32,ch = load<LD4[ConstantPool]> 0x562a120c1950, 0x562a1215dcf0, undef:i64
try.c: 0x562a1215dcf0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x562a12196470: i64 = TargetConstantPool<i32 1> 0
try.c: 0x562a12153cb0: i64 = undef
try.c: 0x562a121cada0: 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: 0x562a121cac70: i32 = Constant<0>
try.c: 0x562a121cac70: i32 = Constant<0>
try.c: 0x562a121cac70: i32 = Constant<0>
try.c: 0x562a121cac70: i32 = Constant<0>
try.c: 0x562a121cac70: i32 = Constant<0>
try.c: 0x562a121cac70: i32 = Constant<0>
try.c: 0x562a121cac70: i32 = Constant<0>
try.c: 0x562a121cac70: i32 = Constant<0>
try.c: 0x562a121cac70: 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 ref