Implementation notes: amd64, cel02, crypto_aead/aegis128

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: aegis128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
28983536 0 021173 824 960T:aesnigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
37282928 0 015780 792 856T:aesniclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
47163377 0 017748 816 896T:aesnigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
59482324 0 016517 824 896T:aesnigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
69082140 0 015072 800 896T:aesnigcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
450544023 4096 016948 4896 856T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
450803996 4096 018746 4904 856T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
457565259 4096 019588 4920 896T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
735945118 4096 022741 4928 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
747804234 4096 018405 4928 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
943363918 4096 016848 4904 896T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: T:aesni
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: 0x56206c5f2af0: v4i64 = X86ISD::VTRUNC 0x56206c5f29c0
try.c: 0x56206c5f29c0: v16i32 = vselect 0x56206c5fa5b0, 0x56206c584980, 0x56206c5f2890
try.c: 0x56206c5fa5b0: v4i1 = X86ISD::PCMPGTM 0x56206c5d8170, 0x56206c5d3d00
try.c: 0x56206c5d8170: v4i64 = X86ISD::VBROADCAST 0x56206c5754d0
try.c: 0x56206c5754d0: i64,ch = load<LD8[%lsr.iv6971]> 0x56206c4e8950, 0x56206c5ca090, undef:i64
try.c: 0x56206c5ca090: i64,ch = CopyFromReg 0x56206c4e8950, Register:i64 %vreg50
try.c: 0x56206c5d3f60: i64 = Register %vreg50
try.c: 0x56206c582ff0: i64 = undef
try.c: 0x56206c5d3d00: v4i64,ch = CopyFromReg 0x56206c4e8950, Register:v4i64 %vreg13
try.c: 0x56206c5d89c0: v4i64 = Register %vreg13
try.c: 0x56206c584980: v16i32 = X86ISD::VBROADCAST 0x56206c5d83d0
try.c: 0x56206c5d83d0: i32,ch = load<LD4[ConstantPool]> 0x56206c4e8950, 0x56206c574ab0, undef:i64
try.c: 0x56206c574ab0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56206c577800: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56206c582ff0: i64 = undef
try.c: 0x56206c5f2890: 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: 0x56206c5f2760: i32 = Constant<0>
try.c: 0x56206c5f2760: i32 = Constant<0>
try.c: 0x56206c5f2760: i32 = Constant<0>
try.c: 0x56206c5f2760: i32 = Constant<0>
try.c: 0x56206c5f2760: i32 = Constant<0>
try.c: 0x56206c5f2760: i32 = Constant<0>
try.c: 0x56206c5f2760: i32 = Constant<0>
try.c: 0x56206c5f2760: i32 = Constant<0>
try.c: 0x56206c5f2760: 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:aesni

Compiler output

Implementation: T:aesni
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: 0x55aa665e91e0: v4i64 = X86ISD::VTRUNC 0x55aa665e90b0
try.c: 0x55aa665e90b0: v16i32 = vselect 0x55aa665deb00, 0x55aa6655f2f0, 0x55aa665e8f80
try.c: 0x55aa665deb00: v4i1 = X86ISD::PCMPGTM 0x55aa665c50f0, 0x55aa665c0670
try.c: 0x55aa665c50f0: v4i64 = X86ISD::VBROADCAST 0x55aa6655f7b0
try.c: 0x55aa6655f7b0: i64,ch = load<LD8[%lsr.iv6971]> 0x55aa664bea30, 0x55aa66559530, undef:i64
try.c: 0x55aa66559530: i64,ch = CopyFromReg 0x55aa664bea30, Register:i64 %vreg50
try.c: 0x55aa665c08d0: i64 = Register %vreg50
try.c: 0x55aa665676e0: i64 = undef
try.c: 0x55aa665c0670: v4i64,ch = CopyFromReg 0x55aa664bea30, Register:v4i64 %vreg13
try.c: 0x55aa665c5940: v4i64 = Register %vreg13
try.c: 0x55aa6655f2f0: v16i32 = X86ISD::VBROADCAST 0x55aa665c5350
try.c: 0x55aa665c5350: i32,ch = load<LD4[ConstantPool]> 0x55aa664bea30, 0x55aa66561c90, undef:i64
try.c: 0x55aa66561c90: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55aa66568060: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55aa665676e0: i64 = undef
try.c: 0x55aa665e8f80: 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: 0x55aa665e8e50: i32 = Constant<0>
try.c: 0x55aa665e8e50: i32 = Constant<0>
try.c: 0x55aa665e8e50: i32 = Constant<0>
try.c: 0x55aa665e8e50: i32 = Constant<0>
try.c: 0x55aa665e8e50: i32 = Constant<0>
try.c: 0x55aa665e8e50: i32 = Constant<0>
try.c: 0x55aa665e8e50: i32 = Constant<0>
try.c: 0x55aa665e8e50: i32 = Constant<0>
try.c: 0x55aa665e8e50: 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:aesni

