Implementation notes: amd64, cel02, crypto_aead/twine80n6t4clocv3

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: twine80n6t4clocv3
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
920987022 0 024685 824 1872T:vpermgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
957747474 0 019972 792 1760T:vpermclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
982124529 0 018805 824 1808T:vpermgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1136504663 0 019165 824 1808T:vpermgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1209143949 0 016952 800 1808T:vpermgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
8127747368 0 421860 816 1216T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
16192226943 0 421229 824 1216T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
16724766027 0 419048 800 1216T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
18969708214 0 423120 808 1152T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
21547128149 0 425893 824 1280T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
25229346564 0 419548 792 1152T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-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: 0x562d629aa0d0: v4i64 = X86ISD::VTRUNC 0x562d629a9fa0
try.c: 0x562d629a9fa0: v16i32 = vselect 0x562d629963c0, 0x562d62930d50, 0x562d629a9e70
try.c: 0x562d629963c0: v4i1 = X86ISD::PCMPGTM 0x562d62990760, 0x562d6298c2f0
try.c: 0x562d62990760: v4i64 = X86ISD::VBROADCAST 0x562d62939080
try.c: 0x562d62939080: i64,ch = load<LD8[%lsr.iv6971]> 0x562d628a1950, 0x562d6297b440, undef:i64
try.c: 0x562d6297b440: i64,ch = CopyFromReg 0x562d628a1950, Register:i64 %vreg50
try.c: 0x562d6298c550: i64 = Register %vreg50
try.c: 0x562d6292f3c0: i64 = undef
try.c: 0x562d6298c2f0: v4i64,ch = CopyFromReg 0x562d628a1950, Register:v4i64 %vreg13
try.c: 0x562d62990fb0: v4i64 = Register %vreg13
try.c: 0x562d62930d50: v16i32 = X86ISD::VBROADCAST 0x562d629909c0
try.c: 0x562d629909c0: i32,ch = load<LD4[ConstantPool]> 0x562d628a1950, 0x562d62938660, undef:i64
try.c: 0x562d62938660: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x562d629760e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x562d6292f3c0: i64 = undef
try.c: 0x562d629a9e70: 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: 0x562d629a9d40: i32 = Constant<0>
try.c: 0x562d629a9d40: i32 = Constant<0>
try.c: 0x562d629a9d40: i32 = Constant<0>
try.c: 0x562d629a9d40: i32 = Constant<0>
try.c: 0x562d629a9d40: i32 = Constant<0>
try.c: 0x562d629a9d40: i32 = Constant<0>
try.c: 0x562d629a9d40: i32 = Constant<0>
try.c: 0x562d629a9d40: i32 = Constant<0>
try.c: 0x562d629a9d40: 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: 0x557f4536ddf0: v4i64 = X86ISD::VTRUNC 0x557f4536dcc0
try.c: 0x557f4536dcc0: v16i32 = vselect 0x557f45361af0, 0x557f452ddec0, 0x557f4536db90
try.c: 0x557f45361af0: v4i1 = X86ISD::PCMPGTM 0x557f45349f80, 0x557f45345b10
try.c: 0x557f45349f80: v4i64 = X86ISD::VBROADCAST 0x557f452de380
try.c: 0x557f452de380: i64,ch = load<LD8[%lsr.iv6971]> 0x557f45243a30, 0x557f452f43c0, undef:i64
try.c: 0x557f452f43c0: i64,ch = CopyFromReg 0x557f45243a30, Register:i64 %vreg50
try.c: 0x557f45345d70: i64 = Register %vreg50
try.c: 0x557f452e6e60: i64 = undef
try.c: 0x557f45345b10: v4i64,ch = CopyFromReg 0x557f45243a30, Register:v4i64 %vreg13
try.c: 0x557f4534a7d0: v4i64 = Register %vreg13
try.c: 0x557f452ddec0: v16i32 = X86ISD::VBROADCAST 0x557f4534a1e0
try.c: 0x557f4534a1e0: i32,ch = load<LD4[ConstantPool]> 0x557f45243a30, 0x557f452e0860, undef:i64
try.c: 0x557f452e0860: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x557f452e77e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x557f452e6e60: i64 = undef
try.c: 0x557f4536db90: 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: 0x557f4536da60: i32 = Constant<0>
try.c: 0x557f4536da60: i32 = Constant<0>
try.c: 0x557f4536da60: i32 = Constant<0>
try.c: 0x557f4536da60: i32 = Constant<0>
try.c: 0x557f4536da60: i32 = Constant<0>
try.c: 0x557f4536da60: i32 = Constant<0>
try.c: 0x557f4536da60: i32 = Constant<0>
try.c: 0x557f4536da60: i32 = Constant<0>
try.c: 0x557f4536da60: 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: 0x55bcfe06e290: v4i64 = X86ISD::VTRUNC 0x55bcfe06e160
try.c: 0x55bcfe06e160: v16i32 = vselect 0x55bcfe05ad70, 0x55bcfdffa220, 0x55bcfe06e030
try.c: 0x55bcfe05ad70: v4i1 = X86ISD::PCMPGTM 0x55bcfe052900, 0x55bcfe04e490
try.c: 0x55bcfe052900: v4i64 = X86ISD::VBROADCAST 0x55bcfdff61d0
try.c: 0x55bcfdff61d0: i64,ch = load<LD8[%lsr.iv6971]> 0x55bcfdf63950, 0x55bcfe0492f0, undef:i64
try.c: 0x55bcfe0492f0: i64,ch = CopyFromReg 0x55bcfdf63950, Register:i64 %vreg50
try.c: 0x55bcfe04e6f0: i64 = Register %vreg50
try.c: 0x55bcfdff8890: i64 = undef
try.c: 0x55bcfe04e490: v4i64,ch = CopyFromReg 0x55bcfdf63950, Register:v4i64 %vreg13
try.c: 0x55bcfe053150: v4i64 = Register %vreg13
try.c: 0x55bcfdffa220: v16i32 = X86ISD::VBROADCAST 0x55bcfe052b60
try.c: 0x55bcfe052b60: i32,ch = load<LD4[ConstantPool]> 0x55bcfdf63950, 0x55bcfdff57b0, undef:i64
try.c: 0x55bcfdff57b0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55bcfe0108b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55bcfdff8890: i64 = undef
try.c: 0x55bcfe06e030: 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: 0x55bcfe06df00: i32 = Constant<0>
try.c: 0x55bcfe06df00: i32 = Constant<0>
try.c: 0x55bcfe06df00: i32 = Constant<0>
try.c: 0x55bcfe06df00: i32 = Constant<0>
try.c: 0x55bcfe06df00: i32 = Constant<0>
try.c: 0x55bcfe06df00: i32 = Constant<0>
try.c: 0x55bcfe06df00: i32 = Constant<0>
try.c: 0x55bcfe06df00: i32 = Constant<0>
try.c: 0x55bcfe06df00: 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:vperm
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: 0x560a4f1801d0: v4i64 = X86ISD::VTRUNC 0x560a4f1800a0
try.c: 0x560a4f1800a0: v16i32 = vselect 0x560a4f17cbb0, 0x560a4f1010e0, 0x560a4f17ff70
try.c: 0x560a4f17cbb0: v4i1 = X86ISD::PCMPGTM 0x560a4f15ca00, 0x560a4f158590
try.c: 0x560a4f15ca00: v4i64 = X86ISD::VBROADCAST 0x560a4f0fd490
try.c: 0x560a4f0fd490: i64,ch = load<LD8[%lsr.iv6971]> 0x560a4f06d930, 0x560a4f1533f0, undef:i64
try.c: 0x560a4f1533f0: i64,ch = CopyFromReg 0x560a4f06d930, Register:i64 %vreg50
try.c: 0x560a4f1587f0: i64 = Register %vreg50
try.c: 0x560a4f0fe960: i64 = undef
try.c: 0x560a4f158590: v4i64,ch = CopyFromReg 0x560a4f06d930, Register:v4i64 %vreg13
try.c: 0x560a4f15d250: v4i64 = Register %vreg13
try.c: 0x560a4f1010e0: v16i32 = X86ISD::VBROADCAST 0x560a4f15cc60
try.c: 0x560a4f15cc60: i32,ch = load<LD4[ConstantPool]> 0x560a4f06d930, 0x560a4f104970, undef:i64
try.c: 0x560a4f104970: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560a4f0d3190: i64 = TargetConstantPool<i32 1> 0
try.c: 0x560a4f0fe960: i64 = undef
try.c: 0x560a4f17ff70: 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: 0x560a4f17fe40: i32 = Constant<0>
try.c: 0x560a4f17fe40: i32 = Constant<0>
try.c: 0x560a4f17fe40: i32 = Constant<0>
try.c: 0x560a4f17fe40: i32 = Constant<0>
try.c: 0x560a4f17fe40: i32 = Constant<0>
try.c: 0x560a4f17fe40: i32 = Constant<0>
try.c: 0x560a4f17fe40: i32 = Constant<0>
try.c: 0x560a4f17fe40: i32 = Constant<0>
try.c: 0x560a4f17fe40: 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:vperm

