Implementation notes: amd64, h6sandy, crypto_aead/aes128poetv1aes4

Computer: h6sandy
Microarchitecture: amd64; Sandy Bridge (206a7)
Architecture: amd64
CPU ID: GenuineIntel-000206a7-bfebfbff
SUPERCOP version: 20240808
Operation: crypto_aead
Primitive: aes128poetv1aes4
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
17148828848 0 045508 828 1088T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
17490124072 0 042044 868 1024T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
17771223400 0 039428 868 1024T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
17925224783 0 041404 868 1024T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
18108521121 0 034935 804 1056T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
18321422616 0 038060 828 1088T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
18509821367 0 035070 860 1024T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
18943321866 0 036044 868 1024T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716
19683322683 0 037763 820 1088T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071820240716

Compiler output


poet.c: poet.c:81:13: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
poet.c:     temp2 = _mm_aeskeygenassist_si128(temp1, 0x1);
poet.c:             ^
poet.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/__wmmintrin_aes.h:136:13: note: expanded from macro '_mm_aeskeygenassist_si128'
poet.c:   ((__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R)))
poet.c:             ^
poet.c: poet.c:85:13: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
poet.c:     temp2 = _mm_aeskeygenassist_si128(temp1, 0x2);
poet.c:             ^
poet.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/__wmmintrin_aes.h:136:13: note: expanded from macro '_mm_aeskeygenassist_si128'
poet.c:   ((__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R)))
poet.c:             ^
poet.c: poet.c:89:13: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
poet.c:     temp2 = _mm_aeskeygenassist_si128(temp1, 0x4);
poet.c:             ^
poet.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/__wmmintrin_aes.h:136:13: note: expanded from macro '_mm_aeskeygenassist_si128'
poet.c:   ((__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R)))
poet.c:             ^
poet.c: poet.c:93:13: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
poet.c:     temp2 = _mm_aeskeygenassist_si128(temp1, 0x8);
poet.c:             ^
poet.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/__wmmintrin_aes.h:136:13: note: expanded from macro '_mm_aeskeygenassist_si128'
poet.c:   ((__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R)))
poet.c:             ^
poet.c: poet.c:97:13: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
poet.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:niclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:niclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:niclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:niclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


poet.c: poet.c:488:26: error: '__builtin_ia32_vec_set_v16qi' needs target feature sse4.1
poet.c:     ctx->l = aes_encrypt(one, expanded_key);
poet.c:                          ^
poet.c: poet.c:182:24: note: expanded from macro 'one'
poet.c: #define one            _mm_insert_epi8(zero, 1, 15)
poet.c:                        ^
poet.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/smmintrin.h:930:13: note: expanded from macro '_mm_insert_epi8'
poet.c:   ((__m128i)__builtin_ia32_vec_set_v16qi((__v16qi)(__m128i)(X), \
poet.c:             ^
poet.c: poet.c:490:25: error: '__builtin_ia32_vec_set_v16qi' needs target feature sse4.1
poet.c:     k_axu = aes_encrypt(two, expanded_key);
poet.c:                         ^
poet.c: poet.c:183:24: note: expanded from macro 'two'
poet.c: #define two            _mm_insert_epi8(zero, 2, 15)
poet.c:                        ^
poet.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/smmintrin.h:930:13: note: expanded from macro '_mm_insert_epi8'
poet.c:   ((__m128i)__builtin_ia32_vec_set_v16qi((__v16qi)(__m128i)(X), \
poet.c:             ^
poet.c: poet.c:493:25: error: '__builtin_ia32_vec_set_v16qi' needs target feature sse4.1
poet.c:     k_axu = aes_encrypt(three, expanded_key);
poet.c:                         ^
poet.c: poet.c:184:24: note: expanded from macro 'three'
poet.c: #define three          _mm_insert_epi8(zero, 3, 15)
poet.c:                        ^
poet.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/smmintrin.h:930:13: note: expanded from macro '_mm_insert_epi8'
poet.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:niclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


poet.c: In file included from poet.c:31:
poet.c: poet.c: In function 'aes_revert_key':
poet.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h:77:1: error: inlining failed in call to 'always_inline' '_mm_aesimc_si128': target specific option mismatch
poet.c:    77 | _mm_aesimc_si128 (__m128i __X)
poet.c:       | ^~~~~~~~~~~~~~~~
poet.c: poet.c:51:18: note: called from here
poet.c:    51 |     dec_key[1] = _mm_aesimc_si128(enc_key[9]);
poet.c:       |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
poet.c: In file included from poet.c:31:
poet.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h:77:1: error: inlining failed in call to 'always_inline' '_mm_aesimc_si128': target specific option mismatch
poet.c:    77 | _mm_aesimc_si128 (__m128i __X)
poet.c:       | ^~~~~~~~~~~~~~~~
poet.c: poet.c:50:18: note: called from here
poet.c:    50 |     dec_key[2] = _mm_aesimc_si128(enc_key[8]);
poet.c:       |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
poet.c: In file included from poet.c:31:
poet.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h:77:1: error: inlining failed in call to 'always_inline' '_mm_aesimc_si128': target specific option mismatch
poet.c:    77 | _mm_aesimc_si128 (__m128i __X)
poet.c:       | ^~~~~~~~~~~~~~~~
poet.c: poet.c:49:18: note: called from here
poet.c:    49 |     dec_key[3] = _mm_aesimc_si128(enc_key[7]);
poet.c:       |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
poet.c: In file included from poet.c:31:
poet.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h:77:1: error: inlining failed in call to 'always_inline' '_mm_aesimc_si128': target specific option mismatch
poet.c:    77 | _mm_aesimc_si128 (__m128i __X)
poet.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:nigcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:nigcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:nigcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:nigcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


poet.c: poet.c:143:46: warning: argument 2 of type 'const uint8_t[128]' {aka 'const unsigned char[128]'} with mismatched bound [-Warray-parameter=]
poet.c:   143 | void keysetup(poet_ctx_t *ctx, const uint8_t key[KEYLEN_BITS])
poet.c:       |                                ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
poet.c: In file included from poet.c:33:
poet.c: poet.h:45:29: note: previously declared as 'const uint8_t[16]' {aka 'const unsigned char[16]'}
poet.c:    45 |               const uint8_t key[KEYLEN]);
poet.c:       |               ~~~~~~~~~~~~~~^~~~~~~~~~~

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Namespace violations


aes.o aes_decrypt T
aes.o aes_encrypt T
aes.o aes_expand_dec_key T
aes.o aes_expand_enc_key T
aes.o aesfour_encrypt T
poet.o decrypt_final T
poet.o encrypt_final T
poet.o keysetup T
poet.o process_header T

Number of similar (implementation,compiler) pairs: 9, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)