Implementation notes: amd64, cel02, crypto_aead/aes128n12t8silcv3

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_aead
Primitive: aes128n12t8silcv3
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
175785156 0 022821 824 1136T:aesnigcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
178744949 0 017924 792 1040T:aesniclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
191864514 0 019013 824 1072T:aesnigcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
201023992 0 018245 824 1072T:aesnigcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
205943822 0 016800 800 1072T:aesnigcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
12574822627 0 037312 816 896T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
12637224874 0 042899 832 960T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
13436021877 0 035060 800 896T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
22327823307 0 038306 800 856T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
23387221907 0 036312 816 896T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
25475421796 0 034956 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: 0x55ac0e769db0: v4i64 = X86ISD::VTRUNC 0x55ac0e769c80
try.c: 0x55ac0e769c80: v16i32 = vselect 0x55ac0e77caf0, 0x55ac0e708190, 0x55ac0e769b50
try.c: 0x55ac0e77caf0: v4i1 = X86ISD::PCMPGTM 0x55ac0e765780, 0x55ac0e761310
try.c: 0x55ac0e765780: v4i64 = X86ISD::VBROADCAST 0x55ac0e705330
try.c: 0x55ac0e705330: i64,ch = load<LD8[%lsr.iv6971]> 0x55ac0e676950, 0x55ac0e7586c0, undef:i64
try.c: 0x55ac0e7586c0: i64,ch = CopyFromReg 0x55ac0e676950, Register:i64 %vreg50
try.c: 0x55ac0e761570: i64 = Register %vreg50
try.c: 0x55ac0e706800: i64 = undef
try.c: 0x55ac0e761310: v4i64,ch = CopyFromReg 0x55ac0e676950, Register:v4i64 %vreg13
try.c: 0x55ac0e765fd0: v4i64 = Register %vreg13
try.c: 0x55ac0e708190: v16i32 = X86ISD::VBROADCAST 0x55ac0e7659e0
try.c: 0x55ac0e7659e0: i32,ch = load<LD4[ConstantPool]> 0x55ac0e676950, 0x55ac0e70a190, undef:i64
try.c: 0x55ac0e70a190: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ac0e74eda0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ac0e706800: i64 = undef
try.c: 0x55ac0e769b50: 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: 0x55ac0e769a20: i32 = Constant<0>
try.c: 0x55ac0e769a20: i32 = Constant<0>
try.c: 0x55ac0e769a20: i32 = Constant<0>
try.c: 0x55ac0e769a20: i32 = Constant<0>
try.c: 0x55ac0e769a20: i32 = Constant<0>
try.c: 0x55ac0e769a20: i32 = Constant<0>
try.c: 0x55ac0e769a20: i32 = Constant<0>
try.c: 0x55ac0e769a20: i32 = Constant<0>
try.c: 0x55ac0e769a20: 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: 0x56161709ef40: v4i64 = X86ISD::VTRUNC 0x56161709ee10
try.c: 0x56161709ee10: v16i32 = vselect 0x561617099910, 0x5616170414e0, 0x56161709ece0
try.c: 0x561617099910: v4i1 = X86ISD::PCMPGTM 0x561617092cb0, 0x56161708f850
try.c: 0x561617092cb0: v4i64 = X86ISD::VBROADCAST 0x5616170419a0
try.c: 0x5616170419a0: i64,ch = load<LD8[%lsr.iv6971]> 0x561616f8ca00, 0x561617034160, undef:i64
try.c: 0x561617034160: i64,ch = CopyFromReg 0x561616f8ca00, Register:i64 %vreg50
try.c: 0x56161708fab0: i64 = Register %vreg50
try.c: 0x56161702b5a0: i64 = undef
try.c: 0x56161708f850: v4i64,ch = CopyFromReg 0x561616f8ca00, Register:v4i64 %vreg13
try.c: 0x561617093500: v4i64 = Register %vreg13
try.c: 0x5616170414e0: v16i32 = X86ISD::VBROADCAST 0x561617092f10
try.c: 0x561617092f10: i32,ch = load<LD4[ConstantPool]> 0x561616f8ca00, 0x561617043e80, undef:i64
try.c: 0x561617043e80: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56161702bf20: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56161702b5a0: i64 = undef
try.c: 0x56161709ece0: 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: 0x56161709ebb0: i32 = Constant<0>
try.c: 0x56161709ebb0: i32 = Constant<0>
try.c: 0x56161709ebb0: i32 = Constant<0>
try.c: 0x56161709ebb0: i32 = Constant<0>
try.c: 0x56161709ebb0: i32 = Constant<0>
try.c: 0x56161709ebb0: i32 = Constant<0>
try.c: 0x56161709ebb0: i32 = Constant<0>
try.c: 0x56161709ebb0: i32 = Constant<0>
try.c: 0x56161709ebb0: 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: 0x56220af1b2a0: v4i64 = X86ISD::VTRUNC 0x56220af1b170
try.c: 0x56220af1b170: v16i32 = vselect 0x56220af0d150, 0x56220aea1b80, 0x56220af1b040
try.c: 0x56220af0d150: v4i1 = X86ISD::PCMPGTM 0x56220af01ae0, 0x56220aefd670
try.c: 0x56220af01ae0: v4i64 = X86ISD::VBROADCAST 0x56220aebbef0
try.c: 0x56220aebbef0: i64,ch = load<LD8[%lsr.iv6971]> 0x56220ae129d0, 0x56220aef84d0, undef:i64
try.c: 0x56220aef84d0: i64,ch = CopyFromReg 0x56220ae129d0, Register:i64 %vreg50
try.c: 0x56220aefd8d0: i64 = Register %vreg50
try.c: 0x56220aebd3c0: i64 = undef
try.c: 0x56220aefd670: v4i64,ch = CopyFromReg 0x56220ae129d0, Register:v4i64 %vreg13
try.c: 0x56220af02330: v4i64 = Register %vreg13
try.c: 0x56220aea1b80: v16i32 = X86ISD::VBROADCAST 0x56220af01d40
try.c: 0x56220af01d40: i32,ch = load<LD4[ConstantPool]> 0x56220ae129d0, 0x56220aebb4d0, undef:i64
try.c: 0x56220aebb4d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56220aee9120: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56220aebd3c0: i64 = undef
try.c: 0x56220af1b040: 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: 0x56220af1af10: i32 = Constant<0>
try.c: 0x56220af1af10: i32 = Constant<0>
try.c: 0x56220af1af10: i32 = Constant<0>
try.c: 0x56220af1af10: i32 = Constant<0>
try.c: 0x56220af1af10: i32 = Constant<0>
try.c: 0x56220af1af10: i32 = Constant<0>
try.c: 0x56220af1af10: i32 = Constant<0>
try.c: 0x56220af1af10: i32 = Constant<0>
try.c: 0x56220af1af10: 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: 0x55e232117350: v4i64 = X86ISD::VTRUNC 0x55e232117220
try.c: 0x55e232117220: v16i32 = vselect 0x55e23210b4b0, 0x55e23209fab0, 0x55e2321170f0
try.c: 0x55e23210b4b0: v4i1 = X86ISD::PCMPGTM 0x55e2320ff9f0, 0x55e2320fb580
try.c: 0x55e2320ff9f0: v4i64 = X86ISD::VBROADCAST 0x55e2320a38d0
try.c: 0x55e2320a38d0: i64,ch = load<LD8[%lsr.iv6971]> 0x55e232010950, 0x55e2320f63e0, undef:i64
try.c: 0x55e2320f63e0: i64,ch = CopyFromReg 0x55e232010950, Register:i64 %vreg50
try.c: 0x55e2320fb7e0: i64 = Register %vreg50
try.c: 0x55e23209e120: i64 = undef
try.c: 0x55e2320fb580: v4i64,ch = CopyFromReg 0x55e232010950, Register:v4i64 %vreg13
try.c: 0x55e232100240: v4i64 = Register %vreg13
try.c: 0x55e23209fab0: v16i32 = X86ISD::VBROADCAST 0x55e2320ffc50
try.c: 0x55e2320ffc50: i32,ch = load<LD4[ConstantPool]> 0x55e232010950, 0x55e2320a2eb0, undef:i64
try.c: 0x55e2320a2eb0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55e2320f3640: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55e23209e120: i64 = undef
try.c: 0x55e2321170f0: 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: 0x55e232116fc0: i32 = Constant<0>
try.c: 0x55e232116fc0: i32 = Constant<0>
try.c: 0x55e232116fc0: i32 = Constant<0>
try.c: 0x55e232116fc0: i32 = Constant<0>
try.c: 0x55e232116fc0: i32 = Constant<0>
try.c: 0x55e232116fc0: i32 = Constant<0>
try.c: 0x55e232116fc0: i32 = Constant<0>
try.c: 0x55e232116fc0: i32 = Constant<0>
try.c: 0x55e232116fc0: 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: 0x5559674c5280: v4i64 = X86ISD::VTRUNC 0x5559674c5150
try.c: 0x5559674c5150: v16i32 = vselect 0x5559674b5980, 0x555967439fa0, 0x5559674c5020
try.c: 0x5559674b5980: v4i1 = X86ISD::PCMPGTM 0x5559674a1000, 0x55596749d190
try.c: 0x5559674a1000: v4i64 = X86ISD::VBROADCAST 0x55596743a460
try.c: 0x55596743a460: i64,ch = load<LD8[%lsr.iv6971]> 0x55596739aa30, 0x55596743c5e0, undef:i64
try.c: 0x55596743c5e0: i64,ch = CopyFromReg 0x55596739aa30, Register:i64 %vreg50
try.c: 0x55596749d3f0: i64 = Register %vreg50
try.c: 0x55596745c030: i64 = undef
try.c: 0x55596749d190: v4i64,ch = CopyFromReg 0x55596739aa30, Register:v4i64 %vreg13
try.c: 0x5559674a1850: v4i64 = Register %vreg13
try.c: 0x555967439fa0: v16i32 = X86ISD::VBROADCAST 0x5559674a1260
try.c: 0x5559674a1260: i32,ch = load<LD4[ConstantPool]> 0x55596739aa30, 0x55596744ba30, undef:i64
try.c: 0x55596744ba30: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55596745c9b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55596745c030: i64 = undef
try.c: 0x5559674c5020: 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: 0x5559674c4ef0: i32 = Constant<0>
try.c: 0x5559674c4ef0: i32 = Constant<0>
try.c: 0x5559674c4ef0: i32 = Constant<0>
try.c: 0x5559674c4ef0: i32 = Constant<0>
try.c: 0x5559674c4ef0: i32 = Constant<0>
try.c: 0x5559674c4ef0: i32 = Constant<0>
try.c: 0x5559674c4ef0: i32 = Constant<0>
try.c: 0x5559674c4ef0: i32 = Constant<0>
try.c: 0x5559674c4ef0: 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: 0x560935aca950: v4i64 = X86ISD::VTRUNC 0x560935aca820
try.c: 0x560935aca820: v16i32 = vselect 0x560935abdc30, 0x560935a8f2c0, 0x560935aca6f0
try.c: 0x560935abdc30: v4i1 = X86ISD::PCMPGTM 0x560935ac5800, 0x560935ac1390
try.c: 0x560935ac5800: v4i64 = X86ISD::VBROADCAST 0x560935a624c0
try.c: 0x560935a624c0: i64,ch = load<LD8[%lsr.iv6971]> 0x5609359d69d0, 0x560935ab82c0, undef:i64
try.c: 0x560935ab82c0: i64,ch = CopyFromReg 0x5609359d69d0, Register:i64 %vreg50
try.c: 0x560935ac15f0: i64 = Register %vreg50
try.c: 0x560935a63990: i64 = undef
try.c: 0x560935ac1390: v4i64,ch = CopyFromReg 0x5609359d69d0, Register:v4i64 %vreg13
try.c: 0x560935ac6050: v4i64 = Register %vreg13
try.c: 0x560935a8f2c0: v16i32 = X86ISD::VBROADCAST 0x560935ac5a60
try.c: 0x560935ac5a60: i32,ch = load<LD4[ConstantPool]> 0x5609359d69d0, 0x560935a61aa0, undef:i64
try.c: 0x560935a61aa0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560935aaec80: i64 = TargetConstantPool<i32 1> 0
try.c: 0x560935a63990: i64 = undef
try.c: 0x560935aca6f0: 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: 0x560935aca5c0: i32 = Constant<0>
try.c: 0x560935aca5c0: i32 = Constant<0>
try.c: 0x560935aca5c0: i32 = Constant<0>
try.c: 0x560935aca5c0: i32 = Constant<0>
try.c: 0x560935aca5c0: i32 = Constant<0>
try.c: 0x560935aca5c0: i32 = Constant<0>
try.c: 0x560935aca5c0: i32 = Constant<0>
try.c: 0x560935aca5c0: i32 = Constant<0>
try.c: 0x560935aca5c0: 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