Implementation notes: amd64, cel02, crypto_aead/twine80n6t4clocv2

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: twine80n6t4clocv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
10238011085 0 028741 824 1888T:vpermgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1045849283 0 023549 824 1824T:vpermgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
11437810338 0 024837 824 1824T:vpermgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
11606011009 0 023348 792 1776T:vpermclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
1233968137 0 021128 800 1824T:vpermgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
9890286911 0 421197 824 1216T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
12107028112 0 425845 824 1280T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
15243007328 0 421820 816 1216T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
16883226002 0 419016 800 1216T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
18070846529 0 419516 792 1152T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
24462448144 0 423056 808 1152T:refclang_-mcpu=native_-O3_-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: 0x558d31bc2950: v4i64 = X86ISD::VTRUNC 0x558d31bc2820
try.c: 0x558d31bc2820: v16i32 = vselect 0x558d31bab290, 0x558d31b4c810, 0x558d31bc26f0
try.c: 0x558d31bab290: v4i1 = X86ISD::PCMPGTM 0x558d31b9f9b0, 0x558d31b9b540
try.c: 0x558d31b9f9b0: v4i64 = X86ISD::VBROADCAST 0x558d31b480c0
try.c: 0x558d31b480c0: i64,ch = load<LD8[%lsr.iv6971]> 0x558d31ab0950, 0x558d31b89750, undef:i64
try.c: 0x558d31b89750: i64,ch = CopyFromReg 0x558d31ab0950, Register:i64 %vreg50
try.c: 0x558d31b9b7a0: i64 = Register %vreg50
try.c: 0x558d31b4ae80: i64 = undef
try.c: 0x558d31b9b540: v4i64,ch = CopyFromReg 0x558d31ab0950, Register:v4i64 %vreg13
try.c: 0x558d31ba0200: v4i64 = Register %vreg13
try.c: 0x558d31b4c810: v16i32 = X86ISD::VBROADCAST 0x558d31b9fc10
try.c: 0x558d31b9fc10: i32,ch = load<LD4[ConstantPool]> 0x558d31ab0950, 0x558d31b476a0, undef:i64
try.c: 0x558d31b476a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x558d31b8a950: i64 = TargetConstantPool<i32 1> 0
try.c: 0x558d31b4ae80: i64 = undef
try.c: 0x558d31bc26f0: 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: 0x558d31bc25c0: i32 = Constant<0>
try.c: 0x558d31bc25c0: i32 = Constant<0>
try.c: 0x558d31bc25c0: i32 = Constant<0>
try.c: 0x558d31bc25c0: i32 = Constant<0>
try.c: 0x558d31bc25c0: i32 = Constant<0>
try.c: 0x558d31bc25c0: i32 = Constant<0>
try.c: 0x558d31bc25c0: i32 = Constant<0>
try.c: 0x558d31bc25c0: i32 = Constant<0>
try.c: 0x558d31bc25c0: 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: 0x555a0fc56d10: v4i64 = X86ISD::VTRUNC 0x555a0fc56be0
try.c: 0x555a0fc56be0: v16i32 = vselect 0x555a0fc516e0, 0x555a0fbd5d90, 0x555a0fc56ab0
try.c: 0x555a0fc516e0: v4i1 = X86ISD::PCMPGTM 0x555a0fc3c510, 0x555a0fc382e0
try.c: 0x555a0fc3c510: v4i64 = X86ISD::VBROADCAST 0x555a0fbd6250
try.c: 0x555a0fbd6250: i64,ch = load<LD8[%lsr.iv6971]> 0x555a0fb36a40, 0x555a0fbe7120, undef:i64
try.c: 0x555a0fbe7120: i64,ch = CopyFromReg 0x555a0fb36a40, Register:i64 %vreg50
try.c: 0x555a0fc38540: i64 = Register %vreg50
try.c: 0x555a0fbd9220: i64 = undef
try.c: 0x555a0fc382e0: v4i64,ch = CopyFromReg 0x555a0fb36a40, Register:v4i64 %vreg13
try.c: 0x555a0fc3cd60: v4i64 = Register %vreg13
try.c: 0x555a0fbd5d90: v16i32 = X86ISD::VBROADCAST 0x555a0fc3c770
try.c: 0x555a0fc3c770: i32,ch = load<LD4[ConstantPool]> 0x555a0fb36a40, 0x555a0fbdf550, undef:i64
try.c: 0x555a0fbdf550: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x555a0fbd9ba0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x555a0fbd9220: i64 = undef
try.c: 0x555a0fc56ab0: 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: 0x555a0fc56980: i32 = Constant<0>
try.c: 0x555a0fc56980: i32 = Constant<0>
try.c: 0x555a0fc56980: i32 = Constant<0>
try.c: 0x555a0fc56980: i32 = Constant<0>
try.c: 0x555a0fc56980: i32 = Constant<0>
try.c: 0x555a0fc56980: i32 = Constant<0>
try.c: 0x555a0fc56980: i32 = Constant<0>
try.c: 0x555a0fc56980: i32 = Constant<0>
try.c: 0x555a0fc56980: 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: 0x5638f0d8dfb0: v4i64 = X86ISD::VTRUNC 0x5638f0d8de80
try.c: 0x5638f0d8de80: v16i32 = vselect 0x5638f0d88980, 0x5638f0d4fab0, 0x5638f0d8dd50
try.c: 0x5638f0d88980: v4i1 = X86ISD::PCMPGTM 0x5638f0d87970, 0x5638f0d83500
try.c: 0x5638f0d87970: v4i64 = X86ISD::VBROADCAST 0x5638f0d4cc50
try.c: 0x5638f0d4cc50: i64,ch = load<LD8[%lsr.iv6971]> 0x5638f0c98930, 0x5638f0d72f20, undef:i64
try.c: 0x5638f0d72f20: i64,ch = CopyFromReg 0x5638f0c98930, Register:i64 %vreg50
try.c: 0x5638f0d83760: i64 = Register %vreg50
try.c: 0x5638f0d4e120: i64 = undef
try.c: 0x5638f0d83500: v4i64,ch = CopyFromReg 0x5638f0c98930, Register:v4i64 %vreg13
try.c: 0x5638f0d881c0: v4i64 = Register %vreg13
try.c: 0x5638f0d4fab0: v16i32 = X86ISD::VBROADCAST 0x5638f0d87bd0
try.c: 0x5638f0d87bd0: i32,ch = load<LD4[ConstantPool]> 0x5638f0c98930, 0x5638f0d2bc70, undef:i64
try.c: 0x5638f0d2bc70: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5638f0cf8b60: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5638f0d4e120: i64 = undef
try.c: 0x5638f0d8dd50: 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: 0x5638f0d8dc20: i32 = Constant<0>
try.c: 0x5638f0d8dc20: i32 = Constant<0>
try.c: 0x5638f0d8dc20: i32 = Constant<0>
try.c: 0x5638f0d8dc20: i32 = Constant<0>
try.c: 0x5638f0d8dc20: i32 = Constant<0>
try.c: 0x5638f0d8dc20: i32 = Constant<0>
try.c: 0x5638f0d8dc20: i32 = Constant<0>
try.c: 0x5638f0d8dc20: i32 = Constant<0>
try.c: 0x5638f0d8dc20: 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: 0x5642cae52430: v4i64 = X86ISD::VTRUNC 0x5642cae52300
try.c: 0x5642cae52300: v16i32 = vselect 0x5642cae56160, 0x5642cadf2080, 0x5642cae521d0
try.c: 0x5642cae56160: v4i1 = X86ISD::PCMPGTM 0x5642cae4a760, 0x5642cae462f0
try.c: 0x5642cae4a760: v4i64 = X86ISD::VBROADCAST 0x5642cadf4670
try.c: 0x5642cadf4670: i64,ch = load<LD8[%lsr.iv6971]> 0x5642cad5b950, 0x5642cae344d0, undef:i64
try.c: 0x5642cae344d0: i64,ch = CopyFromReg 0x5642cad5b950, Register:i64 %vreg50
try.c: 0x5642cae46550: i64 = Register %vreg50
try.c: 0x5642cadf06f0: i64 = undef
try.c: 0x5642cae462f0: v4i64,ch = CopyFromReg 0x5642cad5b950, Register:v4i64 %vreg13
try.c: 0x5642cae4afb0: v4i64 = Register %vreg13
try.c: 0x5642cadf2080: v16i32 = X86ISD::VBROADCAST 0x5642cae4a9c0
try.c: 0x5642cae4a9c0: i32,ch = load<LD4[ConstantPool]> 0x5642cad5b950, 0x5642cadf3c50, undef:i64
try.c: 0x5642cadf3c50: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5642cadf8380: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5642cadf06f0: i64 = undef
try.c: 0x5642cae521d0: 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: 0x5642cae520a0: i32 = Constant<0>
try.c: 0x5642cae520a0: i32 = Constant<0>
try.c: 0x5642cae520a0: i32 = Constant<0>
try.c: 0x5642cae520a0: i32 = Constant<0>
try.c: 0x5642cae520a0: i32 = Constant<0>
try.c: 0x5642cae520a0: i32 = Constant<0>
try.c: 0x5642cae520a0: i32 = Constant<0>
try.c: 0x5642cae520a0: i32 = Constant<0>
try.c: 0x5642cae520a0: 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: 0x564b863c0060: v4i64 = X86ISD::VTRUNC 0x564b863bff30
try.c: 0x564b863bff30: v16i32 = vselect 0x564b863b5330, 0x564b86344d30, 0x564b863bfe00
try.c: 0x564b863b5330: v4i1 = X86ISD::PCMPGTM 0x564b8639c720, 0x564b863982b0
try.c: 0x564b8639c720: v4i64 = X86ISD::VBROADCAST 0x564b863451f0
try.c: 0x564b863451f0: i64,ch = load<LD8[%lsr.iv6971]> 0x564b86295a30, 0x564b86349100, undef:i64
try.c: 0x564b86349100: i64,ch = CopyFromReg 0x564b86295a30, Register:i64 %vreg50
try.c: 0x564b86398510: i64 = Register %vreg50
try.c: 0x564b86330660: i64 = undef
try.c: 0x564b863982b0: v4i64,ch = CopyFromReg 0x564b86295a30, Register:v4i64 %vreg13
try.c: 0x564b8639cf70: v4i64 = Register %vreg13
try.c: 0x564b86344d30: v16i32 = X86ISD::VBROADCAST 0x564b8639c980
try.c: 0x564b8639c980: i32,ch = load<LD4[ConstantPool]> 0x564b86295a30, 0x564b863476d0, undef:i64
try.c: 0x564b863476d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x564b86330fe0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x564b86330660: i64 = undef
try.c: 0x564b863bfe00: 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: 0x564b863bfcd0: i32 = Constant<0>
try.c: 0x564b863bfcd0: i32 = Constant<0>
try.c: 0x564b863bfcd0: i32 = Constant<0>
try.c: 0x564b863bfcd0: i32 = Constant<0>
try.c: 0x564b863bfcd0: i32 = Constant<0>
try.c: 0x564b863bfcd0: i32 = Constant<0>
try.c: 0x564b863bfcd0: i32 = Constant<0>
try.c: 0x564b863bfcd0: i32 = Constant<0>
try.c: 0x564b863bfcd0: 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: 0x559f25db5ae0: v4i64 = X86ISD::VTRUNC 0x559f25db59b0
try.c: 0x559f25db59b0: v16i32 = vselect 0x559f25dcd450, 0x559f25d54920, 0x559f25db5880
try.c: 0x559f25dcd450: v4i1 = X86ISD::PCMPGTM 0x559f25dac9b0, 0x559f25da8540
try.c: 0x559f25dac9b0: v4i64 = X86ISD::VBROADCAST 0x559f25d4d270
try.c: 0x559f25d4d270: i64,ch = load<LD8[%lsr.iv6971]> 0x559f25cbd940, 0x559f25d9a280, undef:i64
try.c: 0x559f25d9a280: i64,ch = CopyFromReg 0x559f25cbd940, Register:i64 %vreg50
try.c: 0x559f25da87a0: i64 = Register %vreg50
try.c: 0x559f25d52f90: i64 = undef
try.c: 0x559f25da8540: v4i64,ch = CopyFromReg 0x559f25cbd940, Register:v4i64 %vreg13
try.c: 0x559f25dad200: v4i64 = Register %vreg13
try.c: 0x559f25d54920: v16i32 = X86ISD::VBROADCAST 0x559f25dacc10
try.c: 0x559f25dacc10: i32,ch = load<LD4[ConstantPool]> 0x559f25cbd940, 0x559f25d4c850, undef:i64
try.c: 0x559f25d4c850: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x559f25d6aef0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x559f25d52f90: i64 = undef
try.c: 0x559f25db5880: 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: 0x559f25db5750: i32 = Constant<0>
try.c: 0x559f25db5750: i32 = Constant<0>
try.c: 0x559f25db5750: i32 = Constant<0>
try.c: 0x559f25db5750: i32 = Constant<0>
try.c: 0x559f25db5750: i32 = Constant<0>
try.c: 0x559f25db5750: i32 = Constant<0>
try.c: 0x559f25db5750: i32 = Constant<0>
try.c: 0x559f25db5750: i32 = Constant<0>
try.c: 0x559f25db5750: 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
encrypt.c: In file included from encrypt.c:3:
encrypt.c: ./twine.h:227:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'Encode' that is compiled without support for 'ssse3'
encrypt.c: word state = LOADS(text);
encrypt.c: ^
encrypt.c: ./twine.h:76:26: note: expanded from macro 'LOADS'
encrypt.c: #define LOADS(p) SHUFFLE4(LOAD64(p)) /* load 64-bit word from memory address p, and shuffle it */
encrypt.c: ^
encrypt.c: ./twine.h:81:3: note: expanded from macro 'SHUFFLE4'
encrypt.c: _mm_shuffle_epi8(MASK4L(x), _mm_set_epi8(7, -1, 6, -1, 5, -1, 4, -1, 3, -1, 2, -1, 1, -1, 0, -1)), \
encrypt.c: ^
encrypt.c: ./twine.h:227:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'Encode' that is compiled without support for 'ssse3'
encrypt.c: ./twine.h:76:26: note: expanded from macro 'LOADS'
encrypt.c: #define LOADS(p) SHUFFLE4(LOAD64(p)) /* load 64-bit word from memory address p, and shuffle it */
encrypt.c: ^
encrypt.c: ./twine.h:82:3: note: expanded from macro 'SHUFFLE4'
encrypt.c: _mm_shuffle_epi8(SHR4(MASK4U(x)), _mm_set_epi8(-1, 7, -1, 6, -1, 5, -1, 4, -1, 3, -1, 2, -1, 1, -1, 0)))
encrypt.c: ^
encrypt.c: ./twine.h:228:2: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'Encode' that is compiled without support for 'ssse3'
encrypt.c: twine80_enc(state);
encrypt.c: ^
encrypt.c: ./twine.h:163:9: note: expanded from macro 'twine80_enc'
encrypt.c: left = PSHUFB(state, left); \
encrypt.c: ^
encrypt.c: ./twine.h:70:25: note: expanded from macro 'PSHUFB'
encrypt.c: #define PSHUFB(s,x) _mm_shuffle_epi8((s), (x)) /* return s(x) */
encrypt.c: ...

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