| Issue |
71325
|
| Summary |
On Haswell: error: always_inline function '_mm512_setzero_si512' requires target feature 'evex512' while compiling nodejs 21.1.0
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
ms178
|
Trying to compile nodejs 21.1.0 with c0a73918bfddc6a04a897aab57fb95e8d2da7ec0, I see the following AVX-512 related errors, my Haswell-EP clearly doesn't support these instructions.
```
./deps/simdutf/simdutf.cpp:18171:26: error: always_inline function '_mm512_setzero_si512' requires target feature 'evex512', but would be inlined into function 'detect_encodings' that is compiled without support for 'evex512'
18171 | __m512i currentmax = _mm512_setzero_si512();
| ^
../deps/simdutf/simdutf.cpp:18171:26: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../deps/simdutf/simdutf.cpp:18173:20: error: always_inline function '_mm512_loadu_si512' requires target feature 'evex512', but would be inlined into function 'detect_encodings' that is compiled without support for 'evex512'
18173 | __m512i in = _mm512_loadu_si512((__m512i *)buf);
| ^
../deps/simdutf/simdutf.cpp:18173:20: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../deps/simdutf/simdutf.cpp:18174:43: error: always_inline function '_mm512_set1_epi16' requires target feature 'evex512', but would be inlined into function 'detect_encodings' that is compiled without support for 'evex512'
18174 | __m512i diff = _mm512_sub_epi16(in, _mm512_set1_epi16(uint16_t(0xD800)));
| ^
../deps/simdutf/simdutf.cpp:18174:43: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../deps/simdutf/simdutf.cpp:18174:22: error: always_inline function '_mm512_sub_epi16' requires target feature 'evex512', but would be inlined into function 'detect_encodings' that is compiled without support for 'evex512'
18174 | __m512i diff = _mm512_sub_epi16(in, _mm512_set1_epi16(uint16_t(0xD800)));
| ^
../deps/simdutf/simdutf.cpp:18174:22: error: AVX vector argument of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../deps/simdutf/simdutf.cpp:18176:11: error: '__builtin_ia32_ucmpw512_mask' needs target feature avx512bw,evex512
18176 | _mm512_cmplt_epu16_mask(diff, _mm512_set1_epi16(uint16_t(0x0800)));
| ^
/home/marcus/llvm18/lib/clang/18/include/avx512bwintrin.h:367:5: note: expanded from macro '_mm512_cmplt_epu16_mask'
367 | _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_LT)
| ^
/home/marcus/llvm18/lib/clang/18/include/avx512bwintrin.h:266:15: note: expanded from macro '_mm512_cmp_epu16_mask'
266 | ((__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \
| ^
../deps/simdutf/simdutf.cpp:18176:41: error: always_inline function '_mm512_set1_epi16' requires target feature 'evex512', but would be inlined into function 'detect_encodings' that is compiled without support for 'evex512'
18176 | _mm512_cmplt_epu16_mask(diff, _mm512_set1_epi16(uint16_t(0x0800)));
| ^
../deps/simdutf/simdutf.cpp:18176:41: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../deps/simdutf/simdutf.cpp:18190:38: error: '__builtin_ia32_ucmpw512_mask' needs target feature avx512bw,evex512
18190 | __mmask32 highsurrogates = _mm512_cmplt_epu16_mask(
| ^
/home/marcus/llvm18/lib/clang/18/include/avx512bwintrin.h:367:5: note: expanded from macro '_mm512_cmplt_epu16_mask'
367 | _mm512_cmp_epu16_mask((A), (B), _MM_CMPINT_LT)
| ^
/home/marcus/llvm18/lib/clang/18/include/avx512bwintrin.h:266:15: note: expanded from macro '_mm512_cmp_epu16_mask'
266 | ((__mmask32)__builtin_ia32_ucmpw512_mask((__v32hi)(__m512i)(a), \
| ^
../deps/simdutf/simdutf.cpp:18191:21: error: always_inline function '_mm512_set1_epi16' requires target feature 'evex512', but would be inlined into function 'detect_encodings' that is compiled without support for 'evex512'
18191 | diff, _mm512_set1_epi16(uint16_t(0x0400)));
| ^
../deps/simdutf/simdutf.cpp:18191:21: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../deps/simdutf/simdutf.cpp:18234:20: error: always_inline function '_mm512_max_epu32' requires target feature 'evex512', but would be inlined into function 'detect_encodings' that is compiled without support for 'evex512'
18234 | currentmax = _mm512_max_epu32(in, currentmax);
| ^
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs