Implementation notes: amd64, cel02, crypto_aead/ketjejrv2

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: ketjejrv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
6222446246 0 030509 824 960T:compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
9013904525 0 025125 824 896T:compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
16109984080 0 023088 800 896T:compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
16141284775 0 025877 824 896T:compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
17099123918 0 022500 792 856T:compactclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
19555865240 0 025658 800 856T:compactclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
7597002095910 1192 47112255 2304 1072T:refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
8773670459143 1192 4778717 2296 1008T:refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
9561475259929 1192 4778567 2304 1008T:refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
12698440454831 1232 5469000 1784 912T:refclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
27025766240727 1192 4760003 1776 976T:refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: T:compact
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-200-compact.c: KeccakP-200-compact.c:20:36: warning: '/*' within block comment [-Wcomment]
KeccakP-200-compact.c: /* #define DIVISION_INSTRUCTION /* comment if no division instruction or more compact when not using division */
KeccakP-200-compact.c: ^
KeccakP-200-compact.c: 1 warning generated.
try.c: fatal error: error in backend: Cannot select: 0x564f9f291ee0: v4i64 = X86ISD::VTRUNC 0x564f9f291db0
try.c: 0x564f9f291db0: v16i32 = vselect 0x564f9f28c8b0, 0x564f9f2334f0, 0x564f9f291c80
try.c: 0x564f9f28c8b0: v4i1 = X86ISD::PCMPGTM 0x564f9f28b8a0, 0x564f9f287430
try.c: 0x564f9f28b8a0: v4i64 = X86ISD::VBROADCAST 0x564f9f22fb20
try.c: 0x564f9f22fb20: i64,ch = load<LD8[%lsr.iv6971]> 0x564f9f19c950, 0x564f9f282290, undef:i64
try.c: 0x564f9f282290: i64,ch = CopyFromReg 0x564f9f19c950, Register:i64 %vreg50
try.c: 0x564f9f287690: i64 = Register %vreg50
try.c: 0x564f9f231b60: i64 = undef
try.c: 0x564f9f287430: v4i64,ch = CopyFromReg 0x564f9f19c950, Register:v4i64 %vreg13
try.c: 0x564f9f28c0f0: v4i64 = Register %vreg13
try.c: 0x564f9f2334f0: v16i32 = X86ISD::VBROADCAST 0x564f9f28bb00
try.c: 0x564f9f28bb00: i32,ch = load<LD4[ConstantPool]> 0x564f9f19c950, 0x564f9f22f100, undef:i64
try.c: 0x564f9f22f100: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x564f9f249300: i64 = TargetConstantPool<i32 1> 0
try.c: 0x564f9f231b60: i64 = undef
try.c: 0x564f9f291c80: 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: 0x564f9f291b50: i32 = Constant<0>
try.c: 0x564f9f291b50: i32 = Constant<0>
try.c: 0x564f9f291b50: i32 = Constant<0>
try.c: 0x564f9f291b50: i32 = Constant<0>
try.c: 0x564f9f291b50: i32 = Constant<0>
try.c: 0x564f9f291b50: i32 = Constant<0>
try.c: 0x564f9f291b50: i32 = Constant<0>
try.c: 0x564f9f291b50: i32 = Constant<0>
try.c: 0x564f9f291b50: 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:compact

Compiler output

