Implementation notes: amd64, cel02, crypto_aead/aes128n12t8clocv2

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: aes128n12t8clocv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
174966484 0 024117 824 1152T:aesnigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
179765627 0 018548 792 1056T:aesniclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
190564875 0 017832 800 1088T:aesnigcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
190725806 0 020285 824 1088T:aesnigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
198285292 0 019517 824 1088T:aesnigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
11578222561 0 037248 816 896T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
11681821672 0 034868 800 896T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
12048024785 0 042729 824 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
13400021510 0 034676 792 856T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
20946821654 0 036145 824 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
21012222487 0 037498 800 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: 0x5566da0310c0: v4i64 = X86ISD::VTRUNC 0x5566da030f90
try.c: 0x5566da030f90: v16i32 = vselect 0x5566da039380, 0x5566d9fcf840, 0x5566da030e60
try.c: 0x5566da039380: v4i1 = X86ISD::PCMPGTM 0x5566da02dab0, 0x5566da029640
try.c: 0x5566da02dab0: v4i64 = X86ISD::VBROADCAST 0x5566d9feff70
try.c: 0x5566d9feff70: i64,ch = load<LD8[%lsr.iv6971]> 0x5566d9f3e950, 0x5566da0244a0, undef:i64
try.c: 0x5566da0244a0: i64,ch = CopyFromReg 0x5566d9f3e950, Register:i64 %vreg50
try.c: 0x5566da0298a0: i64 = Register %vreg50
try.c: 0x5566d9fcdeb0: i64 = undef
try.c: 0x5566da029640: v4i64,ch = CopyFromReg 0x5566d9f3e950, Register:v4i64 %vreg13
try.c: 0x5566da02e300: v4i64 = Register %vreg13
try.c: 0x5566d9fcf840: v16i32 = X86ISD::VBROADCAST 0x5566da02dd10
try.c: 0x5566da02dd10: i32,ch = load<LD4[ConstantPool]> 0x5566d9f3e950, 0x5566d9fef550, undef:i64
try.c: 0x5566d9fef550: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5566d9fd41b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5566d9fcdeb0: i64 = undef
try.c: 0x5566da030e60: 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: 0x5566da030d30: i32 = Constant<0>
try.c: 0x5566da030d30: i32 = Constant<0>
try.c: 0x5566da030d30: i32 = Constant<0>
try.c: 0x5566da030d30: i32 = Constant<0>
try.c: 0x5566da030d30: i32 = Constant<0>
try.c: 0x5566da030d30: i32 = Constant<0>
try.c: 0x5566da030d30: i32 = Constant<0>
try.c: 0x5566da030d30: i32 = Constant<0>
try.c: 0x5566da030d30: 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: 0x55d766c02510: v4i64 = X86ISD::VTRUNC 0x55d766c023e0
try.c: 0x55d766c023e0: v16i32 = vselect 0x55d766befd30, 0x55d766b7bd60, 0x55d766c022b0
try.c: 0x55d766befd30: v4i1 = X86ISD::PCMPGTM 0x55d766be8d20, 0x55d766be4af0
try.c: 0x55d766be8d20: v4i64 = X86ISD::VBROADCAST 0x55d766b7c220
try.c: 0x55d766b7c220: i64,ch = load<LD8[%lsr.iv6971]> 0x55d766ae2a30, 0x55d766b84050, undef:i64
try.c: 0x55d766b84050: i64,ch = CopyFromReg 0x55d766ae2a30, Register:i64 %vreg50
try.c: 0x55d766be4d50: i64 = Register %vreg50
try.c: 0x55d766b8afe0: i64 = undef
try.c: 0x55d766be4af0: v4i64,ch = CopyFromReg 0x55d766ae2a30, Register:v4i64 %vreg13
try.c: 0x55d766be9570: v4i64 = Register %vreg13
try.c: 0x55d766b7bd60: v16i32 = X86ISD::VBROADCAST 0x55d766be8f80
try.c: 0x55d766be8f80: i32,ch = load<LD4[ConstantPool]> 0x55d766ae2a30, 0x55d766b7e700, undef:i64
try.c: 0x55d766b7e700: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55d766b8b960: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55d766b8afe0: i64 = undef
try.c: 0x55d766c022b0: 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: 0x55d766c02180: i32 = Constant<0>
try.c: 0x55d766c02180: i32 = Constant<0>
try.c: 0x55d766c02180: i32 = Constant<0>
try.c: 0x55d766c02180: i32 = Constant<0>
try.c: 0x55d766c02180: i32 = Constant<0>
try.c: 0x55d766c02180: i32 = Constant<0>
try.c: 0x55d766c02180: i32 = Constant<0>
try.c: 0x55d766c02180: i32 = Constant<0>
try.c: 0x55d766c02180: 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: 0x555fdac46f20: v4i64 = X86ISD::VTRUNC 0x555fdac46df0
try.c: 0x555fdac46df0: v16i32 = vselect 0x555fdac5f740, 0x555fdabe8dd0, 0x555fdac46cc0
try.c: 0x555fdac5f740: v4i1 = X86ISD::PCMPGTM 0x555fdac418f0, 0x555fdac3d480
try.c: 0x555fdac418f0: v4i64 = X86ISD::VBROADCAST 0x555fdabe1ed0
try.c: 0x555fdabe1ed0: i64,ch = load<LD8[%lsr.iv6971]> 0x555fdab52950, 0x555fdac382e0, undef:i64
try.c: 0x555fdac382e0: i64,ch = CopyFromReg 0x555fdab52950, Register:i64 %vreg50
try.c: 0x555fdac3d6e0: i64 = Register %vreg50
try.c: 0x555fdabe33a0: i64 = undef
try.c: 0x555fdac3d480: v4i64,ch = CopyFromReg 0x555fdab52950, Register:v4i64 %vreg13
try.c: 0x555fdac42140: v4i64 = Register %vreg13
try.c: 0x555fdabe8dd0: v16i32 = X86ISD::VBROADCAST 0x555fdac41b50
try.c: 0x555fdac41b50: i32,ch = load<LD4[ConstantPool]> 0x555fdab52950, 0x555fdabee490, undef:i64
try.c: 0x555fdabee490: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x555fdac34490: i64 = TargetConstantPool<i32 1> 0
try.c: 0x555fdabe33a0: i64 = undef
try.c: 0x555fdac46cc0: 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: 0x555fdac46b90: i32 = Constant<0>
try.c: 0x555fdac46b90: i32 = Constant<0>
try.c: 0x555fdac46b90: i32 = Constant<0>
try.c: 0x555fdac46b90: i32 = Constant<0>
try.c: 0x555fdac46b90: i32 = Constant<0>
try.c: 0x555fdac46b90: i32 = Constant<0>
try.c: 0x555fdac46b90: i32 = Constant<0>
try.c: 0x555fdac46b90: i32 = Constant<0>
try.c: 0x555fdac46b90: 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: 0x5625e2141250: v4i64 = X86ISD::VTRUNC 0x5625e2141120
try.c: 0x5625e2141120: v16i32 = vselect 0x5625e213bc20, 0x5625e20ce8b0, 0x5625e2140ff0
try.c: 0x5625e213bc20: v4i1 = X86ISD::PCMPGTM 0x5625e21248b0, 0x5625e2120440
try.c: 0x5625e21248b0: v4i64 = X86ISD::VBROADCAST 0x5625e20b33d0
try.c: 0x5625e20b33d0: i64,ch = load<LD8[%lsr.iv6971]> 0x5625e2035950, 0x5625e210fc10, undef:i64
try.c: 0x5625e210fc10: i64,ch = CopyFromReg 0x5625e2035950, Register:i64 %vreg50
try.c: 0x5625e21206a0: i64 = Register %vreg50
try.c: 0x5625e20ccf20: i64 = undef
try.c: 0x5625e2120440: v4i64,ch = CopyFromReg 0x5625e2035950, Register:v4i64 %vreg13
try.c: 0x5625e2125100: v4i64 = Register %vreg13
try.c: 0x5625e20ce8b0: v16i32 = X86ISD::VBROADCAST 0x5625e2124b10
try.c: 0x5625e2124b10: i32,ch = load<LD4[ConstantPool]> 0x5625e2035950, 0x5625e20e63d0, undef:i64
try.c: 0x5625e20e63d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5625e210e2f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5625e20ccf20: i64 = undef
try.c: 0x5625e2140ff0: 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: 0x5625e2140ec0: i32 = Constant<0>
try.c: 0x5625e2140ec0: i32 = Constant<0>
try.c: 0x5625e2140ec0: i32 = Constant<0>
try.c: 0x5625e2140ec0: i32 = Constant<0>
try.c: 0x5625e2140ec0: i32 = Constant<0>
try.c: 0x5625e2140ec0: i32 = Constant<0>
try.c: 0x5625e2140ec0: i32 = Constant<0>
try.c: 0x5625e2140ec0: i32 = Constant<0>
try.c: 0x5625e2140ec0: 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: 0x5632855e4ae0: v4i64 = X86ISD::VTRUNC 0x5632855e49b0
try.c: 0x5632855e49b0: v16i32 = vselect 0x5632855d8e30, 0x563285553fb0, 0x5632855e4880
try.c: 0x5632855d8e30: v4i1 = X86ISD::PCMPGTM 0x5632855c1230, 0x5632855bcdc0
try.c: 0x5632855c1230: v4i64 = X86ISD::VBROADCAST 0x563285554470
try.c: 0x563285554470: i64,ch = load<LD8[%lsr.iv6971]> 0x5632854baa30, 0x56328555bca0, undef:i64
try.c: 0x56328555bca0: i64,ch = CopyFromReg 0x5632854baa30, Register:i64 %vreg50
try.c: 0x5632855bd020: i64 = Register %vreg50
try.c: 0x563285564120: i64 = undef
try.c: 0x5632855bcdc0: v4i64,ch = CopyFromReg 0x5632854baa30, Register:v4i64 %vreg13
try.c: 0x5632855c1a80: v4i64 = Register %vreg13
try.c: 0x563285553fb0: v16i32 = X86ISD::VBROADCAST 0x5632855c1490
try.c: 0x5632855c1490: i32,ch = load<LD4[ConstantPool]> 0x5632854baa30, 0x563285556950, undef:i64
try.c: 0x563285556950: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x563285564aa0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x563285564120: i64 = undef
try.c: 0x5632855e4880: 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: 0x5632855e4750: i32 = Constant<0>
try.c: 0x5632855e4750: i32 = Constant<0>
try.c: 0x5632855e4750: i32 = Constant<0>
try.c: 0x5632855e4750: i32 = Constant<0>
try.c: 0x5632855e4750: i32 = Constant<0>
try.c: 0x5632855e4750: i32 = Constant<0>
try.c: 0x5632855e4750: i32 = Constant<0>
try.c: 0x5632855e4750: i32 = Constant<0>
try.c: 0x5632855e4750: 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: 0x5567712933a0: v4i64 = X86ISD::VTRUNC 0x556771293270
try.c: 0x556771293270: v16i32 = vselect 0x55677128dd70, 0x55677121e070, 0x556771293140
try.c: 0x55677128dd70: v4i1 = X86ISD::PCMPGTM 0x556771276a00, 0x556771272590
try.c: 0x556771276a00: v4i64 = X86ISD::VBROADCAST 0x5567712173c0
try.c: 0x5567712173c0: i64,ch = load<LD8[%lsr.iv6971]> 0x556771187950, 0x556771269700, undef:i64
try.c: 0x556771269700: i64,ch = CopyFromReg 0x556771187950, Register:i64 %vreg50
try.c: 0x5567712727f0: i64 = Register %vreg50
try.c: 0x556771218890: i64 = undef
try.c: 0x556771272590: v4i64,ch = CopyFromReg 0x556771187950, Register:v4i64 %vreg13
try.c: 0x556771277250: v4i64 = Register %vreg13
try.c: 0x55677121e070: v16i32 = X86ISD::VBROADCAST 0x556771276c60
try.c: 0x556771276c60: i32,ch = load<LD4[ConstantPool]> 0x556771187950, 0x5567712169a0, undef:i64
try.c: 0x5567712169a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556771231440: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556771218890: i64 = undef
try.c: 0x556771293140: 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: 0x556771293010: i32 = Constant<0>
try.c: 0x556771293010: i32 = Constant<0>
try.c: 0x556771293010: i32 = Constant<0>
try.c: 0x556771293010: i32 = Constant<0>
try.c: 0x556771293010: i32 = Constant<0>
try.c: 0x556771293010: i32 = Constant<0>
try.c: 0x556771293010: i32 = Constant<0>
try.c: 0x556771293010: i32 = Constant<0>
try.c: 0x556771293010: 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