Compiler output

Implementation: T:aesni
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: 0x55654dcacb30: v4i64 = X86ISD::VTRUNC 0x55654dcaca00
try.c: 0x55654dcaca00: v16i32 = vselect 0x55654dca89a0, 0x55654dc51170, 0x55654dcac8d0
try.c: 0x55654dca89a0: v4i1 = X86ISD::PCMPGTM 0x55654dca7990, 0x55654dca3520
try.c: 0x55654dca7990: v4i64 = X86ISD::VBROADCAST 0x55654dc367c0
try.c: 0x55654dc367c0: i64,ch = load<LD8[%lsr.iv6971]> 0x55654dbb8930, 0x55654dc9a8d0, undef:i64
try.c: 0x55654dc9a8d0: i64,ch = CopyFromReg 0x55654dbb8930, Register:i64 %vreg50
try.c: 0x55654dca3780: i64 = Register %vreg50
try.c: 0x55654dc4f7e0: i64 = undef
try.c: 0x55654dca3520: v4i64,ch = CopyFromReg 0x55654dbb8930, Register:v4i64 %vreg13
try.c: 0x55654dca81e0: v4i64 = Register %vreg13
try.c: 0x55654dc51170: v16i32 = X86ISD::VBROADCAST 0x55654dca7bf0
try.c: 0x55654dca7bf0: i32,ch = load<LD4[ConstantPool]> 0x55654dbb8930, 0x55654dc32690, undef:i64
try.c: 0x55654dc32690: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55654dc915b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55654dc4f7e0: i64 = undef
try.c: 0x55654dcac8d0: 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: 0x55654dcac7a0: i32 = Constant<0>
try.c: 0x55654dcac7a0: i32 = Constant<0>
try.c: 0x55654dcac7a0: i32 = Constant<0>
try.c: 0x55654dcac7a0: i32 = Constant<0>
try.c: 0x55654dcac7a0: i32 = Constant<0>
try.c: 0x55654dcac7a0: i32 = Constant<0>
try.c: 0x55654dcac7a0: i32 = Constant<0>
try.c: 0x55654dcac7a0: i32 = Constant<0>
try.c: 0x55654dcac7a0: 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:aesni

Compiler output

