Implementation notes: amd64, cel02, crypto_aead/aes128n12t8clocv3

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: aes128n12t8clocv3
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
174706452 0 024085 824 1152T:aesnigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
175425625 0 018548 792 1056T:aesniclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
190085823 0 020301 824 1088T:aesnigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
196565284 0 019517 824 1088T:aesnigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
198324870 0 017832 800 1088T:aesnigcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
20358021555 0 034716 792 856T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
21221824798 0 042745 824 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
21606821696 0 034900 800 896T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
21857622526 0 037538 800 856T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
21954221689 0 036177 824 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
22309622577 0 037264 816 896T:refgcc_-march=native_-mtune=native_-O2_-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: 0x5585955c4c40: v4i64 = X86ISD::VTRUNC 0x5585955c4b10
try.c: 0x5585955c4b10: v16i32 = vselect 0x5585955c1620, 0x558595568240, 0x5585955c49e0
try.c: 0x5585955c1620: v4i1 = X86ISD::PCMPGTM 0x5585955bcaa0, 0x5585955b8630
try.c: 0x5585955bcaa0: v4i64 = X86ISD::VBROADCAST 0x558595563860
try.c: 0x558595563860: i64,ch = load<LD8[%lsr.iv6971]> 0x5585954cd960, 0x5585955a8860, undef:i64
try.c: 0x5585955a8860: i64,ch = CopyFromReg 0x5585954cd960, Register:i64 %vreg50
try.c: 0x5585955b8890: i64 = Register %vreg50
try.c: 0x558595564d30: i64 = undef
try.c: 0x5585955b8630: v4i64,ch = CopyFromReg 0x5585954cd960, Register:v4i64 %vreg13
try.c: 0x5585955bd2f0: v4i64 = Register %vreg13
try.c: 0x558595568240: v16i32 = X86ISD::VBROADCAST 0x5585955bcd00
try.c: 0x5585955bcd00: i32,ch = load<LD4[ConstantPool]> 0x5585954cd960, 0x558595562e40, undef:i64
try.c: 0x558595562e40: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5585955a6f40: i64 = TargetConstantPool<i32 1> 0
try.c: 0x558595564d30: i64 = undef
try.c: 0x5585955c49e0: 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: 0x5585955c48b0: i32 = Constant<0>
try.c: 0x5585955c48b0: i32 = Constant<0>
try.c: 0x5585955c48b0: i32 = Constant<0>
try.c: 0x5585955c48b0: i32 = Constant<0>
try.c: 0x5585955c48b0: i32 = Constant<0>
try.c: 0x5585955c48b0: i32 = Constant<0>
try.c: 0x5585955c48b0: i32 = Constant<0>
try.c: 0x5585955c48b0: i32 = Constant<0>
try.c: 0x5585955c48b0: 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: 0x55ce83a77240: v4i64 = X86ISD::VTRUNC 0x55ce83a77110
try.c: 0x55ce83a77110: v16i32 = vselect 0x55ce83a62e30, 0x55ce839f8a10, 0x55ce83a76fe0
try.c: 0x55ce83a62e30: v4i1 = X86ISD::PCMPGTM 0x55ce83a5ca50, 0x55ce83a58fe0
try.c: 0x55ce83a5ca50: v4i64 = X86ISD::VBROADCAST 0x55ce839f8ed0
try.c: 0x55ce839f8ed0: i64,ch = load<LD8[%lsr.iv6971]> 0x55ce83956a30, 0x55ce839fdac0, undef:i64
try.c: 0x55ce839fdac0: i64,ch = CopyFromReg 0x55ce83956a30, Register:i64 %vreg50
try.c: 0x55ce83a59240: i64 = Register %vreg50
try.c: 0x55ce839f5920: i64 = undef
try.c: 0x55ce83a58fe0: v4i64,ch = CopyFromReg 0x55ce83956a30, Register:v4i64 %vreg13
try.c: 0x55ce83a5d2a0: v4i64 = Register %vreg13
try.c: 0x55ce839f8a10: v16i32 = X86ISD::VBROADCAST 0x55ce83a5ccb0
try.c: 0x55ce83a5ccb0: i32,ch = load<LD4[ConstantPool]> 0x55ce83956a30, 0x55ce839fb3b0, undef:i64
try.c: 0x55ce839fb3b0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ce839f62a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ce839f5920: i64 = undef
try.c: 0x55ce83a76fe0: 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: 0x55ce83a76eb0: i32 = Constant<0>
try.c: 0x55ce83a76eb0: i32 = Constant<0>
try.c: 0x55ce83a76eb0: i32 = Constant<0>
try.c: 0x55ce83a76eb0: i32 = Constant<0>
try.c: 0x55ce83a76eb0: i32 = Constant<0>
try.c: 0x55ce83a76eb0: i32 = Constant<0>
try.c: 0x55ce83a76eb0: i32 = Constant<0>
try.c: 0x55ce83a76eb0: i32 = Constant<0>
try.c: 0x55ce83a76eb0: 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: 0x56230f8d0190: v4i64 = X86ISD::VTRUNC 0x56230f8d0060
try.c: 0x56230f8d0060: v16i32 = vselect 0x56230f8bc6e0, 0x56230f881c00, 0x56230f8cff30
try.c: 0x56230f8bc6e0: v4i1 = X86ISD::PCMPGTM 0x56230f8b4800, 0x56230f8b0390
try.c: 0x56230f8b4800: v4i64 = X86ISD::VBROADCAST 0x56230f859a20
try.c: 0x56230f859a20: i64,ch = load<LD8[%lsr.iv6971]> 0x56230f7c5950, 0x56230f8a7820, undef:i64
try.c: 0x56230f8a7820: i64,ch = CopyFromReg 0x56230f7c5950, Register:i64 %vreg50
try.c: 0x56230f8b05f0: i64 = Register %vreg50
try.c: 0x56230f880270: i64 = undef
try.c: 0x56230f8b0390: v4i64,ch = CopyFromReg 0x56230f7c5950, Register:v4i64 %vreg13
try.c: 0x56230f8b5050: v4i64 = Register %vreg13
try.c: 0x56230f881c00: v16i32 = X86ISD::VBROADCAST 0x56230f8b4a60
try.c: 0x56230f8b4a60: i32,ch = load<LD4[ConstantPool]> 0x56230f7c5950, 0x56230f859000, undef:i64
try.c: 0x56230f859000: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56230f89e210: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56230f880270: i64 = undef
try.c: 0x56230f8cff30: 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: 0x56230f8cfe00: i32 = Constant<0>
try.c: 0x56230f8cfe00: i32 = Constant<0>
try.c: 0x56230f8cfe00: i32 = Constant<0>
try.c: 0x56230f8cfe00: i32 = Constant<0>
try.c: 0x56230f8cfe00: i32 = Constant<0>
try.c: 0x56230f8cfe00: i32 = Constant<0>
try.c: 0x56230f8cfe00: i32 = Constant<0>
try.c: 0x56230f8cfe00: i32 = Constant<0>
try.c: 0x56230f8cfe00: 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: In file included from encrypt.c:37:
encrypt.c: ./aes.h:30:2: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
encrypt.c: EXPAND_ASSIST(x0, x1, x2, x0, 1); roundkeys[1] = x0;
encrypt.c: ^
encrypt.c: ./aes.h:13:7: note: expanded from macro 'EXPAND_ASSIST'
encrypt.c: v2 = _mm_aeskeygenassist_si128(v4, aes_const); \
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: In file included from encrypt.c:37:
encrypt.c: ./aes.h:31:2: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
encrypt.c: EXPAND_ASSIST(x0, x1, x2, x0, 2); roundkeys[2] = x0;
encrypt.c: ^
encrypt.c: ./aes.h:13:7: note: expanded from macro 'EXPAND_ASSIST'
encrypt.c: v2 = _mm_aeskeygenassist_si128(v4, aes_const); \
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: In file included from encrypt.c:37:
encrypt.c: ./aes.h:32:2: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
encrypt.c: EXPAND_ASSIST(x0, x1, x2, x0, 4); roundkeys[3] = x0;
encrypt.c: ^
encrypt.c: ./aes.h:13:7: note: expanded from macro 'EXPAND_ASSIST'
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: 0x55e701476040: v4i64 = X86ISD::VTRUNC 0x55e701475f10
try.c: 0x55e701475f10: v16i32 = vselect 0x55e7014698f0, 0x55e7014171d0, 0x55e701475de0
try.c: 0x55e7014698f0: v4i1 = X86ISD::PCMPGTM 0x55e70146cea0, 0x55e701468420
try.c: 0x55e70146cea0: v4i64 = X86ISD::VBROADCAST 0x55e701414370
try.c: 0x55e701414370: i64,ch = load<LD8[%lsr.iv6971]> 0x55e70137d950, 0x55e701456a80, undef:i64
try.c: 0x55e701456a80: i64,ch = CopyFromReg 0x55e70137d950, Register:i64 %vreg50
try.c: 0x55e701468680: i64 = Register %vreg50
try.c: 0x55e701415840: i64 = undef
try.c: 0x55e701468420: v4i64,ch = CopyFromReg 0x55e70137d950, Register:v4i64 %vreg13
try.c: 0x55e70146d6f0: v4i64 = Register %vreg13
try.c: 0x55e7014171d0: v16i32 = X86ISD::VBROADCAST 0x55e70146d100
try.c: 0x55e70146d100: i32,ch = load<LD4[ConstantPool]> 0x55e70137d950, 0x55e701413950, undef:i64
try.c: 0x55e701413950: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55e7013cddf0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55e701415840: i64 = undef
try.c: 0x55e701475de0: 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: 0x55e701475cb0: i32 = Constant<0>
try.c: 0x55e701475cb0: i32 = Constant<0>
try.c: 0x55e701475cb0: i32 = Constant<0>
try.c: 0x55e701475cb0: i32 = Constant<0>
try.c: 0x55e701475cb0: i32 = Constant<0>
try.c: 0x55e701475cb0: i32 = Constant<0>
try.c: 0x55e701475cb0: i32 = Constant<0>
try.c: 0x55e701475cb0: i32 = Constant<0>
try.c: 0x55e701475cb0: 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: 0x558385650140: v4i64 = X86ISD::VTRUNC 0x558385650010
try.c: 0x558385650010: v16i32 = vselect 0x558385630350, 0x5583855c2030, 0x55838564fee0
try.c: 0x558385630350: v4i1 = X86ISD::PCMPGTM 0x55838562c320, 0x558385627eb0
try.c: 0x55838562c320: v4i64 = X86ISD::VBROADCAST 0x5583855c24f0
try.c: 0x5583855c24f0: i64,ch = load<LD8[%lsr.iv6971]> 0x558385525a30, 0x5583855d63f0, undef:i64
try.c: 0x5583855d63f0: i64,ch = CopyFromReg 0x558385525a30, Register:i64 %vreg50
try.c: 0x558385628110: i64 = Register %vreg50
try.c: 0x5583855a3640: i64 = undef
try.c: 0x558385627eb0: v4i64,ch = CopyFromReg 0x558385525a30, Register:v4i64 %vreg13
try.c: 0x55838562cb70: v4i64 = Register %vreg13
try.c: 0x5583855c2030: v16i32 = X86ISD::VBROADCAST 0x55838562c580
try.c: 0x55838562c580: i32,ch = load<LD4[ConstantPool]> 0x558385525a30, 0x5583855c53a0, undef:i64
try.c: 0x5583855c53a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5583855a3fc0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5583855a3640: i64 = undef
try.c: 0x55838564fee0: 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: 0x55838564fdb0: i32 = Constant<0>
try.c: 0x55838564fdb0: i32 = Constant<0>
try.c: 0x55838564fdb0: i32 = Constant<0>
try.c: 0x55838564fdb0: i32 = Constant<0>
try.c: 0x55838564fdb0: i32 = Constant<0>
try.c: 0x55838564fdb0: i32 = Constant<0>
try.c: 0x55838564fdb0: i32 = Constant<0>
try.c: 0x55838564fdb0: i32 = Constant<0>
try.c: 0x55838564fdb0: 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: 0x557843f6a460: v4i64 = X86ISD::VTRUNC 0x557843f6a330
try.c: 0x557843f6a330: v16i32 = vselect 0x557843f66e40, 0x557843f06a00, 0x557843f6a200
try.c: 0x557843f66e40: v4i1 = X86ISD::PCMPGTM 0x557843f626b0, 0x557843f5e240
try.c: 0x557843f626b0: v4i64 = X86ISD::VBROADCAST 0x557843f09200
try.c: 0x557843f09200: i64,ch = load<LD8[%lsr.iv6971]> 0x557843e73950, 0x557843f4b380, undef:i64
try.c: 0x557843f4b380: i64,ch = CopyFromReg 0x557843e73950, Register:i64 %vreg50
try.c: 0x557843f5e4a0: i64 = Register %vreg50
try.c: 0x557843f05070: i64 = undef
try.c: 0x557843f5e240: v4i64,ch = CopyFromReg 0x557843e73950, Register:v4i64 %vreg13
try.c: 0x557843f62f00: v4i64 = Register %vreg13
try.c: 0x557843f06a00: v16i32 = X86ISD::VBROADCAST 0x557843f62910
try.c: 0x557843f62910: i32,ch = load<LD4[ConstantPool]> 0x557843e73950, 0x557843f087e0, undef:i64
try.c: 0x557843f087e0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x557843f50890: i64 = TargetConstantPool<i32 1> 0
try.c: 0x557843f05070: i64 = undef
try.c: 0x557843f6a200: 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: 0x557843f6a0d0: i32 = Constant<0>
try.c: 0x557843f6a0d0: i32 = Constant<0>
try.c: 0x557843f6a0d0: i32 = Constant<0>
try.c: 0x557843f6a0d0: i32 = Constant<0>
try.c: 0x557843f6a0d0: i32 = Constant<0>
try.c: 0x557843f6a0d0: i32 = Constant<0>
try.c: 0x557843f6a0d0: i32 = Constant<0>
try.c: 0x557843f6a0d0: i32 = Constant<0>
try.c: 0x557843f6a0d0: 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