Implementation notes: amd64, cel02, crypto_aead/aes128n8t8silcv2

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: aes128n8t8silcv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
177165160 0 022805 824 1136T:aesnigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
177644921 0 017892 792 1040T:aesniclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
191004532 0 019005 824 1072T:aesnigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
191763972 0 018229 824 1072T:aesnigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
203523829 0 016800 800 1072T:aesnigcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
13175224861 0 042867 832 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
22570423268 0 038250 800 856T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
23156021751 0 034900 792 856T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
24053221872 0 036232 816 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
24230422611 0 037248 816 896T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
26196221853 0 035028 800 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: 0x55eb9cc3d2c0: v4i64 = X86ISD::VTRUNC 0x55eb9cc3d190
try.c: 0x55eb9cc3d190: v16i32 = vselect 0x55eb9cc44930, 0x55eb9cbc5840, 0x55eb9cc3d060
try.c: 0x55eb9cc44930: v4i1 = X86ISD::PCMPGTM 0x55eb9cc25960, 0x55eb9cc214f0
try.c: 0x55eb9cc25960: v4i64 = X86ISD::VBROADCAST 0x55eb9cbcc7e0
try.c: 0x55eb9cbcc7e0: i64,ch = load<LD8[%lsr.iv6971]> 0x55eb9cb36950, 0x55eb9cc184b0, undef:i64
try.c: 0x55eb9cc184b0: i64,ch = CopyFromReg 0x55eb9cb36950, Register:i64 %vreg50
try.c: 0x55eb9cc21750: i64 = Register %vreg50
try.c: 0x55eb9cbcdcb0: i64 = undef
try.c: 0x55eb9cc214f0: v4i64,ch = CopyFromReg 0x55eb9cb36950, Register:v4i64 %vreg13
try.c: 0x55eb9cc261b0: v4i64 = Register %vreg13
try.c: 0x55eb9cbc5840: v16i32 = X86ISD::VBROADCAST 0x55eb9cc25bc0
try.c: 0x55eb9cc25bc0: i32,ch = load<LD4[ConstantPool]> 0x55eb9cb36950, 0x55eb9cbcbdc0, undef:i64
try.c: 0x55eb9cbcbdc0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55eb9cc05da0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55eb9cbcdcb0: i64 = undef
try.c: 0x55eb9cc3d060: 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: 0x55eb9cc3cf30: i32 = Constant<0>
try.c: 0x55eb9cc3cf30: i32 = Constant<0>
try.c: 0x55eb9cc3cf30: i32 = Constant<0>
try.c: 0x55eb9cc3cf30: i32 = Constant<0>
try.c: 0x55eb9cc3cf30: i32 = Constant<0>
try.c: 0x55eb9cc3cf30: i32 = Constant<0>
try.c: 0x55eb9cc3cf30: i32 = Constant<0>
try.c: 0x55eb9cc3cf30: i32 = Constant<0>
try.c: 0x55eb9cc3cf30: 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: 0x55d097e69130: v4i64 = X86ISD::VTRUNC 0x55d097e69000
try.c: 0x55d097e69000: v16i32 = vselect 0x55d097e4e7b0, 0x55d097ddd150, 0x55d097e68ed0
try.c: 0x55d097e4e7b0: v4i1 = X86ISD::PCMPGTM 0x55d097e43390, 0x55d097e3e760
try.c: 0x55d097e43390: v4i64 = X86ISD::VBROADCAST 0x55d097ddd610
try.c: 0x55d097ddd610: i64,ch = load<LD8[%lsr.iv6971]> 0x55d097d3ca30, 0x55d097de31f0, undef:i64
try.c: 0x55d097de31f0: i64,ch = CopyFromReg 0x55d097d3ca30, Register:i64 %vreg50
try.c: 0x55d097e3e9c0: i64 = Register %vreg50
try.c: 0x55d097dd8c20: i64 = undef
try.c: 0x55d097e3e760: v4i64,ch = CopyFromReg 0x55d097d3ca30, Register:v4i64 %vreg13
try.c: 0x55d097e43be0: v4i64 = Register %vreg13
try.c: 0x55d097ddd150: v16i32 = X86ISD::VBROADCAST 0x55d097e435f0
try.c: 0x55d097e435f0: i32,ch = load<LD4[ConstantPool]> 0x55d097d3ca30, 0x55d097ddfaf0, undef:i64
try.c: 0x55d097ddfaf0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55d097dd95a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55d097dd8c20: i64 = undef
try.c: 0x55d097e68ed0: 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: 0x55d097e68da0: i32 = Constant<0>
try.c: 0x55d097e68da0: i32 = Constant<0>
try.c: 0x55d097e68da0: i32 = Constant<0>
try.c: 0x55d097e68da0: i32 = Constant<0>
try.c: 0x55d097e68da0: i32 = Constant<0>
try.c: 0x55d097e68da0: i32 = Constant<0>
try.c: 0x55d097e68da0: i32 = Constant<0>
try.c: 0x55d097e68da0: i32 = Constant<0>
try.c: 0x55d097e68da0: 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: 0x555f6acfc2d0: v4i64 = X86ISD::VTRUNC 0x555f6acfc1a0
try.c: 0x555f6acfc1a0: v16i32 = vselect 0x555f6acf6ca0, 0x555f6ac99e50, 0x555f6acfc070
try.c: 0x555f6acf6ca0: v4i1 = X86ISD::PCMPGTM 0x555f6acf5c90, 0x555f6acf1c70
try.c: 0x555f6acf5c90: v4i64 = X86ISD::VBROADCAST 0x555f6aca22a0
try.c: 0x555f6aca22a0: i64,ch = load<LD8[%lsr.iv6971]> 0x555f6ac06950, 0x555f6acdb890, undef:i64
try.c: 0x555f6acdb890: i64,ch = CopyFromReg 0x555f6ac06950, Register:i64 %vreg50
try.c: 0x555f6acf1ed0: i64 = Register %vreg50
try.c: 0x555f6ac984c0: i64 = undef
try.c: 0x555f6acf1c70: v4i64,ch = CopyFromReg 0x555f6ac06950, Register:v4i64 %vreg13
try.c: 0x555f6acf64e0: v4i64 = Register %vreg13
try.c: 0x555f6ac99e50: v16i32 = X86ISD::VBROADCAST 0x555f6acf5ef0
try.c: 0x555f6acf5ef0: i32,ch = load<LD4[ConstantPool]> 0x555f6ac06950, 0x555f6aca1880, undef:i64
try.c: 0x555f6aca1880: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x555f6ace85f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x555f6ac984c0: i64 = undef
try.c: 0x555f6acfc070: 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: 0x555f6acfbf40: i32 = Constant<0>
try.c: 0x555f6acfbf40: i32 = Constant<0>
try.c: 0x555f6acfbf40: i32 = Constant<0>
try.c: 0x555f6acfbf40: i32 = Constant<0>
try.c: 0x555f6acfbf40: i32 = Constant<0>
try.c: 0x555f6acfbf40: i32 = Constant<0>
try.c: 0x555f6acfbf40: i32 = Constant<0>
try.c: 0x555f6acfbf40: i32 = Constant<0>
try.c: 0x555f6acfbf40: 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:42:
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:42:
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:42:
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: 0x55e050202b10: v4i64 = X86ISD::VTRUNC 0x55e0502029e0
try.c: 0x55e0502029e0: v16i32 = vselect 0x55e05020a9b0, 0x55e0501a2c50, 0x55e0502028b0
try.c: 0x55e05020a9b0: v4i1 = X86ISD::PCMPGTM 0x55e0501faa50, 0x55e0501f65e0
try.c: 0x55e0501faa50: v4i64 = X86ISD::VBROADCAST 0x55e0501c82f0
try.c: 0x55e0501c82f0: i64,ch = load<LD8[%lsr.iv6971]> 0x55e05010b950, 0x55e0501e61d0, undef:i64
try.c: 0x55e0501e61d0: i64,ch = CopyFromReg 0x55e05010b950, Register:i64 %vreg50
try.c: 0x55e0501f6840: i64 = Register %vreg50
try.c: 0x55e0501a12c0: i64 = undef
try.c: 0x55e0501f65e0: v4i64,ch = CopyFromReg 0x55e05010b950, Register:v4i64 %vreg13
try.c: 0x55e0501fb2a0: v4i64 = Register %vreg13
try.c: 0x55e0501a2c50: v16i32 = X86ISD::VBROADCAST 0x55e0501facb0
try.c: 0x55e0501facb0: i32,ch = load<LD4[ConstantPool]> 0x55e05010b950, 0x55e0501c78d0, undef:i64
try.c: 0x55e0501c78d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55e0501e0410: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55e0501a12c0: i64 = undef
try.c: 0x55e0502028b0: 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: 0x55e050202780: i32 = Constant<0>
try.c: 0x55e050202780: i32 = Constant<0>
try.c: 0x55e050202780: i32 = Constant<0>
try.c: 0x55e050202780: i32 = Constant<0>
try.c: 0x55e050202780: i32 = Constant<0>
try.c: 0x55e050202780: i32 = Constant<0>
try.c: 0x55e050202780: i32 = Constant<0>
try.c: 0x55e050202780: i32 = Constant<0>
try.c: 0x55e050202780: 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: 0x5634e1494e50: v4i64 = X86ISD::VTRUNC 0x5634e1494d20
try.c: 0x5634e1494d20: v16i32 = vselect 0x5634e148f820, 0x5634e141ce80, 0x5634e1494bf0
try.c: 0x5634e148f820: v4i1 = X86ISD::PCMPGTM 0x5634e1488e20, 0x5634e14843a0
try.c: 0x5634e1488e20: v4i64 = X86ISD::VBROADCAST 0x5634e141d340
try.c: 0x5634e141d340: i64,ch = load<LD8[%lsr.iv6971]> 0x5634e1382a20, 0x5634e1425440, undef:i64
try.c: 0x5634e1425440: i64,ch = CopyFromReg 0x5634e1382a20, Register:i64 %vreg50
try.c: 0x5634e1484600: i64 = Register %vreg50
try.c: 0x5634e1400c00: i64 = undef
try.c: 0x5634e14843a0: v4i64,ch = CopyFromReg 0x5634e1382a20, Register:v4i64 %vreg13
try.c: 0x5634e1489670: v4i64 = Register %vreg13
try.c: 0x5634e141ce80: v16i32 = X86ISD::VBROADCAST 0x5634e1489080
try.c: 0x5634e1489080: i32,ch = load<LD4[ConstantPool]> 0x5634e1382a20, 0x5634e1423200, undef:i64
try.c: 0x5634e1423200: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5634e1401580: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5634e1400c00: i64 = undef
try.c: 0x5634e1494bf0: 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: 0x5634e1494ac0: i32 = Constant<0>
try.c: 0x5634e1494ac0: i32 = Constant<0>
try.c: 0x5634e1494ac0: i32 = Constant<0>
try.c: 0x5634e1494ac0: i32 = Constant<0>
try.c: 0x5634e1494ac0: i32 = Constant<0>
try.c: 0x5634e1494ac0: i32 = Constant<0>
try.c: 0x5634e1494ac0: i32 = Constant<0>
try.c: 0x5634e1494ac0: i32 = Constant<0>
try.c: 0x5634e1494ac0: 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: 0x55f1f3f9d760: v4i64 = X86ISD::VTRUNC 0x55f1f3f9d630
try.c: 0x55f1f3f9d630: v16i32 = vselect 0x55f1f3f8acf0, 0x55f1f3f3db00, 0x55f1f3f9d500
try.c: 0x55f1f3f8acf0: v4i1 = X86ISD::PCMPGTM 0x55f1f3f948e0, 0x55f1f3f90470
try.c: 0x55f1f3f948e0: v4i64 = X86ISD::VBROADCAST 0x55f1f3f3aca0
try.c: 0x55f1f3f3aca0: i64,ch = load<LD8[%lsr.iv6971]> 0x55f1f3ea5960, 0x55f1f3f7fd60, undef:i64
try.c: 0x55f1f3f7fd60: i64,ch = CopyFromReg 0x55f1f3ea5960, Register:i64 %vreg50
try.c: 0x55f1f3f906d0: i64 = Register %vreg50
try.c: 0x55f1f3f3c170: i64 = undef
try.c: 0x55f1f3f90470: v4i64,ch = CopyFromReg 0x55f1f3ea5960, Register:v4i64 %vreg13
try.c: 0x55f1f3f95130: v4i64 = Register %vreg13
try.c: 0x55f1f3f3db00: v16i32 = X86ISD::VBROADCAST 0x55f1f3f94b40
try.c: 0x55f1f3f94b40: i32,ch = load<LD4[ConstantPool]> 0x55f1f3ea5960, 0x55f1f3f39070, undef:i64
try.c: 0x55f1f3f39070: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55f1f3f4ecf0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55f1f3f3c170: i64 = undef
try.c: 0x55f1f3f9d500: 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: 0x55f1f3f9d3d0: i32 = Constant<0>
try.c: 0x55f1f3f9d3d0: i32 = Constant<0>
try.c: 0x55f1f3f9d3d0: i32 = Constant<0>
try.c: 0x55f1f3f9d3d0: i32 = Constant<0>
try.c: 0x55f1f3f9d3d0: i32 = Constant<0>
try.c: 0x55f1f3f9d3d0: i32 = Constant<0>
try.c: 0x55f1f3f9d3d0: i32 = Constant<0>
try.c: 0x55f1f3f9d3d0: i32 = Constant<0>
try.c: 0x55f1f3f9d3d0: 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