Implementation notes: amd64, trident, crypto_stream/aes256ctr

Computer: trident
Microarchitecture: amd64; Core 2 65nm (6fb)
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20240107
Operation: crypto_stream
Primitive: aes256ctr
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2955119003 2800 01654679 145324 10488T:cryptoppg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
2956321120 2816 01657434 145340 10488T:cryptoppg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
2965118675 2800 01653573 145324 10488T:cryptoppg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
2984212323 2064 01359742 145324 10392T:cryptoppclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
2988412227 2064 01358578 145324 10392T:cryptoppclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
298899408 1480 01354343 145316 10392T:cryptoppclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
299868296 3272 01646615 146388 10456T:cryptoppg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
3037117809 6592 01366971 148756 10392T:cryptoppclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
54741428 0 016427 868 952T:opensslclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
54769437 0 014104 852 984T:opensslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
54952428 0 016123 868 952T:opensslclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
54965423 0 013393 860 952T:opensslclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
54974654 0 015808 852 984T:opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
55035358 0 012731 828 984T:opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
55057437 0 013913 860 952T:opensslclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
55115428 0 015339 868 952T:opensslclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
55254472 0 014520 852 984T:opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212

Compiler output

Implementation: dolbeau/aesenc-int
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
aesenc-int.c: aesenc-int.c:58:3: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
aesenc-int.c: BLOCK1(0x01);
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:39:11: note: expanded from macro 'BLOCK1'
aesenc-int.c: temp1 = _mm_aeskeygenassist_si128(temp2, IMM); \
aesenc-int.c: ^
aesenc-int.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/__wmmintrin_aes.h:136:12: note: expanded from macro '_mm_aeskeygenassist_si128'
aesenc-int.c: (__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R))
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:59:3: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
aesenc-int.c: BLOCK2(0x01);
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:49:11: note: expanded from macro 'BLOCK2'
aesenc-int.c: temp1 = _mm_aeskeygenassist_si128(temp0, IMM); \
aesenc-int.c: ^
aesenc-int.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/__wmmintrin_aes.h:136:12: note: expanded from macro '_mm_aeskeygenassist_si128'
aesenc-int.c: (__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R))
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:61:3: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
aesenc-int.c: BLOCK1(0x02);
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:39:11: note: expanded from macro 'BLOCK1'
aesenc-int.c: temp1 = _mm_aeskeygenassist_si128(temp2, IMM); \
aesenc-int.c: ^
aesenc-int.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/__wmmintrin_aes.h:136:12: note: expanded from macro '_mm_aeskeygenassist_si128'
aesenc-int.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/aesenc-int
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/aesenc-int
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/aesenc-int
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/aesenc-int
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/aesenc-int

Compiler output

Implementation: dolbeau/aesenc-int
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
aesenc-int.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:39,
aesenc-int.c: from aesenc-int.c:12:
aesenc-int.c: aesenc-int.c: In function 'aesni_key256_expand':
aesenc-int.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/wmmintrin.h:87:1: error: inlining failed in call to 'always_inline' '_mm_aeskeygenassist_si128': target specific option mismatch
aesenc-int.c: 87 | _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
aesenc-int.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: aesenc-int.c:39:11: note: called from here
aesenc-int.c: 39 | temp1 = _mm_aeskeygenassist_si128(temp2, IMM); \
aesenc-int.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: aesenc-int.c:76:3: note: in expansion of macro 'BLOCK1'
aesenc-int.c: 76 | BLOCK1(0x40);
aesenc-int.c: | ^~~~~~
aesenc-int.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:39,
aesenc-int.c: from aesenc-int.c:12:
aesenc-int.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/wmmintrin.h:87:1: error: inlining failed in call to 'always_inline' '_mm_aeskeygenassist_si128': target specific option mismatch
aesenc-int.c: 87 | _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
aesenc-int.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: aesenc-int.c:49:11: note: called from here
aesenc-int.c: 49 | temp1 = _mm_aeskeygenassist_si128(temp0, IMM); \
aesenc-int.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: aesenc-int.c:74:3: note: in expansion of macro 'BLOCK2'
aesenc-int.c: 74 | BLOCK2(0x20);
aesenc-int.c: | ^~~~~~
aesenc-int.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:39,
aesenc-int.c: from aesenc-int.c:12:
aesenc-int.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/aesenc-int
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/aesenc-int
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/aesenc-int
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/aesenc-int