Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clang 18.1.5 errors on AVX vector return of type 'F' (aka 'Vec<16, float>') without 'evex512' enabled changes the ABI #91719

Closed
FireBurn opened this issue May 10, 2024 · 9 comments

Comments

@FireBurn
Copy link

This has affected compiling libreoffice and nodejs so far. Clang 18.1.3 built these packages fine, so I think the change was added in 18.1.4 or 18.1.5 - which seems strange as I'd expect only bug fixes

LibreOffice

[CUS] writerfilter/source
S=/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2 && I=$S/instdir && W=$S/workdir &&  mkdir -p $W/GenCxxObject/UnpackedTarball/skia/modules/skcms/ $W/Dep/GenCxxObject/UnpackedTarball/skia/modules/skcms/ && cd /var/tmp/portage
/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2 && CCACHE_CPP2=1       x86_64-pc-linux-gnu-clang++ -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -DCPPU_ENV=gcc3 -DLINUX -DNDEBUG -DOSL_DEBUG_LEVEL=0 -DUNIX -DUNX -DX86_64 -D_PTHR
EADS -D_REENTRANT  -DSKIA_IMPLEMENTATION=1 -DSKIA_DLL -DSK_USER_CONFIG_HEADER="<$S/config_host/config_skia.h>"  -DSK_CPU_SSE_LEVEL=SK_CPU_SSE_LEVEL_SSE2 -DSK_ENABLE_SKSL_IN_RASTER_PIPELINE  -DSYSTEM_EXPAT  -DSYSTEM_ZLIB -DZLIB_CONST   -fvisibility=hidd
en         -Wall -Wno-missing-braces -Wendif-labels -Wextra -Wundef -Wunreachable-code -Wshadow -Wunused-macros -Wembedded-directive -finput-charset=UTF-8 -fmessage-length=0 -fno-common -pipe -fstack-protector-strong -Wdeprecated-copy-dtor -Wimplicit-f
allthrough -Wunused-exception-parameter -Wrange-loop-analysis -fvisibility-inlines-hidden -fPIC -Wshadow -Woverloaded-virtual -std=c++20 -pthread -O3 -pipe -march=native -O2 -fexceptions -O2 -w -DLIBO_INTERNAL_ONLY  -c $W/UnpackedTarball/skia/modules/s
kcms/skcms.cpp -o $W/GenCxxObject/UnpackedTarball/skia/modules/skcms/skcms.o  -I$S/include -I/opt/openjdk-bin-21.0.3_p9/include -I/opt/openjdk-bin-21.0.3_p9/include/linux -I$S/config_host     -isystem /usr/include/freetype2     -isystem /usr/include/fr
eetype2          -isystem /usr/include/libpng16  -I$W/UnpackedTarball/skia -I$W/UnpackedTarball/skia/modules/skcms/ -I$W/UnpackedTarball/skia/third_party/vulkanmemoryallocator/ -I$W/UnpackedTarball/skia/include/third_party/vulkan/ -I$S/external/skia/in
c/    
In file included from /var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/skcms.cpp:2470:
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:764:21: error: AVX vector return of type 'F' (aka 'Vec<16, float>') without 'evex512' enabled changes the ABI
  764 |                 a = F_from_U8(load<U8>(src + 1*i));
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:768:29: error: AVX vector return of type 'F' (aka 'Vec<16, float>') without 'evex512' enabled changes the ABI
  768 |                 r = g = b = F_from_U8(load<U8>(src + 1*i));
      |                             ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:774:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  774 |                 r = cast<F>((abgr >> 12) & 0xf) * (1/15.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:775:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  775 |                 g = cast<F>((abgr >>  8) & 0xf) * (1/15.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:776:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  776 |                 b = cast<F>((abgr >>  4) & 0xf) * (1/15.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:777:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  777 |                 a = cast<F>((abgr >>  0) & 0xf) * (1/15.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:783:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  783 |                 r = cast<F>(rgb & (uint16_t)(31<< 0)) * (1.0f / (31<< 0));
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:784:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  784 |                 g = cast<F>(rgb & (uint16_t)(63<< 5)) * (1.0f / (63<< 5));
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:785:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  785 |                 b = cast<F>(rgb & (uint16_t)(31<<11)) * (1.0f / (31<<11));
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:807:29: error: AVX vector return of type 'unsigned int __attribute__((ext_vector_type(16)))' (vector of 16 'unsign
ed int' values) without 'evex512' enabled changes the ABI
  807 |                 r = cast<F>(load_3<U32>(rgb+0) ) * (1/255.0f);
      |                             ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:807:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  807 |                 r = cast<F>(load_3<U32>(rgb+0) ) * (1/255.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:808:29: error: AVX vector return of type 'unsigned int __attribute__((ext_vector_type(16)))' (vector of 16 'unsign
ed int' values) without 'evex512' enabled changes the ABI
  808 |                 g = cast<F>(load_3<U32>(rgb+1) ) * (1/255.0f);
      |                             ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:808:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  808 |                 g = cast<F>(load_3<U32>(rgb+1) ) * (1/255.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:809:29: error: AVX vector return of type 'unsigned int __attribute__((ext_vector_type(16)))' (vector of 16 'unsigned int' values) without 'evex512' enabled changes the ABI
  809 |                 b = cast<F>(load_3<U32>(rgb+2) ) * (1/255.0f);
      |                             ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:809:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  809 |                 b = cast<F>(load_3<U32>(rgb+2) ) * (1/255.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:814:28: error: AVX vector return of type 'unsigned int __attribute__((ext_vector_type(16)))' (vector of 16 'unsigned int' values) without 'evex512' enabled changes the ABI
  814 |                 U32 rgba = load<U32>(src + 4*i);
      |                            ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:816:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  816 |                 r = cast<F>((rgba >>  0) & 0xff) * (1/255.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:817:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  817 |                 g = cast<F>((rgba >>  8) & 0xff) * (1/255.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:818:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  818 |                 b = cast<F>((rgba >> 16) & 0xff) * (1/255.0f);
      |                     ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]

Nodejs

FAILED: obj/deps/simdjson/simdjson.simdjson.o 
clang++ -MMD -MF obj/deps/simdjson/simdjson.simdjson.o.d -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DNODE_OPENSSL_CERT_STORE -DICU_NO_USER_DATA_OVERRIDE -D__STDC_FORMAT_MACROS -I../../deps/simdjson -pthread -Wall -Wextra -Wno-unus
ed-parameter -m64 -fno-omit-frame-pointer -O3 -pipe -march=native -fno-rtti -fno-exceptions -std=gnu++17  -c ../../deps/simdjson/simdjson.cpp -o obj/deps/simdjson/simdjson.simdjson.o
../../deps/simdjson/simdjson.cpp:20526:14: error: always_inline function '_mm512_loadu_si512' requires target feature 'evex512', but would be inlined into function 'load' that is compiled without support for 'evex512'
 20526 |       return _mm512_loadu_si512(reinterpret_cast<const __m512i *>(values));
       |              ^
../../deps/simdjson/simdjson.cpp:20526:14: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../../deps/simdjson/simdjson.cpp:20526:14: error: AVX vector argument of type 'const __m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../../deps/simdjson/simdjson.cpp:20652:51: error: AVX vector argument of type 'const __m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
 20652 |     simdjson_inline simd8(const __m512i _value) : base8_numeric<uint8_t>(_value) {}
       |                                                   ^
../../deps/simdjson/simdjson.cpp:20546:59: error: AVX vector argument of type 'const __m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
 20546 |     simdjson_inline base8_numeric(const __m512i _value) : base8<T>(_value) {}
       |                                                           ^
../../deps/simdjson/simdjson.cpp:20492:51: error: AVX vector argument of type 'const __m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
 20492 |     simdjson_inline base8(const __m512i _value) : base<simd8<T>>(_value) {}
       |                                                   ^
../../deps/simdjson/simdjson.cpp:20717:52: error: always_inline function '_mm512_movepi8_mask' requires target feature 'evex512', but would be inlined into function 'is_ascii' that is compiled without support for 'evex512'
 20717 |     simdjson_inline bool is_ascii() const { return _mm512_movepi8_mask(*this) == 0; }
       |                                                    ^
../../deps/simdjson/simdjson.cpp:20717:52: error: AVX vector argument of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../../deps/simdjson/simdjson.cpp:20473:71: error: always_inline function '_mm512_or_si512' requires target feature 'evex512', but would be inlined into function 'operator|' that is compiled without support for 'evex512'
 20473 |     simdjson_inline Child operator|(const Child other) const { return _mm512_or_si512(*this, other); }
       |                                                                       ^
../../deps/simdjson/simdjson.cpp:20473:71: error: AVX vector argument of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../../deps/simdjson/simdjson.cpp:20473:71: error: AVX vector argument of type 'const __m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../../deps/simdjson/simdjson.cpp:20504:14: error: '__builtin_ia32_palignr512' needs target feature avx512bw,evex512
 20504 |       return _mm512_alignr_epi8(*this, _mm512_permutex2var_epi64(prev_chunk, _mm512_set_epi64(13, 12, 11, 10, 9, 8, 7, 6), *this), shift);
       |              ^
/usr/lib/llvm/18/bin/../../../../lib/clang/18/include/avx512bwintrin.h:1977:13: note: expanded from macro '_mm512_alignr_epi8'
 1977 |   ((__m512i)__builtin_ia32_palignr512((__v64qi)(__m512i)(A), \
      |             ^
../../deps/simdjson/simdjson.cpp:20504:78: error: always_inline function '_mm512_set_epi64' requires target feature 'evex512', but would be inlined into function 'prev' that is compiled without support for 'evex512'
 20504 |       return _mm512_alignr_epi8(*this, _mm512_permutex2var_epi64(prev_chunk, _mm512_set_epi64(13, 12, 11, 10, 9, 8, 7, 6), *this), shift);
       |                                                                              ^
../../deps/simdjson/simdjson.cpp:20504:78: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../../deps/simdjson/simdjson.cpp:20504:40: error: always_inline function '_mm512_permutex2var_epi64' requires target feature 'evex512', but would be inlined into function 'prev' that is compiled without support for 'evex512'
 20504 |       return _mm512_alignr_epi8(*this, _mm512_permutex2var_epi64(prev_chunk, _mm512_set_epi64(13, 12, 11, 10, 9, 8, 7, 6), *this), shift);
       |                                        ^
../../deps/simdjson/simdjson.cpp:20504:40: error: AVX vector argument of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../../deps/simdjson/simdjson.cpp:20504:14: error: AVX vector argument of type 'const __m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
 20504 |       return _mm512_alignr_epi8(*this, _mm512_permutex2var_epi64(prev_chunk, _mm512_set_epi64(13, 12, 11, 10, 9, 8, 7, 6), *this), shift);
       |              ^
/usr/lib/llvm/18/bin/../../../../lib/clang/18/include/avx512bwintrin.h:1977:3: note: expanded from macro '_mm512_alignr_epi8'
 1977 |   ((__m512i)__builtin_ia32_palignr512((__v64qi)(__m512i)(A), \
      |   ^
../../deps/simdjson/simdjson.cpp:20725:72: error: always_inline function '_mm512_srli_epi16' requires target feature 'evex512', but would be inlined into function 'shr' that is compiled without support for 'evex512'
 20725 |     simdjson_inline simd8<uint8_t> shr() const { return simd8<uint8_t>(_mm512_srli_epi16(*this, N)) & uint8_t(0xFFu >> N); }
       |                                                                        ^
../../deps/simdjson/simdjson.cpp:20725:72: error: AVX vector argument of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
[229/1894] clang -MMD -MF obj/deps/llhttp/src/llhttp.llhttp.o.d -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DNODE_OPENSSL_CERT_STORE -DICU_NO_USER_DATA_OVERRIDE -D__STDC_FORMAT_MACROS -I../../deps/llhttp -I../../deps/llhttp/include -pthread -Wall -Wextra -Wno-unused-parameter -m64 -fno-omit-frame-pointer -O3 -pipe -march=native  -c ../../deps/llhttp/src/llhttp.c -o obj/deps/llhttp/src/llhttp.llhttp.o
../../deps/llhttp/src/llhttp.c:2635:13: warning: unused variable 'avail' [-Wunused-variable]
 2635 |         int avail;
      |             ^~~~~
../../deps/llhttp/src/llhttp.c:2865:13: warning: unused variable 'avail' [-Wunused-variable]
 2865 |         int avail;
      |             ^~~~~
2 warnings generated.
@github-actions github-actions bot added the clang Clang issues not falling into any other category label May 10, 2024
@jcestibariz
Copy link

jcestibariz commented May 11, 2024

I got similar errors building chromium-124.0.6367.201 with clang version 18.1.5

FAILED: obj/skia/skcms_TransformSkx/skcms_TransformSkx.o 
x86_64-pc-linux-gnu-clang++ -MD -MF obj/skia/skcms_TransformSkx/skcms_TransformSkx.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -DCR_LIBCXX_REVISION=80307e66e74bae927fb8709a549859e777e3bf0b -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DSK_ENABLE_SKSL -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_WIN_FONTMGR_NO_SIMULATIONS -DSK_DISABLE_LEGACY_INIT_DECODERS -DSK_SLUG_DISABLE_LEGACY_DESERIALIZE -DSK_DISABLE_LEGACY_VULKAN_BACKENDSEMAPHORE -DSK_DISABLE_LEGACY_CREATE_CHARACTERIZATION -DSK_DISABLE_LEGACY_VULKAN_MUTABLE_TEXTURE_STATE -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_ENCODE_PNG -DSK_ENCODE_WEBP -DSK_GANESH -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DSK_GL -DSK_VULKAN=1 -DSK_GRAPHITE -DSK_DAWN -DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_WAYLAND_KHR -DIS_SKIA_IMPL=1 -DSKIA_IMPLEMENTATION=1 -DSK_TYPEFACE_FACTORY_FREETYPE -DSK_FONTMGR_FREETYPE_EMPTY_AVAILABLE -DSK_GAMMA_EXPONENT=1.2 -DSK_GAMMA_CONTRAST=0.2 -DSK_DEFAULT_FONT_CACHE_LIMIT=20971520 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/skia -Igen/third_party/skia -I../../third_party/wuffs/src/release/c -I../../third_party/vulkan/include -I../../third_party/vulkan-deps/vulkan-headers/src/include -I../../third_party/wayland/src/src -I../../third_party/wayland/include/src -Igen/third_party/dawn/include -I../../third_party/dawn/include -w -mavx512f -mavx512dq -mavx512cd -mavx512bw -mavx512vl -std=c11 -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -flto=thin -fno-split-lto-unit -fwhole-program-vtables -fcomplete-member-pointers -no-canonical-prefixes -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wno-redundant-parens -Wall -Wno-unused-variable -Wno-c++11-narrowing -Wno-unused-but-set-variable -Wno-misleading-indentation -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wno-invalid-offsetof -Wno-vla-extension -Wno-thread-safety-reference-return -std=c++20 -Wno-trigraphs -gsimple-template-names -fno-exceptions -fno-rtti -nostdinc++ -isystem../../third_party/libc++/src/include -isystem../../third_party/libc++abi/src/include -fvisibility-inlines-hidden -Wenum-compare-conditional -Wno-c++11-narrowing-const-reference -march=native -O2 -pipe -Wno-unknown-warning-option -c ../../third_party/skia/modules/skcms/src/skcms_TransformSkx.cc -o obj/skia/skcms_TransformSkx/skcms_TransformSkx.o
In file included from ../../third_party/skia/modules/skcms/src/skcms_TransformSkx.cc:53:
../../third_party/skia/modules/skcms/src/Transform_inl.h:852:9: error: AVX vector return of type 'F' (aka 'Vec<16, float>') without 'evex512' enabled changes the ABI
  852 |     a = F_from_U8(load<U8>(src + 1*i));
      |         ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:608:12: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  608 |     return cast<F>(v) * (1/255.0f);
      |            ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:856:17: error: AVX vector return of type 'F' (aka 'Vec<16, float>') without 'evex512' enabled changes the ABI
  856 |     r = g = b = F_from_U8(load<U8>(src + 1*i));
      |                 ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:862:9: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  862 |     r = cast<F>((abgr >> 12) & 0xf) * (1/15.0f);
      |         ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:863:9: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  863 |     g = cast<F>((abgr >>  8) & 0xf) * (1/15.0f);
      |         ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:864:9: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  864 |     b = cast<F>((abgr >>  4) & 0xf) * (1/15.0f);
      |         ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:865:9: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  865 |     a = cast<F>((abgr >>  0) & 0xf) * (1/15.0f);
      |         ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:871:9: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  871 |     r = cast<F>(rgb & (uint16_t)(31<< 0)) * (1.0f / (31<< 0));
      |         ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:872:9: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  872 |     g = cast<F>(rgb & (uint16_t)(63<< 5)) * (1.0f / (63<< 5));
      |         ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:873:9: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  873 |     b = cast<F>(rgb & (uint16_t)(31<<11)) * (1.0f / (31<<11));
      |         ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:895:17: error: AVX vector return of type 'unsigned int __attribute__((ext_vector_type(16)))' (vector of 16 'unsigned int' values) without 'evex512' enabled changes the ABI
  895 |     r = cast<F>(load_3<U32>(rgb+0) ) * (1/255.0f);
      |                 ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:895:9: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  895 |     r = cast<F>(load_3<U32>(rgb+0) ) * (1/255.0f);
      |         ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:896:17: error: AVX vector return of type 'unsigned int __attribute__((ext_vector_type(16)))' (vector of 16 'unsigned int' values) without 'evex512' enabled changes the ABI
  896 |     g = cast<F>(load_3<U32>(rgb+1) ) * (1/255.0f);
      |                 ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:896:9: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  896 |     g = cast<F>(load_3<U32>(rgb+1) ) * (1/255.0f);
      |         ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:897:17: error: AVX vector return of type 'unsigned int __attribute__((ext_vector_type(16)))' (vector of 16 'unsigned int' values) without 'evex512' enabled changes the ABI
  897 |     b = cast<F>(load_3<U32>(rgb+2) ) * (1/255.0f);
      |                 ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:897:9: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  897 |     b = cast<F>(load_3<U32>(rgb+2) ) * (1/255.0f);
      |         ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:902:16: error: AVX vector return of type 'unsigned int __attribute__((ext_vector_type(16)))' (vector of 16 'unsigned int' values) without 'evex512' enabled changes the ABI
  902 |     U32 rgba = load<U32>(src + 4*i);
      |                ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:904:9: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  904 |     r = cast<F>((rgba >>  0) & 0xff) * (1/255.0f);
      |         ^
../../third_party/skia/modules/skcms/src/Transform_inl.h:905:9: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  905 |     g = cast<F>((rgba >>  8) & 0xff) * (1/255.0f);
      |         ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.

@contyk
Copy link

contyk commented May 12, 2024

I hit the same issue with nodejs-22.1.0 with 18.1.5; it previously built fine with 18.1.4, though. Another, smaller package I'm hitting this with is highway-1.0.7.

This only happens with -march=native; things build fine with -march=alderlake on my i9-12900KS, so this is probably about feature mis-detection.

I'll downgrade to 18.1.4, verify things work again and check what native expands to, if I can pinpoint anything specific...

@FireBurn
Copy link
Author

Thanks for ruling out 18.1.4, I'll update the title

There's only 30 commits between 18.1.4. and 18.1.5 llvmorg-18.1.4...llvmorg-18.1.5

@FireBurn FireBurn changed the title Clang 18.1.4/5 errors on AVX vector return of type 'F' (aka 'Vec<16, float>') without 'evex512' enabled changes the ABI Clang 18.1.5 errors on AVX vector return of type 'F' (aka 'Vec<16, float>') without 'evex512' enabled changes the ABI May 12, 2024
@FireBurn
Copy link
Author

@contyk
Copy link

contyk commented May 12, 2024

I was just going to point at the same commit as the possible culprit here, yes.

@FireBurn
Copy link
Author

I'm reverting it locally, will see if that fixes things

@FireBurn
Copy link
Author

Looks like it's already fixed in main 87f3407

@EugeneZelenko EugeneZelenko added backend:X86 and removed clang Clang issues not falling into any other category labels May 12, 2024
@llvmbot
Copy link

llvmbot commented May 12, 2024

@llvm/issue-subscribers-backend-x86

Author: Mike Lothian (FireBurn)

This has affected compiling libreoffice and nodejs so far. Clang 18.1.3 built these packages fine, so I think the change was added in 18.1.4 or 18.1.5 - which seems strange as I'd expect only bug fixes

LibreOffice

[CUS] writerfilter/source
S=/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2 &amp;&amp; I=$S/instdir &amp;&amp; W=$S/workdir &amp;&amp;  mkdir -p $W/GenCxxObject/UnpackedTarball/skia/modules/skcms/ $W/Dep/GenCxxObject/UnpackedTarball/skia/modules/skcms/ &amp;&amp; cd /var/tmp/portage
/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2 &amp;&amp; CCACHE_CPP2=1       x86_64-pc-linux-gnu-clang++ -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -DCPPU_ENV=gcc3 -DLINUX -DNDEBUG -DOSL_DEBUG_LEVEL=0 -DUNIX -DUNX -DX86_64 -D_PTHR
EADS -D_REENTRANT  -DSKIA_IMPLEMENTATION=1 -DSKIA_DLL -DSK_USER_CONFIG_HEADER="&lt;$S/config_host/config_skia.h&gt;"  -DSK_CPU_SSE_LEVEL=SK_CPU_SSE_LEVEL_SSE2 -DSK_ENABLE_SKSL_IN_RASTER_PIPELINE  -DSYSTEM_EXPAT  -DSYSTEM_ZLIB -DZLIB_CONST   -fvisibility=hidd
en         -Wall -Wno-missing-braces -Wendif-labels -Wextra -Wundef -Wunreachable-code -Wshadow -Wunused-macros -Wembedded-directive -finput-charset=UTF-8 -fmessage-length=0 -fno-common -pipe -fstack-protector-strong -Wdeprecated-copy-dtor -Wimplicit-f
allthrough -Wunused-exception-parameter -Wrange-loop-analysis -fvisibility-inlines-hidden -fPIC -Wshadow -Woverloaded-virtual -std=c++20 -pthread -O3 -pipe -march=native -O2 -fexceptions -O2 -w -DLIBO_INTERNAL_ONLY  -c $W/UnpackedTarball/skia/modules/s
kcms/skcms.cpp -o $W/GenCxxObject/UnpackedTarball/skia/modules/skcms/skcms.o  -I$S/include -I/opt/openjdk-bin-21.0.3_p9/include -I/opt/openjdk-bin-21.0.3_p9/include/linux -I$S/config_host     -isystem /usr/include/freetype2     -isystem /usr/include/fr
eetype2          -isystem /usr/include/libpng16  -I$W/UnpackedTarball/skia -I$W/UnpackedTarball/skia/modules/skcms/ -I$W/UnpackedTarball/skia/third_party/vulkanmemoryallocator/ -I$W/UnpackedTarball/skia/include/third_party/vulkan/ -I$S/external/skia/in
c/    
In file included from /var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/skcms.cpp:2470:
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:764:21: error: AVX vector return of type 'F' (aka 'Vec&lt;16, float&gt;') without 'evex512' enabled changes the ABI
  764 |                 a = F_from_U8(load&lt;U8&gt;(src + 1*i));
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:768:29: error: AVX vector return of type 'F' (aka 'Vec&lt;16, float&gt;') without 'evex512' enabled changes the ABI
  768 |                 r = g = b = F_from_U8(load&lt;U8&gt;(src + 1*i));
      |                             ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:774:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  774 |                 r = cast&lt;F&gt;((abgr &gt;&gt; 12) &amp; 0xf) * (1/15.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:775:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  775 |                 g = cast&lt;F&gt;((abgr &gt;&gt;  8) &amp; 0xf) * (1/15.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:776:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  776 |                 b = cast&lt;F&gt;((abgr &gt;&gt;  4) &amp; 0xf) * (1/15.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:777:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  777 |                 a = cast&lt;F&gt;((abgr &gt;&gt;  0) &amp; 0xf) * (1/15.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:783:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  783 |                 r = cast&lt;F&gt;(rgb &amp; (uint16_t)(31&lt;&lt; 0)) * (1.0f / (31&lt;&lt; 0));
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:784:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  784 |                 g = cast&lt;F&gt;(rgb &amp; (uint16_t)(63&lt;&lt; 5)) * (1.0f / (63&lt;&lt; 5));
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:785:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  785 |                 b = cast&lt;F&gt;(rgb &amp; (uint16_t)(31&lt;&lt;11)) * (1.0f / (31&lt;&lt;11));
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:807:29: error: AVX vector return of type 'unsigned int __attribute__((ext_vector_type(16)))' (vector of 16 'unsign
ed int' values) without 'evex512' enabled changes the ABI
  807 |                 r = cast&lt;F&gt;(load_3&lt;U32&gt;(rgb+0) ) * (1/255.0f);
      |                             ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:807:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values
) without 'evex512' enabled changes the ABI
  807 |                 r = cast&lt;F&gt;(load_3&lt;U32&gt;(rgb+0) ) * (1/255.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:808:29: error: AVX vector return of type 'unsigned int __attribute__((ext_vector_type(16)))' (vector of 16 'unsign
ed int' values) without 'evex512' enabled changes the ABI
  808 |                 g = cast&lt;F&gt;(load_3&lt;U32&gt;(rgb+1) ) * (1/255.0f);
      |                             ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:808:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  808 |                 g = cast&lt;F&gt;(load_3&lt;U32&gt;(rgb+1) ) * (1/255.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:809:29: error: AVX vector return of type 'unsigned int __attribute__((ext_vector_type(16)))' (vector of 16 'unsigned int' values) without 'evex512' enabled changes the ABI
  809 |                 b = cast&lt;F&gt;(load_3&lt;U32&gt;(rgb+2) ) * (1/255.0f);
      |                             ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:809:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  809 |                 b = cast&lt;F&gt;(load_3&lt;U32&gt;(rgb+2) ) * (1/255.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:814:28: error: AVX vector return of type 'unsigned int __attribute__((ext_vector_type(16)))' (vector of 16 'unsigned int' values) without 'evex512' enabled changes the ABI
  814 |                 U32 rgba = load&lt;U32&gt;(src + 4*i);
      |                            ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:816:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  816 |                 r = cast&lt;F&gt;((rgba &gt;&gt;  0) &amp; 0xff) * (1/255.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:817:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  817 |                 g = cast&lt;F&gt;((rgba &gt;&gt;  8) &amp; 0xff) * (1/255.0f);
      |                     ^
/var/tmp/portage/app-office/libreoffice-24.2.3.2/work/libreoffice-24.2.3.2/workdir/UnpackedTarball/skia/modules/skcms/src/Transform_inl.h:818:21: error: AVX vector return of type 'float __attribute__((ext_vector_type(16)))' (vector of 16 'float' values) without 'evex512' enabled changes the ABI
  818 |                 b = cast&lt;F&gt;((rgba &gt;&gt; 16) &amp; 0xff) * (1/255.0f);
      |                     ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]

Nodejs

FAILED: obj/deps/simdjson/simdjson.simdjson.o 
clang++ -MMD -MF obj/deps/simdjson/simdjson.simdjson.o.d -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DNODE_OPENSSL_CERT_STORE -DICU_NO_USER_DATA_OVERRIDE -D__STDC_FORMAT_MACROS -I../../deps/simdjson -pthread -Wall -Wextra -Wno-unus
ed-parameter -m64 -fno-omit-frame-pointer -O3 -pipe -march=native -fno-rtti -fno-exceptions -std=gnu++17  -c ../../deps/simdjson/simdjson.cpp -o obj/deps/simdjson/simdjson.simdjson.o
../../deps/simdjson/simdjson.cpp:20526:14: error: always_inline function '_mm512_loadu_si512' requires target feature 'evex512', but would be inlined into function 'load' that is compiled without support for 'evex512'
 20526 |       return _mm512_loadu_si512(reinterpret_cast&lt;const __m512i *&gt;(values));
       |              ^
../../deps/simdjson/simdjson.cpp:20526:14: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../../deps/simdjson/simdjson.cpp:20526:14: error: AVX vector argument of type 'const __m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../../deps/simdjson/simdjson.cpp:20652:51: error: AVX vector argument of type 'const __m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
 20652 |     simdjson_inline simd8(const __m512i _value) : base8_numeric&lt;uint8_t&gt;(_value) {}
       |                                                   ^
../../deps/simdjson/simdjson.cpp:20546:59: error: AVX vector argument of type 'const __m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
 20546 |     simdjson_inline base8_numeric(const __m512i _value) : base8&lt;T&gt;(_value) {}
       |                                                           ^
../../deps/simdjson/simdjson.cpp:20492:51: error: AVX vector argument of type 'const __m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
 20492 |     simdjson_inline base8(const __m512i _value) : base&lt;simd8&lt;T&gt;&gt;(_value) {}
       |                                                   ^
../../deps/simdjson/simdjson.cpp:20717:52: error: always_inline function '_mm512_movepi8_mask' requires target feature 'evex512', but would be inlined into function 'is_ascii' that is compiled without support for 'evex512'
 20717 |     simdjson_inline bool is_ascii() const { return _mm512_movepi8_mask(*this) == 0; }
       |                                                    ^
../../deps/simdjson/simdjson.cpp:20717:52: error: AVX vector argument of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../../deps/simdjson/simdjson.cpp:20473:71: error: always_inline function '_mm512_or_si512' requires target feature 'evex512', but would be inlined into function 'operator|' that is compiled without support for 'evex512'
 20473 |     simdjson_inline Child operator|(const Child other) const { return _mm512_or_si512(*this, other); }
       |                                                                       ^
../../deps/simdjson/simdjson.cpp:20473:71: error: AVX vector argument of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../../deps/simdjson/simdjson.cpp:20473:71: error: AVX vector argument of type 'const __m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../../deps/simdjson/simdjson.cpp:20504:14: error: '__builtin_ia32_palignr512' needs target feature avx512bw,evex512
 20504 |       return _mm512_alignr_epi8(*this, _mm512_permutex2var_epi64(prev_chunk, _mm512_set_epi64(13, 12, 11, 10, 9, 8, 7, 6), *this), shift);
       |              ^
/usr/lib/llvm/18/bin/../../../../lib/clang/18/include/avx512bwintrin.h:1977:13: note: expanded from macro '_mm512_alignr_epi8'
 1977 |   ((__m512i)__builtin_ia32_palignr512((__v64qi)(__m512i)(A), \
      |             ^
../../deps/simdjson/simdjson.cpp:20504:78: error: always_inline function '_mm512_set_epi64' requires target feature 'evex512', but would be inlined into function 'prev' that is compiled without support for 'evex512'
 20504 |       return _mm512_alignr_epi8(*this, _mm512_permutex2var_epi64(prev_chunk, _mm512_set_epi64(13, 12, 11, 10, 9, 8, 7, 6), *this), shift);
       |                                                                              ^
../../deps/simdjson/simdjson.cpp:20504:78: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../../deps/simdjson/simdjson.cpp:20504:40: error: always_inline function '_mm512_permutex2var_epi64' requires target feature 'evex512', but would be inlined into function 'prev' that is compiled without support for 'evex512'
 20504 |       return _mm512_alignr_epi8(*this, _mm512_permutex2var_epi64(prev_chunk, _mm512_set_epi64(13, 12, 11, 10, 9, 8, 7, 6), *this), shift);
       |                                        ^
../../deps/simdjson/simdjson.cpp:20504:40: error: AVX vector argument of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
../../deps/simdjson/simdjson.cpp:20504:14: error: AVX vector argument of type 'const __m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
 20504 |       return _mm512_alignr_epi8(*this, _mm512_permutex2var_epi64(prev_chunk, _mm512_set_epi64(13, 12, 11, 10, 9, 8, 7, 6), *this), shift);
       |              ^
/usr/lib/llvm/18/bin/../../../../lib/clang/18/include/avx512bwintrin.h:1977:3: note: expanded from macro '_mm512_alignr_epi8'
 1977 |   ((__m512i)__builtin_ia32_palignr512((__v64qi)(__m512i)(A), \
      |   ^
../../deps/simdjson/simdjson.cpp:20725:72: error: always_inline function '_mm512_srli_epi16' requires target feature 'evex512', but would be inlined into function 'shr' that is compiled without support for 'evex512'
 20725 |     simdjson_inline simd8&lt;uint8_t&gt; shr() const { return simd8&lt;uint8_t&gt;(_mm512_srli_epi16(*this, N)) &amp; uint8_t(0xFFu &gt;&gt; N); }
       |                                                                        ^
../../deps/simdjson/simdjson.cpp:20725:72: error: AVX vector argument of type '__m512i' (vector of 8 'long long' values) without 'evex512' enabled changes the ABI
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
[229/1894] clang -MMD -MF obj/deps/llhttp/src/llhttp.llhttp.o.d -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DNODE_OPENSSL_CERT_STORE -DICU_NO_USER_DATA_OVERRIDE -D__STDC_FORMAT_MACROS -I../../deps/llhttp -I../../deps/llhttp/include -pthread -Wall -Wextra -Wno-unused-parameter -m64 -fno-omit-frame-pointer -O3 -pipe -march=native  -c ../../deps/llhttp/src/llhttp.c -o obj/deps/llhttp/src/llhttp.llhttp.o
../../deps/llhttp/src/llhttp.c:2635:13: warning: unused variable 'avail' [-Wunused-variable]
 2635 |         int avail;
      |             ^~~~~
../../deps/llhttp/src/llhttp.c:2865:13: warning: unused variable 'avail' [-Wunused-variable]
 2865 |         int avail;
      |             ^~~~~
2 warnings generated.

@contyk
Copy link

contyk commented May 19, 2024

I confirm this is fixed in 18.1.6.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants