Implementation notes: amd64, cel02, crypto_aead/present80n6t4silcv3

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: present80n6t4silcv3
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
4362305215 752 018156 1552 1376T:vpermclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
5084725065 752 022789 1584 1472T:vpermgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
7649624704 752 019188 1576 1408T:vpermgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
12004084406 752 018644 1576 1408T:vpermgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
12430664008 752 017048 1560 1408T:vpermgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
249639742434 0 015340 792 856T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
289170002960 0 017364 816 896T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
486504322832 0 016972 816 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
503101984197 0 018962 800 856T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
507995324615 0 022343 832 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
701557402491 0 015424 800 896T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-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: 0x5577d5090190: v4i64 = X86ISD::VTRUNC 0x5577d5090060
try.c: 0x5577d5090060: v16i32 = vselect 0x5577d508cb70, 0x5577d50360b0, 0x5577d508ff30
try.c: 0x5577d508cb70: v4i1 = X86ISD::PCMPGTM 0x5577d50889f0, 0x5577d5084580
try.c: 0x5577d50889f0: v4i64 = X86ISD::VBROADCAST 0x5577d502c3f0
try.c: 0x5577d502c3f0: i64,ch = load<LD8[%lsr.iv6971]> 0x5577d4f99930, 0x5577d5030f00, undef:i64
try.c: 0x5577d5030f00: i64,ch = CopyFromReg 0x5577d4f99930, Register:i64 %vreg50
try.c: 0x5577d50847e0: i64 = Register %vreg50
try.c: 0x5577d5034720: i64 = undef
try.c: 0x5577d5084580: v4i64,ch = CopyFromReg 0x5577d4f99930, Register:v4i64 %vreg13
try.c: 0x5577d5089240: v4i64 = Register %vreg13
try.c: 0x5577d50360b0: v16i32 = X86ISD::VBROADCAST 0x5577d5088c50
try.c: 0x5577d5088c50: i32,ch = load<LD4[ConstantPool]> 0x5577d4f99930, 0x5577d502b9d0, undef:i64
try.c: 0x5577d502b9d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5577d5073bb0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5577d5034720: i64 = undef
try.c: 0x5577d508ff30: 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: 0x5577d508fe00: i32 = Constant<0>
try.c: 0x5577d508fe00: i32 = Constant<0>
try.c: 0x5577d508fe00: i32 = Constant<0>
try.c: 0x5577d508fe00: i32 = Constant<0>
try.c: 0x5577d508fe00: i32 = Constant<0>
try.c: 0x5577d508fe00: i32 = Constant<0>
try.c: 0x5577d508fe00: i32 = Constant<0>
try.c: 0x5577d508fe00: i32 = Constant<0>
try.c: 0x5577d508fe00: 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: 0x5579b30dc2e0: v4i64 = X86ISD::VTRUNC 0x5579b30dc1b0
try.c: 0x5579b30dc1b0: v16i32 = vselect 0x5579b30c88a0, 0x5579b306aef0, 0x5579b30dc080
try.c: 0x5579b30c88a0: v4i1 = X86ISD::PCMPGTM 0x5579b30d54e0, 0x5579b30d27f0
try.c: 0x5579b30d54e0: v4i64 = X86ISD::VBROADCAST 0x5579b306b3b0
try.c: 0x5579b306b3b0: i64,ch = load<LD8[%lsr.iv6971]> 0x5579b2fcfa30, 0x5579b3081400, undef:i64
try.c: 0x5579b3081400: i64,ch = CopyFromReg 0x5579b2fcfa30, Register:i64 %vreg50
try.c: 0x5579b30d2a50: i64 = Register %vreg50
try.c: 0x5579b30759f0: i64 = undef
try.c: 0x5579b30d27f0: v4i64,ch = CopyFromReg 0x5579b2fcfa30, Register:v4i64 %vreg13
try.c: 0x5579b30d5d30: v4i64 = Register %vreg13
try.c: 0x5579b306aef0: v16i32 = X86ISD::VBROADCAST 0x5579b30d5740
try.c: 0x5579b30d5740: i32,ch = load<LD4[ConstantPool]> 0x5579b2fcfa30, 0x5579b307f9d0, undef:i64
try.c: 0x5579b307f9d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5579b3076370: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5579b30759f0: i64 = undef
try.c: 0x5579b30dc080: 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: 0x5579b30dbf50: i32 = Constant<0>
try.c: 0x5579b30dbf50: i32 = Constant<0>
try.c: 0x5579b30dbf50: i32 = Constant<0>
try.c: 0x5579b30dbf50: i32 = Constant<0>
try.c: 0x5579b30dbf50: i32 = Constant<0>
try.c: 0x5579b30dbf50: i32 = Constant<0>
try.c: 0x5579b30dbf50: i32 = Constant<0>
try.c: 0x5579b30dbf50: i32 = Constant<0>
try.c: 0x5579b30dbf50: 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: 0x5593ec7cd390: v4i64 = X86ISD::VTRUNC 0x5593ec7cd260
try.c: 0x5593ec7cd260: v16i32 = vselect 0x5593ec7b9590, 0x5593ec75a350, 0x5593ec7cd130
try.c: 0x5593ec7b9590: v4i1 = X86ISD::PCMPGTM 0x5593ec7b2a10, 0x5593ec7ae5a0
try.c: 0x5593ec7b2a10: v4i64 = X86ISD::VBROADCAST 0x5593ec75cbd0
try.c: 0x5593ec75cbd0: i64,ch = load<LD8[%lsr.iv6971]> 0x5593ec6c3950, 0x5593ec797e40, undef:i64
try.c: 0x5593ec797e40: i64,ch = CopyFromReg 0x5593ec6c3950, Register:i64 %vreg50
try.c: 0x5593ec7ae800: i64 = Register %vreg50
try.c: 0x5593ec7589c0: i64 = undef
try.c: 0x5593ec7ae5a0: v4i64,ch = CopyFromReg 0x5593ec6c3950, Register:v4i64 %vreg13
try.c: 0x5593ec7b3260: v4i64 = Register %vreg13
try.c: 0x5593ec75a350: v16i32 = X86ISD::VBROADCAST 0x5593ec7b2c70
try.c: 0x5593ec7b2c70: i32,ch = load<LD4[ConstantPool]> 0x5593ec6c3950, 0x5593ec75c1b0, undef:i64
try.c: 0x5593ec75c1b0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5593ec79c990: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5593ec7589c0: i64 = undef
try.c: 0x5593ec7cd130: 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: 0x5593ec7cd000: i32 = Constant<0>
try.c: 0x5593ec7cd000: i32 = Constant<0>
try.c: 0x5593ec7cd000: i32 = Constant<0>
try.c: 0x5593ec7cd000: i32 = Constant<0>
try.c: 0x5593ec7cd000: i32 = Constant<0>
try.c: 0x5593ec7cd000: i32 = Constant<0>
try.c: 0x5593ec7cd000: i32 = Constant<0>
try.c: 0x5593ec7cd000: i32 = Constant<0>
try.c: 0x5593ec7cd000: 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: 0x55ac53e06210: v4i64 = X86ISD::VTRUNC 0x55ac53e060e0
try.c: 0x55ac53e060e0: v16i32 = vselect 0x55ac53e09df0, 0x55ac53db91c0, 0x55ac53e05fb0
try.c: 0x55ac53e09df0: v4i1 = X86ISD::PCMPGTM 0x55ac53dfe6e0, 0x55ac53dfa270
try.c: 0x55ac53dfe6e0: v4i64 = X86ISD::VBROADCAST 0x55ac53da6870
try.c: 0x55ac53da6870: i64,ch = load<LD8[%lsr.iv6971]> 0x55ac53d0f950, 0x55ac53de86e0, undef:i64
try.c: 0x55ac53de86e0: i64,ch = CopyFromReg 0x55ac53d0f950, Register:i64 %vreg50
try.c: 0x55ac53dfa4d0: i64 = Register %vreg50
try.c: 0x55ac53db7830: i64 = undef
try.c: 0x55ac53dfa270: v4i64,ch = CopyFromReg 0x55ac53d0f950, Register:v4i64 %vreg13
try.c: 0x55ac53dfef30: v4i64 = Register %vreg13
try.c: 0x55ac53db91c0: v16i32 = X86ISD::VBROADCAST 0x55ac53dfe940
try.c: 0x55ac53dfe940: i32,ch = load<LD4[ConstantPool]> 0x55ac53d0f950, 0x55ac53da5e50, undef:i64
try.c: 0x55ac53da5e50: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ac53de98e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ac53db7830: i64 = undef
try.c: 0x55ac53e05fb0: 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: 0x55ac53e05e80: i32 = Constant<0>
try.c: 0x55ac53e05e80: i32 = Constant<0>
try.c: 0x55ac53e05e80: i32 = Constant<0>
try.c: 0x55ac53e05e80: i32 = Constant<0>
try.c: 0x55ac53e05e80: i32 = Constant<0>
try.c: 0x55ac53e05e80: i32 = Constant<0>
try.c: 0x55ac53e05e80: i32 = Constant<0>
try.c: 0x55ac53e05e80: i32 = Constant<0>
try.c: 0x55ac53e05e80: 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: 0x55b87ff235a0: v4i64 = X86ISD::VTRUNC 0x55b87ff23470
try.c: 0x55b87ff23470: v16i32 = vselect 0x55b87ff1df70, 0x55b87fec5660, 0x55b87ff23340
try.c: 0x55b87ff1df70: v4i1 = X86ISD::PCMPGTM 0x55b87ff1af50, 0x55b87ff16ae0
try.c: 0x55b87ff1af50: v4i64 = X86ISD::VBROADCAST 0x55b87fec5b20
try.c: 0x55b87fec5b20: i64,ch = load<LD8[%lsr.iv6971]> 0x55b87fe14a30, 0x55b87feb68a0, undef:i64
try.c: 0x55b87feb68a0: i64,ch = CopyFromReg 0x55b87fe14a30, Register:i64 %vreg50
try.c: 0x55b87ff16d40: i64 = Register %vreg50
try.c: 0x55b87fea5fd0: i64 = undef
try.c: 0x55b87ff16ae0: v4i64,ch = CopyFromReg 0x55b87fe14a30, Register:v4i64 %vreg13
try.c: 0x55b87ff1b7a0: v4i64 = Register %vreg13
try.c: 0x55b87fec5660: v16i32 = X86ISD::VBROADCAST 0x55b87ff1b1b0
try.c: 0x55b87ff1b1b0: i32,ch = load<LD4[ConstantPool]> 0x55b87fe14a30, 0x55b87feb36a0, undef:i64
try.c: 0x55b87feb36a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55b87fea6950: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55b87fea5fd0: i64 = undef
try.c: 0x55b87ff23340: 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: 0x55b87ff23210: i32 = Constant<0>
try.c: 0x55b87ff23210: i32 = Constant<0>
try.c: 0x55b87ff23210: i32 = Constant<0>
try.c: 0x55b87ff23210: i32 = Constant<0>
try.c: 0x55b87ff23210: i32 = Constant<0>
try.c: 0x55b87ff23210: i32 = Constant<0>
try.c: 0x55b87ff23210: i32 = Constant<0>
try.c: 0x55b87ff23210: i32 = Constant<0>
try.c: 0x55b87ff23210: 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: 0x5635a40ca310: v4i64 = X86ISD::VTRUNC 0x5635a40ca1e0
try.c: 0x5635a40ca1e0: v16i32 = vselect 0x5635a40b31c0, 0x5635a4056cc0, 0x5635a40ca0b0
try.c: 0x5635a40b31c0: v4i1 = X86ISD::PCMPGTM 0x5635a40af990, 0x5635a40ab520
try.c: 0x5635a40af990: v4i64 = X86ISD::VBROADCAST 0x5635a405b9f0
try.c: 0x5635a405b9f0: i64,ch = load<LD8[%lsr.iv6971]> 0x5635a3fc0950, 0x5635a4098d30, undef:i64
try.c: 0x5635a4098d30: i64,ch = CopyFromReg 0x5635a3fc0950, Register:i64 %vreg50
try.c: 0x5635a40ab780: i64 = Register %vreg50
try.c: 0x5635a405cec0: i64 = undef
try.c: 0x5635a40ab520: v4i64,ch = CopyFromReg 0x5635a3fc0950, Register:v4i64 %vreg13
try.c: 0x5635a40b01e0: v4i64 = Register %vreg13
try.c: 0x5635a4056cc0: v16i32 = X86ISD::VBROADCAST 0x5635a40afbf0
try.c: 0x5635a40afbf0: i32,ch = load<LD4[ConstantPool]> 0x5635a3fc0950, 0x5635a4054220, undef:i64
try.c: 0x5635a4054220: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5635a409e010: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5635a405cec0: i64 = undef
try.c: 0x5635a40ca0b0: 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: 0x5635a40c9f80: i32 = Constant<0>
try.c: 0x5635a40c9f80: i32 = Constant<0>
try.c: 0x5635a40c9f80: i32 = Constant<0>
try.c: 0x5635a40c9f80: i32 = Constant<0>
try.c: 0x5635a40c9f80: i32 = Constant<0>
try.c: 0x5635a40c9f80: i32 = Constant<0>
try.c: 0x5635a40c9f80: i32 = Constant<0>
try.c: 0x5635a40c9f80: i32 = Constant<0>
try.c: 0x5635a40c9f80: 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
present.c: present.c:112:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'format_input' that is compiled without support for 'ssse3'
present.c: dqword tmp = PSHUFB(*state, LOAD(PRESENTInShuffleU));
present.c: ^
present.c: ./common.h:40:22: note: expanded from macro 'PSHUFB'
present.c: #define PSHUFB(s, x) _mm_shuffle_epi8((s), (x)) /*return s(x)*/
present.c: ^
present.c: present.c:113:11: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'format_input' that is compiled without support for 'ssse3'
present.c: *state = PSHUFB(*state, LOAD(PRESENTInShuffleL));
present.c: ^
present.c: ./common.h:40:22: note: expanded from macro 'PSHUFB'
present.c: #define PSHUFB(s, x) _mm_shuffle_epi8((s), (x)) /*return s(x)*/
present.c: ^
present.c: 2 errors generated.

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