Implementation notes: amd64, cel02, crypto_aead/aes128n12t8silcv2

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: aes128n12t8silcv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
177125160 0 022821 824 1136T:aesnigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
177564945 0 017924 792 1040T:aesniclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
186584532 0 019021 824 1072T:aesnigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
191703972 0 018229 824 1072T:aesnigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
202303829 0 016800 800 1072T:aesnigcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
13255021853 0 035028 800 896T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
21783423268 0 038266 800 856T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
23346622611 0 037296 816 896T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
24690624861 0 042883 832 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
25980821872 0 036280 816 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
26085221751 0 034900 792 856T:refclang_-march=native_-Os_-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: 0x5573333b9040: v4i64 = X86ISD::VTRUNC 0x5573333b8f10
try.c: 0x5573333b8f10: v16i32 = vselect 0x5573333aa070, 0x5573333591c0, 0x5573333b8de0
try.c: 0x5573333aa070: v4i1 = X86ISD::PCMPGTM 0x55733339e6c0, 0x55733339a250
try.c: 0x55733339e6c0: v4i64 = X86ISD::VBROADCAST 0x557333346870
try.c: 0x557333346870: i64,ch = load<LD8[%lsr.iv6971]> 0x5573332af950, 0x557333383cd0, undef:i64
try.c: 0x557333383cd0: i64,ch = CopyFromReg 0x5573332af950, Register:i64 %vreg50
try.c: 0x55733339a4b0: i64 = Register %vreg50
try.c: 0x557333357830: i64 = undef
try.c: 0x55733339a250: v4i64,ch = CopyFromReg 0x5573332af950, Register:v4i64 %vreg13
try.c: 0x55733339ef10: v4i64 = Register %vreg13
try.c: 0x5573333591c0: v16i32 = X86ISD::VBROADCAST 0x55733339e920
try.c: 0x55733339e920: i32,ch = load<LD4[ConstantPool]> 0x5573332af950, 0x557333345e50, undef:i64
try.c: 0x557333345e50: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x557333388240: i64 = TargetConstantPool<i32 1> 0
try.c: 0x557333357830: i64 = undef
try.c: 0x5573333b8de0: 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: 0x5573333b8cb0: i32 = Constant<0>
try.c: 0x5573333b8cb0: i32 = Constant<0>
try.c: 0x5573333b8cb0: i32 = Constant<0>
try.c: 0x5573333b8cb0: i32 = Constant<0>
try.c: 0x5573333b8cb0: i32 = Constant<0>
try.c: 0x5573333b8cb0: i32 = Constant<0>
try.c: 0x5573333b8cb0: i32 = Constant<0>
try.c: 0x5573333b8cb0: i32 = Constant<0>
try.c: 0x5573333b8cb0: 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: 0x564e6e5e64a0: v4i64 = X86ISD::VTRUNC 0x564e6e5e6370
try.c: 0x564e6e5e6370: v16i32 = vselect 0x564e6e5e2e80, 0x564e6e57cda0, 0x564e6e5e6240
try.c: 0x564e6e5e2e80: v4i1 = X86ISD::PCMPGTM 0x564e6e5dfe60, 0x564e6e5dca00
try.c: 0x564e6e5dfe60: v4i64 = X86ISD::VBROADCAST 0x564e6e57d260
try.c: 0x564e6e57d260: i64,ch = load<LD8[%lsr.iv6971]> 0x564e6e4daa30, 0x564e6e583630, undef:i64
try.c: 0x564e6e583630: i64,ch = CopyFromReg 0x564e6e4daa30, Register:i64 %vreg50
try.c: 0x564e6e5dcc60: i64 = Register %vreg50
try.c: 0x564e6e5795d0: i64 = undef
try.c: 0x564e6e5dca00: v4i64,ch = CopyFromReg 0x564e6e4daa30, Register:v4i64 %vreg13
try.c: 0x564e6e5e06b0: v4i64 = Register %vreg13
try.c: 0x564e6e57cda0: v16i32 = X86ISD::VBROADCAST 0x564e6e5e00c0
try.c: 0x564e6e5e00c0: i32,ch = load<LD4[ConstantPool]> 0x564e6e4daa30, 0x564e6e5813f0, undef:i64
try.c: 0x564e6e5813f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x564e6e579f50: i64 = TargetConstantPool<i32 1> 0
try.c: 0x564e6e5795d0: i64 = undef
try.c: 0x564e6e5e6240: 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: 0x564e6e5e6110: i32 = Constant<0>
try.c: 0x564e6e5e6110: i32 = Constant<0>
try.c: 0x564e6e5e6110: i32 = Constant<0>
try.c: 0x564e6e5e6110: i32 = Constant<0>
try.c: 0x564e6e5e6110: i32 = Constant<0>
try.c: 0x564e6e5e6110: i32 = Constant<0>
try.c: 0x564e6e5e6110: i32 = Constant<0>
try.c: 0x564e6e5e6110: i32 = Constant<0>
try.c: 0x564e6e5e6110: 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: 0x55eeda0c0830: v4i64 = X86ISD::VTRUNC 0x55eeda0c0700
try.c: 0x55eeda0c0700: v16i32 = vselect 0x55eeda0a5920, 0x55eeda03d1d0, 0x55eeda0c05d0
try.c: 0x55eeda0a5920: v4i1 = X86ISD::PCMPGTM 0x55eeda09ea40, 0x55eeda09a5d0
try.c: 0x55eeda09ea40: v4i64 = X86ISD::VBROADCAST 0x55eeda043200
try.c: 0x55eeda043200: i64,ch = load<LD8[%lsr.iv6971]> 0x55eed9faf960, 0x55eeda095430, undef:i64
try.c: 0x55eeda095430: i64,ch = CopyFromReg 0x55eed9faf960, Register:i64 %vreg50
try.c: 0x55eeda09a830: i64 = Register %vreg50
try.c: 0x55eeda03b840: i64 = undef
try.c: 0x55eeda09a5d0: v4i64,ch = CopyFromReg 0x55eed9faf960, Register:v4i64 %vreg13
try.c: 0x55eeda09f290: v4i64 = Register %vreg13
try.c: 0x55eeda03d1d0: v16i32 = X86ISD::VBROADCAST 0x55eeda09eca0
try.c: 0x55eeda09eca0: i32,ch = load<LD4[ConstantPool]> 0x55eed9faf960, 0x55eeda0427e0, undef:i64
try.c: 0x55eeda0427e0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55eeda00bd70: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55eeda03b840: i64 = undef
try.c: 0x55eeda0c05d0: 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: 0x55eeda0c04a0: i32 = Constant<0>
try.c: 0x55eeda0c04a0: i32 = Constant<0>
try.c: 0x55eeda0c04a0: i32 = Constant<0>
try.c: 0x55eeda0c04a0: i32 = Constant<0>
try.c: 0x55eeda0c04a0: i32 = Constant<0>
try.c: 0x55eeda0c04a0: i32 = Constant<0>
try.c: 0x55eeda0c04a0: i32 = Constant<0>
try.c: 0x55eeda0c04a0: i32 = Constant<0>
try.c: 0x55eeda0c04a0: 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:41:
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:41:
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:41:
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: 0x5638f731c170: v4i64 = X86ISD::VTRUNC 0x5638f731c040
try.c: 0x5638f731c040: v16i32 = vselect 0x5638f732ab30, 0x5638f72b7510, 0x5638f731bf10
try.c: 0x5638f732ab30: v4i1 = X86ISD::PCMPGTM 0x5638f73119a0, 0x5638f730d530
try.c: 0x5638f73119a0: v4i64 = X86ISD::VBROADCAST 0x5638f72b46b0
try.c: 0x5638f72b46b0: i64,ch = load<LD8[%lsr.iv6971]> 0x5638f7222950, 0x5638f72fd200, undef:i64
try.c: 0x5638f72fd200: i64,ch = CopyFromReg 0x5638f7222950, Register:i64 %vreg50
try.c: 0x5638f730d790: i64 = Register %vreg50
try.c: 0x5638f72b5b80: i64 = undef
try.c: 0x5638f730d530: v4i64,ch = CopyFromReg 0x5638f7222950, Register:v4i64 %vreg13
try.c: 0x5638f73121f0: v4i64 = Register %vreg13
try.c: 0x5638f72b7510: v16i32 = X86ISD::VBROADCAST 0x5638f7311c00
try.c: 0x5638f7311c00: i32,ch = load<LD4[ConstantPool]> 0x5638f7222950, 0x5638f72bf230, undef:i64
try.c: 0x5638f72bf230: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5638f72f5c50: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5638f72b5b80: i64 = undef
try.c: 0x5638f731bf10: 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: 0x5638f731bde0: i32 = Constant<0>
try.c: 0x5638f731bde0: i32 = Constant<0>
try.c: 0x5638f731bde0: i32 = Constant<0>
try.c: 0x5638f731bde0: i32 = Constant<0>
try.c: 0x5638f731bde0: i32 = Constant<0>
try.c: 0x5638f731bde0: i32 = Constant<0>
try.c: 0x5638f731bde0: i32 = Constant<0>
try.c: 0x5638f731bde0: i32 = Constant<0>
try.c: 0x5638f731bde0: 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: 0x557834ecfdf0: v4i64 = X86ISD::VTRUNC 0x557834ecfcc0
try.c: 0x557834ecfcc0: v16i32 = vselect 0x557834ed3650, 0x557834e55e00, 0x557834ecfb90
try.c: 0x557834ed3650: v4i1 = X86ISD::PCMPGTM 0x557834eb57e0, 0x557834eb1d70
try.c: 0x557834eb57e0: v4i64 = X86ISD::VBROADCAST 0x557834e562c0
try.c: 0x557834e562c0: i64,ch = load<LD8[%lsr.iv6971]> 0x557834db0a40, 0x557834e52510, undef:i64
try.c: 0x557834e52510: i64,ch = CopyFromReg 0x557834db0a40, Register:i64 %vreg50
try.c: 0x557834eb1fd0: i64 = Register %vreg50
try.c: 0x557834e4e2d0: i64 = undef
try.c: 0x557834eb1d70: v4i64,ch = CopyFromReg 0x557834db0a40, Register:v4i64 %vreg13
try.c: 0x557834eb6030: v4i64 = Register %vreg13
try.c: 0x557834e55e00: v16i32 = X86ISD::VBROADCAST 0x557834eb5a40
try.c: 0x557834eb5a40: i32,ch = load<LD4[ConstantPool]> 0x557834db0a40, 0x557834e587a0, undef:i64
try.c: 0x557834e587a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x557834e4ec50: i64 = TargetConstantPool<i32 1> 0
try.c: 0x557834e4e2d0: i64 = undef
try.c: 0x557834ecfb90: 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: 0x557834ecfa60: i32 = Constant<0>
try.c: 0x557834ecfa60: i32 = Constant<0>
try.c: 0x557834ecfa60: i32 = Constant<0>
try.c: 0x557834ecfa60: i32 = Constant<0>
try.c: 0x557834ecfa60: i32 = Constant<0>
try.c: 0x557834ecfa60: i32 = Constant<0>
try.c: 0x557834ecfa60: i32 = Constant<0>
try.c: 0x557834ecfa60: i32 = Constant<0>
try.c: 0x557834ecfa60: 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: 0x55a43bf4cc70: v4i64 = X86ISD::VTRUNC 0x55a43bf4cb40
try.c: 0x55a43bf4cb40: v16i32 = vselect 0x55a43bf49650, 0x55a43bef3db0, 0x55a43bf4ca10
try.c: 0x55a43bf49650: v4i1 = X86ISD::PCMPGTM 0x55a43bf44a00, 0x55a43bf40590
try.c: 0x55a43bf44a00: v4i64 = X86ISD::VBROADCAST 0x55a43bef0f50
try.c: 0x55a43bef0f50: i64,ch = load<LD8[%lsr.iv6971]> 0x55a43be55950, 0x55a43bf3b3f0, undef:i64
try.c: 0x55a43bf3b3f0: i64,ch = CopyFromReg 0x55a43be55950, Register:i64 %vreg50
try.c: 0x55a43bf407f0: i64 = Register %vreg50
try.c: 0x55a43bef2420: i64 = undef
try.c: 0x55a43bf40590: v4i64,ch = CopyFromReg 0x55a43be55950, Register:v4i64 %vreg13
try.c: 0x55a43bf45250: v4i64 = Register %vreg13
try.c: 0x55a43bef3db0: v16i32 = X86ISD::VBROADCAST 0x55a43bf44c60
try.c: 0x55a43bf44c60: i32,ch = load<LD4[ConstantPool]> 0x55a43be55950, 0x55a43bee5020, undef:i64
try.c: 0x55a43bee5020: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55a43bf299a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55a43bef2420: i64 = undef
try.c: 0x55a43bf4ca10: 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: 0x55a43bf4c8e0: i32 = Constant<0>
try.c: 0x55a43bf4c8e0: i32 = Constant<0>
try.c: 0x55a43bf4c8e0: i32 = Constant<0>
try.c: 0x55a43bf4c8e0: i32 = Constant<0>
try.c: 0x55a43bf4c8e0: i32 = Constant<0>
try.c: 0x55a43bf4c8e0: i32 = Constant<0>
try.c: 0x55a43bf4c8e0: i32 = Constant<0>
try.c: 0x55a43bf4c8e0: i32 = Constant<0>
try.c: 0x55a43bf4c8e0: 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