Implementation notes: amd64, cel02, crypto_aead/aegis256

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: aegis256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
31423413 0 016276 792 856T:aesniclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
31703384 0 021045 824 960T:aesnigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
54942479 0 015440 800 896T:aesnigcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
66942624 0 016853 824 896T:aesnigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
72003729 0 018132 816 896T:aesnigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
555326379 4096 020732 4920 896T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
866125932 4096 023581 4928 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
879025404 4096 019581 4928 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
932164922 4096 017864 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: 0x5648a08658b0: v4i64 = X86ISD::VTRUNC 0x5648a0865780
try.c: 0x5648a0865780: v16i32 = vselect 0x5648a086db30, 0x5648a0800f90, 0x5648a0865650
try.c: 0x5648a086db30: v4i1 = X86ISD::PCMPGTM 0x5648a084af30, 0x5648a0846ac0
try.c: 0x5648a084af30: v4i64 = X86ISD::VBROADCAST 0x5648a07ec2a0
try.c: 0x5648a07ec2a0: i64,ch = load<LD8[%lsr.iv6971]> 0x5648a075b920, 0x5648a0810bf0, undef:i64
try.c: 0x5648a0810bf0: i64,ch = CopyFromReg 0x5648a075b920, Register:i64 %vreg50
try.c: 0x5648a0846d20: i64 = Register %vreg50
try.c: 0x5648a07ff600: i64 = undef
try.c: 0x5648a0846ac0: v4i64,ch = CopyFromReg 0x5648a075b920, Register:v4i64 %vreg13
try.c: 0x5648a084b780: v4i64 = Register %vreg13
try.c: 0x5648a0800f90: v16i32 = X86ISD::VBROADCAST 0x5648a084b190
try.c: 0x5648a084b190: i32,ch = load<LD4[ConstantPool]> 0x5648a075b920, 0x5648a07eb880, undef:i64
try.c: 0x5648a07eb880: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5648a07b7d30: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5648a07ff600: i64 = undef
try.c: 0x5648a0865650: 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: 0x5648a0865520: i32 = Constant<0>
try.c: 0x5648a0865520: i32 = Constant<0>
try.c: 0x5648a0865520: i32 = Constant<0>
try.c: 0x5648a0865520: i32 = Constant<0>
try.c: 0x5648a0865520: i32 = Constant<0>
try.c: 0x5648a0865520: i32 = Constant<0>
try.c: 0x5648a0865520: i32 = Constant<0>
try.c: 0x5648a0865520: i32 = Constant<0>
try.c: 0x5648a0865520: 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: 0x55c75bf03890: v4i64 = X86ISD::VTRUNC 0x55c75bf03760
try.c: 0x55c75bf03760: v16i32 = vselect 0x55c75bef5140, 0x55c75be63bd0, 0x55c75bf03630
try.c: 0x55c75bef5140: v4i1 = X86ISD::PCMPGTM 0x55c75beeab70, 0x55c75bee8690
try.c: 0x55c75beeab70: v4i64 = X86ISD::VBROADCAST 0x55c75be64090
try.c: 0x55c75be64090: i64,ch = load<LD8[%lsr.iv6971]> 0x55c75bde4a00, 0x55c75beaa780, undef:i64
try.c: 0x55c75beaa780: i64,ch = CopyFromReg 0x55c75bde4a00, Register:i64 %vreg50
try.c: 0x55c75bee88f0: i64 = Register %vreg50
try.c: 0x55c75be94640: i64 = undef
try.c: 0x55c75bee8690: v4i64,ch = CopyFromReg 0x55c75bde4a00, Register:v4i64 %vreg13
try.c: 0x55c75beeb3c0: v4i64 = Register %vreg13
try.c: 0x55c75be63bd0: v16i32 = X86ISD::VBROADCAST 0x55c75beeadd0
try.c: 0x55c75beeadd0: i32,ch = load<LD4[ConstantPool]> 0x55c75bde4a00, 0x55c75be83830, undef:i64
try.c: 0x55c75be83830: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55c75be94fc0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55c75be94640: i64 = undef
try.c: 0x55c75bf03630: 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: 0x55c75bf03500: i32 = Constant<0>
try.c: 0x55c75bf03500: i32 = Constant<0>
try.c: 0x55c75bf03500: i32 = Constant<0>
try.c: 0x55c75bf03500: i32 = Constant<0>
try.c: 0x55c75bf03500: i32 = Constant<0>
try.c: 0x55c75bf03500: i32 = Constant<0>
try.c: 0x55c75bf03500: i32 = Constant<0>
try.c: 0x55c75bf03500: i32 = Constant<0>
try.c: 0x55c75bf03500: 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: 0x55a3947ebc80: v4i64 = X86ISD::VTRUNC 0x55a3947ebb50
try.c: 0x55a3947ebb50: v16i32 = vselect 0x55a3947e8660, 0x55a39479fd60, 0x55a3947eba20
try.c: 0x55a3947e8660: v4i1 = X86ISD::PCMPGTM 0x55a3947e3a10, 0x55a3947df5a0
try.c: 0x55a3947e3a10: v4i64 = X86ISD::VBROADCAST 0x55a394784e20
try.c: 0x55a394784e20: i64,ch = load<LD8[%lsr.iv6971]> 0x55a3946f4920, 0x55a3947d6530, undef:i64
try.c: 0x55a3947d6530: i64,ch = CopyFromReg 0x55a3946f4920, Register:i64 %vreg50
try.c: 0x55a3947df800: i64 = Register %vreg50
try.c: 0x55a39479e3d0: i64 = undef
try.c: 0x55a3947df5a0: v4i64,ch = CopyFromReg 0x55a3946f4920, Register:v4i64 %vreg13
try.c: 0x55a3947e4260: v4i64 = Register %vreg13
try.c: 0x55a39479fd60: v16i32 = X86ISD::VBROADCAST 0x55a3947e3c70
try.c: 0x55a3947e3c70: i32,ch = load<LD4[ConstantPool]> 0x55a3946f4920, 0x55a394784400, undef:i64
try.c: 0x55a394784400: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55a3947ccbf0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55a39479e3d0: i64 = undef
try.c: 0x55a3947eba20: 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: 0x55a3947eb8f0: i32 = Constant<0>
try.c: 0x55a3947eb8f0: i32 = Constant<0>
try.c: 0x55a3947eb8f0: i32 = Constant<0>
try.c: 0x55a3947eb8f0: i32 = Constant<0>
try.c: 0x55a3947eb8f0: i32 = Constant<0>
try.c: 0x55a3947eb8f0: i32 = Constant<0>
try.c: 0x55a3947eb8f0: i32 = Constant<0>
try.c: 0x55a3947eb8f0: i32 = Constant<0>
try.c: 0x55a3947eb8f0: 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:42:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'aegis256_initialization' that is compiled without support for 'aes'
encrypt.c: state[5] = _mm_aesenc_si128(state[4],state[5]);
encrypt.c: ^
encrypt.c: encrypt.c:43:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'aegis256_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:44:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'aegis256_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:45:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'aegis256_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:46:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'aegis256_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:47:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'aegis256_initialization' that is compiled without support for 'aes'
encrypt.c: state[0] = _mm_aesenc_si128(tmp,state[0]);
encrypt.c: ^
encrypt.c: encrypt.c:56:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'aegis256_initialization' that is compiled without support for 'aes'
encrypt.c: state[5] = _mm_aesenc_si128(state[4],state[5]);
encrypt.c: ^
encrypt.c: encrypt.c:57:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'aegis256_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:58:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'aegis256_initialization' that is compiled without support for 'aes'
encrypt.c: ...

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: 0x55947da71110: v4i64 = X86ISD::VTRUNC 0x55947da70fe0
try.c: 0x55947da70fe0: v16i32 = vselect 0x55947da6daf0, 0x55947d9fb980, 0x55947da70eb0
try.c: 0x55947da6daf0: v4i1 = X86ISD::PCMPGTM 0x55947da56780, 0x55947da52310
try.c: 0x55947da56780: v4i64 = X86ISD::VBROADCAST 0x55947d9ff250
try.c: 0x55947d9ff250: i64,ch = load<LD8[%lsr.iv6971]> 0x55947d967960, 0x55947da409f0, undef:i64
try.c: 0x55947da409f0: i64,ch = CopyFromReg 0x55947d967960, Register:i64 %vreg50
try.c: 0x55947da52570: i64 = Register %vreg50
try.c: 0x55947d9f9ff0: i64 = undef
try.c: 0x55947da52310: v4i64,ch = CopyFromReg 0x55947d967960, Register:v4i64 %vreg13
try.c: 0x55947da56fd0: v4i64 = Register %vreg13
try.c: 0x55947d9fb980: v16i32 = X86ISD::VBROADCAST 0x55947da569e0
try.c: 0x55947da569e0: i32,ch = load<LD4[ConstantPool]> 0x55947d967960, 0x55947d9fe830, undef:i64
try.c: 0x55947d9fe830: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55947da494d0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55947d9f9ff0: i64 = undef
try.c: 0x55947da70eb0: 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: 0x55947da70d80: i32 = Constant<0>
try.c: 0x55947da70d80: i32 = Constant<0>
try.c: 0x55947da70d80: i32 = Constant<0>
try.c: 0x55947da70d80: i32 = Constant<0>
try.c: 0x55947da70d80: i32 = Constant<0>
try.c: 0x55947da70d80: i32 = Constant<0>
try.c: 0x55947da70d80: i32 = Constant<0>
try.c: 0x55947da70d80: i32 = Constant<0>
try.c: 0x55947da70d80: 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: 0x55caa8fd6500: v4i64 = X86ISD::VTRUNC 0x55caa8fd63d0
try.c: 0x55caa8fd63d0: v16i32 = vselect 0x55caa8ff04d0, 0x55caa8f6d050, 0x55caa8fd62a0
try.c: 0x55caa8ff04d0: v4i1 = X86ISD::PCMPGTM 0x55caa8fd0ed0, 0x55caa8fcca60
try.c: 0x55caa8fd0ed0: v4i64 = X86ISD::VBROADCAST 0x55caa8f6d510
try.c: 0x55caa8f6d510: i64,ch = load<LD8[%lsr.iv6971]> 0x55caa8ecaa30, 0x55caa8f65700, undef:i64
try.c: 0x55caa8f65700: i64,ch = CopyFromReg 0x55caa8ecaa30, Register:i64 %vreg50
try.c: 0x55caa8fcccc0: i64 = Register %vreg50
try.c: 0x55caa8f7ae10: i64 = undef
try.c: 0x55caa8fcca60: v4i64,ch = CopyFromReg 0x55caa8ecaa30, Register:v4i64 %vreg13
try.c: 0x55caa8fd1720: v4i64 = Register %vreg13
try.c: 0x55caa8f6d050: v16i32 = X86ISD::VBROADCAST 0x55caa8fd1130
try.c: 0x55caa8fd1130: i32,ch = load<LD4[ConstantPool]> 0x55caa8ecaa30, 0x55caa8f63cd0, undef:i64
try.c: 0x55caa8f63cd0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55caa8f7b790: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55caa8f7ae10: i64 = undef
try.c: 0x55caa8fd62a0: 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: 0x55caa8fd6170: i32 = Constant<0>
try.c: 0x55caa8fd6170: i32 = Constant<0>
try.c: 0x55caa8fd6170: i32 = Constant<0>
try.c: 0x55caa8fd6170: i32 = Constant<0>
try.c: 0x55caa8fd6170: i32 = Constant<0>
try.c: 0x55caa8fd6170: i32 = Constant<0>
try.c: 0x55caa8fd6170: i32 = Constant<0>
try.c: 0x55caa8fd6170: i32 = Constant<0>
try.c: 0x55caa8fd6170: 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: 0x5634c3132f90: v4i64 = X86ISD::VTRUNC 0x5634c3132e60
try.c: 0x5634c3132e60: v16i32 = vselect 0x5634c310beb0, 0x5634c30bc930, 0x5634c3132d30
try.c: 0x5634c310beb0: v4i1 = X86ISD::PCMPGTM 0x5634c3113a80, 0x5634c310f610
try.c: 0x5634c3113a80: v4i64 = X86ISD::VBROADCAST 0x5634c30b9ad0
try.c: 0x5634c30b9ad0: i64,ch = load<LD8[%lsr.iv6971]> 0x5634c3024910, 0x5634c30fa6b0, undef:i64
try.c: 0x5634c30fa6b0: i64,ch = CopyFromReg 0x5634c3024910, Register:i64 %vreg50
try.c: 0x5634c310f870: i64 = Register %vreg50
try.c: 0x5634c30bafa0: i64 = undef
try.c: 0x5634c310f610: v4i64,ch = CopyFromReg 0x5634c3024910, Register:v4i64 %vreg13
try.c: 0x5634c31142d0: v4i64 = Register %vreg13
try.c: 0x5634c30bc930: v16i32 = X86ISD::VBROADCAST 0x5634c3113ce0
try.c: 0x5634c3113ce0: i32,ch = load<LD4[ConstantPool]> 0x5634c3024910, 0x5634c30b7ed0, undef:i64
try.c: 0x5634c30b7ed0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5634c30b5650: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5634c30bafa0: i64 = undef
try.c: 0x5634c3132d30: 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: 0x5634c3132c00: i32 = Constant<0>
try.c: 0x5634c3132c00: i32 = Constant<0>
try.c: 0x5634c3132c00: i32 = Constant<0>
try.c: 0x5634c3132c00: i32 = Constant<0>
try.c: 0x5634c3132c00: i32 = Constant<0>
try.c: 0x5634c3132c00: i32 = Constant<0>
try.c: 0x5634c3132c00: i32 = Constant<0>
try.c: 0x5634c3132c00: i32 = Constant<0>
try.c: 0x5634c3132c00: 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:ref
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: crypto_aead_aegis256.a(encrypt.o): In function `crypto_aead_aegis256_ref_timingleaks_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `aegis256_initialization'
try.c: crypto_aead_aegis256.a(encrypt.o): In function `crypto_aead_aegis256_ref_timingleaks_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `aegis256_initialization'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

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