Implementation notes: amd64, cel02, crypto_aead/aesjambuv1

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: aesjambuv1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
361865168 0 018052 792 856T:aesniclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
455443224 0 016168 800 896T:aesnigcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
483144319 0 018644 816 896T:aesnigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
484964408 0 022013 824 960T:aesnigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
514804818 0 018997 824 896T:aesnigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1357846038 5120 026405 5952 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2019125158 5120 023968 5928 896T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2342545464 5120 023828 5920 856T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
2343645535 5120 026316 5944 896T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2441885562 5120 029637 5952 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2513785953 5120 026122 5928 856T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-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: 0x560c95561990: v4i64 = X86ISD::VTRUNC 0x560c95561860
try.c: 0x560c95561860: v16i32 = vselect 0x560c954fe880, 0x560c954e8b50, 0x560c95561730
try.c: 0x560c954fe880: v4i1 = X86ISD::PCMPGTM 0x560c95546b80, 0x560c95542b60
try.c: 0x560c95546b80: v4i64 = X86ISD::VBROADCAST 0x560c954e5cf0
try.c: 0x560c954e5cf0: i64,ch = load<LD8[%lsr.iv6971]> 0x560c95457960, 0x560c9552f5d0, undef:i64
try.c: 0x560c9552f5d0: i64,ch = CopyFromReg 0x560c95457960, Register:i64 %vreg50
try.c: 0x560c95542dc0: i64 = Register %vreg50
try.c: 0x560c954e71c0: i64 = undef
try.c: 0x560c95542b60: v4i64,ch = CopyFromReg 0x560c95457960, Register:v4i64 %vreg13
try.c: 0x560c955473d0: v4i64 = Register %vreg13
try.c: 0x560c954e8b50: v16i32 = X86ISD::VBROADCAST 0x560c95546de0
try.c: 0x560c95546de0: i32,ch = load<LD4[ConstantPool]> 0x560c95457960, 0x560c954edd70, undef:i64
try.c: 0x560c954edd70: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560c95539940: i64 = TargetConstantPool<i32 1> 0
try.c: 0x560c954e71c0: i64 = undef
try.c: 0x560c95561730: 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: 0x560c95561600: i32 = Constant<0>
try.c: 0x560c95561600: i32 = Constant<0>
try.c: 0x560c95561600: i32 = Constant<0>
try.c: 0x560c95561600: i32 = Constant<0>
try.c: 0x560c95561600: i32 = Constant<0>
try.c: 0x560c95561600: i32 = Constant<0>
try.c: 0x560c95561600: i32 = Constant<0>
try.c: 0x560c95561600: i32 = Constant<0>
try.c: 0x560c95561600: 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: 0x563045361210: v4i64 = X86ISD::VTRUNC 0x5630453610e0
try.c: 0x5630453610e0: v16i32 = vselect 0x56304535bbe0, 0x563045307620, 0x563045360fb0
try.c: 0x56304535bbe0: v4i1 = X86ISD::PCMPGTM 0x563045358bc0, 0x563045355760
try.c: 0x563045358bc0: v4i64 = X86ISD::VBROADCAST 0x563045307ae0
try.c: 0x563045307ae0: i64,ch = load<LD8[%lsr.iv6971]> 0x563045252a30, 0x5630452fadc0, undef:i64
try.c: 0x5630452fadc0: i64,ch = CopyFromReg 0x563045252a30, Register:i64 %vreg50
try.c: 0x5630453559c0: i64 = Register %vreg50
try.c: 0x5630452d0640: i64 = undef
try.c: 0x563045355760: v4i64,ch = CopyFromReg 0x563045252a30, Register:v4i64 %vreg13
try.c: 0x563045359410: v4i64 = Register %vreg13
try.c: 0x563045307620: v16i32 = X86ISD::VBROADCAST 0x563045358e20
try.c: 0x563045358e20: i32,ch = load<LD4[ConstantPool]> 0x563045252a30, 0x5630452f9390, undef:i64
try.c: 0x5630452f9390: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5630452d0fc0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5630452d0640: i64 = undef
try.c: 0x563045360fb0: 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: 0x563045360e80: i32 = Constant<0>
try.c: 0x563045360e80: i32 = Constant<0>
try.c: 0x563045360e80: i32 = Constant<0>
try.c: 0x563045360e80: i32 = Constant<0>
try.c: 0x563045360e80: i32 = Constant<0>
try.c: 0x563045360e80: i32 = Constant<0>
try.c: 0x563045360e80: i32 = Constant<0>
try.c: 0x563045360e80: i32 = Constant<0>
try.c: 0x563045360e80: 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: 0x55d52103c3e0: v4i64 = X86ISD::VTRUNC 0x55d52103c2b0
try.c: 0x55d52103c2b0: v16i32 = vselect 0x55d52100cc00, 0x55d520fc86e0, 0x55d52103c180
try.c: 0x55d52100cc00: v4i1 = X86ISD::PCMPGTM 0x55d521021a60, 0x55d52101d5f0
try.c: 0x55d521021a60: v4i64 = X86ISD::VBROADCAST 0x55d520fc51b0
try.c: 0x55d520fc51b0: i64,ch = load<LD8[%lsr.iv6971]> 0x55d520f32930, 0x55d521018450, undef:i64
try.c: 0x55d521018450: i64,ch = CopyFromReg 0x55d520f32930, Register:i64 %vreg50
try.c: 0x55d52101d850: i64 = Register %vreg50
try.c: 0x55d520fc6680: i64 = undef
try.c: 0x55d52101d5f0: v4i64,ch = CopyFromReg 0x55d520f32930, Register:v4i64 %vreg13
try.c: 0x55d5210222b0: v4i64 = Register %vreg13
try.c: 0x55d520fc86e0: v16i32 = X86ISD::VBROADCAST 0x55d521021cc0
try.c: 0x55d521021cc0: i32,ch = load<LD4[ConstantPool]> 0x55d520f32930, 0x55d520fdcb60, undef:i64
try.c: 0x55d520fdcb60: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55d520fdf470: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55d520fc6680: i64 = undef
try.c: 0x55d52103c180: 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: 0x55d52103c050: i32 = Constant<0>
try.c: 0x55d52103c050: i32 = Constant<0>
try.c: 0x55d52103c050: i32 = Constant<0>
try.c: 0x55d52103c050: i32 = Constant<0>
try.c: 0x55d52103c050: i32 = Constant<0>
try.c: 0x55d52103c050: i32 = Constant<0>
try.c: 0x55d52103c050: i32 = Constant<0>
try.c: 0x55d52103c050: i32 = Constant<0>
try.c: 0x55d52103c050: 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:277:9: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
encrypt.c: K[1] = KEYEXP(K[0], 0x01);
encrypt.c: ^
encrypt.c: encrypt.c:19:42: note: expanded from macro 'KEYEXP'
encrypt.c: #define KEYEXP(K, I) aes128_keyexpand(K, _mm_aeskeygenassist_si128(K, I))
encrypt.c: ^
encrypt.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_aes.h:62:12: note: expanded from macro '_mm_aeskeygenassist_si128'
encrypt.c: (__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R))
encrypt.c: ^
encrypt.c: encrypt.c:278:9: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
encrypt.c: K[2] = KEYEXP(K[1], 0x02);
encrypt.c: ^
encrypt.c: encrypt.c:19:42: note: expanded from macro 'KEYEXP'
encrypt.c: #define KEYEXP(K, I) aes128_keyexpand(K, _mm_aeskeygenassist_si128(K, I))
encrypt.c: ^
encrypt.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_aes.h:62:12: note: expanded from macro '_mm_aeskeygenassist_si128'
encrypt.c: (__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R))
encrypt.c: ^
encrypt.c: encrypt.c:279:9: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
encrypt.c: K[3] = KEYEXP(K[2], 0x04);
encrypt.c: ^
encrypt.c: encrypt.c:19:42: note: expanded from macro 'KEYEXP'
encrypt.c: #define KEYEXP(K, I) aes128_keyexpand(K, _mm_aeskeygenassist_si128(K, I))
encrypt.c: ^
encrypt.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__wmmintrin_aes.h:62:12: note: expanded from macro '_mm_aeskeygenassist_si128'
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: 0x5615d6719820: v4i64 = X86ISD::VTRUNC 0x5615d67196f0
try.c: 0x5615d67196f0: v16i32 = vselect 0x5615d672e380, 0x5615d66bbb40, 0x5615d67195c0
try.c: 0x5615d672e380: v4i1 = X86ISD::PCMPGTM 0x5615d67131e0, 0x5615d670ed70
try.c: 0x5615d67131e0: v4i64 = X86ISD::VBROADCAST 0x5615d66b7b20
try.c: 0x5615d66b7b20: i64,ch = load<LD8[%lsr.iv6971]> 0x5615d6624960, 0x5615d67066d0, undef:i64
try.c: 0x5615d67066d0: i64,ch = CopyFromReg 0x5615d6624960, Register:i64 %vreg50
try.c: 0x5615d670efd0: i64 = Register %vreg50
try.c: 0x5615d66ba1b0: i64 = undef
try.c: 0x5615d670ed70: v4i64,ch = CopyFromReg 0x5615d6624960, Register:v4i64 %vreg13
try.c: 0x5615d6713a30: v4i64 = Register %vreg13
try.c: 0x5615d66bbb40: v16i32 = X86ISD::VBROADCAST 0x5615d6713440
try.c: 0x5615d6713440: i32,ch = load<LD4[ConstantPool]> 0x5615d6624960, 0x5615d66b7100, undef:i64
try.c: 0x5615d66b7100: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5615d66cdba0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5615d66ba1b0: i64 = undef
try.c: 0x5615d67195c0: 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: 0x5615d6719490: i32 = Constant<0>
try.c: 0x5615d6719490: i32 = Constant<0>
try.c: 0x5615d6719490: i32 = Constant<0>
try.c: 0x5615d6719490: i32 = Constant<0>
try.c: 0x5615d6719490: i32 = Constant<0>
try.c: 0x5615d6719490: i32 = Constant<0>
try.c: 0x5615d6719490: i32 = Constant<0>
try.c: 0x5615d6719490: i32 = Constant<0>
try.c: 0x5615d6719490: 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: 0x55d89e4ea010: v4i64 = X86ISD::VTRUNC 0x55d89e4e9ee0
try.c: 0x55d89e4e9ee0: v16i32 = vselect 0x55d89e4e4570, 0x55d89e461cc0, 0x55d89e4e9db0
try.c: 0x55d89e4e4570: v4i1 = X86ISD::PCMPGTM 0x55d89e4c60e0, 0x55d89e4c14b0
try.c: 0x55d89e4c60e0: v4i64 = X86ISD::VBROADCAST 0x55d89e462180
try.c: 0x55d89e462180: i64,ch = load<LD8[%lsr.iv6971]> 0x55d89e3bfa40, 0x55d89e4703b0, undef:i64
try.c: 0x55d89e4703b0: i64,ch = CopyFromReg 0x55d89e3bfa40, Register:i64 %vreg50
try.c: 0x55d89e4c1710: i64 = Register %vreg50
try.c: 0x55d89e45a110: i64 = undef
try.c: 0x55d89e4c14b0: v4i64,ch = CopyFromReg 0x55d89e3bfa40, Register:v4i64 %vreg13
try.c: 0x55d89e4c6930: v4i64 = Register %vreg13
try.c: 0x55d89e461cc0: v16i32 = X86ISD::VBROADCAST 0x55d89e4c6340
try.c: 0x55d89e4c6340: i32,ch = load<LD4[ConstantPool]> 0x55d89e3bfa40, 0x55d89e464660, undef:i64
try.c: 0x55d89e464660: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55d89e45aa90: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55d89e45a110: i64 = undef
try.c: 0x55d89e4e9db0: 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: 0x55d89e4e9c80: i32 = Constant<0>
try.c: 0x55d89e4e9c80: i32 = Constant<0>
try.c: 0x55d89e4e9c80: i32 = Constant<0>
try.c: 0x55d89e4e9c80: i32 = Constant<0>
try.c: 0x55d89e4e9c80: i32 = Constant<0>
try.c: 0x55d89e4e9c80: i32 = Constant<0>
try.c: 0x55d89e4e9c80: i32 = Constant<0>
try.c: 0x55d89e4e9c80: i32 = Constant<0>
try.c: 0x55d89e4e9c80: 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: 0x562e8f4681a0: v4i64 = X86ISD::VTRUNC 0x562e8f468070
try.c: 0x562e8f468070: v16i32 = vselect 0x562e8f454480, 0x562e8f3fa7f0, 0x562e8f467f40
try.c: 0x562e8f454480: v4i1 = X86ISD::PCMPGTM 0x562e8f44d820, 0x562e8f4493b0
try.c: 0x562e8f44d820: v4i64 = X86ISD::VBROADCAST 0x562e8f3f5e50
try.c: 0x562e8f3f5e50: i64,ch = load<LD8[%lsr.iv6971]> 0x562e8f35e950, 0x562e8f43b1f0, undef:i64
try.c: 0x562e8f43b1f0: i64,ch = CopyFromReg 0x562e8f35e950, Register:i64 %vreg50
try.c: 0x562e8f449610: i64 = Register %vreg50
try.c: 0x562e8f3f8e60: i64 = undef
try.c: 0x562e8f4493b0: v4i64,ch = CopyFromReg 0x562e8f35e950, Register:v4i64 %vreg13
try.c: 0x562e8f44e070: v4i64 = Register %vreg13
try.c: 0x562e8f3fa7f0: v16i32 = X86ISD::VBROADCAST 0x562e8f44da80
try.c: 0x562e8f44da80: i32,ch = load<LD4[ConstantPool]> 0x562e8f35e950, 0x562e8f3f5430, undef:i64
try.c: 0x562e8f3f5430: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x562e8f43be90: i64 = TargetConstantPool<i32 1> 0
try.c: 0x562e8f3f8e60: i64 = undef
try.c: 0x562e8f467f40: 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: 0x562e8f467e10: i32 = Constant<0>
try.c: 0x562e8f467e10: i32 = Constant<0>
try.c: 0x562e8f467e10: i32 = Constant<0>
try.c: 0x562e8f467e10: i32 = Constant<0>
try.c: 0x562e8f467e10: i32 = Constant<0>
try.c: 0x562e8f467e10: i32 = Constant<0>
try.c: 0x562e8f467e10: i32 = Constant<0>
try.c: 0x562e8f467e10: i32 = Constant<0>
try.c: 0x562e8f467e10: 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