inline functions don't follow feature restrections enforced by clang
DarkDimius opened this issue · 1 comments
DarkDimius commented
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
erthink commented
Appropriate compiler options are required to build t1ha used in your own project(s). It is obviously.