-
-
Notifications
You must be signed in to change notification settings - Fork 11.9k
Closed
Labels
00 - Bugcomponent: SIMDIssues in SIMD (fast instruction sets) code or machineryIssues in SIMD (fast instruction sets) code or machinery
Milestone
Description
Issue observed in gh-25440, and is present on main too. Example from this CI log:
[48/314] Compiling C++ object numpy/_core/libhighway_qsort.dispatch.h_SVE.a.p/src_npysort_highway_qsort.dispatch.cpp.o
FAILED: numpy/_core/libhighway_qsort.dispatch.h_SVE.a.p/src_npysort_highway_qsort.dispatch.cpp.o
c++ -Inumpy/_core/libhighway_qsort.dispatch.h_SVE.a.p -Inumpy/_core -I../numpy/_core -Inumpy/_core/include -I../numpy/_core/include -I../numpy/_core/src/common -I../numpy/_core/src/multiarray -I../numpy/_core/src/npymath -I../numpy/_core/src/umath -I../numpy/_core/src/highway -I/opt/_internal/cpython-3.11.6/include/python3.11 -I/project/build/meson_cpu -fdiagnostics-color=always -DNDEBUG -Wall -Winvalid-pch -std=c++17 -O3 -fPIC -DNPY_INTERNAL_BUILD -DHAVE_NPY_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -D__STDC_VERSION__=0 -fno-exceptions -fno-rtti -O3 -DNPY_HAVE_NEON_VFPV4 -DNPY_HAVE_NEON_FP16 -DNPY_HAVE_NEON -DNPY_HAVE_ASIMD -DNPY_HAVE_ASIMDHP -DNPY_HAVE_SVE -march=armv8.2-a+sve+fp16 -DNPY_MTARGETS_CURRENT=SVE -MD -MQ numpy/_core/libhighway_qsort.dispatch.h_SVE.a.p/src_npysort_highway_qsort.dispatch.cpp.o -MF numpy/_core/libhighway_qsort.dispatch.h_SVE.a.p/src_npysort_highway_qsort.dispatch.cpp.o.d -o numpy/_core/libhighway_qsort.dispatch.h_SVE.a.p/src_npysort_highway_qsort.dispatch.cpp.o -c ../numpy/_core/src/npysort/highway_qsort.dispatch.cpp
In file included from ../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:26,
from ../numpy/_core/src/npysort/highway_qsort.dispatch.cpp:3:
../numpy/_core/src/highway/hwy/base.h: In function ‘constexpr bool hwy::operator==(hwy::float16_t, hwy::float16_t)’:
../numpy/_core/src/highway/hwy/base.h:1049:20: error: call to non-‘constexpr’ function ‘float hwy::F32FromF16(hwy::float16_t)’
1049 | return F32FromF16(lhs) == F32FromF16(rhs);
| ~~~~~~~~~~^~~~~
../numpy/_core/src/highway/hwy/base.h:975:33: note: ‘float hwy::F32FromF16(hwy::float16_t)’ declared here
975 | HWY_API HWY_F16_CONSTEXPR float F32FromF16(float16_t f16) {
| ^~~~~~~~~~
../numpy/_core/src/highway/hwy/base.h: In function ‘constexpr bool hwy::operator!=(hwy::float16_t, hwy::float16_t)’:
../numpy/_core/src/highway/hwy/base.h:1056:20: error: call to non-‘constexpr’ function ‘float hwy::F32FromF16(hwy::float16_t)’
1056 | return F32FromF16(lhs) != F32FromF16(rhs);
| ~~~~~~~~~~^~~~~
../numpy/_core/src/highway/hwy/base.h:975:33: note: ‘float hwy::F32FromF16(hwy::float16_t)’ declared here
975 | HWY_API HWY_F16_CONSTEXPR float F32FromF16(float16_t f16) {
| ^~~~~~~~~~
../numpy/_core/src/highway/hwy/base.h: In function ‘constexpr bool hwy::operator<(hwy::float16_t, hwy::float16_t)’:
../numpy/_core/src/highway/hwy/base.h:1063:20: error: call to non-‘constexpr’ function ‘float hwy::F32FromF16(hwy::float16_t)’
1063 | return F32FromF16(lhs) < F32FromF16(rhs);
| ~~~~~~~~~~^~~~~
../numpy/_core/src/highway/hwy/base.h:975:33: note: ‘float hwy::F32FromF16(hwy::float16_t)’ declared here
975 | HWY_API HWY_F16_CONSTEXPR float F32FromF16(float16_t f16) {
| ^~~~~~~~~~
../numpy/_core/src/highway/hwy/base.h: In function ‘constexpr bool hwy::operator<=(hwy::float16_t, hwy::float16_t)’:
../numpy/_core/src/highway/hwy/base.h:1070:20: error: call to non-‘constexpr’ function ‘float hwy::F32FromF16(hwy::float16_t)’
1070 | return F32FromF16(lhs) <= F32FromF16(rhs);
| ~~~~~~~~~~^~~~~
../numpy/_core/src/highway/hwy/base.h:975:33: note: ‘float hwy::F32FromF16(hwy::float16_t)’ declared here
975 | HWY_API HWY_F16_CONSTEXPR float F32FromF16(float16_t f16) {
| ^~~~~~~~~~
../numpy/_core/src/highway/hwy/base.h: In function ‘constexpr bool hwy::operator>(hwy::float16_t, hwy::float16_t)’:
../numpy/_core/src/highway/hwy/base.h:1077:20: error: call to non-‘constexpr’ function ‘float hwy::F32FromF16(hwy::float16_t)’
1077 | return F32FromF16(lhs) > F32FromF16(rhs);
| ~~~~~~~~~~^~~~~
../numpy/_core/src/highway/hwy/base.h:975:33: note: ‘float hwy::F32FromF16(hwy::float16_t)’ declared here
975 | HWY_API HWY_F16_CONSTEXPR float F32FromF16(float16_t f16) {
| ^~~~~~~~~~
../numpy/_core/src/highway/hwy/base.h: In function ‘constexpr bool hwy::operator>=(hwy::float16_t, hwy::float16_t)’:
../numpy/_core/src/highway/hwy/base.h:1084:20: error: call to non-‘constexpr’ function ‘float hwy::F32FromF16(hwy::float16_t)’
1084 | return F32FromF16(lhs) >= F32FromF16(rhs);
| ~~~~~~~~~~^~~~~
../numpy/_core/src/highway/hwy/base.h:975:33: note: ‘float hwy::F32FromF16(hwy::float16_t)’ declared here
975 | HWY_API HWY_F16_CONSTEXPR float F32FromF16(float16_t f16) {
| ^~~~~~~~~~
[49/314] Compiling C++ object numpy/_core/libhighway_qsort.dispatch.h_ASIMD.a.p/src_npysort_highway_qsort.dispatch.cpp.o
FAILED: numpy/_core/libhighway_qsort.dispatch.h_ASIMD.a.p/src_npysort_highway_qsort.dispatch.cpp.o
c++ -Inumpy/_core/libhighway_qsort.dispatch.h_ASIMD.a.p -Inumpy/_core -I../numpy/_core -Inumpy/_core/include -I../numpy/_core/include -I../numpy/_core/src/common -I../numpy/_core/src/multiarray -I../numpy/_core/src/npymath -I../numpy/_core/src/umath -I../numpy/_core/src/highway -I/opt/_internal/cpython-3.11.6/include/python3.11 -I/project/build/meson_cpu -fdiagnostics-color=always -DNDEBUG -Wall -Winvalid-pch -std=c++17 -O3 -fPIC -DNPY_INTERNAL_BUILD -DHAVE_NPY_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -D__STDC_VERSION__=0 -fno-exceptions -fno-rtti -O3 -DNPY_HAVE_NEON_VFPV4 -DNPY_HAVE_NEON_FP16 -DNPY_HAVE_NEON -DNPY_HAVE_ASIMD -DNPY_MTARGETS_CURRENT=ASIMD -MD -MQ numpy/_core/libhighway_qsort.dispatch.h_ASIMD.a.p/src_npysort_highway_qsort.dispatch.cpp.o -MF numpy/_core/libhighway_qsort.dispatch.h_ASIMD.a.p/src_npysort_highway_qsort.dispatch.cpp.o.d -o numpy/_core/libhighway_qsort.dispatch.h_ASIMD.a.p/src_npysort_highway_qsort.dispatch.cpp.o -c ../numpy/_core/src/npysort/highway_qsort.dispatch.cpp
In file included from ../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:26,
from ../numpy/_core/src/npysort/highway_qsort.dispatch.cpp:3:
../numpy/_core/src/highway/hwy/base.h: In function ‘constexpr bool hwy::operator==(hwy::float16_t, hwy::float16_t)’:
../numpy/_core/src/highway/hwy/base.h:1049:20: error: call to non-‘constexpr’ function ‘float hwy::F32FromF16(hwy::float16_t)’
1049 | return F32FromF16(lhs) == F32FromF16(rhs);
| ~~~~~~~~~~^~~~~
../numpy/_core/src/highway/hwy/base.h:975:33: note: ‘float hwy::F32FromF16(hwy::float16_t)’ declared here
975 | HWY_API HWY_F16_CONSTEXPR float F32FromF16(float16_t f16) {
| ^~~~~~~~~~
../numpy/_core/src/highway/hwy/base.h: In function ‘constexpr bool hwy::operator!=(hwy::float16_t, hwy::float16_t)’:
../numpy/_core/src/highway/hwy/base.h:1056:20: error: call to non-‘constexpr’ function ‘float hwy::F32FromF16(hwy::float16_t)’
1056 | return F32FromF16(lhs) != F32FromF16(rhs);
| ~~~~~~~~~~^~~~~
../numpy/_core/src/highway/hwy/base.h:975:33: note: ‘float hwy::F32FromF16(hwy::float16_t)’ declared here
975 | HWY_API HWY_F16_CONSTEXPR float F32FromF16(float16_t f16) {
| ^~~~~~~~~~
../numpy/_core/src/highway/hwy/base.h: In function ‘constexpr bool hwy::operator<(hwy::float16_t, hwy::float16_t)’:
../numpy/_core/src/highway/hwy/base.h:1063:20: error: call to non-‘constexpr’ function ‘float hwy::F32FromF16(hwy::float16_t)’
1063 | return F32FromF16(lhs) < F32FromF16(rhs);
| ~~~~~~~~~~^~~~~
../numpy/_core/src/highway/hwy/base.h:975:33: note: ‘float hwy::F32FromF16(hwy::float16_t)’ declared here
975 | HWY_API HWY_F16_CONSTEXPR float F32FromF16(float16_t f16) {
| ^~~~~~~~~~
../numpy/_core/src/highway/hwy/base.h: In function ‘constexpr bool hwy::operator<=(hwy::float16_t, hwy::float16_t)’:
../numpy/_core/src/highway/hwy/base.h:1070:20: error: call to non-‘constexpr’ function ‘float hwy::F32FromF16(hwy::float16_t)’
1070 | return F32FromF16(lhs) <= F32FromF16(rhs);
| ~~~~~~~~~~^~~~~
../numpy/_core/src/highway/hwy/base.h:975:33: note: ‘float hwy::F32FromF16(hwy::float16_t)’ declared here
975 | HWY_API HWY_F16_CONSTEXPR float F32FromF16(float16_t f16) {
| ^~~~~~~~~~
../numpy/_core/src/highway/hwy/base.h: In function ‘constexpr bool hwy::operator>(hwy::float16_t, hwy::float16_t)’:
../numpy/_core/src/highway/hwy/base.h:1077:20: error: call to non-‘constexpr’ function ‘float hwy::F32FromF16(hwy::float16_t)’
1077 | return F32FromF16(lhs) > F32FromF16(rhs);
| ~~~~~~~~~~^~~~~
../numpy/_core/src/highway/hwy/base.h:975:33: note: ‘float hwy::F32FromF16(hwy::float16_t)’ declared here
975 | HWY_API HWY_F16_CONSTEXPR float F32FromF16(float16_t f16) {
| ^~~~~~~~~~
../numpy/_core/src/highway/hwy/base.h: In function ‘constexpr bool hwy::operator>=(hwy::float16_t, hwy::float16_t)’:
../numpy/_core/src/highway/hwy/base.h:1084:20: error: call to non-‘constexpr’ function ‘float hwy::F32FromF16(hwy::float16_t)’
1084 | return F32FromF16(lhs) >= F32FromF16(rhs);
| ~~~~~~~~~~^~~~~
../numpy/_core/src/highway/hwy/base.h:975:33: note: ‘float hwy::F32FromF16(hwy::float16_t)’ declared here
975 | HWY_API HWY_F16_CONSTEXPR float F32FromF16(float16_t f16) {
| ^~~~~~~~~~
In file included from ../numpy/_core/src/highway/hwy/highway.h:415,
from ../numpy/_core/src/highway/hwy/contrib/algo/copy-inl.h:28,
from ../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:98,
from ../numpy/_core/src/npysort/highway_qsort.dispatch.cpp:3:
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h: In instantiation of ‘hwy::N_NEON_WITHOUT_AES::VFromD<D> hwy::N_NEON_WITHOUT_AES::MinOfLanes(D, hwy::N_NEON_WITHOUT_AES::VFromD<D>) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; hwy::EnableIf<(D::kPrivateLanes > 1)>* <anonymous> = 0; hwy::N_NEON_WITHOUT_AES::VFromD<D> = hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>; hwy::N_NEON_WITHOUT_AES::TFromD<D> = double]’:
../numpy/_core/src/highway/hwy/contrib/sort/traits-inl.h:324:22: required from ‘hwy::N_NEON_WITHOUT_AES::Vec<D> hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<T>::FirstOfLanes(D, hwy::N_NEON_WITHOUT_AES::Vec<D>, T*) const [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; T = double; hwy::N_NEON_WITHOUT_AES::Vec<D> = hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1685:28: required from ‘void hwy::N_NEON_WITHOUT_AES::detail::PrintMinMax(D, Traits, const T*, size_t, T*) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1710:16: required from ‘void hwy::N_NEON_WITHOUT_AES::detail::Recurse(D, Traits, T*, size_t, T*, uint64_t*, size_t) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int; uint64_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1900:20: required from ‘void hwy::N_NEON_WITHOUT_AES::Sort(D, Traits, T*, size_t, T*) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1932:14: required from ‘void hwy::N_NEON_WITHOUT_AES::Sort(D, Traits, T*, size_t) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1991:7: required from ‘void hwy::N_NEON_WITHOUT_AES::VQSortStatic(T*, size_t, hwy::SortAscending) [with T = double; size_t = long unsigned int]’
../numpy/_core/src/npysort/highway_qsort.dispatch.cpp:29:69: required from here
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7480:26: error: call of overloaded ‘ReduceMin(hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>&, hwy::N_NEON_WITHOUT_AES::VFromD<hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0> >&)’ is ambiguous
7480 | return Set(d, ReduceMin(d, v));
| ~~~~~~~~~^~~~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7430:35: note: candidate: ‘hwy::float64_t hwy::N_NEON_WITHOUT_AES::ReduceMin(D, hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; hwy::EnableIf<(D::kPrivateLanes == 2)>* <anonymous> = 0; hwy::float64_t = double]’
7430 | HWY_NEON_DEF_REDUCTION_CORE_TYPES(ReduceMin, vminv)
| ^~~~~~~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7395:20: note: in definition of macro ‘HWY_NEON_DEF_REDUCTION’
7395 | HWY_API type##_t name(D /* tag */, Vec128<type##_t, size> v) { \
| ^~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7430:1: note: in expansion of macro ‘HWY_NEON_DEF_REDUCTION_CORE_TYPES’
7430 | HWY_NEON_DEF_REDUCTION_CORE_TYPES(ReduceMin, vminv)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7445:19: note: candidate: ‘hwy::N_NEON_WITHOUT_AES::TFromD<D> hwy::N_NEON_WITHOUT_AES::ReduceMin(D, hwy::N_NEON_WITHOUT_AES::VFromD<D>) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; hwy::EnableIf<(D::kPrivateLanes == 2)>* <anonymous> = 0; hwy::N_NEON_WITHOUT_AES::TFromD<D> = double; hwy::N_NEON_WITHOUT_AES::VFromD<D> = hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>]’
7445 | HWY_API TFromD<D> ReduceMin(D /* tag */, VFromD<D> v10) {
| ^~~~~~~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h: In instantiation of ‘hwy::N_NEON_WITHOUT_AES::VFromD<D> hwy::N_NEON_WITHOUT_AES::MaxOfLanes(D, hwy::N_NEON_WITHOUT_AES::VFromD<D>) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; hwy::EnableIf<(D::kPrivateLanes > 1)>* <anonymous> = 0; hwy::N_NEON_WITHOUT_AES::VFromD<D> = hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>; hwy::N_NEON_WITHOUT_AES::TFromD<D> = double]’:
../numpy/_core/src/highway/hwy/contrib/sort/traits-inl.h:330:22: required from ‘hwy::N_NEON_WITHOUT_AES::Vec<D> hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<T>::LastOfLanes(D, hwy::N_NEON_WITHOUT_AES::Vec<D>, T*) const [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; T = double; hwy::N_NEON_WITHOUT_AES::Vec<D> = hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1686:26: required from ‘void hwy::N_NEON_WITHOUT_AES::detail::PrintMinMax(D, Traits, const T*, size_t, T*) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1710:16: required from ‘void hwy::N_NEON_WITHOUT_AES::detail::Recurse(D, Traits, T*, size_t, T*, uint64_t*, size_t) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int; uint64_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1900:20: required from ‘void hwy::N_NEON_WITHOUT_AES::Sort(D, Traits, T*, size_t, T*) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1932:14: required from ‘void hwy::N_NEON_WITHOUT_AES::Sort(D, Traits, T*, size_t) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; Traits = hwy::N_NEON_WITHOUT_AES::detail::SharedTraits<hwy::N_NEON_WITHOUT_AES::detail::TraitsLane<hwy::N_NEON_WITHOUT_AES::detail::OrderAscending<double> > >; T = double; size_t = long unsigned int]’
../numpy/_core/src/highway/hwy/contrib/sort/vqsort-inl.h:1991:7: required from ‘void hwy::N_NEON_WITHOUT_AES::VQSortStatic(T*, size_t, hwy::SortAscending) [with T = double; size_t = long unsigned int]’
../numpy/_core/src/npysort/highway_qsort.dispatch.cpp:29:69: required from here
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7484:26: error: call of overloaded ‘ReduceMax(hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>&, hwy::N_NEON_WITHOUT_AES::VFromD<hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0> >&)’ is ambiguous
7484 | return Set(d, ReduceMax(d, v));
| ~~~~~~~~~^~~~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7431:35: note: candidate: ‘hwy::float64_t hwy::N_NEON_WITHOUT_AES::ReduceMax(D, hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; hwy::EnableIf<(D::kPrivateLanes == 2)>* <anonymous> = 0; hwy::float64_t = double]’
7431 | HWY_NEON_DEF_REDUCTION_CORE_TYPES(ReduceMax, vmaxv)
| ^~~~~~~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7395:20: note: in definition of macro ‘HWY_NEON_DEF_REDUCTION’
7395 | HWY_API type##_t name(D /* tag */, Vec128<type##_t, size> v) { \
| ^~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7431:1: note: in expansion of macro ‘HWY_NEON_DEF_REDUCTION_CORE_TYPES’
7431 | HWY_NEON_DEF_REDUCTION_CORE_TYPES(ReduceMax, vmaxv)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../numpy/_core/src/highway/hwy/ops/arm_neon-inl.h:7450:19: note: candidate: ‘hwy::N_NEON_WITHOUT_AES::TFromD<D> hwy::N_NEON_WITHOUT_AES::ReduceMax(D, hwy::N_NEON_WITHOUT_AES::VFromD<D>) [with D = hwy::N_NEON_WITHOUT_AES::Simd<double, 2, 0>; hwy::EnableIf<(D::kPrivateLanes == 2)>* <anonymous> = 0; hwy::N_NEON_WITHOUT_AES::TFromD<D> = double; hwy::N_NEON_WITHOUT_AES::VFromD<D> = hwy::N_NEON_WITHOUT_AES::Vec128<double, 2>]’
7450 | HWY_API TFromD<D> ReduceMax(D /* tag */, VFromD<D> v10) {
| ^~~~~~~~~
ninja: build stopped: subcommand failed.
ERROR Backend subprocess exited when trying to invoke build_wheel
A copy of this comment from the PR:
A search for that error comes up empty, however we haven't run these wheel builds in 1 months and 8 days I think (that was the last nightly upload for aarch64 to https://anaconda.org/scientific-python-nightly-wheels/numpy/files).
That last successful build was before the initial merge of highway_qsort (gh-24018), so this probably never worked in the wheel builds. @Mousius @seiko2plus does that error look familiar perhaps?
Metadata
Metadata
Assignees
Labels
00 - Bugcomponent: SIMDIssues in SIMD (fast instruction sets) code or machineryIssues in SIMD (fast instruction sets) code or machinery