Compiler output

Implementation: T:vperm
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: 0x55850f3ff160: v4i64 = X86ISD::VTRUNC 0x55850f3ff030
try.c: 0x55850f3ff030: v16i32 = vselect 0x55850f3f1710, 0x55850f377670, 0x55850f3fef00
try.c: 0x55850f3f1710: v4i1 = X86ISD::PCMPGTM 0x55850f3da3b0, 0x55850f3d76c0
try.c: 0x55850f3da3b0: v4i64 = X86ISD::VBROADCAST 0x55850f377b30
try.c: 0x55850f377b30: i64,ch = load<LD8[%lsr.iv6971]> 0x55850f2d4a20, 0x55850f37da80, undef:i64
try.c: 0x55850f37da80: i64,ch = CopyFromReg 0x55850f2d4a20, Register:i64 %vreg50
try.c: 0x55850f3d7920: i64 = Register %vreg50
try.c: 0x55850f389370: i64 = undef
try.c: 0x55850f3d76c0: v4i64,ch = CopyFromReg 0x55850f2d4a20, Register:v4i64 %vreg13
try.c: 0x55850f3dac00: v4i64 = Register %vreg13
try.c: 0x55850f377670: v16i32 = X86ISD::VBROADCAST 0x55850f3da610
try.c: 0x55850f3da610: i32,ch = load<LD4[ConstantPool]> 0x55850f2d4a20, 0x55850f37b840, undef:i64
try.c: 0x55850f37b840: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55850f389cf0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55850f389370: i64 = undef
try.c: 0x55850f3fef00: 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: 0x55850f3fedd0: i32 = Constant<0>
try.c: 0x55850f3fedd0: i32 = Constant<0>
try.c: 0x55850f3fedd0: i32 = Constant<0>
try.c: 0x55850f3fedd0: i32 = Constant<0>
try.c: 0x55850f3fedd0: i32 = Constant<0>
try.c: 0x55850f3fedd0: i32 = Constant<0>
try.c: 0x55850f3fedd0: i32 = Constant<0>
try.c: 0x55850f3fedd0: i32 = Constant<0>
try.c: 0x55850f3fedd0: 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:vperm