Implementation: T:aesni
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
encrypt.c: encrypt.c:34:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'aegis128_initialization' that is compiled without support for 'aes'
encrypt.c: state[4] = _mm_aesenc_si128(state[3], state[4]);
encrypt.c: ^
encrypt.c: encrypt.c:35:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'aegis128_initialization' that is compiled without support for 'aes'
encrypt.c: state[3] = _mm_aesenc_si128(state[2], state[3]);
encrypt.c: ^
encrypt.c: encrypt.c:36:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'aegis128_initialization' that is compiled without support for 'aes'
encrypt.c: state[2] = _mm_aesenc_si128(state[1], state[2]);
encrypt.c: ^
encrypt.c: encrypt.c:37:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'aegis128_initialization' that is compiled without support for 'aes'
encrypt.c: state[1] = _mm_aesenc_si128(state[0], state[1]);
encrypt.c: ^
encrypt.c: encrypt.c:38:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'aegis128_initialization' that is compiled without support for 'aes'
encrypt.c: state[0] = _mm_aesenc_si128(tmp, state[0]);
encrypt.c: ^
encrypt.c: 5 errors generated.

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

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: 0x55cc9d209680: v4i64 = X86ISD::VTRUNC 0x55cc9d209550
try.c: 0x55cc9d209550: v16i32 = vselect 0x55cc9d21f800, 0x55cc9d1bee60, 0x55cc9d209420
try.c: 0x55cc9d21f800: v4i1 = X86ISD::PCMPGTM 0x55cc9d204050, 0x55cc9d1ffbe0
try.c: 0x55cc9d204050: v4i64 = X86ISD::VBROADCAST 0x55cc9d1bc000
try.c: 0x55cc9d1bc000: i64,ch = load<LD8[%lsr.iv6971]> 0x55cc9d114940, 0x55cc9d1f7500, undef:i64
try.c: 0x55cc9d1f7500: i64,ch = CopyFromReg 0x55cc9d114940, Register:i64 %vreg50
try.c: 0x55cc9d1ffe40: i64 = Register %vreg50
try.c: 0x55cc9d1bd4d0: i64 = undef
try.c: 0x55cc9d1ffbe0: v4i64,ch = CopyFromReg 0x55cc9d114940, Register:v4i64 %vreg13
try.c: 0x55cc9d2048a0: v4i64 = Register %vreg13
try.c: 0x55cc9d1bee60: v16i32 = X86ISD::VBROADCAST 0x55cc9d2042b0
try.c: 0x55cc9d2042b0: i32,ch = load<LD4[ConstantPool]> 0x55cc9d114940, 0x55cc9d1a7970, undef:i64
try.c: 0x55cc9d1a7970: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55cc9d1ea620: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55cc9d1bd4d0: i64 = undef
try.c: 0x55cc9d209420: 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: 0x55cc9d2092f0: i32 = Constant<0>
try.c: 0x55cc9d2092f0: i32 = Constant<0>
try.c: 0x55cc9d2092f0: i32 = Constant<0>
try.c: 0x55cc9d2092f0: i32 = Constant<0>
try.c: 0x55cc9d2092f0: i32 = Constant<0>
try.c: 0x55cc9d2092f0: i32 = Constant<0>
try.c: 0x55cc9d2092f0: i32 = Constant<0>
try.c: 0x55cc9d2092f0: i32 = Constant<0>
try.c: 0x55cc9d2092f0: 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: 0x5598a964d520: v4i64 = X86ISD::VTRUNC 0x5598a964d3f0
try.c: 0x5598a964d3f0: v16i32 = vselect 0x5598a9647670, 0x5598a95c0040, 0x5598a964d2c0
try.c: 0x5598a9647670: v4i1 = X86ISD::PCMPGTM 0x5598a96280e0, 0x5598a9624670
try.c: 0x5598a96280e0: v4i64 = X86ISD::VBROADCAST 0x5598a95c0500
try.c: 0x5598a95c0500: i64,ch = load<LD8[%lsr.iv6971]> 0x5598a9522a30, 0x5598a95ca180, undef:i64
try.c: 0x5598a95ca180: i64,ch = CopyFromReg 0x5598a9522a30, Register:i64 %vreg50
try.c: 0x5598a96248d0: i64 = Register %vreg50
try.c: 0x5598a95c49a0: i64 = undef
try.c: 0x5598a9624670: v4i64,ch = CopyFromReg 0x5598a9522a30, Register:v4i64 %vreg13
try.c: 0x5598a9628930: v4i64 = Register %vreg13
try.c: 0x5598a95c0040: v16i32 = X86ISD::VBROADCAST 0x5598a9628340
try.c: 0x5598a9628340: i32,ch = load<LD4[ConstantPool]> 0x5598a9522a30, 0x5598a95c8750, undef:i64
try.c: 0x5598a95c8750: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5598a95c5320: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5598a95c49a0: i64 = undef
try.c: 0x5598a964d2c0: 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: 0x5598a964d190: i32 = Constant<0>
try.c: 0x5598a964d190: i32 = Constant<0>
try.c: 0x5598a964d190: i32 = Constant<0>
try.c: 0x5598a964d190: i32 = Constant<0>
try.c: 0x5598a964d190: i32 = Constant<0>
try.c: 0x5598a964d190: i32 = Constant<0>
try.c: 0x5598a964d190: i32 = Constant<0>
try.c: 0x5598a964d190: i32 = Constant<0>
try.c: 0x5598a964d190: 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: 0x560be19d5f50: v4i64 = X86ISD::VTRUNC 0x560be19d5e20
try.c: 0x560be19d5e20: v16i32 = vselect 0x560be19ee330, 0x560be1974a60, 0x560be19d5cf0
try.c: 0x560be19ee330: v4i1 = X86ISD::PCMPGTM 0x560be19d0920, 0x560be19cc4b0
try.c: 0x560be19d0920: v4i64 = X86ISD::VBROADCAST 0x560be199d130
try.c: 0x560be199d130: i64,ch = load<LD8[%lsr.iv6971]> 0x560be18e1910, 0x560be19c7310, undef:i64
try.c: 0x560be19c7310: i64,ch = CopyFromReg 0x560be18e1910, Register:i64 %vreg50
try.c: 0x560be19cc710: i64 = Register %vreg50
try.c: 0x560be199e600: i64 = undef
try.c: 0x560be19cc4b0: v4i64,ch = CopyFromReg 0x560be18e1910, Register:v4i64 %vreg13
try.c: 0x560be19d1170: v4i64 = Register %vreg13
try.c: 0x560be1974a60: v16i32 = X86ISD::VBROADCAST 0x560be19d0b80
try.c: 0x560be19d0b80: i32,ch = load<LD4[ConstantPool]> 0x560be18e1910, 0x560be1997c00, undef:i64
try.c: 0x560be1997c00: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560be195b8f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x560be199e600: i64 = undef
try.c: 0x560be19d5cf0: 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: 0x560be19d5bc0: i32 = Constant<0>
try.c: 0x560be19d5bc0: i32 = Constant<0>
try.c: 0x560be19d5bc0: i32 = Constant<0>
try.c: 0x560be19d5bc0: i32 = Constant<0>
try.c: 0x560be19d5bc0: i32 = Constant<0>
try.c: 0x560be19d5bc0: i32 = Constant<0>
try.c: 0x560be19d5bc0: i32 = Constant<0>
try.c: 0x560be19d5bc0: i32 = Constant<0>
try.c: 0x560be19d5bc0: 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