Implementation: T:compact
Security model: timingleaks
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-200-compact.c: KeccakP-200-compact.c:20:36: warning: '/*' within block comment [-Wcomment]
KeccakP-200-compact.c: /* #define DIVISION_INSTRUCTION /* comment if no division instruction or more compact when not using division */
KeccakP-200-compact.c: ^
KeccakP-200-compact.c: 1 warning generated.
try.c: fatal error: error in backend: Cannot select: 0x564d82dfb3e0: v4i64 = X86ISD::VTRUNC 0x564d82dfb2b0
try.c: 0x564d82dfb2b0: v16i32 = vselect 0x564d82deacd0, 0x564d82d89820, 0x564d82dfb180
try.c: 0x564d82deacd0: v4i1 = X86ISD::PCMPGTM 0x564d82ddf010, 0x564d82ddaba0
try.c: 0x564d82ddf010: v4i64 = X86ISD::VBROADCAST 0x564d82d89ce0
try.c: 0x564d82d89ce0: i64,ch = load<LD8[%lsr.iv6971]> 0x564d82cd8a20, 0x564d82d80de0, undef:i64
try.c: 0x564d82d80de0: i64,ch = CopyFromReg 0x564d82cd8a20, Register:i64 %vreg50
try.c: 0x564d82ddae00: i64 = Register %vreg50
try.c: 0x564d82d75ce0: i64 = undef
try.c: 0x564d82ddaba0: v4i64,ch = CopyFromReg 0x564d82cd8a20, Register:v4i64 %vreg13
try.c: 0x564d82ddf860: v4i64 = Register %vreg13
try.c: 0x564d82d89820: v16i32 = X86ISD::VBROADCAST 0x564d82ddf270
try.c: 0x564d82ddf270: i32,ch = load<LD4[ConstantPool]> 0x564d82cd8a20, 0x564d82d7f3b0, undef:i64
try.c: 0x564d82d7f3b0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x564d82d76660: i64 = TargetConstantPool<i32 1> 0
try.c: 0x564d82d75ce0: i64 = undef
try.c: 0x564d82dfb180: 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: 0x564d82dfb050: i32 = Constant<0>
try.c: 0x564d82dfb050: i32 = Constant<0>
try.c: 0x564d82dfb050: i32 = Constant<0>
try.c: 0x564d82dfb050: i32 = Constant<0>
try.c: 0x564d82dfb050: i32 = Constant<0>
try.c: 0x564d82dfb050: i32 = Constant<0>
try.c: 0x564d82dfb050: i32 = Constant<0>
try.c: 0x564d82dfb050: i32 = Constant<0>
try.c: 0x564d82dfb050: 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:compact

Compiler output

Implementation: T:compact
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-200-compact.c: KeccakP-200-compact.c:20:36: warning: '/*' within block comment [-Wcomment]
KeccakP-200-compact.c: /* #define DIVISION_INSTRUCTION /* comment if no division instruction or more compact when not using division */
KeccakP-200-compact.c: ^
KeccakP-200-compact.c: 1 warning generated.
try.c: fatal error: error in backend: Cannot select: 0x55e05b794af0: v4i64 = X86ISD::VTRUNC 0x55e05b7949c0
try.c: 0x55e05b7949c0: v16i32 = vselect 0x55e05b79bb00, 0x55e05b736c70, 0x55e05b794890
try.c: 0x55e05b79bb00: v4i1 = X86ISD::PCMPGTM 0x55e05b790010, 0x55e05b78bba0
try.c: 0x55e05b790010: v4i64 = X86ISD::VBROADCAST 0x55e05b75bd60
try.c: 0x55e05b75bd60: i64,ch = load<LD8[%lsr.iv6971]> 0x55e05b6a0960, 0x55e05b77af40, undef:i64
try.c: 0x55e05b77af40: i64,ch = CopyFromReg 0x55e05b6a0960, Register:i64 %vreg50
try.c: 0x55e05b78be00: i64 = Register %vreg50
try.c: 0x55e05b75d230: i64 = undef
try.c: 0x55e05b78bba0: v4i64,ch = CopyFromReg 0x55e05b6a0960, Register:v4i64 %vreg13
try.c: 0x55e05b790860: v4i64 = Register %vreg13
try.c: 0x55e05b736c70: v16i32 = X86ISD::VBROADCAST 0x55e05b790270
try.c: 0x55e05b790270: i32,ch = load<LD4[ConstantPool]> 0x55e05b6a0960, 0x55e05b75b340, undef:i64
try.c: 0x55e05b75b340: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55e05b7313c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55e05b75d230: i64 = undef
try.c: 0x55e05b794890: 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: 0x55e05b794760: i32 = Constant<0>
try.c: 0x55e05b794760: i32 = Constant<0>
try.c: 0x55e05b794760: i32 = Constant<0>
try.c: 0x55e05b794760: i32 = Constant<0>
try.c: 0x55e05b794760: i32 = Constant<0>
try.c: 0x55e05b794760: i32 = Constant<0>
try.c: 0x55e05b794760: i32 = Constant<0>
try.c: 0x55e05b794760: i32 = Constant<0>
try.c: 0x55e05b794760: 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:compact