Compiler output

Implementation: T:vperm
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: 0x555ce50422d0: v4i64 = X86ISD::VTRUNC 0x555ce50421a0
try.c: 0x555ce50421a0: v16i32 = vselect 0x555ce503ecb0, 0x555ce4fd0910, 0x555ce5042070
try.c: 0x555ce503ecb0: v4i1 = X86ISD::PCMPGTM 0x555ce5028af0, 0x555ce5024680
try.c: 0x555ce5028af0: v4i64 = X86ISD::VBROADCAST 0x555ce4fc6080
try.c: 0x555ce4fc6080: i64,ch = load<LD8[%lsr.iv6971]> 0x555ce4f39950, 0x555ce501f4e0, undef:i64
try.c: 0x555ce501f4e0: i64,ch = CopyFromReg 0x555ce4f39950, Register:i64 %vreg50
try.c: 0x555ce50248e0: i64 = Register %vreg50
try.c: 0x555ce4fcef80: i64 = undef
try.c: 0x555ce5024680: v4i64,ch = CopyFromReg 0x555ce4f39950, Register:v4i64 %vreg13
try.c: 0x555ce5029340: v4i64 = Register %vreg13
try.c: 0x555ce4fd0910: v16i32 = X86ISD::VBROADCAST 0x555ce5028d50
try.c: 0x555ce5028d50: i32,ch = load<LD4[ConstantPool]> 0x555ce4f39950, 0x555ce4fc5660, undef:i64
try.c: 0x555ce4fc5660: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x555ce4fe64d0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x555ce4fcef80: i64 = undef
try.c: 0x555ce5042070: 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: 0x555ce5041f40: i32 = Constant<0>
try.c: 0x555ce5041f40: i32 = Constant<0>
try.c: 0x555ce5041f40: i32 = Constant<0>
try.c: 0x555ce5041f40: i32 = Constant<0>
try.c: 0x555ce5041f40: i32 = Constant<0>
try.c: 0x555ce5041f40: i32 = Constant<0>
try.c: 0x555ce5041f40: i32 = Constant<0>
try.c: 0x555ce5041f40: i32 = Constant<0>
try.c: 0x555ce5041f40: 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:vperm

Compiler output

Implementation: T:vperm
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
cloc.c: In file included from cloc.c:7:
cloc.c: ./twine.h:48:9: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'TWINE80_enc' that is compiled without support for 'ssse3'
cloc.c: tmp = PSHUFB(lsbox, tmp);
cloc.c: ^
cloc.c: ./common.h:42:22: note: expanded from macro 'PSHUFB'
cloc.c: #define PSHUFB(s, x) _mm_shuffle_epi8((s), (x)) /*return s(x)*/
cloc.c: ^
cloc.c: In file included from cloc.c:7:
cloc.c: ./twine.h:51:10: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'TWINE80_enc' that is compiled without support for 'ssse3'
cloc.c: left = PSHUFB(left, tmp);
cloc.c: ^
cloc.c: ./common.h:42:22: note: expanded from macro 'PSHUFB'
cloc.c: #define PSHUFB(s, x) _mm_shuffle_epi8((s), (x)) /*return s(x)*/
cloc.c: ^
cloc.c: In file included from cloc.c:7:
cloc.c: ./twine.h:54:9: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'TWINE80_enc' that is compiled without support for 'ssse3'
cloc.c: tmp = PSHUFB(lsbox, tmp);
cloc.c: ^
cloc.c: ./common.h:42:22: note: expanded from macro 'PSHUFB'
cloc.c: #define PSHUFB(s, x) _mm_shuffle_epi8((s), (x)) /*return s(x)*/
cloc.c: ^
cloc.c: In file included from cloc.c:7:
cloc.c: ./twine.h:57:11: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'TWINE80_enc' that is compiled without support for 'ssse3'
cloc.c: right = PSHUFB(right, tmp);
cloc.c: ^
cloc.c: ...

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