erthink/t1ha

inline functions don't follow feature restrections enforced by clang

DarkDimius opened this issue · 1 comments

In file included from external/t1ha/src/t1ha0_ia32aes_avx.c:2:
external/t1ha/src/t1ha0_ia32aes_a.h:54:17: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
    __m128i y = _mm_aesenc_si128(x, _mm_set_epi64x(prime_5, prime_6));
                ^
external/t1ha/src/t1ha0_ia32aes_a.h:70:21: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
      __m128i v0y = _mm_aesenc_si128(v0, y);
                    ^
external/t1ha/src/t1ha0_ia32aes_a.h:71:22: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
      __m128i v2x6 = _mm_aesenc_si128(v2, _mm_xor_si128(x, v6));
                     ^
external/t1ha/src/t1ha0_ia32aes_a.h:73:25: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
          _mm_xor_si128(_mm_aesenc_si128(v4, v5), _mm_add_epi64(v6, v7));
                        ^
external/t1ha/src/t1ha0_ia32aes_a.h:75:24: error: always_inline function '_mm_aesdec_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
      __m128i v0y7_1 = _mm_aesdec_si128(_mm_sub_epi64(v7, v0y), v1);
                       ^
external/t1ha/src/t1ha0_ia32aes_a.h:76:24: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
      __m128i v2x6_3 = _mm_aesenc_si128(v2x6, v3);
                       ^
external/t1ha/src/t1ha0_ia32aes_a.h:78:11: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
      x = _mm_aesenc_si128(v45_67, _mm_add_epi64(x, y));
          ^
external/t1ha/src/t1ha0_ia32aes_a.h:79:11: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
      y = _mm_aesenc_si128(v2x6_3, _mm_xor_si128(v0y7_1, v5));
          ^
external/t1ha/src/t1ha0_ia32aes_a.h:86:11: error: always_inline function '_mm_aesdec_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
      x = _mm_aesdec_si128(x, v0y);
          ^
external/t1ha/src/t1ha0_ia32aes_a.h:87:11: error: always_inline function '_mm_aesdec_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
      y = _mm_aesdec_si128(y, v1x);
          ^
external/t1ha/src/t1ha0_ia32aes_a.h:91:11: error: always_inline function '_mm_aesdec_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
      x = _mm_aesdec_si128(x, v2y);
          ^
external/t1ha/src/t1ha0_ia32aes_a.h:92:11: error: always_inline function '_mm_aesdec_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
      y = _mm_aesdec_si128(y, v3x);
          ^
external/t1ha/src/t1ha0_ia32aes_a.h:98:11: error: always_inline function '_mm_aesdec_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
      x = _mm_aesdec_si128(x, v0y);
          ^
external/t1ha/src/t1ha0_ia32aes_a.h:99:11: error: always_inline function '_mm_aesdec_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
      y = _mm_aesdec_si128(y, v1x);
          ^
external/t1ha/src/t1ha0_ia32aes_a.h:104:11: error: always_inline function '_mm_aesdec_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
      x = _mm_aesdec_si128(x, _mm_loadu_si128(v++));
          ^
external/t1ha/src/t1ha0_ia32aes_a.h:107:23: error: always_inline function '_mm_aesdec_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
    x = _mm_add_epi64(_mm_aesdec_si128(x, _mm_aesenc_si128(y, x)), y);
                      ^
external/t1ha/src/t1ha0_ia32aes_a.h:107:43: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 't1ha0_ia32aes_avx' that is compiled without support for 'aes'
    x = _mm_add_epi64(_mm_aesdec_si128(x, _mm_aesenc_si128(y, x)), y);
                                          ^
> clang --version
Apple LLVM version 9.1.0 (clang-902.0.39.1)
Target: x86_64-apple-darwin17.4.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Appropriate compiler options are required to build t1ha used in your own project(s). It is obviously.