Compiler output

Implementation: T:compact
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-200-compact.c: KeccakP-200-compact.c:20:36: warning: '/*' within block comment [-Wcomment]
KeccakP-200-compact.c: /* #define DIVISION_INSTRUCTION /* comment if no division instruction or more compact when not using division */
KeccakP-200-compact.c: ^
KeccakP-200-compact.c: 1 warning generated.

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.cpp: fatal error: error in backend: Cannot select: 0x558eaa5a3be0: v4i64 = X86ISD::VTRUNC 0x558eaa5a3ab0
try.cpp: 0x558eaa5a3ab0: v16i32 = vselect 0x558eaa5b8940, 0x558eaa5484f0, 0x558eaa5a3980
try.cpp: 0x558eaa5b8940: v4i1 = X86ISD::PCMPGTM 0x558eaa5a05d0, 0x558eaa59c160
try.cpp: 0x558eaa5a05d0: v4i64 = X86ISD::VBROADCAST 0x558eaa545690
try.cpp: 0x558eaa545690: i64,ch = load<LD8[%lsr.iv6971]> 0x558eaa4af9c0, 0x558eaa57db50, undef:i64
try.cpp: 0x558eaa57db50: i64,ch = CopyFromReg 0x558eaa4af9c0, Register:i64 %vreg50
try.cpp: 0x558eaa59c3c0: i64 = Register %vreg50
try.cpp: 0x558eaa546b60: i64 = undef
try.cpp: 0x558eaa59c160: v4i64,ch = CopyFromReg 0x558eaa4af9c0, Register:v4i64 %vreg13
try.cpp: 0x558eaa5a0e20: v4i64 = Register %vreg13
try.cpp: 0x558eaa5484f0: v16i32 = X86ISD::VBROADCAST 0x558eaa5a0830
try.cpp: 0x558eaa5a0830: i32,ch = load<LD4[ConstantPool]> 0x558eaa4af9c0, 0x558eaa544980, undef:i64
try.cpp: 0x558eaa544980: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x558eaa58a850: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x558eaa546b60: i64 = undef
try.cpp: 0x558eaa5a3980: 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.cpp: 0x558eaa5a3850: i32 = Constant<0>
try.cpp: 0x558eaa5a3850: i32 = Constant<0>
try.cpp: 0x558eaa5a3850: i32 = Constant<0>
try.cpp: 0x558eaa5a3850: i32 = Constant<0>
try.cpp: 0x558eaa5a3850: i32 = Constant<0>
try.cpp: 0x558eaa5a3850: i32 = Constant<0>
try.cpp: 0x558eaa5a3850: i32 = Constant<0>
try.cpp: 0x558eaa5a3850: i32 = Constant<0>
try.cpp: 0x558eaa5a3850: i32 = Constant<0>
try.cpp: ...

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.cpp: fatal error: error in backend: Cannot select: 0x555a25ca70a0: v4i64 = X86ISD::VTRUNC 0x555a25ca6f70
try.cpp: 0x555a25ca6f70: v16i32 = vselect 0x555a25c96560, 0x555a25c26c70, 0x555a25ca6e40
try.cpp: 0x555a25c96560: v4i1 = X86ISD::PCMPGTM 0x555a25c81d90, 0x555a25c7d160
try.cpp: 0x555a25c81d90: v4i64 = X86ISD::VBROADCAST 0x555a25c27130
try.cpp: 0x555a25c27130: i64,ch = load<LD8[%lsr.iv6971]> 0x555a25b7aa60, 0x555a25c308a0, undef:i64
try.cpp: 0x555a25c308a0: i64,ch = CopyFromReg 0x555a25b7aa60, Register:i64 %vreg50
try.cpp: 0x555a25c7d3c0: i64 = Register %vreg50
try.cpp: 0x555a25c15be0: i64 = undef
try.cpp: 0x555a25c7d160: v4i64,ch = CopyFromReg 0x555a25b7aa60, Register:v4i64 %vreg13
try.cpp: 0x555a25c825e0: v4i64 = Register %vreg13
try.cpp: 0x555a25c26c70: v16i32 = X86ISD::VBROADCAST 0x555a25c81ff0
try.cpp: 0x555a25c81ff0: i32,ch = load<LD4[ConstantPool]> 0x555a25b7aa60, 0x555a25c2ee70, undef:i64
try.cpp: 0x555a25c2ee70: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x555a25c16560: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x555a25c15be0: i64 = undef
try.cpp: 0x555a25ca6e40: 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.cpp: 0x555a25ca6d10: i32 = Constant<0>
try.cpp: 0x555a25ca6d10: i32 = Constant<0>
try.cpp: 0x555a25ca6d10: i32 = Constant<0>
try.cpp: 0x555a25ca6d10: i32 = Constant<0>
try.cpp: 0x555a25ca6d10: i32 = Constant<0>
try.cpp: 0x555a25ca6d10: i32 = Constant<0>
try.cpp: 0x555a25ca6d10: i32 = Constant<0>
try.cpp: 0x555a25ca6d10: i32 = Constant<0>
try.cpp: 0x555a25ca6d10: i32 = Constant<0>
try.cpp: ...

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.cpp: fatal error: error in backend: Cannot select: 0x55a5701e24d0: v4i64 = X86ISD::VTRUNC 0x55a5701e23a0
try.cpp: 0x55a5701e23a0: v16i32 = vselect 0x55a5701dcea0, 0x55a57017c650, 0x55a5701e2270
try.cpp: 0x55a5701dcea0: v4i1 = X86ISD::PCMPGTM 0x55a5701c8b60, 0x55a5701c46f0
try.cpp: 0x55a5701c8b60: v4i64 = X86ISD::VBROADCAST 0x55a57016ee20
try.cpp: 0x55a57016ee20: i64,ch = load<LD8[%lsr.iv6971]> 0x55a5700d79d0, 0x55a5701bb270, undef:i64
try.cpp: 0x55a5701bb270: i64,ch = CopyFromReg 0x55a5700d79d0, Register:i64 %vreg50
try.cpp: 0x55a5701c4950: i64 = Register %vreg50
try.cpp: 0x55a5701702f0: i64 = undef
try.cpp: 0x55a5701c46f0: v4i64,ch = CopyFromReg 0x55a5700d79d0, Register:v4i64 %vreg13
try.cpp: 0x55a5701c93b0: v4i64 = Register %vreg13
try.cpp: 0x55a57017c650: v16i32 = X86ISD::VBROADCAST 0x55a5701c8dc0
try.cpp: 0x55a5701c8dc0: i32,ch = load<LD4[ConstantPool]> 0x55a5700d79d0, 0x55a57016bbc0, undef:i64
try.cpp: 0x55a57016bbc0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x55a5701af940: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x55a5701702f0: i64 = undef
try.cpp: 0x55a5701e2270: 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.cpp: 0x55a5701e2140: i32 = Constant<0>
try.cpp: 0x55a5701e2140: i32 = Constant<0>
try.cpp: 0x55a5701e2140: i32 = Constant<0>
try.cpp: 0x55a5701e2140: i32 = Constant<0>
try.cpp: 0x55a5701e2140: i32 = Constant<0>
try.cpp: 0x55a5701e2140: i32 = Constant<0>
try.cpp: 0x55a5701e2140: i32 = Constant<0>
try.cpp: 0x55a5701e2140: i32 = Constant<0>
try.cpp: 0x55a5701e2140: i32 = Constant<0>
try.cpp: ...

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