Implementation notes: amd64, cel02, crypto_aead/knot128v2

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: knot128v2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2691404384 127 019138 935 856T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
2870762813 127 016964 951 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
3215447363 127 025069 959 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
3309002603 127 015548 927 856T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
4054243207 127 017596 951 896T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
4119122442 127 015392 935 896T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
encrypt.c: encrypt.c:30:9: warning: 'LITTLE_ENDIAN' macro redefined [-Wmacro-redefined]
encrypt.c: #define LITTLE_ENDIAN
encrypt.c: ^
encrypt.c: /usr/include/endian.h:45:10: note: previous definition is here
encrypt.c: # define LITTLE_ENDIAN __LITTLE_ENDIAN
encrypt.c: ^
encrypt.c: encrypt.c:42:9: warning: 'EXT_BYTE32' macro redefined [-Wmacro-redefined]
encrypt.c: #define EXT_BYTE32(x,n) ((u8)((u32)(x)>>(8*(3-(n)))))
encrypt.c: ^
encrypt.c: encrypt.c:33:9: note: previous definition is here
encrypt.c: #define EXT_BYTE32(x,n) ((u8)((u32)(x)>>(8*(n))))
encrypt.c: ^
encrypt.c: encrypt.c:43:9: warning: 'INS_BYTE32' macro redefined [-Wmacro-redefined]
encrypt.c: #define INS_BYTE32(x,n) ((u32)(x)<<(8*(3-(n))))
encrypt.c: ^
encrypt.c: encrypt.c:34:9: note: previous definition is here
encrypt.c: #define INS_BYTE32(x,n) ((u32)(x)<<(8*(n)))
encrypt.c: ^
encrypt.c: encrypt.c:44:9: warning: 'U32BIG' macro redefined [-Wmacro-redefined]
encrypt.c: #define U32BIG(x) \
encrypt.c: ^
encrypt.c: encrypt.c:35:9: note: previous definition is here
encrypt.c: #define U32BIG(x) (x)
encrypt.c: ^
encrypt.c: encrypt.c:47:9: warning: 'EXT_BYTE64' macro redefined [-Wmacro-redefined]
encrypt.c: ...

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

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: encrypt.c:30:0: warning: "LITTLE_ENDIAN" redefined
encrypt.c: #define LITTLE_ENDIAN
encrypt.c:
encrypt.c: In file included from /usr/include/x86_64-linux-gnu/sys/types.h:216:0,
encrypt.c: from /usr/include/stdlib.h:275,
encrypt.c: from encrypt.c:4:
encrypt.c: /usr/include/endian.h:45:0: note: this is the location of the previous definition
encrypt.c: # define LITTLE_ENDIAN __LITTLE_ENDIAN
encrypt.c:
encrypt.c: encrypt.c:42:0: warning: "EXT_BYTE32" redefined
encrypt.c: #define EXT_BYTE32(x,n) ((u8)((u32)(x)>>(8*(3-(n)))))
encrypt.c:
encrypt.c: encrypt.c:33:0: note: this is the location of the previous definition
encrypt.c: #define EXT_BYTE32(x,n) ((u8)((u32)(x)>>(8*(n))))
encrypt.c:
encrypt.c: encrypt.c:43:0: warning: "INS_BYTE32" redefined
encrypt.c: #define INS_BYTE32(x,n) ((u32)(x)<<(8*(3-(n))))
encrypt.c:
encrypt.c: encrypt.c:34:0: note: this is the location of the previous definition
encrypt.c: #define INS_BYTE32(x,n) ((u32)(x)<<(8*(n)))
encrypt.c:
encrypt.c: encrypt.c:44:0: warning: "U32BIG" redefined
encrypt.c: #define U32BIG(x) \
encrypt.c:
encrypt.c: encrypt.c:35:0: note: this is the location of the previous definition
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt

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: 0x55e02ae96fc0: v4i64 = X86ISD::VTRUNC 0x55e02ae96e90
try.c: 0x55e02ae96e90: v16i32 = vselect 0x55e02ae91990, 0x55e02ae30730, 0x55e02ae96d60
try.c: 0x55e02ae91990: v4i1 = X86ISD::PCMPGTM 0x55e02ae90980, 0x55e02ae8c510
try.c: 0x55e02ae90980: v4i64 = X86ISD::VBROADCAST 0x55e02ae335c0
try.c: 0x55e02ae335c0: i64,ch = load<LD8[%lsr.iv6971]> 0x55e02ada1950, 0x55e02ae583f0, undef:i64
try.c: 0x55e02ae583f0: i64,ch = CopyFromReg 0x55e02ada1950, Register:i64 %vreg50
try.c: 0x55e02ae8c770: i64 = Register %vreg50
try.c: 0x55e02ae34a90: i64 = undef
try.c: 0x55e02ae8c510: v4i64,ch = CopyFromReg 0x55e02ada1950, Register:v4i64 %vreg13
try.c: 0x55e02ae911d0: v4i64 = Register %vreg13
try.c: 0x55e02ae30730: v16i32 = X86ISD::VBROADCAST 0x55e02ae90be0
try.c: 0x55e02ae90be0: i32,ch = load<LD4[ConstantPool]> 0x55e02ada1950, 0x55e02ae3fef0, undef:i64
try.c: 0x55e02ae3fef0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55e02ae7a2b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55e02ae34a90: i64 = undef
try.c: 0x55e02ae96d60: 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: 0x55e02ae96c30: i32 = Constant<0>
try.c: 0x55e02ae96c30: i32 = Constant<0>
try.c: 0x55e02ae96c30: i32 = Constant<0>
try.c: 0x55e02ae96c30: i32 = Constant<0>
try.c: 0x55e02ae96c30: i32 = Constant<0>
try.c: 0x55e02ae96c30: i32 = Constant<0>
try.c: 0x55e02ae96c30: i32 = Constant<0>
try.c: 0x55e02ae96c30: i32 = Constant<0>
try.c: 0x55e02ae96c30: 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: 0x556772891320: v4i64 = X86ISD::VTRUNC 0x5567728911f0
try.c: 0x5567728911f0: v16i32 = vselect 0x55677289d720, 0x556772833060, 0x5567728910c0
try.c: 0x55677289d720: v4i1 = X86ISD::PCMPGTM 0x556772888d60, 0x5567728842e0
try.c: 0x556772888d60: v4i64 = X86ISD::VBROADCAST 0x556772833520
try.c: 0x556772833520: i64,ch = load<LD8[%lsr.iv6971]> 0x556772782a30, 0x556772838300, undef:i64
try.c: 0x556772838300: i64,ch = CopyFromReg 0x556772782a30, Register:i64 %vreg50
try.c: 0x556772884540: i64 = Register %vreg50
try.c: 0x5567728217e0: i64 = undef
try.c: 0x5567728842e0: v4i64,ch = CopyFromReg 0x556772782a30, Register:v4i64 %vreg13
try.c: 0x5567728895b0: v4i64 = Register %vreg13
try.c: 0x556772833060: v16i32 = X86ISD::VBROADCAST 0x556772888fc0
try.c: 0x556772888fc0: i32,ch = load<LD4[ConstantPool]> 0x556772782a30, 0x556772835a00, undef:i64
try.c: 0x556772835a00: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556772822160: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5567728217e0: i64 = undef
try.c: 0x5567728910c0: 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: 0x556772890f90: i32 = Constant<0>
try.c: 0x556772890f90: i32 = Constant<0>
try.c: 0x556772890f90: i32 = Constant<0>
try.c: 0x556772890f90: i32 = Constant<0>
try.c: 0x556772890f90: i32 = Constant<0>
try.c: 0x556772890f90: i32 = Constant<0>
try.c: 0x556772890f90: i32 = Constant<0>
try.c: 0x556772890f90: i32 = Constant<0>
try.c: 0x556772890f90: 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: 0x55a9e3077fe0: v4i64 = X86ISD::VTRUNC 0x55a9e3077eb0
try.c: 0x55a9e3077eb0: v16i32 = vselect 0x55a9e307dc20, 0x55a9e3002aa0, 0x55a9e3077d80
try.c: 0x55a9e307dc20: v4i1 = X86ISD::PCMPGTM 0x55a9e305d660, 0x55a9e30591f0
try.c: 0x55a9e305d660: v4i64 = X86ISD::VBROADCAST 0x55a9e3006170
try.c: 0x55a9e3006170: i64,ch = load<LD8[%lsr.iv6971]> 0x55a9e2f6e940, 0x55a9e3048d00, undef:i64
try.c: 0x55a9e3048d00: i64,ch = CopyFromReg 0x55a9e2f6e940, Register:i64 %vreg50
try.c: 0x55a9e3059450: i64 = Register %vreg50
try.c: 0x55a9e3001110: i64 = undef
try.c: 0x55a9e30591f0: v4i64,ch = CopyFromReg 0x55a9e2f6e940, Register:v4i64 %vreg13
try.c: 0x55a9e305deb0: v4i64 = Register %vreg13
try.c: 0x55a9e3002aa0: v16i32 = X86ISD::VBROADCAST 0x55a9e305d8c0
try.c: 0x55a9e305d8c0: i32,ch = load<LD4[ConstantPool]> 0x55a9e2f6e940, 0x55a9e3005750, undef:i64
try.c: 0x55a9e3005750: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55a9e303e400: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55a9e3001110: i64 = undef
try.c: 0x55a9e3077d80: 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: 0x55a9e3077c50: i32 = Constant<0>
try.c: 0x55a9e3077c50: i32 = Constant<0>
try.c: 0x55a9e3077c50: i32 = Constant<0>
try.c: 0x55a9e3077c50: i32 = Constant<0>
try.c: 0x55a9e3077c50: i32 = Constant<0>
try.c: 0x55a9e3077c50: i32 = Constant<0>
try.c: 0x55a9e3077c50: i32 = Constant<0>
try.c: 0x55a9e3077c50: i32 = Constant<0>
try.c: 0x55a9e3077c50: 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